LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5SQzMgLT4gVjUuNgoKMjAxMC0xMC0wNyAyMDozMyAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEwLTA2IDExOjMxICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgRml4IGlwdjYgZ2VuZXJpYyBjYXNlIHNvIHRlc3QgbWF0Y2hlcyB2ZXJpZmljYXRpb24KCjIwMTAtMTAtMDEgMTY6NDQgIGR0czEyCgogICAqIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBSZXdvcmsgZGVzY3JpcHRpb24gb2YgT0lEIG5hbWUgaGFuZGxpbmcgdG8gYmUKICAgbm90IHF1aXRlIHNvIGluY3JlZGlibHkgb3V0IG9mIGRhdGUuCgoyMDEwLTA5LTIyIDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBlcmcuLi4gcmVhbGx5IHVzZSB0aGUgcmlnaHQgYXV0b2NvbmYgdmVyc2lvbiBieSBzZXR0aW5nIHRoZSBwYXRoCiAgIHJpZ2h0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnJjMiAtPiBWNS42LnJjMwoKMjAxMC0wOS0yMSAyMzo1MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZWQgd2l0aCBwcm9wZXIgYXV0b2NvbmYgdmVyc2lvbgoKMjAxMC0wOS0yMSAyMzo0OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTIxIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdmVyaWZpZWQgcGF0Y2ggZnJvbSByc3RvcnkgdG8gZml4IGNlcnRpZmljYXRlIGxvYWRpbmcgb2YKICAgaW5jb21wbGV0ZSBjaGFpbnMKCjIwMTAtMDktMjEgMTg6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTgzODg6IGZyb20gY2hyaXNib2x0OiBkb24ndCBwYXJzZQogICBpbmNsdWRlQWxsRGlza3MgaW4gdGhlIG1haW4gc25tcGxpYiByb3V0aW5lcwoKMjAxMC0wOS0yMSAxODowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMwNjI1MjY6IGZyb20gbWFyaW9nODU6IGZpeCBzZWN1cml0eQogICBlbmdpbmVJRCBzZXR0aW5nIGluIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUKCjIwMTAtMDktMjEgMTU6MTMgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgV2luMzIgZG9jdW1lbnRhdGlvbi4KCjIwMTAtMDktMjAgMjM6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIFBhdGNoIGZyb20gRnVsa28gSGV3IHRvIGZpeCBwYXRjaCAyOTAwMDc4IHdoaWNoIGJyb2tlIHN5c09iamVjdElECiAgIGxlbmd0aHMKCjIwMTAtMDktMjAgMjE6MzIgIGR0czEyCgogICAqIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWY6CgogICBEb2N1bWVudCAtQ2YgaW4gdGhlIHR3byBtYW4gcGFnZXMgc2VwYXJhdGVseS4KCjIwMTAtMDktMjAgMjA6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzA2NzU0MDogZnJvbSBqb3ljZWFubWFjaGluZTogRml4IElQdjQKICAgT0lEIGluZGV4ZXMgb24gNjQtYml0IGJpZy1lbmRpYW4gc3lzdGVtcy4KCjIwMTAtMDktMjAgMTk6MjUgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsIHdpbjMyL0NvbmZpZ3VyZSwgICAKICAgICAgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiAgIFVuLWJyZWFrIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wOS0yMCAwOToxOCAgYnZhc3NjaGUKCiAgICogZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsIG1hbiwgdGVzdGluZywgd2luMzI6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAxMC0wOS0xNyAxMDozNCAgZHRzMTIKCiAgICogIG1hbi9hZ2VudHh0cmFwLjEuZGVmLCBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgCiAgICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgICAKICAgICAgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgUmVtb3ZlIENNVSBjb3B5cmlnaHQgbm90aWNlIGZyb20gbWFuIHBhZ2VzIHRoYXQgd2VyZSBub3QKICAgaW5oZXJpdGVkIGZyb20gQ01VLVNOTVAgKGFuZCBxdWFsaWZ5IHRoZSBjb3B5cmlnaHQgZm9yCiAgIHRob3NlIHRoYXQgd2VyZSkuCgoyMDEwLTA5LTE3IDA5OjUxICBkdHMxMgoKICAgKiAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgCiAgICAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgICAKICAgICAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBVcGRhdGUgbWFuIHBhZ2UgcmVmZXJlbmNlcyB0byByZWZsZWN0IG5ldyBBUEkgZG9jdW1lbnRhdGlvbgogICBzdHJ1Y3R1cmUuCgoyMDEwLTA5LTEwIDA0OjIzICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbmV3IHRlc3QqIGVudHJpZXMgZnJvbSB0aGUgdGVzdGluZwogICBNYWtlZmlsZS5pbiB0byB0aGUgdG9wLWxldmVsIE1ha2VmaWxlLmluCgoyMDEwLTA5LTA4IDE1OjQxICBkdHMxMgoKICAgKiAgbWFuL2FnZW50eHRyYXAuMS5kZWYsIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCAgIAogICAgICBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgbWFuL2ZpeHByb2MuMS5kZWYsICAgCiAgICAgIG1hbi9taWIyYy11cGRhdGUuMS5kZWYsIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgICAKICAgICAgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCAKICAgICAgICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wY29uZi4xLmRlZiwgICAKICAgICAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgCiAgICAgICBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMS5kZWYsIG1hbi9zbm1wZGYuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwKICAgICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCAgCiAgICAgICBtYW4vc25tcHRlc3QuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwKICAgICAgbWFuL3NubXB1c20uMS5kZWYsICAgIG1hbi9zbm1wdmFjbS4xLmRlZiwgbWFuL3NubXB3YWxrLjEuZGVmLAogICAgICBtYW4vdGttaWIuMS5kZWYsICAgIG1hbi90cmFwdG9lbWFpbC4xLmRlZiwgbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFVwZGF0ZSBtYW4gcGFnZSBkYXRlc3RhbXBzIHRvIG1hdGNoIHRoZSBsYXRlc3QgKG5vbi10cml2aWFsKQogICBjb250ZW50IGNoYW5nZS4KICAgU3VwcHJlc3MgZm9yY2luZyBvZiAiQmVya2VsZXkgRGlzdHJpYnV0aW9uIiBmb290ZXIKICAgKEFsbG93cyBOZXQtU05NUCB2ZXJzaW9uIGluZm9ybWF0aW9uIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbWFuCiAgIHBhZ2UpCgoyMDEwLTA5LTA4IDA1OjM3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlZAoKMjAxMC0wOS0wNCAwNjozOCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTM1NiBieQogICBjaGFuZ2luZyB0aGUgcmV0dXJuCiAgIHR5cGUgb2YgbmV0c25tcF90bHNiYXNlX2ZyZWVfdGxzZGF0YSgpIGZyb20gdm9pZCogdG8gdm9pZC4KCjIwMTAtMDktMDQgMDY6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTMyMiAocGF0Y2gKICAgMzA0NDUxMikuCiAgIFRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gcmVhZF9vYmppZCgpIHdhcyBhbiBpbnQgaW5zdGVhZCBvZgogICBzaXplX3QuCiAgIFRoaXMgY291bGQgaGF2ZSBjYXVzZWQgbWVtb3J5IGNvcnJ1cHRpb24gb24gNjQtYml0IHN5c3RlbXMuCgoyMDEwLTA5LTA0IDAzOjA5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDktMDQgMDM6MDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA5LTA0IDAxOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDktMDQgMDA6NTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOS0wMyAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0bHN0Y3AgcGFyc2luZyBvZiBob3N0IG5hbWVzLgoKMjAxMC0wOS0wMyAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBjaGVjayB0aGUgcmV0dXJuIGNvZGUgb2YgZmdldHMgYW5kIGZvcGVuIGJlZm9yZSBpbnNlcnRpbmcgdGhlCiAgIHJlc3VsdHMuCgoyMDEwLTA5LTAzIDIyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFBhdGNoIGZyb20gdGFuZGVycyB0byBmaXggYnJva2VuIGFsYXJtcyBhZnRlciB0aGUgcHJldmlvdXMKICAgcmUtZW50cmFudCBwYXRjaAoKMjAxMC0wOS0wMyAyMjowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaCAzMDU4NjQ1OiBmcm9tIGpvcmlzZXNhdHVybnVzOiBtb2RpZmllZAogICB2ZXJzaW9uIG9mIHRoZSBwYXRjaCB0byB1c2UgTVNHX0RPTlRXQUlUIGZvciB0aGUgdW5peCBkb21haW4KICAgc29ja2V0CgoyMDEwLTA5LTAzIDIxOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU4MTQwOiBmcm9tIHRha2V2b3M6IGNoZWNrIHRoYXQgaW5vZGUgaXMKICAgbm9uLXplcm8KCjIwMTAtMDktMDMgMjE6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0Mjg6IGZyb20gdGFrZXZvczogZml4CiAgIGdldF9waWRfZnJvbV9pbm9kZSB3aGVuIHRoZSBpbm9kZSBpcyBub3QgZm91bmQuCgoyMDEwLTA5LTAzIDIwOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIGR1cGxpY2F0ZSByZXR1cm4gYmVmb3JlIHRoZSBlcnJvciBjb2RlcyBnZXQgc2V0LgoKMjAxMC0wOS0wMSAxODowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IExvZyBiZWZvcmUgcmV0dXJuaW5nLgoKMjAxMC0wOS0wMSAwMjo0MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBUTFMgc2VuZF9ub3RpZnkgb24gY2xvc3VyZSBhbmQgc29tZSBtZW1vcnkgY2xlYW4tdXAgcGF0Y2hlcwoKMjAxMC0wOC0zMSAxNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT25seSBwcmludCB0aGUgc2VjdXJpdHkvY29udGV4dCBFbmdpbmVJRCBtaXNtYXRjaCBub3RlIHVuZGVyIFVTTQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIENIQU5HRVM6CgogICByZW1vdmUgcmVmZXJlbmNlIHRvIHJldmVydGVkIHBhdGNoIDMwNDI3NjUKCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG5vdGUgb24gd2hlcmUgdG8gZmluZCBjb250ZW50IHVzZWQgdG8gZ2VuZXJhdGUKICAgbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICByZXZlcnQgcjE5MzQyLCBwYXRjaCAzMDQyNzY1LCB3aGljaCBicm9rZSBjbGllbnQgdGNwIGRpc2Nvbm5lY3QKICAgaGFuZGxpbmcKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IG1vcmUgY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgY2hlY2sgZm9yIGNvbmYgZXJyb3JzIGFmdGVyIGFnZW50IHN0YXJ0dXA7IGVuYWJsZSBsb2dUaW1lc3RhbXA7CiAgIG1ha2Ugc3VyZQogICBhbGwgY2VydCBuYW1lL3RhZ3MgYXJlIHVuaXF1ZQoKMjAxMC0wOC0yNCAyMTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3Igc3RyaW5nIHRvIGRpc2N1c3MgdGhlIHJpZ2h0IGZhaWxlZCBvcGVuc3NsIG5ldwogICBpbnZvY2F0aW9uCgoyMDEwLTA4LTI0IDA1OjM3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IENvcnJlY3QgaWZkZWZzLCByZW1vdmUgZGVhZCB2YXJpYWJsZXMuCgoyMDEwLTA4LTE5IDIxOjIyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDgtMTkgMjE6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA4LTE5IDIxOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA4LTE5IDIxOjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgLy8gLT4gQyBjb21tZW50cwoKMjAxMC0wOC0xOSAyMDozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzMDQyNzY1OiBmcm9tIG1laGFmOiBtYWtlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IoKSByZS1lbnRyYW50CgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHR1cm4gb2ZmIGNvb2tpZSBleGNoYW5nZXMgdW50aWwgYSBjb21wbGV0ZSBjb2RlIHNldCBjYW4gYmUKICAgd3JpdHRlbiB0byBzdXBwb3J0IGl0IGJhc2VkIG9uIHRoZSByZXF1aXJlZCBmdW5jdGlvbiBjYWxsYmFja3MKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWRkIG1pc3NpbmcgY2FsbCB0byBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgYXMgbmVlZGVkCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZGlzcGxheWluZyBhIGJ5dGUgYXMgc2luZ2xlIGRpZ2l0IGhleAogICB2YWx1ZSwgZGVmYXVsdCB0bwogICBwcmVmaXhpbmcgd2l0aCAwIHVubGVzcyB0aGVyZSBpcyBhIHNlcGVyYXRvciBvciBhZGRpdGlvbiBoaW50CiAgIGRhdGEKCjIwMTAtMDgtMTcgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGFuIHVudXNlZCBsYWJlbCB0aGF0IHdhcyB0cmlnZ2VyZWQKICAgd2hlbgogICBjb21waWxpbmcgd2l0aG91dCBTU0wgc3VwcG9ydC4KCjIwMTAtMDgtMTYgMjM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyNzkwMjQ5OiBmcm9tIHdpbGxwd2lsbHA6IHJlZHVjZSBjYWNoZSB0aW1lCiAgIGZvciB0aGUgaWZ0YWJsZSB0byAzc2Vjb25kcyB0byBpbmNyZWFzZSBhY2N1cmFjeQoKMjAxMC0wOC0xNiAxNjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0NjM3MTogZnJvbSBjaHJpc3RvcGhiNDogRml4IG1lbW9yeSBsZWFrCiAgIGluIFNOTVB2MSB0cmFwIGhhbmRsaW5nLgoKMjAxMC0wOC0xNiAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjgyNTY1MzogZnJvbSBicnU1Y2U6IGZpeCBzZW5kbWFpbC5jZgogICBwYXJzaW5nIGluIGNlcnRhaW4gY29uZGl0aW9ucwoKMjAxMC0wOC0xNiAxMDoxNiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQnVpbGQgbmV0c25tcF9hZ2VudF9hcGkuMyBtYW4gcGFnZSBmcm9tIHRlbXBsYXRlCgoyMDEwLTA4LTE2IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBEb2N1bWVudGF0aW9uIChQcm92aWRlZCBieSBUb21hc3oKICAgTGlzKQoKMjAxMC0wOC0xNiAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmUtb3JkZXIgY29kZSB0byBncm91cCByZWxhdGVkCiAgIGZ1bmN0aW9ucyB0b2dldGhlcgoKMjAxMC0wOC0xNiAwNzo0MiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjk5NTA5ODogRml4IGNyZWF0aW9uIG9mIFNOTVB2MyBzZXNzaW9ucwogICB3aXRoIEFQSV9TSU5HTEUKCjIwMTAtMDgtMTQgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGVzCgoyMDEwLTA4LTE0IDE2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MDQ5MDA6IERvY3VtZW50YXRpb24gcGx1cyBhc3NvcnRlZAogICBoYW5kbGVyIGNvZGUgZml4ZXMKCjIwMTAtMDgtMTQgMDk6MjggIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgIFJlc3RvcmUgYWdlbnQgQVBJIG1hbiBwYWdlCiAgIERvbid0IHRyeSB0byBleHRyYWN0IG11bHRpcGxlIG1hbiBwYWdlIGxpbmtzIHBlciBsaW5lCiAgICh3aGljaCBydW5zIGludG8gcHJvYmxlbXMgd2l0aCBPUy1zcGVjaWZpYyBsaW5lIGVuZGluZ3MpLgogICBJbnN0ZWFkLCBlbnN1cmUgdGhlIG1hbiBwYWdlIE5BTUUgc2VjdGlvbiBsaXN0cyBvbmUKICAgcm91dGluZSBwZXIgbGluZQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGJyb2tlbiBNYWtlZmlsZSBhZnRlciBtYW4gcGFnZSBtb3ZlcwoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIFRMUyBNSUIgdG8gY3VycmVudCBjb3B5CgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVwbGFjZWQgUkZDIGNvbW1lbnQgbnVtYmVyCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAzMDQyNzcwOiBmcm9tIG1laGFmOiBNYWRlIHJ1bl9hbGFybXMoKQogICByZWVudHJhbnQKCjIwMTAtMDgtMTMgMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA0NDUxMjogZnJvbSBwaGlsd2Vic3RlcjogZml4IHN5c29iamVjdGlkCiAgIGRpcmVjdGl2ZS4KCjIwMTAtMDgtMTMgMTk6MDAgIHJzdG9yeQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4OgoKICAgdXNlIDEyNy4wLjAuMSBpbnN0ZWFkIG9mIGxvY2FsaG9zdCBhcyBkZWZhdWx0IFNOTVBfVEVTVF9ERVNUIHNvCiAgIFRMUyB0ZXN0cyB3b3JrCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGltcGxlbWVudGVkIGEgZml4IGZvciB0aGUgaXNzdWUgcmVwb3J0ZWQgaW4KICAgcGF0Y2ggIzMwNDI3NzAuIENyZWF0ZWQgYSBzbm1wX3NlbGVjdF9pbmZvX2ZsYWdzIGZ1bmN0aW9uLCBhbmQKICAgc2ltaWxhciwgdGhhdCBhbGxvdyBmb3IgYWxhcm1zIHRvIG5vdCBiZSBydW4uIFRoaXMgaXMgdGhlbiB1c2VkCiAgIGluIHRoZSBzeW5jaF9yZXNwb25zZSBmdW5jdGlvbnMgdG8gYXZvaWQgMTAwJSBDUFUgbG9vcHMKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBtYWtlIHNubXB0cmFwZCByZWdpc3RlciB0aGUgY2VydHRvc2VjbmFtZSB0YWJsZSBpbiB0aGUgYWdlbnR4CiAgIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDgtMTMgMTg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBtaW5vciB3b3JkaW5nIGFkZGl0aW9ucwoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jOgoKICAgQ0hBTkdFUzogYWl4OiBQQVRDSDogMjg4NjU5ODogZnJvbSBleHNuYWZ1OiBIZWFkZXIgZml4ZXMgZm9yCiAgIGNvbXBpbGluZyBvbiBBSVg2CgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICBORVdTOiBwb3J0czogUEFUQ0g6IDI4MzY4OTU6IGZyb20gc2VhbmJvdWRyZWF1OiBzdXBwb3J0IGZvciBRTlg2CgoyMDEwLTA4LTEzIDE0OjMzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgJ2VuZm9yY2UgbmV0c25tcCBwcmVmaXhlcwoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICBEb24ndCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIG1hbiBwYWdlcwoKMjAxMC0wOC0xMyAxNDoxOCAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsICAgCiAgICAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBSZW1vdmUgcmVkdW5kYW50IG1hbiBwYWdlIGxpbmtzCiAgIChTaG91bGQgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBkb24ndCBleGlzdCBhbnkgbW9yZQogICBhbnl3YXkpCgoyMDEwLTA4LTEzIDE0OjEzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLCBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgCiAgICAgICBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLCBtYW4vcHJpbnRfbWliLjMsICAKICAgICAgIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgbWFuL3ByaW50X3ZhcmlhYmxlLjMsICAgCiAgICAgIG1hbi9yZWFkX2FsbF9taWJzLjMsIG1hbi9yZWFkX21pYi4zLCBtYW4vcmVhZF9tb2R1bGUuMywgICAKICAgICAgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywgbWFuL3JlYWRfb2JqaWQuMywgbWFuL3NodXRkb3duX21pYi4zOgoKICAgUmVtb3ZlIERveHlnZW4tZ2VuZXJhdGVkIG1hbiBwYWdlcywgYW5kIHRob3NlIGxpbmtpbmcKICAgaW5kaXZpZHVhbCByb3V0aW5lcyB0byB0aGUgYXBwcm9wcmlhdGUgbWFuIHBhZ2UuCiAgIChUaGVzZSBhcmUgYmV0dGVyIGdlbmVyYXRlZCBkeW5hbWljYWxseSkKCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUHJvbXB0IGZvciB3aGV0aGVyIHRvIGdlbmVyYXRlIGNhY2hpbmcgY29kZSBvciBub3QuCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgUmV3b3JrIGd1aWRhbmNlIHF1ZXN0aW9ucyB3aGVuIHNlbGVjdGluZyB0aGUgYmVzdCB0YWJsZSBmcmFtZXdvcmsKICAgdG8gdXNlLgogICBFbnN1cmUgdGFibGUgaGFuZGxpbmcgY29kZSBkb2Vzbid0IG92ZXJ3cml0ZSBzY2FsYXIgaGFuZGxpbmcKICAgY29kZS4KICAgQ2hlY2sgdGhhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMgc3VpdGFibGUgZm9yIE1mRCBmcmFtZXdvcmsuCgoyMDEwLTA4LTEyIDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0xMiAxNTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgZHVwbGljYXRlIHZhbHVlIGNoZWNrCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgYWRkIGEgdGVzdCB3aGVyZSB3ZSBjYW4gdHJ1c3QgYSBDQS1zaWduZWQgY2VydCBhbmQgd2UgZG9uJ3QgdHJ1c3QKICAgdGhlIENBCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgdGVzdCBhIGRpcmVjdGx5IG1hcHBlZCBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgY2hhbmdlIHRoZSBsYUNvbmZpZyB0byByZWFkLXdyaXRlIHRvIG1hdGNoIHRoZSBwYXRjaAoKMjAxMC0wOC0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyOTMxNDQ2OiBmcm9tIGFobWFrZTogbWFrZSB0aGUgbG9hZCBhdmVyYWdlcwogICB3cml0YWJsZS4KCjIwMTAtMDgtMTEgMDY6NDMgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIENIQU5HRVM6IFNpbGVuY2Ugc29tZSBjb21waWxhdGlvbiB3YXJuaW5ncyBmcm9tIHRlc3QgY2FzZXMuCgoyMDEwLTA4LTA5IDIxOjA5ICBtYWdmcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IEhhbmRsZSBlbWJlZGRlZCAlJ3MgaW4gdGhlIHJlc3VsdCBtZXNzYWdlLgoKMjAxMC0wOC0wOSAyMTowNyAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBDSEFOR0VTOiBEbyBubyBkb3VibGUgZGVjbGFyZSB0aGUgaW5kZXggdmFsdWVzLgoKMjAxMC0wOC0wNSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBVcGRhdGUgImF1dGgqIiB1c2FnZSBtZXNzYWdlIHdpdGggY29udGV4dCBzdXBwb3J0CgoyMDEwLTA4LTAyIDIwOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXggdHdvIHNpbGx5IG1pc3Rha2VzLgoKMjAxMC0wOC0wMiAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgQUlYIGZpbGVzeXN0ZW0gdHlwZXMgYXJlIHRhZ2dlZCBhcyBpbnRlZ2Vycywgbm90IHN0cmluZ3MuCgoyMDEwLTA4LTAyIDEzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgZml4IFBlcmwgc3lzdGVtKCkgY29uZmlndXJlIGNoZWNrIHRvIHdvcmsgcmVsaWFibHkgb24gc3lzdGVtcwogICB0aGF0IGxhY2sKICAgUGVybAoKMjAxMC0wOC0wMiAxMTowOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IG1hZGUgaXQgcG9zc2libGUgdG8gYW5hbHl6ZSBhbGwgY29kZSBjb3ZlcmVkIGJ5CiAgIHRoZSByZWdyZXNzaW9uIHRlc3RzIHdpdGggYSBkeW5hbWljIGFuYWx5emVyLCBhdCBsZWFzdCBpZiB0aGF0CiAgIGFuYWx5emVyIHN1cHBvcnRzIGZvbGxvd2luZyBjaGlsZCBwcm9jZXNzZXMuIEFuIGV4YW1wbGU6CiAgIAogICBybSAtcmYgL3RtcC9zbm1wLXRlc3QtKgogICBtYWtlIC1zCiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tdHJhY2stb3JpZ2lucz15ZXMiIG1ha2UgLXMgdGVzdAogICBncmVwIC1pIHVuaW5pdGlhbGlzZWQgL3RtcC9zbm1wLXRlc3QtKiB8IHhhcmdzIGxlc3MKCjIwMTAtMDgtMDIgMTE6MDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgdHdvIFZhbGdyaW5kIGNvbXBsYWludHM6CiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkQ3MDJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDk5RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDdBNDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZFMTQ0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDVFNUUyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NUU2NTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDVFNTY3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1RTI0NzlBOiBfc2Vzc19wcm9jZXNzX3BhY2tldCAoc25tcF9hcGkuYzo1NDQxKQogICBieSAweDVFMjVFMzc6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NjAzNykKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDVFNjU3Mzk6IG5ldHNubXBfdGNwX2FjY2VwdCAoc25tcFRDUERvbWFpbi5jOjgyKQogICBieSAweDVFMjUzODM6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NTc4NikKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkY3QjJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RkE0RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2Rjg1NDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDcwMUY0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDU2RkEyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NTcwMTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDU2RjI3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1NkYyOTRGOiBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kIChzbm1wX3RyYW5zcG9ydC5jOjI0OCkKICAgYnkgMHg1NkJDNDg3OiBzbm1wX3Nlc3NfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo1MjA0KQogICBieSAweDU2QkM2NTE6IHNubXBfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo0OTk4KQogICBieSAweDU2QkM2Nzc6IHNubXBfc2VuZCAoc25tcF9hcGkuYzo0OTg0KQogICBieSAweDU2OTg0NDA6IHNubXBfc3luY2hfcmVzcG9uc2VfY2IgKHNubXBfY2xpZW50LmM6MTAwNikKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NTcwMUIzRTogbmV0c25tcF90Y3BfdHJhbnNwb3J0IChzbm1wVENQRG9tYWluLmM6MTYzKQogICBieSAweDU3MDFFNkY6IG5ldHNubXBfdGNwX2NyZWF0ZV90c3RyaW5nIChzbm1wVENQRG9tYWluLmM6MzA1KQogICBieSAweDU2RjM4MDQ6IG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbAogICAoc25tcF90cmFuc3BvcnQuYzo2MDEpCiAgIGJ5IDB4NTZGM0FDQzogbmV0c25tcF90cmFuc3BvcnRfb3Blbl9jbGllbnQKICAgKHNubXBfdHJhbnNwb3J0LmM6NjY5KQogICBieSAweDU0MzQ0RjY6IHN1YmFnZW50X29wZW5fbWFzdGVyX3Nlc3Npb24gKHN1YmFnZW50LmM6NzU4KQogICBieSAweDU0MzQ5Qzg6IGFnZW50eF9yZW9wZW5fc2Vzc2lvbiAoc3ViYWdlbnQuYzo4NjkpCiAgIGJ5IDB4NTQzNEQwMDogc3ViYWdlbnRfc3RhcnR1cCAoc3ViYWdlbnQuYzo5OSkKICAgYnkgMHg1NkVBRUI3OiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjMzOCkKICAgYnkgMHg1NkRFNkZCOiByZWFkX2NvbmZpZ3MgKHJlYWRfY29uZmlnLmM6MTAxOCkKICAgYnkgMHg1NkMyODdFOiBpbml0X3NubXAgKHNubXBfYXBpLmM6ODUwKQogICBieSAweDQwNDc3QjogbWFpbiAoc25tcHRyYXBkLmM6MTA0OCkKCjIwMTAtMDgtMDEgMDY6MTEgIGJ2YXNzY2hlCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBGaXhlZCBzcGVsbGluZyBlcnJvcnMgcmVwb3J0ZWQgYnkgaXNwZWxsIC1sLgoKMjAxMC0wOC0wMSAwNjowMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF9lbnVtLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSB0ZXh0IHN0cmluZyBpbiBhIHVuaXQgdGVzdDogcmVzdHVyYW50IC0+CiAgIHJlc3RhdXJhbnQuCgoyMDEwLTA4LTAxIDA1OjUzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkuCgoyMDEwLTA3LTMxIDIzOjUwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxOTI2NjogYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgdG8gc3VwcG9ydCBNYWMgT1MgWAogICAxMC42CiAgIChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQoKMjAxMC0wNy0zMSAyMDozOCAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA3LTMxIDIwOjI0ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjE2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgY2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgcmVhZG1lIHNlY3Rpb24gdG8gY2FsbCBvdXQgTkVXUy10b28KCjIwMTAtMDctMzEgMjA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBtaXNzaW5nIG5ld3MgaXRlbXMKCjIwMTAtMDctMzAgMTM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0ggMzAzNTMyODogZnJvbTogc3dzOiBjaGVjayB0aGUgcmVzdWx0cyBvZgogICBzZXNzaW9uIGNyZWF0aW9uIGZvciBhIGZhaWx1cmUgY2FzZS4KCjIwMTAtMDctMzAgMTM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IHBhdGNoIDMwMzU1Nzg6IGZyb20gc3dzOiBrZWVwIGVycm9yIGNvZGVzIHVwIHRvCiAgIGRhdGUKCjIwMTAtMDctMjkgMTU6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTo0NyAgZHRzMTIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIG9mICd2YV9saXN0JyBmb3IgdmFyYXJncy1iYXNlZCBBUElzCgoyMDEwLTA3LTI5IDE0OjU4ICBkdHMxMgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIEFJWCA3CiAgIChvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgaWRlbnRpY2FsIHRvIEFJWCA2KQoKMjAxMC0wNy0yOSAxNDo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIERpc2FibGUgZW1iZWRkZWQgcGVybCBieSBkZWZhdWx0IG9uIGFyY2hpdGVjdXJlcyB3aGVyZQogICB0aGlzIHNlZW1zIHRvIGNhdXNlIHByb2JsZW1zIChIUC1VWCAmIE1hYyBPUyBYKQoKMjAxMC0wNy0yOSAxMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgR3VhcmQgYWdhaW5zdCBibGFuayAnaW5jbHVkZSonIGxpbmVzLgogICBIYW5kbGUgcmVsYXRpdmUgJ2luY2x1ZGVGaWxlJyBwYXRocwoKMjAxMC0wNy0yOSAxMDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldHVybiBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgY29uZmlnIGZpbGVzIGFyZSBhY3R1YWxseQogICBwcm9jZXNzZWQuCiAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIGZhaWxpbmcgdG8gaW5jbHVkZSBjb25maWcgZmlsZXMuCgoyMDEwLTA3LTI4IDE0OjQ0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgIAogICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBCcmluZyBtYW4gcGFnZSBkb2N1bWVudGF0aW9uLCBoZWFkZXIgZmlsZXMgYW5kIFdpbmRvd3MgRExMCiAgIGRlZmluaXRpb25zCiAgIG9mIHRvcC1sZXZlbCBwdWJsaWMgQVBJIGNhbGxzIGludG8gbGluZSB3aXRoIGVhY2ggb3RoZXIuCgoyMDEwLTA3LTI4IDE0OjQwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbWlzbmFtZWQgY29tbWVudAoKMjAxMC0wNy0yOCAxNDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERvbid0IG1peCBTTUl2MSBhbmQgU01JdjIgTUlCcyBpbiB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQnMgdG8KICAgbG9hZC4KICAgVXNlIG5ld2VyIFNNSXYyIHZlcnNpb25zICh3aGljaCBpbmNsdWRlIHN1aXRhYmxlIGRpc3BsYXkgaGludHMpCiAgIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBSRkMxMjEzIE1JQiAod2hpY2ggZG9lc24ndCkKCjIwMTAtMDctMjggMTQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbmRlbnRhdGlvbiBmb3IgJ2luY2x1ZGVTZWFyY2gnIHByb2Nlc3NpbmcgY29kZS4KCjIwMTAtMDctMjggMTQ6MDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEV4dGVuZCAnaW5jbHVkZScgY29uZmlnIGZpbGUgcHJvY2Vzc2luZyB0byBjb3ZlciB0aHJlZQogICBkaWZmZXJlbnQgbW9kZXMgb2Ygd29ya2luZzoKICAgLSBsb29rIGZvciB0aGUgZmlsZSBvbiB0aGUgY29uZmlnIHNlYXJjaCBwYXRoCiAgIC0gaW5jbHVkZSB0aGUgc3BlY2lmaWVkIGZpbGUgYnkgbmFtZQogICAtIGlvYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5CiAgIFVzZSBkaWZmZXJlbnQgY29uZmlnIHRva2VucyB0byBkaXN0aW5ndWlzaCB0aGVzZSBjYXNlcy4KCjIwMTAtMDctMjcgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjkxMjUyMDogZnJvbSBsaXN0b206IEZyZWUga21lbSByZWZlcmVuY2VzCiAgIG9uIHNodXRkb3duCgoyMDEwLTA3LTI3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NNVVgtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IHBhdGNoIDI5NzQ3MTY6IGZyb20gYnZhc3NjaGU6IGZpeCBpc3N1ZXMgaW4gdGhlCiAgIFNNVVgtTUlCCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBpbmNsdWRlIHRoZSBuZXcgc2VjdXJpdHktaGVkYWVycyBtb2R1bGUKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIHJlbW90ZSBkZWJ1Z2dpbmcvcHJvY2Vzc2luZyBzdGRlcnIgb3V0cHV0CgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDMwMjg5MjM6IGZyb20gamVuc286IG5ldyBjb3B5IG9mIHRoZQogICBicmlkZ2UtbWliIHBlcmwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXNlY3VyaXR5LWhlYWRlcnMuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIHNlY3VyaXR5IGhlYWRlci9pbml0IGdlbmVyYXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHM6CgogICB0cmFuc3BvcnQgY29uZmlndXJlIHBvcnRpb24KCjIwMTAtMDctMjcgMDg6MzAgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi10cmFuc3BvcnQtaGVhZGVycy5pbiwgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXZhcmlhYmxlcy5pbjoKCiAgIG1vdmUgdHJhbnNwb3J0IGhlYWRlciBnZW5lcmF0aW9uIHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgY3JlYXRlIGFuCiAgIGV4dGVybmFsIHNlcGFyYXRlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZyBpdAoKMjAxMC0wNy0yNyAwODoxNCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgZ2ZzIGZpbGVzeXN0ZW1zIGluIGhyU3RvcmFnZVRhYmxlIGFuZAogICBockZTVGFibGUuCgoyMDEwLTA3LTI0IDE1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIHdhcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gcHJvY2Vzc2luZyBhbiBpbmNsdWRlZCBjb25maWcgZmlsZS4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjQgMTU6MzYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgaXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIG9wZW5pbmcgYSBuZXcgU05NUCBzZXNzaW9uLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yMyAwMzoxMiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGQgdGhlIFRMUyBtb2R1bGVzIHRvIHRoZSBsaXN0IG9mIHRlc3QgbW9kdWxlcwoKMjAxMC0wNy0yMSAxOToyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRml4IHR5cG8gaW4gZG94eWdlbiBjb21tZW50CgoyMDEwLTA3LTIxIDE5OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIEZpeCB0eXBvIGluIHNwZWVkIGNvbXB1dGF0aW9uCgoyMDEwLTA3LTIxIDE5OjIxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSW5jbHVkZSBnZW5lcmF0ZWQgc2VjdXJpdHktaW5jbHVkZXMuaAoKMjAxMC0wNy0yMSAxOToyMCAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oOgoKICAgRml4IGluaXQgZnVuYyBuYW1lIChjb3B5LXBhc3RlIGdsaXRjaCkKCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBzZW1pY29sb24KCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIE91dCBvZiBvcmRlciBkZWNsYXJhdGlvbgoKMjAxMC0wNy0yMSAxOToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBMb2cgZXJyb3Igb24gZmlsZSBvcGVuIGVycm9yCgoyMDEwLTA3LTIxIDE5OjE2ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU3BlbGluZyBlcnJvcgoKMjAxMC0wNy0yMSAxODoxMCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmY6CgogICBVcGRhdGUgZm9yIGN1cnJlbnQgUkZDcwoKMjAxMC0wNy0yMSAxODowOCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCB2ZXJzaW9uIGZyb20gSUFOQQoKMjAxMC0wNy0yMSAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcjE3NDk1IGVycm9uZW91c2x5IGRpc2FibGVkIGRpc2tJT0xBeCBmb3IgbGludXgKCjIwMTAtMDctMjAgMTA6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGdlbmVyYXRpbmcKICAgdGVtcC4gZmlsZSBuYW1lcwoKMjAxMC0wNy0yMCAwNzozMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9zbm1wZC5jLCBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgICAKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIERlc2NyaWJlIC1EIHVzYWdlIGFzIC1EW1RPS0VOXSBpbnN0ZWFkIG9mIC1EIFtUT0tFTl0KCjIwMTAtMDctMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICB1cGRhdGUgZGlzcGxheSBoaW50IHRvIHNvbWUgbGVzcyBhbWJpZ3VvdXMgKGFuZCB0aGF0IHdvcmtzIHdpdGgKICAgb3VyIGxpYikKCjIwMTAtMDctMTcgMDQ6MTMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IHRlc3RzaW1wbGUgZm9yIGJ1aWxkZGlyIT1zcmNkaXIKCjIwMTAtMDctMTcgMDQ6MTIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgYWRkIHRlc3RzaW1wbGUgdGFyZ2V0CgoyMDEwLTA3LTE2IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWxlYXNlIGl0ZXJhdG9yIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDEwLTA3LTE1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBpc3N1ZSB3aXRoIFVTTSB1c2luZyBpbmFjdGl2ZSB1c2VycwoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGluY2x1ZGUgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcjsgZGVmaW5lIE5BTUVfTUFYIGlmIG5vdCBhbHJlYWR5CiAgIGRlZmluZWQ7CiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHRoYXQgc29tZSBuZXdlciBvcGVuc3NsIG1hY3JvcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcKICAgdGhlbTsgaW5jbHVkZQogICBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgZHRscyBkb21haW4gaWYgbm8gZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaWZkZWYgcHJvdGVjdGlvbiBmb3IgbGF0ZXIgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBkYXJ3aW4gb3BlbnNzbCBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgcmVjZW50IHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgZml4IHR5cG8gaW4gaWZkZWYgdGVzdAoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBpbmNsdWRlZCBmaWxlIG5hbWUKCjIwMTAtMDctMTQgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZml4IHRoZSBmaXg6IHB1dCBQUkl6IHNwZWMgaW4gY29ycmVjdCBwbGFjZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBzcGVjaWZ5IFNOTVAgdmVyc2lvbiBvbiBjb21tYW5kbGluZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAxMC0wNy0xNCAxNTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbmNsdWRlIHNzbC5oIGJlZm9yZSBjZXJ0X3V0aWwuaAoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZGVidWcgb3V0cHV0IGZvciBmb3VuZCBjZXJ0CgoyMDEwLTA3LTEzIDE2OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbXNnCgoyMDEwLTA3LTEyIDEwOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBXaW4zMiBhbmQgQ3lnd2luOiBtYWRlIHN1cmUgdGhhdCBhY2Nlc3NpbmcgdGhlIG1pYklJCiAgIGludGVyZmFjZXMgdGFibGUgZG9lcyBub3QgdHJpZ2dlciBvdXQtb2YtcmFuZ2UgYXJyYXkgYWNjZXNzZXMKICAgKHdhcyBkZXRlY3RlZCBieSBCb3VuZHNDaGVja2VyKS4KCjIwMTAtMDctMTIgMTA6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4ZWQgYSBkYW5nbGluZy1wb2ludGVyLXJlYWQgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTguIEluCiAgIHIxOTAxOCB0aGUgdHlwZSBvZiBncm91cFN1YnRyZWVMZW4gd2FzIGNoYW5nZWQgZnJvbSBpbnQgdG8KICAgc2l6ZV90LCB3aGljaCBjaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiB0aGUgbG9vcCAid2hpbGUKICAgKGdyb3VwU3VidHJlZUxlbi0tID4gMCkgLi4uIjogaW5zdGVhZCBvZiBub3QgZXhlY3V0aW5nIHRoZSBsb29wCiAgIGJvZHkgd2hlbiBncm91cFN1YnRyZWVMZW4gd2FzIG5lZ2F0aXZlLCByMTkwMTggY2F1c2VkIHRoZSBib2R5IG9mCiAgIHRoYXQgbG9vcCB0byBiZSBleGVjdXRlZC4gRGV0ZWN0ZWQgYnkgcnVubmluZyBzbm1wZCB1bmRlcgogICBCb3VuZHNDaGVja2VyIHdoaWxlIHBlcmZvcm1pbmcgYSBNSUIgd2Fsay4KCjIwMTAtMDctMTIgMTA6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBSZXZlcnRlZCByMTkwNDcgKHdoaWNoIHdhcyB3cm9uZykgYW5kIGltcGxlbWVudGVkIGEgcHJvcGVyIGZpeAogICBmb3IgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzLgoKMjAxMC0wNy0xMiAxMDowOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNy0xMiAxMDowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgU3VwcHJlc3NlZCBtb3JlIE1TVkMgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzOgoKICAgYWRkIGNvbW1lbnQgd2l0aCBvYmplY3QgbmFtZSBmb3IgbnVtZXJpYyBpZHMKCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gZ2V0IHNlcnZlcklkIGZyb20gc25tcFRsc3RtQWRkclRhYmxlIGRhdGE7IHVzZQogICBuZXcgYXBpCiAgIHRvIGNvbmZpZyBzZXJ2aWNlSWQgZm9yIHRyYXAgdHJhbnNwb3J0IHdoZW4gc2VuZGluZyB0cmFwcwoKMjAxMC0wNy0xMSAxMToxOCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ0hBTkdFUzogQlVHOiAzMDI3OTAwOiB3aGVuIGNyb3NzLWNvbXBpbGluZyBpdCBpcyBub3cgYXNzdW1lZAogICB0aGF0IG1lbWNtcCgpIGlzIGF2YWlsYWJsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgaXQgaXMgbm90CiAgIGF2YWlsYWJsZS4KCjIwMTAtMDctMTEgMTA6MzAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHIxOTE5Ny4KCjIwMTAtMDctMTAgMjA6MDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN5bmMgdXAgaGVscCBvdXRwdXQgYW5kIG9wdGlvbnMgcHJvY2Vzc2luZwoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBDeWd3aW4gc2VjdGlvbiBpbiBSRUFETUUud2luMzIuCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBXaW4zMjogU3VwcHJlc3NlZCAiaW1wbGljaXQgY2FzdCBmcm9tIGludCB0byB1X2NoYXIiCiAgIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBNU1ZDLgoKMjAxMC0wNy0wOSAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIFRlc3Rpbmc6IG1hZGUgdGhlIGRlYnVnIG91dHB1dCB0aGF0IGFwcGVhcnMgaW4gdGhlICJpbnZva2VkIiBmaWxlCiAgIGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMC0wNy0wOSAxNToxMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDEwLTA3LTA4IDE5OjMwICBtYXJ6CgogICAqICBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQsICAgCiAgICAgIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGFkZHMgcGVyIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZmlsZSBzdXBwb3J0IHNvIGRlZmF1bHRzIGNhbiBiZQogICBjdXN0b21pc2VkIG9uIGNtZGxpbmUgdyAtaSA8aWRlbnRpdHk+IC0gc2VlIG5ldC1zbm1wLWNlcnQuY29uZgogICBmb3IgZXhhbXBsZXMgYW5kIHNvbWUgaGVscCBpbmZvCgoyMDEwLTA3LTA4IDEyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAwMzk4MTogUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVyZmxvdwoKMjAxMC0wNy0wOCAxMToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDE5MjQzOiBSZWdpc3RlciBleGVjRml4IGNvbXBhdGFiaWxpdHkKICAgZGlyZWN0aXZlIGNvcnJlY3RseS4KCjIwMTAtMDctMDcgMTA6MTkgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGU6CgogICBDSEFOR0VTOiBDeWd3aW4gYW5kIE1pbkdXOiB0ZXN0cyBUMTEwLCBUMTExLCBUMTEyLCBUMTIwLCBUMTIxIGFuZAogICBUMTIyIGRvIG5vdyBwYXNzIHdoZW4gc25tcGQgaXMgYnVpbHQgd2l0aCB3aW5FeHRETEwgc3VwcG9ydAogICBlbmFibGVkLgoKMjAxMC0wNy0wNiAxODo1OSAgYnZhc3NjaGUKCiAgICogIENoYW5nZUxvZywgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBNYWRlIHJlZ3Jlc3Npb24gdGVzdHMgZWFzaWVyIHRvIGRlYnVnIGJ5IGluY2x1ZGluZyBvayAvIG5vdCBvawogICBzdGF0dXMgaW4gdGhlICJpbnZva2VkIiBmaWxlLgogICBTcGVsbGluZyBmaXhlczogcmVtZWJlciAtPiByZW1lbWJlcjsgc2VwZXJhdG9yIC0+IHNlcGFyYXRvci4KCjIwMTAtMDctMDYgMTU6MDQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgVGVzdCBUMDY1IGRvZXMgbm93IHJlYWxseSBwYXNzIG9uIE1pbkdXLgoKMjAxMC0wNy0wNSAxMDowMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGN1cmx5IGJyYWNlcyBzdWNoIHRoYXQgJ3x8JyBhbmQgJyYmJyBhcmUgZXZhbHVhdGVkIGluIHRoZQogICBjb3JyZWN0IG9yZGVyLgoKMjAxMC0wNy0wNCAxMTozNyAgYnZhc3NjaGUKCiAgICogYXBwczoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDctMDQgMTE6MzQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBGYWxsIGJhY2sgZnJvbSBSVU5GVUxMVEVTVFMgdG8gUlVOVEVTVFMgaWYgbmVpdGhlciBUQVA6Okhhcm5lc3MKICAgbm9yIFRlc3Q6Okhhcm5lc3MgaXMgYXZhaWxhYmxlLgoKMjAxMC0wNy0wNCAxMToyMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHRlc3QgbnVtYmVyIGluIC90bXAvc25tcC10ZXN0cy0kdGVzdG51bSBpcyBzZXQKICAgdG8gc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bCB0aGFuIGp1c3QgIjAiLgoKMjAxMC0wNy0wNCAxMToyMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNwbGl0IGEgbG9uZyBjb21tZW50IGxpbmUuCgoyMDEwLTA3LTA0IDEwOjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgc3JjZGlyIGlzIGNvbXB1dGVkIGNvcnJlY3RseSBpZiBgZGlybmFtZQogICAkMGAgPSAuCgoyMDEwLTA3LTAyIDE2OjI3ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgU2ltcGxpZmllZCByMTkxODEgKEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aAogICBub24tZW1wdHkgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cpLgoKMjAxMC0wNy0wMSAxODoxNSAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aCBub24tZW1wdHkKICAgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cuCgoyMDEwLTA3LTAxIDE4OjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDctMDEgMTc6NTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBGaXhlZCB0d28gcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMDEgMDA6MTkgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MDMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ4ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmY6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlzc2VkIHR3byB0b2tlbnMgaW4gdGhlIG1hbiBwZ2FlcwoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWYsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICByZW5hbWUgdGhlIGRlZlg1MDkgdG9rZW5zIHRvIHNvbWV0aGluZyBtb3JlIGZyaWVuZGx5OiBjbGllbnRDZXJ0CiAgIGFuZCBzZXJ2ZXJDZXJ0CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB0b3AtZmlsZSBjb21tZW50IHVwZGF0ZXMKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCBjYWxsIGNlcnRfZmluZCB3aXRoIGEgTlVMTCBhcmd1bWVudAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFsbG93IGRlZiBjZXJ0cyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBmaWxlbmFtZQoKMjAxMC0wNi0zMCAyMzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBmaXggc3ludGF4IGVycm9yCgoyMDEwLTA2LTMwIDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdHVybiBhIGNvdXBsZSBvZiBub24tY3JpdGljYWwgZXJyb3JzIGludG8gZGVidWcgc3RhdGVtZW50cyBwZXIKICAgZGlzY3Vzc2lvbiB3aXRoIHJzdG9yeQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWtlIHRoZSByZWdleHAgcGF0dGVybiBtYXRjaCBmb3IgdGVzdHMgdG8gcnVuIGNhc2UgaW5zZW5zaXRpdmUKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGltcG9ydCBzdGRlcnIgZnJvbSBzeXMsIHBlciBkaXNjdXNzaW9uIG9uIC11c2VycwoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIGJhY2sgaW4gdGhlIGRlZmF1bHQgcG9ydCBzcGVjaWZpZXIKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBlbmFibGUgcHVsbGluZyB0aGUgcHJpdmF0ZSBrZXkgb3ZlciBodHRwCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW92ZSBVUkwgY29sbGVjdGlvbiBpbnRvIGEgc3ViIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYWJpbGl0eSB0byBwdWxsIGEgY2VydCBmcm9tIGEgVVJMCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFyZ3VtZW50IGJ1ZyBpbiB0aGUgaXNfdXJsIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgY29kZQoKMjAxMC0wNi0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3RHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICByZW5hbWUgZmlsZSBmb3IgY29uc2lzdGVuY3kKCjIwMTAtMDYtMzAgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBzbm1wdGxzIGFwcAoKMjAxMC0wNi0zMCAyMDowMCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHJlbW92ZSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbnQgZGVidWcgY29kZQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGRlZmluZSBPSURzIGJhc2VkIG9uIFNOTVBfVExTX1RNX0JBU0UKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NyAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlOyBhZGQKICAgc25tcF9zdG9yZV9uZWVkZWQgb24gY29tbWl0CgoyMDEwLTA2LTMwIDE5OjU2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIG5ldyBmaW5nZXJwcmludCBwYXJzZS9idWlsZCBmdW5jdGlvbnM7IHJlbW92ZSBiYWQgbGVuZ3RoCiAgIGNoZWNrOyBhdXRvCiAgIHRyYW5zaXRpb24gYmV0d2VlbiBub3RSZWFkeSBhbmQgbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU1ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgcmVtb3ZlIHByZS1yZmMgbWliOyBzZWUgU05NUC1UTFMtVE0tTUlCLnR4dCBpbnN0ZWFkCgoyMDEwLTA2LTMwIDE5OjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgY29uc29saWRhdGUgbXVsdGlwbGUgZmlsZXMKCjIwMTAtMDYtMzAgMTk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIGhhc2ggdHlwZSBwYXJzZSByb3V0aW5lIHB1YmxpYzsgYWRkIHJvdXRpbmVzIHRvIGJ1aWxkL3BhcnNlCiAgIFNubXBUTFNGaW5nZXJwcmludAoKMjAxMC0wNi0zMCAxOTo1MSAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGxzLmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogc25tcHRsczogbmV3IGFwcCBmb3IgbWFuYWdpbmcgKEQpVExTIGNvbmZpZyB2aWEKICAgU05NUC1UTFMtVE0tTUlCIHRhYmxlcwoKMjAxMC0wNi0zMCAxOTo1MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBjYWxsIG5ldyBzbm1wX3N0b3JlX25lZWRlZCgpIGZ1bmN0aW9uIGFmdGVyIGEgY29tbWl0IGluIHRhYmxlcwogICB0aGF0CiAgIGhhdmUgcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0zMCAxOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHNpbXBsZSBzdGF0ZSBtYWNoaW5lCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgcm93IGNyZWF0aW9uIEFQSSB3aGljaCB1c2VzIGEKICAgc3RhdGUgbWFjaGluZQogICB0byB0cnkgcmVhbGx5IGhhcmQgdG8gY3JlYXRlIGEgcm93IGZyb20gYSBnaXZlbiB2YXJiaW5kIGxpc3QKCjIwMTAtMDYtMzAgMTk6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGQ6IG5ldyBBUEkgZm9yIGluZGljYXRpbmcgdGhhdCBwZXJzaXN0ZW50IHN0b3JlIG5lZWRzCiAgIHRvIGJlIHNhdmVkIGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgZmluaXNoZXMgcHJvY2Vzc2luZwoKMjAxMC0wNi0zMCAxOTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgYWRkIHNvbWUgbmV3IHdyYXBwZXIgbWFjcm9zCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNDTlNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNUR0bHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTZUbHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMThUbHNDTlNlc3Npb25fc2ltcGxlOgoKICAgYWRkZWQgY2hlY2tzIGZvciBjaGVja2luZyBkaXJlY3QgcGFzc2luZyBvZiBsb2NhbGhvc3QgdG8gdGhlCiAgIGV4cGVjdGVkIG5hbWUKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyOgoKICAgY2hlY2sgZm9yIHdpbGRjYXJkIHN1cHBvcnQKCjIwMTAtMDYtMzAgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3VwcG9ydCBTQU4gYW5kIENOIHdpbGRjYXJkIG1hdGNoaW5nIHBlciBzcGVjCgoyMDEwLTA2LTMwIDE1OjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc05hbWUsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFycywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxRHRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMlRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExRHRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJUbHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNEdGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTRUbHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxRHRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMlRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxRHRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJUbHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFEdGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJUbHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxRHRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJUbHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDBUbHNJcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDBUbHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMUR0bHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFEdGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJUbHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICBtb3ZlZCB0ZXN0IGZpbGVzIGFyb3VuZCBmb3IgYmV0dGVyIG5hbWluZwoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGR0bHMgdHJhbnNwb3J0IGFkZHJlc3MgdG8gdGhlIGV4cGVjdGVkIGhvc3RuYW1lCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdGhlIGV4cGVjdGVkIGhvc3RuYW1lIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJpbmcgaWYgcG9zc2libGUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhIGJpdCBtb3JlIGhlbHAgb3V0cHV0IGJ5IGRlZmF1bHQKCjIwMTAtMDYtMjkgMjI6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgRm9sbG93LXVwIGZvciByMTkxMTY6IG1ha2Ugc3VyZSB3ZSBpbmNsdWRlIGFnZW50IGNvbmZpZwoKMjAxMC0wNi0yOSAyMjoxOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIEFkZCBtaXNzaW5nIGNvbmZpZ19yZXF1aXJlcwoKMjAxMC0wNi0yOSAxNzozMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICByZXdvcmsgdGhlIHNubXBjbWQgbWFudWFsIHBhZ2UgdG8gc2VwYXJhdGUgb3V0IHRoZSBmbGFncyBpbnRvCiAgIHNlY3Rpb25zIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZSB0eXBlCgoyMDEwLTA2LTI5IDE2OjUxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBwb2QgZG9jcywgc29tZSBkZWZhdWx0IHZhbCBmaXhlcywgaW5mbyBvdXRwdXQgbm9ybWFsaXplZAoKMjAxMC0wNi0yOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgYWRkZWQgc3NoLmggaW5jbHVkZQoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICByZW9yZ2FuaXplIHRoZSBtYW51YWwgcGFnZSBhIGJpdCBmb3IgU05NUHYzIGFuZCBUTFMKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggZGVmYXVsdCB0bHMgcmVnaXN0cmF0aW9ucwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgdHJhbnNwb3J0cyBhZnRlciBhbiBvcGVuIGZhaWxzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmluZyBsb2dnaW5nIGFyb3VuZCBzbyB0aGF0IG9wZW5zc2wgZXJyb3JzIGFyZSBwcmludGVkIG9uCiAgIGZhaWx1cmVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXg6CgogICBmaXggc29tZSBub24taW50ZXJhY3RpdmUgaW52b2NhdGlvbiBpc3N1ZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gYSBjb21tb24gZnVuY3Rpb24KCjIwMTAtMDYtMjggMTk6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGU6CgogICBjaXBoZXIgc3VpdGUgc2VsZWN0aW9uIGFuZCB0ZXN0cyBmb3IgaXQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9MSUNFTlNFOgoKICAgbGljZW5zZSB1cGRhdGVzCgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvY2xpZW50LnB5LCAgIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgU05NUHYzIG92ZXIgVExTIHN1cHBvcnQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBiZXR0ZXIgb3V0cHV0IHNob3dpbmcgdGVzdCB0eXBlcwoKMjAxMC0wNi0yOCAwMDo1NCAgdGFuZGVycwoKICAgKiAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgCiAgICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IG1hbjogY2xlYW4gdXAgbWFudWFsIHBhZ2VzCiAgIChmcm9tIERlYmlhbiBwYXRjaCA1Nl9tYW5wYWdlKQoKMjAxMC0wNi0yNyAyMzoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGNhbGwgdmFjbV9zdGFuZGFyZF92aWV3cygpIG9yCiAgIGluaXRfdmFjbV9jb25maWdfdG9rZW5zKCkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbW9kdWxlIHdhcyBub3QKICAgY29tcGlsZWQKICAgKGZyb20gRGViaWFuIHBhdGNoIDYxX3ZhY21fbWlzc2luZ19kZXBlbmRlbmN5X2NoZWNrKQoKMjAxMC0wNi0yNyAwMzoyMyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFwcCB0YWcgY29tcGxldGlvbnMKCjIwMTAtMDYtMjcgMDA6NTYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgaGFuZGxlIGNvbmZpZyBmaWxlIHNldHRpbmcgaW50ZXJhY3RpdmUsIHRydWUvZmFsc2UgdmFsdWVzIGhhbmRsZWQKICAgaW4gY29uZmlnCgoyMDEwLTA2LTI2IDIwOjU4ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggc29tZSBidWdzIHcvIHNwYWNlcyBpbiBuYW1lcyBhbmQgYXBwIHRhZyBoZWxwCgoyMDEwLTA2LTI2IDE5OjM4ICBtYXJ6CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdGVzdHMgdG8gdXNlIG5vbi1pbnRlcmFjdGl2ZSAtSQoKMjAxMC0wNi0yNiAxNzo0NiAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBiZXR0ZXIgaW50ZXJhY3RpdmUsID89aGVscCwgPHRhYj4gY29tcGwsIG1vcmUgaGVscCwgU0FOIGxvb3AKICAgZm9ybWF0IGFuZCB0ZXJtaW5hdGlvbiBmaXgsIHRvbGVyYXRlIHNwYWNlcyBpbiBmaWVsZHMgYW5kCiAgIGZpbGVuYW1lcywgbW9yZSBjb21wbGV0ZSBlcnJvciBvdXRwdXQsIGVtYnJ5b25pYyBpbXBvcnQgZnJvbSB1cmwKCjIwMTAtMDYtMjYgMTM6NDggIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0wNi0yNiAxMzo0NyAgYnZhc3NjaGUKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeGVkIHRoZSBlcnJvcnMgaW4gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZWQKICAgbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTA2LTI2IDEzOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSBTTVVYIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMTAtMDYtMjYgMDA6NDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZToKCiAgIGZpeGVzIGFuZCB0ZXN0aW5nIGZvciBjaGVja2luZyBTQU4gRE5TIG5hbWVzIGZyb20gdGhlIHNlcnZlcgoKMjAxMC0wNi0yNiAwMDo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgZ2VuZXJpY2l6ZSB0aGUgc2VydmVyIG5hbWUgdGVzdHMKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5oLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICB1c2VwcmVmaXggc2NhbGFyIHRlc3RpbmcgYW5kIHN1cHBvcnQKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICByZW1vdmUgZGVidWdnaW5nIGxpbmVzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcHV0IGluIG9ubHkgbWluaW1pYWwgZGVidWcgZmxhZ3MKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZToKCiAgIGNvZGUgYW5kIHRlc3QgY2FzZXMgZm9yIENSTCBoYW5kbGluZwoKMjAxMC0wNi0yNSAxNToyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZToKCiAgIEFkZGVkIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGVhY2ggbGluZSBwcmludGVkIGJ5IHRoZSBQZXJsCiAgIGludGVycHJldGVyLgoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZWR1Y2UgbnVtYmVyIG9mIHJlc2VuZCBhdHRlbXB0cyBhbmQgdGltZW91dAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB3YXJuaW5nIGZpeGVzCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVtb3ZlIGxvZ2ljIHR5cG8gZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGU6CgogICBJUHY2IGZpeGVzIGZvciBUQ1AKCjIwMTAtMDYtMjUgMTM6MDEgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRpbmcgMTkwOTUsIGl0IGJyZWFrcyB0ZXN0cwoKMjAxMC0wNi0yNSAwOTo0MCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFuc2xhdGU6IGZpeGVkIHByaW50aW5nIG9mIHJhbmdlcyB3aXRoIFVOU0lHTkVECiAgIHR5cGUuCgoyMDEwLTA2LTI0IDIzOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBmdW5jdGlvbiBuYW1lcyBmb3Igc3RhdCBpbmNyZWFzZXMKCjIwMTAtMDYtMjQgMjM6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9ycyBpbiBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS40IGZvciBkdGxzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjMuMgoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGllbnQgc2lkZSBjb25uZWN0IGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvdW50ZXIgYW5kIGNvbW1lbnQgaW1wcm92ZW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHVwZGF0ZSBjb3VudGVyIGNhbGxzIGFuZCBjb21tZW50IHRleHQKCjIwMTAtMDYtMjQgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBNb3ZlZCBMRF9MSUJSQVJZX1BBVEggc2V0dXAgZnJvbSBpbmRpdmlkdWFsIHRlc3RzIHNjcmlwdHMgdG8KICAgc2ltcGxlX1RFU1RDT05GLnNoLgoKMjAxMC0wNi0yNCAxOTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgRml4ZWQgYSBjb21tZW50LgoKMjAxMC0wNi0yNCAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBTaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxOTA4NC4KCjIwMTAtMDYtMjQgMTc6NDcgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNi0yNCAxMjozMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgICJ0ZXN0IC1lIiBpc24ndCBwb3J0YWJsZTsgdXNlICJ0ZXN0IC14IiBpbnN0ZWFkIGZvciB0aGUgUGVybAogICBzeXN0ZW0oKQogICBjaGVjawoKMjAxMC0wNi0yMyAxMToxNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgSVAtTUlCOjppcHY2SW50ZXJmYWNlRm9yd2FyZGluZyBvbgogICBMaW51eAogICAKICAgVGhlIHZhbHVlIHdhcyAwIChub3QgZm9yd2FyZGluZykgb3IgMSAoZm9yd2FyZGluZyksIHNob3VsZCBiZSAyCiAgIGFuZCAxCiAgIGluc3RlYWQgLSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeS5mb3J3YXJkaW5nX3Y2IGlzIGJvb2xlYW4sIG5vdAogICBUcnV0aFZhbHVlLgoKMjAxMC0wNi0yMiAyMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgc3VwcG9ydCBmb3IgY2VydFNlY05hbWUgbWFwcGluZyBmcm9tIGEgbG9jYWwgY2VydCBmaWxlIG5hbWUgYW5kIGEKICAgdGVzdCBmb3IgaXQKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbmF0aW9uIHVwZGF0ZSB0byBjbGVhbiB1cCBhbmQgaW5jbHVkZSBUTFMgcGFyYW1ldGVycwoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBmb3IgcGFzc2luZyBpZGVudGl0aWVzIGFuZCBmdWxsIHdvcmtpbmcgdmVyc2lvbgoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudDoKCiAgIHBlcmwgVExTL0RUTFMgdGVzdHMKCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpcnN0IHB0YWNoIG9uIFNOTVAvVExTIGNyZWF0aW5nIGEgbmV3IHNlc3Npb24gZnVuY3Rpb24KCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmlyc3Qgd29ya2luZyBzdXBwb3J0IGZvciBhIGRlbGF5ZWQgY2xvc2UoKSB0byBhdHRlbXB0IHRvIHNlbmRpbmcKICAgb3V0c3RhbmRpbmcgcGFja2V0cyBpbiB0aGUgcXVldWU7IHRoaXMgaXMgcmVxdWlyZWQgZm9yIHNubXB0cmFwCiAgIHRvIHdvcmsgYXQgYWxsIHdoZW4gc2VuZGluZyB0cmFwcyAobm90IGluZm9ybXMpIG92ZXIgRFRMUwoKMjAxMC0wNi0yMiAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdHMgVDA1OXRyYXBoYW5kbGVfc2ltcGxlIGFuZAogICBUMDY1YWdlbnRleHRlbmRfc2ltcGxlIGRvIG5vdyBwYXNzLgoKMjAxMC0wNi0yMiAxOTowMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgVGhlIHdpZHRoIGFyZ3VtZW50IGZvciAlLipkIG11c3QgaGF2ZSB0eXBlIGludCwgbm90IHNpemVfdC4gVGhpcwogICBidWcgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE0LgoKMjAxMC0wNi0yMiAxODo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIE5FV1M6IE1pbkdXOiB0aGUgc25tcGQuY29uZiBrZXl3b3JkIGV4dGVuZCBkb2VzIG5vdyB3b3JrLgogICBORVdTOiBNaW5HVzogdGhlIHNubXB0cmFwZC5jb25mIGtleXdvcmQgdHJhcGhhbmRsZSBkb2VzIG5vdyB3b3JrLgogICBDSEFOR0VTOiBNaW5HVzogcnVuX3NoZWxsX2NvbW1hbmQoKSB3aXRoIGVpdGhlciBpbnB1dCBvciBvdXRwdXQKICAgKGJ1dCBub3QgYm90aCkgZG9lcyBub3cgd29yay4KICAgVGhpcyBkaWQgbm90IHdvcmsgdW50aWwgbm93IGJlY2F1c2Ugb24gTWluR1cgbWtzdGVtcCgpIGdlbmVyYXRlcwogICBhIE1pbkdXLXN0eWxlIHBhdGggKC90bXAvLi4uKSB3aGlsZSBzeXN0ZW0oKSBpbnZva2VzIGNtZC5leGUgYW5kCiAgIGhlbmNlIGV4cGVjdHMgYSBXaW5kb3dzLXN0eWxlIHBhdGggKEM6XC4uLikuCgoyMDEwLTA2LTIyIDE3OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQWxzbyByZXBvcnQgdGhlIHBvcnQgc3BlY2lmaWNhdGlvbiBpZiBbICRTTk1QX1ZFUkJPU0UgLWd0IDAgXS4KCjIwMTAtMDYtMjIgMTc6MzggIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBSZXBsYWNlZCBhbiBleHBsaWNpdCB0ZXN0IGZvciBNaW5HVyBieSBhIHRlc3Qgb24gSEFWRV9TSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM2ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFJlcG9ydCB3aGljaCB0ZXN0cyBmYWlsZWQsIGlmIGFueS4KCjIwMTAtMDYtMjIgMDg6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4ZWQgYW4gZXJyb3IgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxMC0wNi0yMSAxOToyNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIFJlYXJyYW5nZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdGVzdCBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeQogICB0byBpbnZva2Ugc2ltcGxlX2V2YWxfdG9vbHMuc2ggd2hlbiB0aGlzIHNjcmlwdCBpcyBpbnZva2VkIGFzIGEKICAgdHJhcCBoYW5kbGVyCiAgIGJ5IHNubXB0cmFwZC4KCjIwMTAtMDYtMjEgMDg6MDEgIGR0czEyCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBFbnN1cmUgdGhhdCBmZHNldCBzdHJ1Y3R1cmUgaXMgcmVzaXplZCBzdWZmaWNpZW50bHkKICAgdG8gYWNjb21vZGF0ZSB0aGUgc3BlY2lmaWVkIHNvY2tldCBJRC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBTaGl5YWxlaS4KCjIwMTAtMDYtMjAgMTk6MzIgIGR0czEyCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsICAgCiAgICAgIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEF2b2lkIGR1cGxpY2F0ZSAodW51c2VkKSBzeW1ib2xzLgoKMjAxMC0wNi0yMCAxOTozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIENvbW1lbnRlZCBvdXQgZGVidWcgY29kZS4KCjIwMTAtMDYtMjAgMTk6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIFJlc3RvcmVkIHN1bW1hcnkgc3VjY2Vzcy9mYWlsdXJlIGNvdW50IHJlcG9ydGluZy4KICAgQWxzbywgbW92ZWQga2lsbC5leGUgdGVzdCBiYWNrIHRvIFJVTlRFU1RTLgoKMjAxMC0wNi0yMCAxOToyOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZCB0aGUgdGVzdCBuYW1lIHRvIHRoZSBzdGFydCBvZiB0aGUgZmlsZQogICAiaW52b2tlZCIuCgoyMDEwLTA2LTIwIDE5OjI3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IHNraXAgdGhlIHRlc3RzIHRoYXQgcmVxdWlyZSBTSUdIVVAgc2luY2UKICAgTWluR1cgZG9lcyBub3Qgc3VwcG9ydCBTSUdIVVAuCgoyMDEwLTA2LTIwIDE1OjE5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY29uZmlndXJlIHRlc3QgdGhhdCBkZXRlY3RzIHdoZXRoZXIgb3Igbm90IFBlcmwncwogICBzeXN0ZW0oKSBmdW5jdGlvbgogICBpbnZva2VzIGEgUE9TSVggc2hlbGwuICJtYWtlIHRlc3QiIGRvZXMgbm93IGZhbGwgYmFjayB0byBSVU5URVNUUwogICBpZiBub3QuCgoyMDEwLTA2LTIwIDE1OjE2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIG9uIE1pbkdXIC0tIGFkZGVkICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPiB3aGVyZQogICBuZWNlc3NhcnkuCiAgIE5vdGU6IGFsdGhvdWdoIDxuZXQtc25tcC90eXBlcy5oPiBpcyBpbmNsdWRlZCBpbmRpcmVjdGx5IGZyb20gdGhlCiAgICogICAgICp0cmFuc3BvcnQuaCAgICBoZWFkZXIgZmlsZXMsIHRoZXNlICNpbmNsdWRlIHN0YXRlbWVudHMgYXJlCiAgICAgIG5lY2Vzc2FyeSBiZWNhdXNlIG9mICAgIGEgcGVza3kgICAgY2lyY3VsYXIgZGVwZW5kZW5jZSBiZXR3ZWVuCiAgICAgIDxuZXQtc25tcC90eXBlcy5oPiBhbmQgICAgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4uIAogICAgICAyMDEwLTA2LTIwIDE1OjEyICBidmFzc2NoZQoKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgQ0hBTkdFUzogTWluR1c6IHJlZnVzZSB0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaWYga2lsbC5leGUKICAgY2Fubm90IGJlIGZvdW5kLgoKMjAxMC0wNi0yMCAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNob3J0ZW5lZCB0aGUgc3JjZGlyIHBhdGggYnkgbWFraW5nIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluCiAgIC8uLgoKMjAxMC0wNi0xOSAxODozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIFJVTkZVTExURVNUUyB3aXRoIFRlc3Q6Okhhcm5lc3MgaW4KICAgYW5vdGhlciBkaXJlY3RvcnkgdGhhbiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgY29tcGxldGUgcmV3cml0ZSBvZiBwYXJhbXMgdG8gdXNlIHRhYmxlX2RhdGFzZXQgaW5zdGVhZCBvZgogICBjcmVhdGUtZGF0YXNldAoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1c2UgdGV4dCBmb3IgaGFzaCB0eXBlIGluIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggbWlzc2luZyBzcGVjaWZpZXIgaW4gZGVidWcKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgZGVmaW5lIGluc3RlYWQgb2YgY29uc3RhbnQ7IGZpeCBjaGVjayBmb3Igcm93cyB0byBzYXZlCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHJlbW92ZS9maW5kIGZ1bmN0aW9uIGZvciBtYXBzL2FkZHJzL3BhcmFtczsgcmVuYW1lIHBhcmFtcwogICB0YWctPm5hbWU7CiAgIGRlc3Ryb3kgLT4gZnJlZTsgZ3JvdXAgcmVjZW50IHRydXN0IGZ1bmN0aW9ucyB0b2dldGhlciBpbiBzcmM7CiAgIGRvbid0IHN0b3JlCiAgIHBhcmFtcyBmcCBhcyBiaW5hcnk7IGhhbmQgdGV4dCBhcmdzIGZvciBoYXNoIHR5cGUgKGUuZyAtLXNoYTEpCgoyMDEwLTA2LTE4IDE1OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBjb3JyZWN0ZWQgZXJyb3IgaGFuZGxpbmcgaW4gbWliSUkvYXQuCgoyMDEwLTA2LTE4IDA3OjIzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDYtMTggMDE6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIERvIG5vdCBkZWZpbmUgcmV0IHR3aWNlIHdoZW4gTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPIGlzIHNldC4KCjIwMTAtMDYtMTggMDE6MzkgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDb3JyZWN0ZWQgdHlwby4KCjIwMTAtMDYtMTggMDA6MzEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBiZXR0ZXIgTkVXUyBhbmQgQ0hBTkdFUyBmaWxlcwoKMjAxMC0wNi0xNyAyMDozOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0xNyAxODo1OSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICByZS1lbmFibGUgc29tZSBjb21tYW5kcwoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgZm9yZ290IG1pc3NpbmcgcXVvdGVzIGluIFNFVCBvdXRwdXQKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0bHMgdGVzdGluZyBjbGVhbnVwCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBmaXhlcyBmb3IgYWRkcmVzcyBwcmludGluZzsgbW9yZSB0byBjb21lCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9zdGx5IHByb3Blcmx5IHNldCByZW1vdGUvbG9jYWwgdHJhbnNwb3J0IHBhcmFtZXRlcnMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMWR0bHN1ZHBhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlOgoKICAgdGVzdHMgZm9yIGFnZW50cyBzZW5kaW5nIG9mIHRyYXBzIG92ZXIgKEQpVExTCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIG1vdmUgZXhwb3J0IHN0YXRlbWVudHMgdG8gdGhlIHN1cHBvcnQgZmlsZSBmb3Igc2ltcGxpY2l0eQoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRscyBib290c3RyYXBwaW5nIHRvIHBvc3RfcHJlbWliIHNvIG90aGVyIGNvbmZpZyB0b2tlbnMgY2FuCiAgIHVzZSB0aGUgY2VydCBsb2FkaW5nIHJlc3VsdHMKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBhZGRlZCBzbm1wX2VudW0gdGVzdHMgcHVsbGVkIGZyb20gdGhlIG1haW4oKSB0ZXN0IGF0IHRoZSBib3R0b20KICAgb2YgdGhlIG9yaWdpbmFsIC5jIGZpbGUKCjIwMTAtMDYtMTcgMTY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRWxpbWluYXRlICJkaWZmZXIgaW4gc2lnbmVkbmVzcyIgd2FybmluZwoKMjAxMC0wNi0xNyAwMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICByZXZlcnQgVURQIGNoYW5nZXMgZnJvbSByMTg5ODQgc2luY2UgaXQgYnJva2UgdGhlIFVEUCB0cmFuc3BvcnQ7CiAgIHRoZSBzdHJ1Y3QgcHJvYmFibHkgbmVlZHMgdG8gbWF0Y2ggYW5vdGhlciBzdHJ1Y3Qgc29tZXdoZXJlIGVsc2UKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBuZXcgS0VZV09SRCBvdXRwdXQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcwoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGNvbmZpZ19hbmRfb3BlbiBmb3Igb3BlbmluZyB0aGUgdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGV4dHJhIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBleHBsaWNpdGx5IGRlY2xhcmUgdHJ1c3QgY2VydGlmaWNhdGVzIHRvIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNsZWFudXAgc29tZSBsb3N0IG1lbW9yeSBvbiBjbG9zaW5nCgoyMDEwLTA2LTE2IDIxOjU2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG9zCgoyMDEwLTA2LTE2IDIxOjM0ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgYWdlbnQgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDIwOjE2ICBkdHMxMgoKICAgKiAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBsaWJyYXJ5IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxOTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb2xkZXIgbm8tbG9uZ2VyLW5lZWRlZC1kdXBsaWNhdGUtY29uZmlnIGVudHJpZXMKCjIwMTAtMDYtMTYgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRml4IHByb2Nlc3Npbmcgb2YgdmlldyBtYXNrcyAobWlzcGxhY2VkIHBhcmVudGhlc2VzKQoKMjAxMC0wNi0xNiAxODo0NSAgZHRzMTIKCiAgICogIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiBmcm9tIGFwcCBjb2RlCiAgIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHM6CgogICBjaGVjayBmb3IgaW5mb3JtcyBzZW50IG92ZXIgdGxzIHRyYW5zcG9ydHMKCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBvdGhlciB2YWx1c2UgZnJvbSBwYXJlbnQgdGxzYmFzZSBkYXRhCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBhZGRlZCBiYXNpYyB0cmFwIHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0ZXN0cwoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgdGVtcCBmaWxlIHRvdWNoZXMKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIG5ldyBmdW5jdGlvbiBhbmQgdHJhbnNwb3J0IGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGZfb3BlbgogICBjYWxsIGhhcyBiZWVuIGNhbGxlZCB5ZXQKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdW51c2VkIHZhciB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkZWQgdHJ1c3RDZXJ0IGNvbmZpZ3VyYXRpb24gdG9rZW4KCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIG1pbm9yIHR3ZWFrcyBmb3IgdGVzdGluZyBjbGFyaXR5CgoyMDEwLTA2LTE2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlOgoKICAgbW92ZWQgY29tcGxleCAoRClUTFMgdG8gYSBzZXBhcmF0ZSBzZWN0aW9uIGFuZCBtYWRlIHRoZSB0cmFuc3BvcnQKICAgdGVzdHMgb25seSB0ZXN0IG1pbmltYWwgc3VwcG9ydAoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZCBtZWNoYW5pc21zIGZvciBzcGVjaWZ5aW5nIGFuZCBleHBlY3RpbmcgdGhlIGhvc3RuYW1lIG9mIHRoZQogICBmYXIgc2lkZQoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRlc3RzIGZvciB2ZXJpZnlpbmcgc2VydmVyIGNlcnRpZmljYXRlIGNoZWNrIGZhaWx1cmVzCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICB0ZXN0aW5nIGZvciBjaGVja2luZyBjbGllbnQgc2lkZSB2ZXJpZmljYXRpb24gb2Ygc2VydmVyCiAgIGNlcnRpZmljYXRlcwoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGVjayB0byBtYWtlIHN1ZXIgc3NsIHBvaW50ZXIgaGFzIGJlZW4gY3JlYXRlZCB2aWEgZl9vcGVuIGNhbGwKCjIwMTAtMDYtMTYgMTU6MDIgIGR0czEyCgogICAqIGFnZW50L3NubXBfcGVybC5oLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVjbGFyZSAnc2h1dGRvd25fcGVybCcgcHJvcGVybHkuCgoyMDEwLTA2LTE2IDE0OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCB0eXBlIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiAgIHdhcm5pbmdzIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTQ6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIEVsaW1pbmF0ZSAidW51c2VkIHZhcmlhYmxlIiB3YXJuaW5nCgoyMDEwLTA2LTE2IDE0OjIyICBkdHMxMgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlIHZhcmlvdXMgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE2IDEzOjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhcHBzL3NubXB2YWNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgc2lnbmVkLXZzLXVuc2lnbmVkIHdhcm5pbmdzIGZyb20gbnVtZXJpYyBzY2FuZgogICBwcm9jZXNzaW5nIFstcGVkYW50aWNdCgoyMDEwLTA2LTE2IDAzOjI4ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdGhlIGdyZWF0IHVuLW5hbWVkIGNvbnRhaW5lciBodW50CgoyMDEwLTA2LTE2IDAzOjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBzaGFyZSBjYWNoZSBiZXR3ZWVuIHRhYmxlIGFuZCBjb3VudCBzY2FsYXI7IHdoZW4gcmVhZGluZyBjb25maWcsCiAgIGFkZCB0bwogICBsaWJyYXJ5IGNvbnRhaW5lcnMgZm9yIGFjdGl2ZSByb3dzLCB0YWJsZSBjb250YWluZXJzIGZvciBpbmFjdGl2ZQogICByb3dzOwogICB1c2VyIGNlcnRfdXRpbCBhcGlzIGluc3RlYWQgb2YgZGlyZWN0IGNvbnRhaW5lciBtYW5pcHVsYXRpb247CiAgIHdoZW4KICAgc2F2aW5nIGluYWN0aXZlIG1hcCByb3dzLCBza2lwIGFsbCBidXQgbm9uVm9sYXRpbGUKCjIwMTAtMDYtMTYgMDM6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGRlYnVnIHRva2VuIHR5cG8KCjIwMTAtMDYtMTYgMDM6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYXBpIGZvciBhZGRpbmcgZW50cmllcyB0byB0bHRzbSBhZGRyLCBwYXJhbXMgYW5kIGNlcnQgbWFwCiAgIGNvbnRhaW5lcnM7CiAgIHJlZ2lzdGVyIHNlIHNsaXN0IHBhaXIgZWFybGllciBzbyB0aGV5IGFyZSBhdmFpbGFibGUgZHVyaW5nCiAgIGNvbmZpZyBwYXJzaW5nOwogICBtYWtlIHN1cmUgY29uZmlnIHN0cmluZ3MgYXJlIG51bGwgdGVybWluYXRlZAoKMjAxMC0wNi0xNSAyMTo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3M6CiAgICdzdHJ1Y3Qgbmxtc2doZHIgZGVmaW5lZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QnIGFuZAogICAnZnVuY3Rpb24gX2xvYWRfdjYgZGVjbGFyZWQgYnV0IG5ldmVyIGRlZmluZWQnCgoyMDEwLTA2LTE1IDIxOjMwICBkdHMxMgoKICAgKiAgYWdlbnQva2VybmVsLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEVsaW1pbmF0ZSAiZW1wdHkgdHJhbnNsYXRpb24gdW5pdCIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTUgMDc6MDcgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwM2NvcHlfbndvcmRfY2xpYi5jOgoKICAgQWRkIHRlc3Qgb2YgY29weV9ud29yZAoKMjAxMC0wNi0xNCAyMTozMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIEVsaW1pbmF0ZSAib3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lvbiIgd2FybmluZ3MKICAgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTQgMTU6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBFbGltaW5hdGUgInN0cmluZyBsZW5ndGggZ3JlYXRlciB0aGFuIDUwOSIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMTU6MTkgIGR0czEyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlICJpbml0aWFsaXplciBlbGVtZW50IGlzIG5vdCBjb21wdXRhYmxlIiB3YXJuaW5ncwogICBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAwNToyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSBjb3VudCBoYW5kbGVycyB0byBjb3VudCBub24tYWN0aXZlIHJvd3MgdG9vCgoyMDEwLTA2LTE0IDA1OjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgb25seSB0d2VhayBzdG9yYWdlVHlwZSBmb3IgYWN0aXZlIHJvd3M7IHJlc2V0IGVudHJ5IGZsYWdzIHdoZW4KICAgcmVtb3ZpbmcgZnJvbQogICBjZXJ0X3V0aWwgbWFwczsgd2hlbiBjcmVhdGVpbmcgcm93cyBmcm9tIGNlcnRfdXRpbCBtYXBzLCBzZXQKICAgc3RyYWdldFR5cGUgdG8KICAgdm9sYXRpbGUgaWYgbm9uVm9sYXRpbGUgZmxhZyBub3Qgc2V0OyBkb250IGZyZWUgY2FjaGUgaW4KICAgY2FjaGVfbG9hZCBvbiBlcnIKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgbW92ZSB0bHN0bUFkZHIgdGFibGUgY29uZmlnIHBhcnNpbmcgdG8gY2VydF91dGlsOyBhZGQgY2FjaGUgdG8KICAgbWVyZ2UgY2VydF91dGlsCiAgIGFkZHJzIChhY3RpdmUpIGFuZCBub24tYWN0aXZlIHJvd3M7CgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIG5vblZvbGF0aWxlIGZsYWcgdG8gdGxzdG1BZGRyIHRhYmxlOyBzZXQgY29udGFpbmVyIG5hbWU7IHNraXAKICAgJzB4JyBpbiBmcAoKMjAxMC0wNi0xNCAwNTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIExPR19FUlIgdG8gTE9HX0lORk8gZm9yIG5vbi1lcnJvciBsb2cgbXNnCgoyMDEwLTA2LTEzIDIxOjAyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbQogICBNZkQtYmFzZWQgTUlCIG1vZHVsZSBjb2RlLCBhbmQgTWZEIHRlbXBsYXRlIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDIxOjMzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIChub24tTWZEKQogICBNSUIgbW9kdWxlIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDEwOjI2ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSBsaWJyYXJ5LAogICBhcHBzIGFuZCBhZ2VudCBmcmFtZXdvcmsraGVscGVycyBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMCAyMDowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGxvb2t1cCBjZXJ0IGtleXMgZm9yIHRscyBkb21haW5zOyB1c2UgU0VDX01PREVMIGRlZmluZSBpbnN0ZWFkIG9mCiAgIGhhcmRjb2RlZAogICBjb25zdGFudDsgYWRkIFNFQ19NT0RFTF9UU00gdG8gYWxsb3dlZCBzZWMgbW9kZWxzIGZvciBtcE1vZGVsCiAgIFNOTVBfVkVSU0lPTl8zCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZGVmYXVsdCB0byByZWFkT25seS9hY3RpdmUgZm9yIGJhZCBjb25maWcKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZCBkZWJ1Zzsgc3dpdGNoIHRvIFNFQ19NT0RFTF9UU00gYW5kIHdhcm4gaWYgb3RoZXIgc2VjbW9kZSBzZXQsCiAgIGluc3RlYWQKICAgb2Ygc2ltcGx5IGxvZ2dpbmcgdGhhdCBpdCB3b24ndCB3b3JrCgoyMDEwLTA2LTEwIDE5OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjaGVjayBwdHJzIGJlZm9yZSBkZXJlZmVyZW5jZQoKMjAxMC0wNi0xMCAxOTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcFRsc3RtQWRkclRhYmxlIGRhdGEgbWFuYWdlbWVudCB0byBjZXJ0X3V0aWw7IGltcGxlbWVudAogICBUQVJHRVRfQUREUgogICBhbmQgVEFSR0VUX1BBUkFNUyBsb29rdXAgaW4gY2VydCBBUEkKCjIwMTAtMDYtMTAgMTk6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1cGRhdGUgc2VjIG1vZGVsIGRlZmluZSBtaXNzZWQgaW4gZWFybGllciBjaGVja2luCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgY29uZmlnIHRyYXBzZXNzIHRyYW5zcG9ydHMgb24gY3JlYXRpb247IHNpbXBsaWZ5IGlmZGVmcyBmb3IKICAgRElTQUJMRV9TTk1QVjEKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcGtzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhdXRvIHN3aXRjaCB0byB2MyBmb3IgKGQpdGxzIHNlc3Npb25zIGluc3RlYWQgb2YgbG9nZ2luZyB0aGF0CiAgIG90aGVycyB3b250CiAgIHdvcms7IGRlZmluZSBUU00gc2VjIG1vZGVsIHdpdGggb3RoZXIgc2VjIG1vZGVsczsgY29uc2lzdGVudGx5CiAgIHVzZQogICBTTk1QX1NFQ19NT0RFTF8qIGluIHRoZSBjb2RlLCB1c2luZyAjZGVmaW5lcyBmb3IgYmFja3dhcmRzCiAgIGNvbXBhdGliaWxpdHkKICAgdy8qX1NFQ1VSSVRZX01PREVMCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydFRvVFNOOiBtb3ZlIG1pYiByZWxhdGVkIHBlcnNpc3RlbmNlIGJhY2sgaW50byBtaWIgbW9kdWxlOwogICBjZXJ0X3V0aWw6IGFkZCB0bHN0bVBhcmFtcyBwZXJzaXN0ZW5jZTsgdXNlIHNsaXN0IGZvciBjZXJ0IG1hcAogICB0eXBlIG5hbWUKICAgbWFwcGluZzsKCjIwMTAtMDYtMTAgMTk6NDUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcgKGNvbnN0KQoKMjAxMC0wNi0xMCAwNDo1OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQWRkIG1pc3NpbmcgaW5kZW50YXRpb24gb2YgYSBkby13aGlsZSBsb29wIHRvIG1ha2UgdGhlIGNvZGUKICAgcmVhZGFibGUuCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgY29tbWVudCBvdXQga2V5VXNhZ2Ugc28gcHJvcGVyIHNlbGYtc2lnbmVkIGNlcnRzIGFyZSBnZW5lcmF0ZWQKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc29saWRpZnkgY2VydGlmaWNhdGUgYWNjZXB0YW5jZSBmb3IgdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFycmF5IHR5cG8KCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb2cgb3BlbnNzbCBlcnJvcnMgb24gYWNjZXB0IGZhaWx1cmUKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlZ2lzdGVyIGRlZmF1bHQgcG9ydHMgZm9yIHRscy9kdGxzCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG8gcHJvcGVyIFNUT1JFIGxvYWRpbmcgb2YgdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgcmF0aGVyIHRoYW4gZmlsZQogICBiYXNlZCBsb2FkaW5nCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGRlZCB0d28gbmV3IEFQSXM6IG5ldHNubXBfY2VydF90cnVzdCBhbmQgbmV0c25tcF9jZXJ0X3RydXN0X2NhCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ3RscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ2R0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA4IDIxOjA1ICBtYWdmcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgYWdlbnRfcmVhZF9jb25maWcuaCBpbiA1LjYgYXMgd2VsbC4gSXQgZGlzYXBwZWFyZWQgaW4KICAgcjE4ODQzLgoKMjAxMC0wNi0wOCAwOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzoKCiAgIFJlbW92ZSAob3IgYWN0aXZhdGUpIHVudXNlZCB2YXJpYWJsZXMuCiAgIEZpeCBtaXNuYW1lZCBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCjIwMTAtMDYtMDggMDc6MTEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgQVBJIGNoYW5nZXMgZm9yIHByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzawogICBtb2R1bGUuCiAgIChPbWl0dGVkIGZyb20gcmV2aXNpb24gMTg5MzIgY2hlY2tpbikKCjIwMTAtMDYtMDggMDQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBtYWtlZmlsZSBmb3IgbW92ZWQgaGVscGVyIGhlYWRlcnMKCjIwMTAtMDYtMDcgMjA6MTggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFJldmVydGluZyByZXYuIDE3NjE2LCB0aGUgbmVjZXNzYXJ5IGNoZWNrIGlzIGFscmVhZHkgaW4gcmV2LgogICAxNzQxNS4KCjIwMTAtMDYtMDYgMDM6NDUgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHM6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW4gY2FzZSBleGVjX3ByZWZpeCBpcyB1bnNldCB0aGVuIHNldCBpdCB0bwogICAnJHtwcmVmaXh9JyBpbiBvcmRlciB0byBwaWNrIHVwIG92ZXJyaWRlcyBvZiAkcHJlZml4IGluIG1ha2UKICAgaW5zdGFsbC4KCjIwMTAtMDYtMDQgMDQ6MDYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkbyBhIGJldHRlciBqb2Igb2YgdmVyaWZ5aW5nIGZpbmdlcnByaW50cyBvZiByZW1vdGUgc2VydmVycwogICBwdWxsaW5nIGZpbmdlcnByaW50cyBmcm9tIGEgbnVtYmVyIG9mIHBvc3NpYmxlIHBsYWNlcwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIGdvIGFoZWFkIGFuZCBsb2cgb3V0cHV0IGZpbGUgZm9yIGVhc2llciBkZWJ1Z2dpbmcgaW4gZXJyb3JzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0eXBvCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgY29tbWVudCBhYm91dCByYW5kb20gYmVpbmcgaW5hZGVxdWF0ZTsgd2UncmUgZG9pbmcgdGhlCiAgIGJlc3Qgd2UgY2FuIGJhc2VkIG9uIHdoYXQgd2UgaGF2ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgYW5vdGhlciB1c2VyIGZvciB0ZXN0aW5nIHNubXBhcHAgZGVmYXVsdCBjZXJ0aWZpY2F0ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBydW4gYSBkZWZhdWx0IHRlc3Qgd2l0aG91dCBhIGxvY2FsIGtleSB0byBlbnN1cmUgdGhlIHNubXBhcHAgdHlwZQogICBpcyBwaWNrZWQgdXAKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBzcGVjaWFsIGNhc2UgZm9yIHRoZSBsb2NhbCBpZGVudGl0eSBhbmQgcHVsbCBpdCBmcm9tIGEKICAgZmlsZW5hbWUgb2YgdGhlIGluaXRfc25tcCgpIHJlZ2lzdGVyZWQgdHlwZSBuYW1lCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgZG9jIHVwZGF0ZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA1dW5peC50OgoKICAgdW5peCBzb2NrZXQgdGVzdAoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwM3VkcDYudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA0dGNwNi50OgoKICAgaXB2NiB0ZXN0cwoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIG1lbnRpb24gdGVzdCBuYW1lIGlzIElQdjQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBjaGVjayB0aGF0IHRyYW5zcG9ydCB3YXMgY29uZmlndXJlZAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGFkZCBzdXBwb3J0IGZvciBuZXQtc25tcC1jb25maWcuaCBjaGVja3MKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL05ldFNOTVBUZXN0VHJhbnNwb3J0LnBtLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBzb21lIGJhc2ljIHRyYW5zcG9ydCBjaGVja2luZyBmb3IgcGVybDogdWRwIGFuZCB0Y3AKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwsIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDAwMWJhc2ljLnQ6CgogICBiYXNpYyB0ZXN0cyBmb3IgcGVybAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGluZnJhc3RydWN0dXJlIG1vZHVsZSBmb3IgdGVzdGluZyBwZXJsIHN1cHBvcnQKCjIwMTAtMDYtMDMgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgUG9pbnQgTElCe0NVUlJFTlQsQUdFLFJFVklTSU9OfSBkb2N1bWVudGF0aW9uIHRvIHRoZSBjb3JyZWN0CiAgIGZpbGUuCiAgIFdhcm4gYWJvdXQgJ21ha2VkZXBlbmQnIHBpY2tpbmcgdXAgdGVzdGluZyBtb2R1bGUgY29kZS4KICAgRW1waGFzaXMgdXBkYXRlIG9mICdkb3dubG9hZC5odG1sJyBwYWdlCiAgIE1lbnRpb24gdXBkYXRlIG9mIE9mZmljaWFsIFBhdGNoZXMKICAgU3VwcHJlc3MgYnJva2VuIGNvbW1hbmRzCgoyMDEwLTA2LTAzIDE1OjE2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBQcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sgbW9kdWxlLgogICBFbnN1cmVzIGNvbnNpc3RlbnQgcmVwb3J0aW5nIGJldHdlZW4gVUNEIGFuZCBIb3N0UmVzIEZTeXMgdXNhZ2UKICAgYW5kIGV4dGVuZHMgJ3NraXBORlNJbkhvc3RSZXNvdXJjZXMnIGNvbmZpZyB0byBVQ0QgZGlzayBzdGF0cy4KCjIwMTAtMDYtMDMgMTU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jOgoKICAgRml4IGJyb2tlbiBzaXplIGNhbGN1bGF0aW9ucy4KICAgU3VwcG9ydCA2NC1iaXQgc2l6ZS91c2FnZSB2YWx1ZXMuCgoyMDEwLTA2LTAyIDE0OjUyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSAtLXdpdGgtY2EgaW5zdGVhZCBvZiAtLWNhCgoyMDEwLTA2LTAyIDE0OjUxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSB0aGUgbmV3IC1icmllZiBvcHRpb24gZm9yIGZpbmdlcnByaW50IGNhcHR1cmluZwoKMjAxMC0wNi0wMiAxNDo0MCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IC0td2l0aC1jYSBoYW5kbGluZywgZml4IENBIG5ld2NlcnRzIGJvb2trZWVwaW5nCgoyMDEwLTA2LTAyIDEwOjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gcGFyc2luZyBPSURzCiAgIGluIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDYtMDIgMDA6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY2hlY2sgdGhhdCBDQSBjZXJ0aWZpY2F0ZXMgY3JlYXRlZCBhZnRlciBzbm1wZCBzdGFydHMgYXJlIHN0aWxsCiAgIHVzYWJsZTsgY2hlY2sgYWxsIG91dHB1dCBmaW5nZXJwcmludHMgdG8gZW5zdXJlIHRoZXkgd2VyZQogICBwcm9wZXJseSBjcmVhdGVkCgoyMDEwLTA2LTAyIDAwOjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkIG1pc3NpbmcgZGlyZWN0b3J5IGFuZCBmaWxlIHN1ZmZpeCB0byBjYSBpbnZvY2F0aW9ucwoKMjAxMC0wNi0wMiAwMDoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY2hlY2sgdGhhdCBjZXJ0aWZpY2F0ZSBvdXRwdXQgZmluZ2VycHJpbnRzIHdlcmUgZm91bmQKCjIwMTAtMDYtMDIgMDA6MjAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICB0d28gbmV3IGZ1bmN0aW9ucyBmb3IgdmFsdWUgY29tcGFyaXNvbiB0ZXN0IG91dHB1dAoKMjAxMC0wNi0wMiAwMDoxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICByZW1vdmUgbm8tbG9uZ2VyLXVzZWQgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgdG9rZW4gc3BlY2lmaWVyICh3ZQogICByZXF1aXJlIGEgY29weSBvZiB0aGUga2V5KQoKMjAxMC0wNi0wMiAwMDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICAtIGNoYW5nZWQgJ2ZpbmdlcnByaW50JyB0b2tlbiB0byBtb3JlIGdlbmVyaWMgJ2lkZW50aXR5JyBrZXl3b3JkCiAgIC0gYWRkZWQgdGhlIGFiaWxpdHkgZm9yIG5ldHNubXBfY2VydF9maW5kIHRvIHRyeSBtdWx0aXBsZSB0eXBlcwogICAoRlAgJiBmaWxlKQogICAtIGFuZCBwcm92aWRlIHRlc3Qgc3VpdGUgdGVzdCBmb3IgaXQuCgoyMDEwLTA2LTAxIDIwOjEyICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgUGVybCBleHRlbnNpb24gbW9kdWxlcyBjYW4gbG9hZCB0aGUgTmV0LVNOTVAKICAgRExMcyB3aGlsZSBydW5uaW5nIHRoZSBOZXQtU05NUCByZWdyZXNzaW9uIHRlc3RzLgoKMjAxMC0wNi0wMSAxNjo0NyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWpvciB1cGRhdGUgYnVnIGZpeGVzIGFuZCBmZWF0dXJlcyAtIGludGVyYWN0aXZlIG1vZGUsIHNlcGFyYXRlCiAgIENBIGRpcnMsIGdlbiBjc3IgZnJvbSBjZXJ0LCBmaW5nZXJwcmludCBkaXNwbGF5IC0tYnJpZWYsCiAgIGVsaW1pbmF0ZSBzZWQsIG9wZW5zc2wuY29uZiBvdmVyd3JpdGUgYW5kIHRlbXBsYXRpbmcKCjIwMTAtMDYtMDEgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTA2LTAxIDE0OjI1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIElQLU1JQjo6aXBJZlN0YXRzUmVhc21SZXFkcyB2YWx1ZS4KICAgCiAgIEp1c3QgZml4aW5nIGEgc3R1cGlkIHR5cG8uCgoyMDEwLTA1LTMxIDEwOjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogZW5hYmxlZCBVbml4IHRyYW5zcG9ydC4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4NyBmcm9tIHRoZSBWNS41IGJyYW5jaCkuCgoyMDEwLTA1LTMwIDIyOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIHRvIHJ1biB3aXRoIG9sZGVyIFBlcmwgKGUuZy4gUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aAogICBJUklYCiAgIDYuNSkKCjIwMTAtMDUtMzAgMjI6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwb2xpc2ggZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0zMCAyMDoxOSAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW4sIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEbyBub3QgbGluayB3aXRoIGxpYm5ldHNubXBoZWxwZXJzIGFueSBtb3JlIGFzCiAgIGl0IGlzIGVtcHR5LgoKMjAxMC0wNS0zMCAxOToxOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9zbm1wLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgYSB2b2lkIGFyZ3VtZW50IGZvciB0aGUgZGF0YSBhcmd1bWVudCBvZgogICB4ZHVtcC4KCjIwMTAtMDUtMzAgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyMDUxNzQyOiBhZGRlZCBtaXNzaW5nIFBFUkxfU1lTX0lOSVQzKCkgY2FsbCAoc2VlCiAgIGFsc28gbWFuIHBlcmxlbWJlZCkuCgoyMDEwLTA1LTMwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZyZWUoKSBjYWxsZWQgd2l0aG91dCBiZWluZyBkZWNsYXJlZAogICBmaXJzdCkuCgoyMDEwLTA1LTMwIDE2OjU2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IERvIG5vdCByZXF1aXJlIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgaW5jbHVkZWQuCgoyMDEwLTA1LTMwIDEyOjAwICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4gUmVtb3ZlCiAgIHVubmVjZXNzYXJ5IGluY2x1ZGVzLgoKMjAxMC0wNS0zMCAwNjoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9kdW1teS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgbGlibmV0c25tcGhlbHBlcnMgaXMgbm90IGVtcHR5IHN1Y2ggdGhhdCBidWlsZGluZwogICBOZXQtU05NUCBvbiBBSVggYW5kIElSSVggaXMgYWdhaW4gcG9zc2libGUuCgoyMDEwLTA1LTI5IDA5OjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4OTAyOiB3b3JrcyBhZ2FpbiB3aXRob3V0IFRBUDo6SGFybmVzcy4KCjIwMTAtMDUtMjggMjM6MjMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IGxvbmctYWdvIGJyb2tlbiB2ZXJib3NpdHkKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IG1vcmUgcHJldmlvdXNseSBicm9rZW4gb3B0aW9uIHJlbmFtZXM7IGNoYW5nZSAtZCB0bwogICBtYXN0ZXItZGlyZWN0b3J5IGFuZCBhZGQgYXMgYSByZWFsIGFyZ3VtZW50CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICBtb3JlIG1pc3Npbmcgb2xkdWNkIHJlbmFtZXMKCjIwMTAtMDUtMjggMjI6NTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAKICAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICByZW5hbWVkICdvbGR1Y2QnIHRvICdzaW1wbGUnIHRvIHB1dCBhIG1vcmUgcG9zaXRpdmUgc3BpbiBvbiB0aGVtCgoyMDEwLTA1LTI4IDIyOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgdGVzdCBzdWl0ZQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHJldmVydCB1bmludGVudGlvbmFuYWxseSBjb21taXR0ZWQgdGVzdCB0ZXN0CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgZnJlZSB2YXJpYWJsZXMgYWdhaW4KCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa3Mgc28gdGhhdCBtdWx0aXBsZSB3YWxrcyB0ZXJtaW5hdGUgcHJvcGVybHkKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBwYXRjaCB0byBoYW5kbGUgdGVzdGluZyBvZiBsb29waW5nIG9mIG11bHRpcGxlIHZhcmJpbmRzIGluIGEgd2FsawoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGluaXRhbCBwYXRjaCB0byBwcmV2ZW50IGxvb3Bpbmcgd2Fsa3MKCjIwMTAtMDUtMjggMjA6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBpbXBsZW1lbnQgY2VydCBsb29rdXAgYnkgZmlsZW5hbWUKCjIwMTAtMDUtMjggMDc6MDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIGNvbnN0IGRlY2xhcmF0aW9ucyB0byB0aGUgZGlzYWJsZWQgdmVyc2lvbnMKICAgb2YgdGhlIGRlYnVnZ2luZyBjb2RlIGFzIHdlbGwuCgoyMDEwLTA1LTI4IDAyOjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYWRkIHBlcnNpc3RlbmNlOyBjaGVjayBmb3IgY29sIG1vZHMgd2hpbGUgcm93IGFjdGl2ZQoKMjAxMC0wNS0yOCAwMjoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBDSEFOR0VTOiBhZ2VudGxpYjogbmV3IGZ1bmN0aW9ucyB0byBtYWtlIHN0YXNoIHB0ciBhbmQgbmV3cm93CiAgIGF2YWlsYWJsZSB0bwogICB0YWJsZV9kYXRhc2V0IGhhbmRsZXJzCiAgIG5vbmV3czogZml4IHR5cG87IHRhYnMgdG8gc3BhY2VzOyB1c2Ugc2l6ZW9mIGluc3RlYWQgb2YgY29uc3RhbnQKCjIwMTAtMDUtMjcgMTg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcy4KCjIwMTAtMDUtMjcgMTg6MjQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgIm1ha2UgdGVzdCIgd2l0aG91dCBUQVA6Okhhcm5lc3MgKHdhcyBicm9rZW4gYnkgcjE4ODAyKS4KCjIwMTAtMDUtMjcgMTU6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuIE1vc3QgZml4ZXMgaW52b2x2ZWQgYWRkaW5nIHRoZQogICAiY29uc3QiIGtleXdvcmQuCgoyMDEwLTA1LTI3IDEzOjUyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5NzI1Nzk6IGZpeGVkIGNoZWNraW5nIG9mCiAgIHNubXBUYXJnZXRBZGRyUm93U3RhdHVzIFNFVCByZXF1ZXN0cy4KCjIwMTAtMDUtMjcgMTM6NDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgcmV2ZXJ0IHBhcnQgb2YgMTg4ODU6IHRlc3QgZmlsZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgcnVuIGJ5CiAgIHRoZW1zZWx2ZXMgdG9vCgoyMDEwLTA1LTI3IDExOjE5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogY29ycmVjdGx5IGNhbGN1bGF0ZSBpZlhUYWJsZS5pZkhDSW5VY2FzdFBrdHMgb24gMzItYml0CiAgIExpbnV4CiAgIAogICBMaW51eCBkb2VzIG5vdCBwcm92aWRlIHN0YW5kYWxvbmUgY291bnRlciBmb3IgaW5jb21pbmcgdW5pY2FzdAogICBwYWNrZXRzIChpdWNhc3QpCiAgIC0gaXQgcHJvdmlkZXMgY291bnRlciBvZiBhbGwgcGFja2V0cyAoaWFsbCkgKyBzZXBhcmF0ZSBjb3VudGVyCiAgIGZvciB0aGUgbXVsdGljYXN0CiAgIG9uZXMgKGltY2FzdCkuIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIG9mIGlmVGFibGUgcmVhZCB0aGVzZQogICBjb3VudGVycyBhbmQKICAgY2FsY3VsYXRlZCBpdWNhc3QgPSBpYWxsIC0gaW1jYXN0ICpiZWZvcmUqIHRoZXNlIHZhbHVlcyB3ZXJlCiAgIGV4cGFuZGVkIGludG8KICAgNjRiaXRzLiBUaGlzIHByb2R1Y2VkIGVycm9ycyBvbiAzMmJpdCBzeXN0ZW1zIHdoZW4gaWFsbAogICBvdmVyZmxvd2VkIHRvIHplcm8gYW5kCiAgIGltY2FzdCB3YXMgbm96ZXJvIC0+IGl1Y2FzdCBnb3QgbmVnYXRpdmUgYW5kICdjNjQgMzIgYml0IGNoZWNrCiAgIGZhaWxlZCcgZXJyb3IgaW4KICAgc25tcGQgbG9nLiBOb3cgdGhlIGFnZW50IGV4cGFuZHMgdGhlc2UgdmFsdWVzIHRvIDY0Yml0cyBmaXJzdCBhbmQKICAgKiAgICAgKnRoZW4qIHBlcmZvcm1zICAgIHRoZSBjYWxjdWxhdGlvbiwgdXNpbmcgYSBuZXcgZmxhZy4gCiAgICAgIDIwMTAtMDUtMjcgMDg6MTggIG1hZ2ZyCgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvUlVOVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNb3ZlIHRoZSBzZXR0aW5nIG9mIE1JQkRJUlMgZnJvbSB0aGUgc3VwcG9ydAogICBzY3JpcHQgdG8gdGhlIGRyaXZlcnMgc2luY2UgaXQgaXMgbmVlZGVkIGZvciB0aGUgQyB0ZXN0cyBhcyB3ZWxsLgoKMjAxMC0wNS0yNyAwODowOSAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFVzZSBvbGR1Y2RfcnVuLCBub3QgcnVuX29sZHVjZC4gQ2hhbmdlIHNyY2RpcgogICB0byByZWZlciB0byB0aGUgdG9wIGRpcmVjdG9yeSBhbmQgbm90IHRoZSB0ZXN0aW5nIHN1YmRpcmVjdG9yeSBhcwogICB0aGF0IGlzIHdoYXQgaXMgZXhwZWN0ZWQgaW4gdGhlIHRlc3Qgc2NyaXB0cy4KCjIwMTAtMDUtMjcgMDU6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI3IDA1OjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCBzbm1wbGliL2tleXRvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIG1vcmUgY29uc3QgY29ycmVjdG5lc3MKCjIwMTAtMDUtMjcgMDQ6MTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdHMgZm9yIGFnZW50LW5vdC1rbm93bi11c2VyLWNlcnRpZmljYXRlcwoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHJlZmVyZW5jZSB0aGUgaXRuZXJuYWwgc3VwcG9ydCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2wvT1BFTlNTTC1MSUNFTlNFLCBzbm1wbGliL29wZW5zc2wvUkVBRE1FOgoKICAgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBORVdTOiBsaWJuZXRzbm1wOiBTdXBwb3J0IGZvciBhIHN0cmVhbS1saW5lIHN0cmlwcGVkIGRvd24gdmVyc2lvbgogICBvZiBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgdXNpbmcgLS13aXRoLW9wZW5zc2w9aW50ZXJuYWwKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIAogICAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBtb3JlIGRlcGVuZGVuY2llcyBmb3IgZXh0ZXJuYWwgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9vcGVuc3NsLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jb3JlLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1X2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhLmgsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBtb3ZlIG9wZW5zc2wgY29kZSBpbnRvIGEgc3ViZGlyZWN0b3J5CgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZDoKCiAgIGZpeCB0ZXN0aW5nIHNvIGl0IHVzZXMgbXVsdGlwbGUgdHlwZXMgb2YgY3J5cHRvCgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluaXRpb25zIGFuZCBmaWxlcyBmb3IgZG9pbmcgaW50ZXJuYWwgY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGluY2x1ZGUgaW50ZXJuYWwgYWVzL2RlcyBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaDoKCiAgIGluaXRhbCBjb3BpZXMgb2YgY2ZiMTI4IG1vZGVzIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMgb2YgYWVzX2NvcmUuYyBhbmQgYWVzX2xvY2wuaAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmg6CgogICBpbml0aWFsIGNvcHkgb2YgYWVzLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jOgoKICAgaW5pdGlhbCBjb3B5IG9mIHRoZSBvcGVuc3NsIGFlc19jZmIuYyBmaWxlCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgaW5jbHVkZSBsb2NhbGl6ZWQgY29waWVzIG9mIHRoZSBmaWxlcwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXNlIGludGVybmFsIERFUwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYzoKCiAgIGxvY2FsaXplZCBjb3B5IG9mIHRoZSBjYmNfZW5jLmMgZmlsZSBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIGRlcy9zcHIuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBhZGRlZCBkZXNfZW5jLmMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX21kNS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9zaGEuaDoKCiAgIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBvcGVuc3NsJ3MgZGVzLmgKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgbG9jYWxpemVkIGhlYWRlciBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBpbml0YWwgY29waWVzIG9mIHNvbWUgb2YgdGhlIG9wZW5zc2wgREVTIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpbmlzaGluZyBwb3J0aW5nIG9mIGludGVybmFsIGF1dGggc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBpbnRlcm5hbCBjcnlwdG8gZmlsZXMgdG8gdGhlIGNoZWNrL3VzZSBsaXN0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBsb2NhbGl6ZWQgZmlsZSBuYW1lcyB3aXRoIG9wZW5zc2wgcHJlZml4ZXMKCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNS5jOgoKICAgbG9jYWxpemUgdGhlIG1kNSBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgY29tcGxldGVseSBsb2NhbGl6ZSB0aGUgb3BlbnNzbCBTSEEgc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3NoYS5oOgoKICAgaW5pdGlhbCB2ZXJpc29uIG9mIHNoYS5oIGNvcHkKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAKICAgICAgICBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBhZGRlZCBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgY3J5cHRvIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgbWFrZSB1c2Ugb2YgaW50ZXJuYWwgY3J5cHRvIGhhc2ggZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGludGVybmFsLWNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI2IDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcHJvcGVybHkgdmVyaWZ5IGV4cGVjdGVkIHNlcnZlciBjZXJ0aWZpY2F0ZXMgdW5kZXIgRFRMUzsgYWRkIGEKICAgbmV3IGZsYWcgaW4gdGxzYmFzZSB0byBpbmRpY2F0ZSB2ZXJpZmljYXRpb24gaGFzIG9jY3VycmVkCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBjb21waWxlciB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogICBhZGQgY29uc3QgcXVhbGlmaWVycyB0byBhIGZldyBwbGFjZXMKCjIwMTAtMDUtMjYgMTk6NDYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcG1pYnMsIGxpYm5ldHNubXBoZWxwZXJzIGFuZAogICBsaWJuZXRzbm1wYWdlbnQgZG8gbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4gY29uZmlndXJlZCB3aXRoCiAgIC0tZW5hYmxlLXNoYXJlZC4KCjIwMTAtMDUtMjYgMTc6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgTkVXUzogbW92ZWQgYWxsIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGxpYm5ldHNubXBoZWxwZXJzIHRvCiAgIGxpYm5ldHNubXBhZ2VudC4gbGlibmV0c25tcGhlbHBlcnMgaXMgbm93IGFuIGVtcHR5IGxpYnJhcnkuCgoyMDEwLTA1LTI2IDE3OjIwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4ODI5IGluIG9yZGVyIHRvIG1pbmltaXplIGRpZmZzIHdpdGggb2xkZXIgYnJhbmNoZXMuCgoyMDEwLTA1LTI1IDA3OjIzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBUZWxsIG5ldC1zbm1wLWNlcnQgd2hlcmUgbmV0LXNubXAtY29uZmlnIGlzIGxvY2F0ZWQKCjIwMTAtMDUtMjUgMDc6MTQgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENvcnJlY3QgdGhlIHNpZ25hdHVyZSBvZiBtYWluLiBVc2UgI2luY2x1ZGUgaW5zdGVhZCBvZiBzb3VyY2luZwogICB0byBnZXQgdGhlIGNvZGUgdW5kZXIgdGVzdCBpbiBvcmRlciB0byBnZXQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzCgoyMDEwLTA1LTI1IDA3OjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgQWRkIGFyZ3VtZW50cyB0byBzcHJpbnRmIHN0YXRlbWVudHMgdG8gbWFrZSB0aGUgdGVzdCB3b3JrCgoyMDEwLTA1LTI1IDA3OjA3ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgZGlzYWJsZWQgY29kZQoKMjAxMC0wNS0yNSAwNToyMCAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBTcGxpdCBzbm1wSVBCYXNlRG9tYWluIGFuZCBtb3ZlIHRoZSBJUHY0IHBhcnRzCiAgIHRvIElQdjRCYXNlIGFuZCB0aGUgc29ja2V0IGdlbmVyaWMgcGFydHMgdG8gU29ja2V0QmFzZS4KCjIwMTAtMDUtMjQgMjA6MjQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaW5pc2ggdGxzdG1QYXJhbXNUYWJsZSBsYXN0Q2hhbmdlZCBzY2FsYXIKCjIwMTAtMDUtMjQgMTk6MjggIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIEFkZCAtLWV4dGVybmFsLWxpYnMgaW4gb3JkZXIgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGVzdHMgb24KICAgc29sYXJpcwoKMjAxMC0wNS0yNCAxMzozMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYXJnaC4uIGZpeCBmYWxsb3V0IGZyb20gbWFudWFsbHkgKG1pcylhcHBseWluZyBwYXRjaAoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBmaXJzdCBwYXNzIGF0IHRsc3RtUGFyYW1zVGFibGUKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgZGVmaW5lcyB0byBtYXRjaCBNSUIgbmFtZXMsIHBlciBncmFuZC1wb29iYWgKCjIwMTAtMDUtMjQgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmM6CgogICB1cGRhdGUgT0lEIHRvIG1hdGNoIHVwY29taW5nIFJGQwoKMjAxMC0wNS0yNCAxMTo0OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXBhZ2VudCwgbGlibmV0c25tcGhlbHBlcnM6IG1vdmVkIHRoZSBmdW5jdGlvbnMKICAgbmV0c25tcF9idWxrX3RvX25leHRfZml4X3JlcXVlc3RzKCksCiAgIG5ldHNubXBfZ2V0X2J1bGtfdG9fbmV4dF9oYW5kbGVyKCksIG5ldHNubXBfcmVnaXN0ZXJfbnVsbCgpLAogICBuZXRzbm1wX3JlZ2lzdGVyX251bGxfY29udGV4dCgpIGFuZCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQogICBmcm9tIGxpYm5ldHNubXBoZWxwZXJzIHRvIGxpYm5ldHNubXBhZ2VudC4KICAgTm90ZXM6CiAgIC0gVGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcGxpY2F0aW9ucwogICB0aGF0IGxpbmsgd2l0aCAkKG5ldC1zbm1wLWNvbmZpZyAtLWFnZW50LWxpYnMpIHNpbmNlIHRoaXMKICAgaW52b2x2ZXMgbGlua2luZyB3aXRoIGJvdGggbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudC4KICAgLSBGdW5jdGlvbnMgaGF2ZSBiZWVuIG1vdmVkIGJldHdlZW4gbGlicmFyaWVzIGJ5IG1vdmluZyBlbnRpcmUKICAgc291cmNlIGZpbGVzLgoKMjAxMC0wNS0yNCAxMDoxMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBVc2UgcHJvcGVyIHN0cmluZyBzaXplcyBhbmQgbWFrZSBzdXJlIHN0cmluZ3MgYXJlCiAgIHplcm8tdGVybWluYXRlZC4KCjIwMTAtMDUtMjQgMDg6MDEgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgbmV0LXNubXAtY29uZmlnLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wIGRvZXMgbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4KICAgY29uZmlndXJlZCB3aXRoIC0tZW5hYmxlLXNoYXJlZC4KICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsIG1vZHVsZXMgZG8gbm93IGJ1aWxkICgtLXdpdGgtcGVybC1tb2R1bGVzKS4KICAgTm90ZTogdGhlIFQwNjB0cmFwZHBlcmxfb2xkdWNkLCBUMDYxYWdlbnRwZXJsX29sZHVjZCBhbmQKICAgVDExNWFnZW50eHBlcmxfb2xkdWNkIHRlc3RzIHN0aWxsIGZhaWwuCgoyMDEwLTA1LTIzIDIzOjA2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVwZGF0ZSBmaWxlbmFtZXMvcGF0c2ggZm9yIHJlY2VudCBmaWxlIHJlbmFtZXM7IGZpeCB0eXBvcwoKMjAxMC0wNS0yMyAyMjowOCAgbWFnZnIKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIHRoZSBzYW1lIGNvbXBpbGVyIGNvbW1hbmQgYW5kIGZsYWdzIGZvcgogICBidWlsZGluZyBvZiB0ZXN0cyBhcyBmb3IgYnVpbGRpbmcgb2YgdGhlIGNvZGUsIHRodXMgZW5hYmxpbmcgdGVzdAogICBvZiBlLmcuIDMyLWJpdCBjb2RlIGNvbXBpbGVkIG9uIGEgNjQtYml0IHBsYXRmb3JtLgoKMjAxMC0wNS0yMyAyMTo0MSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBpbmNsdWRlL2NvbmZpZyBmaWxlL3BhdGhzIGZvciByZWNlbnQgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMTozMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgcmVuYW1lIGZpbGVzIGZvciBNSUIgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMToyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGU6CgogICByZW5hbWUgZGlyZWN0b3JpZXMgdG8gbWF0Y2ggcmVuYW1lcyBpbiBNSUIKCjIwMTAtMDUtMjAgMDg6NDggIGJ2YXNzY2hlCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN3YXBwZWQgbGluayBvcmRlciBvZiAtbG5ldHNubXBoZWxwZXJzIC1sbmV0c25tcG1pYnM6IG5ldHNubXBtaWJzCiAgIGRlcGVuZHMgb24gbmV0c25tcGhlbHBlcnMgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTAtMDUtMjAgMDg6NDIgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xOSAxODoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2hpbmcKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBvdXRwdXQgZmlsZW5hbWVzIG9mIGZhaWxlZCB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICB3aXBlIHRyYWlsaW5nIGNvbW1lbnQgQyBtYXJrZXIgaWYgaXQgZXhpc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHRpdGxlIHRoZSBTTk1QdjMgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRlc3Rpbmcgb2YgYnVpbHQgdGl0bGVzCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG9ubHkgcHJpbnQgZmFpbHVyZSBoZWFkZXIgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9uZQoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2Q6CgogICBtYWtlIGRlc2NyaXB0aXZlIHRpdGxlcyB3b3JrIGFnYWluCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICByZW5hbWUgZmlsZXMgc28gcHJlZml4aW5nIGlzIGJhc2VkIG9uIHRoZSBzdWl0ZSBuYW1lLCBub3QgZmlsZQogICB0eXBlCgoyMDEwLTA1LTE5IDE3OjUyICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuc3Vicy5wbCwgICAKICAgICAgcGVybC9PSUQvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmw6IGJ1aWxkaW5nIHRoZSBQZXJsIG1vZHVsZXMgd2l0aCB0aGUgQ3lnd2luCiAgIFBlcmwgcGFja2FnZSBpcyBub3cgcG9zc2libGUuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODggZnJvbSB0aGUgVjUuNSBicmFuY2guKQoKMjAxMC0wNS0xOSAxNzo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTkgMTI6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpcnN0LWRyYWZ0IHN1cHBvcnQgZm9yIEFJWCBmaWxlc3lzdGVtIEhBTCBtb2R1bGUgKHVudGVzdGVkKQoKMjAxMC0wNS0xOSAxMToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgU3VwcG9ydCBmb3IgU29sYXJpcy1zdHlsZSAnZ2V0bW50ZW50JyBBUEkuCgoyMDEwLTA1LTE5IDA5OjU3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBTaW1wbGlmeSB0aGUgaGFuZGxpbmcgb2YgdW5rbm93bi91bndhbnRlZCBmaWxlIHN5c3RlbXMuCgoyMDEwLTA1LTE5IDA5OjMwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgRml4IG1pc3NpbmcvYnJva2VuIEFQSSBkZWNsYXJhdGlvbnMuCgoyMDEwLTA1LTE5IDA4OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBNYWRlIGVycm9yIG1lc3NhZ2VzIG1vcmUgY2xlYXIgaW4gY2FzZSBvZiBmYWlsdXJlIG9yIHdyb25nCiAgIGludm9jYXRpb24uCgoyMDEwLTA1LTE5IDAwOjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3QgZm9yIHVzaW5nIGEgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IGEgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDUtMTggMjM6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSB3ZSBjYWxsIHRoZSByaWdodCBQZXJsCgoyMDEwLTA1LTE4IDIwOjM5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaW5jbHVkZSBsb2NhbCBwb3J0IG51bWJlciBpbiBwYWNrZXQgZHVtcHMuIEFuCiAgIGV4YW1wbGU6CiAgIAogICBSZWNlaXZlZCAzNiBieXRlIHBhY2tldCBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgMjIgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTEgMTUgMDIKICAgMCIuLi4uLnB1YmxpYy4uLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCAwNyAzMCAwNSAwNgogICAuNy4uLi4uLi4uLjAuMC4uCiAgIDAwMzI6IDAxIDAxIDA1IDAwIC4uLi4KICAgCiAgIFJlY2VpdmVkIFNOTVAgcGFja2V0KHMpIGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICBHRVRORVhUIG1lc3NhZ2UKICAgLS0gY2NpdHQuMQogICAKICAgU2VuZGluZyAxMTggYnl0ZXMgdG8gVURQOiBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCA3NCAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMiA2NyAwMgogICAwdC4uLi4ucHVibGljLmcuCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDU5IDMwIDU3IDA2CiAgIC43Li4uLi4uLi4uMFkwVy4KICAgMDAzMjogMDggMkIgMDYgMDEgMDIgMDEgMDEgMDEgMDAgMDQgNEIgNEMgNjkgNkUgNzUgNzgKICAgLisuLi4uLi4uLktMaW51eAogICAwMDQ4OiAyMCA2MSA3MyA3NSA3MyAyMCAzMiAyRSAzNiAyRSAzMyAzMyAyRSAzMiAyRCA3MyBhc3VzCiAgIDIuNi4zMy4yLXMKICAgMDA2NDogNjMgNzMgNzQgMjAgMjMgMzEgMjAgNTMgNEQgNTAgMjAgNTAgNTIgNDUgNDUgNEQgY3N0ICMxIFNNUAogICBQUkVFTQogICAwMDgwOiA1MCA1NCAyMCA1MyA2MSA3NCAyMCA0MSA3MCA3MiAyMCAzMyAyMCAzMiAzMSAzQSBQVCBTYXQgQXByCiAgIDMgMjE6CiAgIDAwOTY6IDMxIDMwIDNBIDM1IDM4IDIwIDQzIDQ1IDUzIDU0IDIwIDMyIDMwIDMxIDMwIDIwIDEwOjU4IENFU1QKICAgMjAxMAogICAwMTEyOiA3OCAzOCAzNiA1RiAzNiAzNCB4ODZfNjQKCjIwMTAtMDUtMTggMTk6NDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1BZGRyVGFibGUKICAgLSBkZWFsIHdpdGggaGFzaCB0eXBlIHByb3Blcmx5IGZvciBnZXQvc2V0IGFuZCBwZXJzaXN0ZW5jZQogICAtIGFkZCBjb3VudCBhbmQgbGFzdCBjaGFuZ2VkIHNjYWxhcnMKCjIwMTAtMDUtMTggMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2FsIE9JRCBmcm9tIHVwY29taW5nIHJmYwoKMjAxMC0wNS0xOCAxNjoxNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljaWFsIE9JRHMgZnJvbSB1cGNvbWluZyBSRkM7IGFkZCBjb3VudC9sYXN0IGNoYW5nZWQKICAgc2NhbGFycwoKMjAxMC0wNS0xOCAxNDo1NiAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIwMDE2NTY6IEhhbmRsZSBudWxsLXRlcm1pbmF0aW9uIG9mCiAgIHN0cmluZyB2YWx1ZXMgcHJvcGVybHkuCiAgIEJhc2VkIG9uIHRoZSBwcmluY2lwbGVzIG9mIHRoZSBwYXRjaCBmcm9tIFRvbW15IEJlYWRsZS4KCjIwMTAtMDUtMTggMTQ6MzggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFdvcmtpbmcoPykgSEFMLWJhc2VkIHZlcnNpb24gb2YgaHJGU1RhYmxlLgoKMjAxMC0wNS0xOCAxNDoxMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xNyAyMTowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICB1c2UgcHJvcGVyIFRTTSBzZWN1cml0eSBjb2RlICg0KSBub3cgdGhhdCBpdCdzIG9mZmljaWFsCgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIGJlZ2lubmluZyBvZiBhIGNvbnRhaW5lciB1bml0IHRlc3QKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXN0aW5nLmg6CgogICBhIGJhc2ljIEMtY29kZSBiYXNlZCB0ZXN0IHJlcG9ydGluZyBtZWNoYW5pc20KCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgYmFzaWMgZGVmYXVsdF9zdG9yZSB0ZXN0cwoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliOgoKICAgYSBidWlsZCBzeXN0ZW0gZm9yIGJhc2ljIGxpYm5ldHNubXAgdGVzdHMKCjIwMTAtMDUtMTcgMTg6MTQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBmaXggZmluZ2VycHJpbnQgYmluL2hleCBjb252ZXJzaW9uOyBhZGQvcmVtb3ZlIGNlcnQgc2VjIG1hcHMgdmlhCiAgIG1pYiBub3cgd29ya3MKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmluYXJ5X3RvX2hleAoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZnByaW50ZihzdGRlcnIgLT4gREVCVUdNU0dUTCgoCgoyMDEwLTA1LTE3IDE4OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgY2hlY2sgZm9yIGhhc2ggdHlwZQoKMjAxMC0wNS0xNyAxNjozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIG1ha2UgUlVOVEVTVFMgd29yayBvdXRzaWRlIHRoZSBzb3VyY2VkaXIKCjIwMTAtMDUtMTcgMTU6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWRlIGEgbGltaXRlZCBydW4gdGVzdCBwb3NzaWJsZSBhZ2FpbiB3aXRob3V0IHBlcmwKCjIwMTAtMDUtMTcgMTU6MzIgIGR0czEyCgogICAqICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFVzZSBuZXdlciBEaXNNYW4gRXZlbnQgTUlCIGNvZGUgZm9yIE1TVkMtYmFzZWQgYnVpbGRzCiAgIChpbiBsaW5lIHdpdGggYWxsIGNvbmZpZ3VyZS1iYXNlZCBidWlsZHMpCgoyMDEwLTA1LTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGhlIHJldHVybiBvdXRzaWRlIHRoZSBpZiBzdGF0ZW1lbnQKCjIwMTAtMDUtMTcgMTU6MTggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBQcm92aWRlIG1pc3NpbmcgcHVibGljIGludGVyZmFjZSB0byBIQUwtYmFzZWQgZmlsZXN0b3JlIG1vZHVsZS4KCjIwMTAtMDUtMTcgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzU0IChyZXZlcnQgcjE4NzM4KTogcjE4NzU0IG9ubHkgcGFydGlhbGx5CiAgIHJldmVydGVkIHIxODczOAogICBhbmQgaGVuY2UgYnJva2UgdGhlIFdpbjMyLWJ1aWxkLiBGaW5pc2hlZCByZXZlcnNhbCBvZiByMTg3MzggYnkKICAgcmVzdG9yaW5nCiAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KCjIwMTAtMDUtMTYgMTg6MTcgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzI2OiBvbmx5IHBhc3MgLWZzdGFjay1wcm90ZWN0b3IqIGZsYWdzIHRvIHRoZQogICBsaW5rZXIgaW5zdGVhZCBvZiBhbGwgLWYqIGZsYWdzIHN1Y2ggdGhhdCBpdCBiZWNvbWVzIGxlc3MgbGlrZWx5CiAgIHRoYXQgdGhpcyBtb2RpZmljYXRpb24gY2F1c2VzIHRyb3VibGUgd2l0aCBub24tR05VIHRvb2xjaGFpbnMuCgoyMDEwLTA1LTE2IDE4OjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSBzaGVsbCBjb2RlIGZvciBjb252ZXJ0aW5nIGEgcmVsYXRpdmUgcGF0aCB0byBhbiBhYnNvbHV0ZQogICBwYXRoIG1vcmUKICAgcm9idXN0IGFuZCBjb252ZXJ0ZWQgIiR7Li4uIy4uLn0iIGNvbnN0cnVjdCBpbnRvIGVjaG8gKyBjdXQuCgoyMDEwLTA1LTE2IDE4OjEyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIE1vcmUgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgdG8KICAgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFIHN1YnN0aXR1dGlvbnMsIG5lY2Vzc2FyeSB0byBtYWtlCiAgIHRlc3QgMDU5IGFuZCAwNjUgcGFzcy4KCjIwMTAtMDUtMTYgMTc6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBmaXggdGVzdHMgZm9yIGNoZWNraW5nIHNodXRkb3duIG9mIGFwcGxpY2F0aW9ucyB0byBub3QgcmVwb3J0CiAgIGZhbHNlIG5lZ2F0aXZlcwoKMjAxMC0wNS0xNiAxMjoxNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgdGVzdCBUMDU5IHBhc3MgYWdhaW4uIFRoaXMgdGVzdCB3YXMgcmVjZW50bHkgYnJva2VuIGJ5CiAgIHBhc3NpbmcgYXJndW1lbnRzIHRvIGl0IHdpdGggYWJzb2x1dGUgcGF0aHMgaW5zdGVhZCBvZiByZWxhdGl2ZQogICBwYXRocy4KCjIwMTAtMDUtMTYgMTI6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZDoKCiAgIEFkZGVkICdTS0lQSUZOT1QgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFJy4KCjIwMTAtMDUtMTYgMTE6NDIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNiAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhcHBzL3NzaHRvc25tcC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiBvbGQgY29kZS4KCjIwMTAtMDUtMTYgMDk6NTkgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZG9uJ3QgdHJpZ2dlciBhIG5ldHNubXBfYXNzZXJ0KCkgd2hlbgogICBubyBleHRlbnNpb24gRExMcyBoYXZlIGJlZW4gbG9hZGVkLgoKMjAxMC0wNS0xNSAxNzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN0b3AtZ2FwIGZpeCB0byB1bmJyZWFrICJtYWtlIHRlc3QiIGZvciB0aGUgbmlnaHRseSBidWlsZHMKCjIwMTAtMDUtMTUgMTA6NTkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFJldmVydGVkIHIxODcyNyBiZWNhdXNlIGl0IGNhdXNlZCBidWlsZCBlcnJvcnMgb24gU29sYXJpcywgQUlYCiAgIGFuZCBIUC1VWC4KCjIwMTAtMDUtMTUgMDA6NDIgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsOgoKICAgcmV2ZXJ0IHIxODczOCBzaW5jZSBuZXcgdHJhbnNwb3J0IHJlcXVpcmUgZHluYW1pY2x5IGJ1aWx0IGhlYWRlcgogICBmaWxlcwoKMjAxMC0wNS0xNSAwMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGxvZyBlbnYgdmFyaWFibGVzIHVzZWQgdG8gdGhlIGludm9rZWQgZmlsZQoKMjAxMC0wNS0xNCAyMToyOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZml4IHNjcmlwdCBzbyBpdCBjYW4gYmUgaW52b2tlZCBvdXRzaWRlIHRoZSB0ZXN0IGVudmlyb25tZW50CiAgIGFnYWluCgoyMDEwLTA1LTE0IDIxOjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICBhZGRlZCB0aGUgU05NUC1UTFMtVE0tTUlCIHdpdGggZmluYWwgSUFOQSBhc3NpZ25tZW50IHNsb3RzCgoyMDEwLTA1LTE0IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIFRTTSBwcmVmaXhlcwoKMjAxMC0wNS0xNCAyMToyNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgRG9tYWluIG51bWJlcnMKCjIwMTAtMDUtMTQgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXQgZGVmYXVsdCB2ZXJzaW9uIGFuZCBzZWNsZXZlbCBpZiB0bHMvZHRscwoKMjAxMC0wNS0xNCAxNToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgcmMgZnJvbSBzZWNuYW1lIG1hcHBpbmc7IGNsYXJpZnkgY29tbWVudAoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCB1c2UgdW5zb3J0ZWQgY29udGFpbmVyOyBkb24ndCBmcmVlIGNhbGxlcidzIGNvbnRhaW5lcgoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGxpbmVhcl9zZWFyY2ggZm9yIHVuc29ydGVkIGNvbnRhaW5lcnMKCjIwMTAtMDUtMTQgMTE6NTYgIGJ2YXNzY2hlCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBieSByZW1vdmluZyB0aGUgZ2VuZXJhdGVkIGZpbGUKICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCiAgIENvbW1lbnRlZCBvdXQgdGhlIGNvZGUgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZm9yIGdlbmVyYXRpbmcKICAgdGhpcyBoZWFkZXIgZmlsZS4KICAgQWRkZWQgY29uZmlndXJlLXRpbWUgY29kZSBmb3IgY2hlY2tpbmcgd2hldGhlciB0aGUgY29uc3RydWN0b3JzCiAgIGZvciBhbGwgY29uZmlndXJlZAogICB0cmFuc3BvcnRzIGFyZSBpbnZva2VkIGZyb20gc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLgoKMjAxMC0wNS0xNCAxMTowMCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbjogdXBkYXRlZCBDeWd3aW4gYnVpbGQgaW5zdHJ1Y3Rpb25zLgoKMjAxMC0wNS0xNCAwOToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgIAogICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE0IDA4OjUwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBBZGRlZCAtbm8tdW5kZWZpbmVkIGZsYWcgdG8gbGlicmFyeSBsaW5rIGNvbW1hbmRzIHN1Y2ggdGhhdAogICBsaWJ0b29sIGNhbiBidWlsZCBETExzIG9uIFdpbjMyLgogICBOb3RlOiBidWlsZGluZyBETExzIG9uIFdpbjMyIGRvZXMgbm90IHlldCB3b3JrIGJlY2F1c2Ugb2YgdGhlCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbgogICBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50CiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy93aWtpL2luZGV4LnBocC9MaWJyYXJ5X2xheWVyaW5nKS4KCjIwMTAtMDUtMTQgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIGxpYnRvb2wgYnVnIGZpeDogYWxzbyBwYXNzIGZsYWdzIHN0YXJ0aW5nIHdpdGggLWYgdG8gdGhlIGxpbmtlcgogICBzaW5jZSB0aGVzZSBjYW4gYWZmZWN0IGxpbmtpbmcuIFRoZSBmbGFnIC1mc3RhY2stcHJvdGVjdG9yIGUuZy4KICAgdHJpZ2dlcnMgaW5jbHVzaW9uIG9mIGxpYnNzcC4KCjIwMTAtMDUtMTQgMDg6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFib3J0IGlmIHRoZSBmaWxlIHByb2dyYW0gY291bGQgbm90IGJlIGZvdW5kLAogICBzaW5jZSB0aGlzIGlzIGVzc2VudGlhbCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBsaWJ0b29sLgogICBDSEFOR0VTOiBDeWd3aW46IG5laXRoZXIgY29tcGlsZSBub3IgbGluayB3aW5waXBlLmMuCgoyMDEwLTA1LTEzIDA4OjU4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSYW4gYXV0b3JlY29uZi4KCjIwMTAtMDUtMTIgMjA6MTYgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBMaW51eDogYnVpbGRzIGFnYWluIHdpdGggZW1iZWRkZWQgUGVybCBkaXNhYmxlZCAoYnVnCiAgIDI5ODU5MTUpLgoKMjAxMC0wNS0xMiAxOTo0NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgRm9sbG93LXVwIGZvciByMTg2ODQ6IHVuLWJyZWFrIHRoZSBXaW4zMiBNU1ZDIGJ1aWxkLgoKMjAxMC0wNS0xMiAxOTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgV2luMzI6IGZpeGVkIGEgdHlwbyBhbmQgbWFkZSBpbmRlbnRhdGlvbiBjb25zaXN0ZW50LgoKMjAxMC0wNS0xMiAxOToxMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjb25zdHJ1Y3QgdGVtcCBidWlsZCBmaWxlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeQoKMjAxMC0wNS0xMiAxOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggcmVjZW50bHkgYnJva2VuIG9sZCBwZXJsIGZ1bmN0aW9uYWxpdHkKCjIwMTAtMDUtMTIgMTg6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhIC0tc2hvcnQgb3B0aW9uIHRvIHNob3J0ZW4gdGhlIHNob3cgb3V0cHV0IHRvIG1pbmltYWxpc3RpYwoKMjAxMC0wNS0xMiAxNDoxNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIuCgoyMDEwLTA1LTEyIDEzOjAyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBtZW1vcnkgbGVhayB3aGVuIHJlYWRpbmcgc2Vuc29ycyBmb3IKICAgTE0tU0VOU09SUy1NSUIuCgoyMDEwLTA1LTEyIDEyOjU3ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmV2ZXJ0IHJldmlzaW9uIDE4Njg5CiAgIExhdGVzdCBXaW4zMiBidWlsZHMgaW5jbHVkZSBzdXBwb3J0IGZvciBzdHJ0b3VsbC4KCjIwMTAtMDUtMTIgMTI6MDUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFkZGVkIGRldGVjdGlvbiBvZiBsbV9zZW5zb3JzIHZlcnNpb24uCiAgIEkgYW0gbm90IEF1dG9jb25mIGd1cnUsIHNvIEkgaG9wZSBJIGdvdCBpdCByaWdodC4gVGhlIGdvYWwgaXMgdG8KICAgZGVmaW5lIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMgKmJlZm9yZSogY29uZmlnX21vZHVsZXNfYWdlbnQKICAgcHJvY2Vzc2VzIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaC4KCjIwMTAtMDUtMTIgMDc6MDMgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4KCjIwMTAtMDUtMTIgMDM6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRpdGxlIGdlbmVyYXRpb24gYWZ0ZXIgY2hhbmdlIHRvIHdoYXQgc3JjZGlyIG1lYW50CgoyMDEwLTA1LTEyIDAyOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgdW5kbyBsYXN0IGNoYW5nZSB3aGljaCB0dXJuZWQgb3V0IHRvIG9ubHkgY2F1c2UgZXJyb3JzIGlmIHlvdSBoYWQKICAgYSBvbGQgLmNvbmYgZmlsZSBhcm91bmQKCjIwMTAtMDUtMTIgMDI6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggdjNfY2EgY3JlYXRpb24gZXh0ZW5zaW9uIG5hbWUKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAga2VlcCBmb3JtYXQgdmVyc2lvbiAjIGluIGNlcnQgaW5kZXhlczsgZG9uJ3Qgc3RvcmUgaGFzaCB0eXBlCiAgIHN0cmluZyBpbiBpbmRleDsKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGludmVydGVkIGNvbnZlcnNpb24gY2FsbDsgbGVzcyB2ZXJib3NlIGRlZmF1bHQgZGVidWcKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHBhcnNpbmcgb2YgLVQgbmFtZS92YWx1ZSBwYWlycwoKMjAxMC0wNS0xMSAyMzozMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGJ1ZyBmaXhpbmcgYW5kIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgIm1ha2UgdGVzdCIgd2l0aAogICBUZXN0OjpIYXJuZXNzCiAgIChzdGlsbCBkb2Vzbid0IHdvcmsgZm9yIG1lLCB0aG91Z2gpCgoyMDEwLTA1LTExIDIyOjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRG8gTk9UIGhhcmRjb2RlIC91c3IvYmluL3BlcmwgYXMgdGhlIFBlcmwgcGF0aAoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2ggZmlsZSBoYW5kbGluZwoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBsb25nIG9wdGlvbnMgc3VjayA7LSkuIHByZWZlciBkb3VibGUgZGFzaGVzIGZvciBsb25nIG9wdGlvbnMgdG8KICAgbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIE5ldC1TTk1QIGNvZGUgYmFzZQoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhZGRlZCBhYmlsaXR5IHRvIHJ1biBvbmx5IHRoZSBmYWlsZWQgdGVzdHMgZnJvbSB0aGUgbGFzdCBydW4KCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9uJ3QgZm9yY2UgY29sb3IKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY2xlYW51cCBvZiBvbGRlcgoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBNaW5pbWFsbHkgc3VwcG9ydCB0aGUgb2xkZXIgVGVzdDo6SGFybmVzcyBwZXJsIG1vZHVsZSBmb3IgcnVubmluZwogICB0aGUgb2xkZXIgdGVzdHMgYXQgbGVhc3QKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IGEgZGVmYXVsdCBzZWN1cml0eU5hbWUgYW5kIHNlY3VyaXR5TW9kZWwgaWYgVExTIG9yIERUTFMgaXMgaW4KICAgdXNlIG9uIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYWxsb3cgc2VjdXJpdHkgbW9kZWxzIHRvIHBlcmZvcm0gbW9yZSBvZiB0aGUgc2Vzc2lvbiBzZXR1cDsgbW92ZWQKICAgbW9yZSBVU00gc3BlY2lmaWMgc2V0dXAgaW50byBpdCdzIHNldHVwIHJvdXRpbmUKCjIwMTAtMDUtMTEgMTg6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBwYXJhbSB0byBsb29rdXAgcGVlciBjZXJ0CgoyMDEwLTA1LTExIDE2OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWxsb3cgJy0nIGluIGZxZG47IGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGhvc3Qgc3BlY2lmaWMgY29uZmlnCgoyMDEwLTA1LTExIDE1OjQ2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEVuc3VyZSAnbmV0c25tcF9yZWFkX21vZHVsZScgaXMgYXZhaWxhYmxlIGZvciBwZXJsIGJ1aWxkLgoKMjAxMC0wNS0xMSAxNTo0NCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeCBwZXJsIGJ1aWxkIHVuZGVyIFdpbmRvd3MgKHN0cnRvdWxsIG5vdCBhdmFpbGFibGUpCgoyMDEwLTA1LTEwIDA3OjA3ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIHN5bWJvbCBuZXRzbm1wX3NubXBTU0hEb21haW5fbGVuLAogICBtYWtlIG5ldHNubXBfc25tcFNTSERvbWFpbiBjb25zdC4KCjIwMTAtMDUtMDkgMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIERvIG5vdCByZXF1aXJlIHF1b3RlcyBhcm91bmQgdGhlIENQVSBzdHJpbmcgYXMgdGhhdCBkZXBlbmRzIG9uCiAgIGhvdyB0aGUgYWdlbnQgaXMgY29uZmlndXJlZC4KCjIwMTAtMDUtMDkgMjE6NDMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEV4dHJhY3QgdGhlIEV4aXQgYW5kIHJlc3RhcnQqIHN1YnJvdXRpbmVzIGZyb20KICAgdXRpbF9mdW5jIGluIG9yZGVyIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgbGVzcyBjb2RlIGZvciB0aGUKICAgbWluaW1hbCBjYXNlLgoKMjAxMC0wNS0wOSAxNjo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24KICAgZ2V0X2V4ZWNfb3V0cHV0KCkgcmV0dXJucyBhIHZhbHVlIHdoZW4gdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTA1LTA5IDE2OjQ1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBidWlsZHMgbm93IGFsc28gd2hlbiB0aGUgc291cmNlIGZpbGVzIGFyZQogICBsb2NhdGVkIG9uIGEgU2FtYmEgZmlsZXN5c3RlbSBpbnN0ZWFkIG9mIGEgbG9jYWwgZmlsZXN5c3RlbS4KCjIwMTAtMDUtMDkgMTM6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDb3JyZWN0IHRoZSBpZiB0aGF0IHRyaWVzIHRvIGZpZ3VyZSBvdXQgaWYgYSBzdWZmaWNpZW50bHkgbmV3IGdjYwogICBpcyBpbiB1c2UuCgoyMDEwLTA1LTA5IDEyOjUwICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ2hlY2sgZm9yIHRoZSBuZWVkZWQgbW9kdWxlIGFuZCBub3Qgc29tZSBvdGhlciBvbmUuCiAgIExvZyB0aGUgY29ycmVjdCBtaXNzaW5nIHN5bWJvbC4KCjIwMTAtMDUtMDkgMDk6MjEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHV0aWxpdGllcy9leGVjdXRlIGRvIG5vdCBuZWVkIGFueXRoaW5nIGZyb20KICAgdXRpbF9mdW5jcywgc28gc3RvcCBkZXBlbmRpbmcgb24gaXQuCgoyMDEwLTA1LTA5IDA5OjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgTkVXUzogc25tcGQ6IFJlbW92ZWQgdGhlIHVudXNlZCBmdW5jdGlvbiB4eF90b2tlbml6ZV9leGVjX2NvbW1hbmQKICAgZnJvbSB1dGlsaXRpZXMvZXhlY3V0ZS4KCjIwMTAtMDUtMDkgMDk6MDEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVwbGFjZSB0aGUgZGVidWdnaW5nIGZ1bmN0aW9ucyB3aXRoIGR1bW1pZXMKICAgd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQuCgoyMDEwLTA1LTA5IDA4OjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkOgoKICAgQ2hlY2sgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBlbmFibGVkCgoyMDEwLTA1LTA5IDA4OjAxICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgRmFjdG9yIG91dCBjaGVjayBmb3IgbWliSUkvc3lzdGVtX21pYgoKMjAxMC0wNS0wOSAwNzo1OSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGVzCgoyMDEwLTA1LTA4IDIzOjE2ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGl0aW9uYWxseSBmaXggbWFrZSB0ZXN0IGZvciB0aGUgdW5jb21tb24gY2FzZSB3aGVyZSBidWlsZGRpcgogICA9PSBzcmNkaXIKCjIwMTAtMDUtMDggMjI6NTUgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byBydW4gdGhlIHRlc3Qgc3VpdGUgZnJvbQogICBhbnl3aGVyZS4KICAgQ2hhbmdlIHRoZSAtRCBvcHRpb24gdG8gZXhwZWN0IHRoZSBwYXRoIG9mIHRoZSB0b3Agc291cmNlCiAgIGRpcmVjdG9yeS4KICAgQWRkIGFuIC1zcmNkaXIgb3B0aW9uIHRoYXQgaXMgYW4gYWxpYXMgZm9yIC1ELgogICBBZGQgYW4gLWJ1aWxkZGlyIG9wdGlvbiB0byBkZXNpZ25hdGUgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgdGVzdAogICBvYmplY3QgaXMuCiAgIFB1dCBzcmNkaXIgYW5kIGJ1aWxkZGlyIGluIHRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHRlc3Qgc2NyaXB0cwogICBGYWN0b3Igb3V0IHRoZSBncmVwIHBhcnQgb2YgU0tJUElGIGFuZCBTS0lQSUZOT1QgdG8gSVNERUZJTkVECiAgIFVzZSBtb3JlIHJlYWRhYmxlIGtleXMgaW4gdGhlIG9wdHMgaGFzaCBpbiBSVU5GVUxMVEVTVFMKICAgQWRqdXN0IGV2ZXJ5dGhpbmcgdG8gdXNlIHNyY2RpciBhbmQgYnVpbGRkaXIKCjIwMTAtMDUtMDggMjI6NDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowNyAgbWFnZnIKCiAgICogTWFrZWZpbGUuaW46CgogICBDb25zb2xpZGF0ZSB0aGUgdGVzdCBhbmQgdGVzdC1taWJzIHRhcmdldHMuCiAgIEV4cG9zZSB0aGUgdGVzdGFsbCB0YXJnZXQgaW4gdGhlIHRvcCBtYWtlZmlsZS4KCjIwMTAtMDUtMDggMjI6MDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvIG5vdCBhYm9ydCB3aGVuIHN0ciBpcyBOVUxMIGFzIHRoYXQgaXMgYSBwZXJmZWN0bHkgdmFsaWQgaW5wdXQuCgoyMDEwLTA1LTA4IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgbmV3bGluZQoKMjAxMC0wNS0wNyAyMToxMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5hYwoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIGZpeCBoYW5kbGluZyBvZiBjZXJ0IGFsZ29yaXRobSBpbiBmaW5nZXJwcmludHM7IGNvbnZlcnQgaW4vb3V0CiAgIGZpbmdlcnBpbnRzCiAgIGZyb20vdG8gaGV4CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkb250IHNwZWNpZnkgaGFzaCB0eXBlIGZvciBmaW5nZXJwcmludAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGhhbmRsZSBmaW5nZXJwcmludCB0eXBlczsgZHJvcCBzYW4gZmllbGRzIGZyb20gY2VydCBzdHJ1Y3Q7CiAgIGNvbnNpZGVyIGRpcmVjdG9yeQogICB3aGVuIHBhcnRuZXJpbmcga2V5cy9jZXJ0cwoKMjAxMC0wNS0wNyAxOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIG1vdmUgZGVmYXVsdCBwcm9tcHRzIGVhcmxpZXIKCjIwMTAtMDUtMDYgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYmV0dGVyIFNBTiBleHRyYWN0aW9uOyB0d2VhayBkdWJndXMgbWVzc2FnZXM7IHF1aWV0IGNvbXBpbGVyCiAgIHdhcm5pbmdzCgoyMDEwLTA1LTA2IDE1OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHJlZHVjZSBjZXJ0IGRlYnVnIG91dHB1dDsgZGVidWcgaW5zdGVhZCBvZiBsb2dfaW5mbyBpbiBkdW1wcwoKMjAxMC0wNS0wNiAxNDo0OSAgZHRzMTIKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIERvbid0IGFzc3VtZSB0aGUgcHJlc2VuY2Ugb2YgPHN0cmluZy5oPgogICAoYnJpbmcgaW50byBsaW5lIHdpdGggYWxsIG90aGVyIG9jY3VyYW5jZXMpCgoyMDEwLTA1LTA2IDE0OjQxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgQ0hBTkdFUzogV2luZG93czogRml4IGJ1aWxkIHVuZGVyIE1pbkdXCiAgIGJhY2svZm9yd2FyZCBwb3J0IG9mIHJldmlzaW9uIDE4NjMxCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBlIGluIGxvZyBtc2cKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGltcG9ydCBmb3IgdW51c2VkIGZ1bmN0aW9uCgoyMDEwLTA1LTA0IDA3OjEyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgTmVnYXRlIHJlYXNvbiBnaXZlbiBmcm9tIFNLSVBJRgoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggbGVuIGluIGVtYWlsIGNtcDsgbW9yZSBleHRyYWN0IGRlYnVnZ2luZwoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjb3B5IG9jZXJ0IHRvIGFkZGlvbmFsIG1hcHMKCjIwMTAtMDUtMDMgMTQ6MjAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBkZXBlbmRlbmN5IG9uIHBlcmwgbW9kdWxlIG5vdCBwcmVzZW50IGluIENlbnRPUwoKMjAxMC0wNS0wMyAwMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBkb24ndCBhY2Nlc3Mgc3RydWN0IGludGVybmFscyBkaXJlY3RseQoKMjAxMC0wNS0wMyAwMzo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZml4IGNvbXBpbGluZyB3aXRoLW91dC1taWJtb2R1bGVzPXV0aWxpdGllcy9leGVjdXRlCgoyMDEwLTA1LTAxIDE5OjA4ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBDb3JyZWN0IHRoZSBzb3VnaHQgc3RyaW5nIHRvIG1ha2UgdGhlIHRlc3QgcGFzcyB3aGVuIG9rLgoKMjAxMC0wNS0wMSAxNzoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW9yZSBjb25zaXN0ZW50IHRyZWF0bWVudCBvZiBrZXlVc2FnZSwgYmFzaWNDb25zdHJhaW50cywgb3RoZXIKICAgeDUwOXYzIG9wdGlvbnMKCjIwMTAtMDQtMzAgMjM6MzcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsOgoKICAgbGFtZSB0ZXN0IHNjcmlwdCBidXQgY292ZXJzIGEgY2h1bmsgb2YgdGhlIGNvZGUKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWtpbnN0YWxsZGlycyBpbnN0ZWFkIGluc3RlYWQgb2YgRmlsZTo6UGF0aAoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBlbnN1cmUgbmV0LXNubXAtY29uZmlnIHNjcmlwdCBjYW4gYmUgcnVuIGZyb20gdGhlIGJ1aWxkIGRpcgoKMjAxMC0wNC0zMCAyMTozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIGdlbmNlcnQgLS1jYQoKMjAxMC0wNC0zMCAyMTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgaGVscCBmb3IgY2VydFNlY05hbWU7IGNvbnRpbnVlIGJ1aWxkaW5nIGNlcnQgaW5kZXhlcyBldmVuIGlmCiAgIHdlIGNhbnQgc2F2ZQogICB0byBwZXJzaXN0ZW50IGRpcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggY2hlY2sgY291bnQgZm9yIDgyMiBuYW1lcyBpbiB0aGUgc25tcGQubG9nCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBtYWxsb2MgdW5uZGVybGVuZ3RoIGJ5IDEgZXJyb3IKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY29tbWVudCBvdXQgdGhlIDgyMiB0ZXN0czsgdGhleSdyZSBicm9rZW4gYXQgdGhlIG1vbWVudAoKMjAxMC0wNC0zMCAxOTozNiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZG9uJ3QgbG9zZSBTQU4gd2hlbiBzaWduaW5nIHcvIENBCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFrZSBuYW1lIGNoYW5nZSB0byByZmM4MjIgZnJvbSB0eXBvZWQgODIyMAoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0cyB0byBkbyBvdGhlciBzdWJqZWN0QWx0TmFtZSBtYXBwaW5nCgoyMDEwLTA0LTMwIDE3OjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggaXNzdWVzIDEsMiw0IGFuZCAtQyBoYW5kbGluZwoKMjAxMC0wNC0yOSAwMzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUNlcnRUb1RTTlRhYmxlIHRvIHVzZSBjYWNoZSArIGNlcnRfdXRpbCBtYXBzCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIGluc2VydCByZXR1cm4KCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCByZW1vdmUgZnVuY3Rpb24gdG8gY29udGFpbmVyIGl0ZXJhdG9yOwogICBpbXBsZW1lbnQgaXQgZm9yCiAgIGJpbmFyeV9hcnJheQoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgbWFrZSBzdXJlIGNvbnRhaW5lciBzeW5jIGluY3JlbWVudGVkIG9uIHNvcnQsIGluc2VydCBhbmQgcmVtb3ZlCgoyMDEwLTA0LTI4IDA3OjIwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlZmlsZSBmb3IgdGVzdCB0YXJnZXQKCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgbWFrZSB0aGUgdGVzdCBzdWl0ZSBydW4gb3V0c2lkZSB0aGUgc291cmNlIGRpcmVjdG9yeSBhZ2Fpbi4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGRlYWwgd2l0aCBvdXQtb2Ytc291cmNlIHRyZWUgYnVpbGRpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdGluZyB0byBjaGVjayBjZXJ0aWZpY2F0ZSB0byBzZWN1cml0eW5hbWUgbWFwcGluZ3MgYW5kIGRlbmlhbHMKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNyZWF0ZWQgYSBtYXBwZWQgdXNlcgoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgZ2VuZXJhdGUgb2JqZWN0IGNvZGUgd2l0aCAtZyBkZWJ1Z2dpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIG1vcmUgYWNjdXJhdGUgY3VycmVudCBBUEkgdXNhZ2UgZm9yIHNjYXBpIGNvZGUKCjIwMTAtMDQtMjcgMjE6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNlcnQgaW5pdCBkdXBsaWNhdGUgY2FsbCBjaGVjawoKMjAxMC0wNC0yNyAyMDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvbnZlcnQgdXNlciBmaW5nZXJwcmludCB0byBsb3dlciBhbmQgc3RyaXAgY29sb25zOyBhZGQgZXh0ZXJuCiAgIHByb3RvdHlwZQogICBmb3IgY2VydCBpbml0IHNvIHdlIGRvbid0IG5lZWQgaGVhZGVyCgoyMDEwLTA0LTI3IDIwOjE1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXBhcmF0ZSBjZXJ0IGluaXQgYW5kIGNlcnQgbG9hZGluZzsgYWRkIGNlcnRTZWNOYW1lIGNvbmZpZyB0b2tlbgoKMjAxMC0wNC0yNyAwMzoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWVyZ2UgTkVUU05NUF9GVU5DVElPTiBhbmQgIU5FVFNOTVBfRlVOQ1RJT04gYXNzZXJ0IGNhc2VzCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb3RzIG9mIG5ldyBjZXJ0IGZ1bmN0aW9uYWxpdHkKICAgLSBhZGQgc3NsIGZ1bmNzIGZvciBjZXJ0IGV4dGVuc2lvbnMgYW5kIHNzbCBjZXJ0IGNoYWlucwogICAtIGZ1bmN0aW9ucyBhbmQgbmV3IG5ldHNtcF9jZXJ0X21hcCBzdHJ1Y3QgZm9yIGxvb2tpbmcgdXAgY2VydAogICBtYXBwaW5ncwogICAtIGFkZCBjZXJ0aWZpY2F0ZSBtYXBwaW5nIGZvciBzZWNuYW1lCiAgIC0gYWRkIGNvZGUgdG8gYnVpbGQgY2VydCBjaGFpbnMKICAgLSBhZGQgc3ViamVjdCB0byBjZXJ0IGluZGV4IGNhY2hlCiAgIC0gcmVidWlsZCBpbmRleGVzIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4CiAgIC0gcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0IGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIGNlcnQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBtb3ZlIGlwdjYgc3BlY2lmaWMgdmFyIGRlY2wgaW5zaWRlIGlmZGVmCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IHRkYXRhIGhlbHBlciBub3cgc2F2ZXMgZmxhZ3MgcGFzc2VkIGR1cmluZwogICBjcmVhdGlvbjsgYWRkIHRkYXRhCiAgIGZsYWcgdG8gTk9UIGNyZWF0ZSB0aGUgdGFibGUgY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgaW50ZXJmYWNlIGZvciBkdXBsaWNhdGluZyBhIGNvbnRhaW5lcgogICBDSEFOR0VTOiBzbm1wbGliOiBjb250YWluZXIgY2hhbmdlczogYWRkIGZsYWdzIGZpZWxkIHRvIGNvbnRhaW5lcgogICBtZXRhLWRhdGE7CiAgIGNoZyBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHRvIHVzZSBjb250YWluZXIgbWV0YS1kYXRhIGZsYWdzCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCB3aGVuIHRoZSB0cmFuc3BvcnQgaXMgY29uZmlndXJlZCB3aXRoCiAgIGEgcmVtb3RlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50IHRoZSBjb25uZWN0aW9uIGlzIGRlbmllZAoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgYWRkZWQgdGVzdHMgZm9yIC1UIGZsYWcgdXNhZ2UgYW5kIGludmFsaWQgdXNlciB1c2FnZQoKMjAxMC0wNC0yNiAyMDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkOgoKICAgaGF2ZSB0aGUgYWxpYXMgdHJhbnNwb3J0IHNvdXJjZSB0aGUgcmlnaHQgU3YzY29uZmlnIGZpbGUKCjIwMTAtMDQtMjYgMjA6NTAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIHdvcmtpbmcgc3VwcG9ydCBvZiBUTFMvRFRMUyB0ZXN0aW5nIGluY2x1ZGluZyBjZXJ0IGdlbmVyYXRpb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBob25vciB0aGUgY29uZmlnIGRpciBpZiBzcGVjaWZpZWQgdmlhIC1DCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCByZWFsbG9jIGNhbGwgZm9yIGJ1ZmZlcmVkIHBhY2tldHMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBwcm9wZXIgc2tpcCBvdXRwdXQgZm9yIHJlcG9ydGluZyByZWFzb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFmdGVyIGJhY2tzbGFzaCBpbiBtYWNybwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIucHJpdjoKCiAgIHRlc3RzIGZvciBtaW5pbWFsbHkgdGVzdGluZyBhbGwgdGhlIHRyYW5zcG9ydHMKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgbWluaW1hbGx5IGRvY3VtZW50IG5ldyBSVU5GVUxMVEVTVFMgc2NyaXB0CgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LCAgIAogICAgICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsIHRlc3RpbmcvbWlzY3Rlc3QuYywgIAogICAgICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaDoKCiAgIGRlbGV0ZWQgb2xkIGZpbGVzIG5vdCB3b3J0aCByZXN0b3JpbmcKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIHJlbW92ZSBvYnNvbHV0ZSB0ZXN0IGxpc3QKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYzoKCiAgIGEgaGFzaC10ZXN0aW5nIC5jIGZpbGUgSSBoYWQgbGF5aW5nIGFyb3VuZAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgdGVzdGFsbCB0YXJnZXQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9ldGltZXRlc3QuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIG1vdmUgb2xkIEMtY29kZSB0ZXN0cyBpbiBwbGFjZQoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkOgoKICAgc2tpcCBzb2xhcmlzIGNvbW1lbnRzCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IGludm9jYXRpb24gb2YgUlVORlVMTFRFU1RTCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YyY2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYWdlbnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWd0cmFwZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QzLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4LCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgTkVXUzogdGVzdGluZzogQnJhbmQgbmV3IHRlc3Qgc3VpdGUgZGVzaWdlbmVkIHRvIGV2ZW50dWFsbHkgdGVzdAogICBtb3JlIGZ1bmN0aW9uYWxpdHksIHByb3ZpZGUgZm9yIHN1cHBvcnQgb2YgdW5pdC10ZXN0cyBhbmQgc3VwcG9ydAogICBvZiBBUEkgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICByZW1vdmVkIGEgZGVidWdnaW5nIGVjaG8KCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtb3JlIGJ1ZyBmaXhlcyBmb3Igc3RyaW5nIHNlYXJjaGVzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgYWRkZWQgYSBuZXcgbWFjcm8gdG8gY2hlY2sgYSB0cmFwZCBjb3VudAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHVzZSBpbmRpdmlkdWFsIG91dHB1dCBmaWxlcyBhbmQgZml4IHNvbWUgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1hZGUgZXhpc3RpbmcgdGVzdCBzdWl0ZSBwdXQgb3V0IFRBUCBvdXRwdXQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvZnVsbHRlc3RzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgYmVnaW5uaW5nIG9mIG1vdmluZyBVQ0QgdGVzdCBzdWl0ZSBpbnRvIGEgbGFyZ2VyIHN1YmRpcmVjdG9yeQoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhbGxvdyBydW5uaW5nIHRlc3RzIHRoYXQgbWF0Y2ggYSByZWdleHAKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VtbWFyaXplIHRlc3RzIHRoYXQgZmFpbGVkCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0ZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBydW5fIHNjcmlwdHMgZm9yIGV4ZWN1dGluZyBjZXJ0YWluCiAgIHR5cGVzCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1hZGUgdGhlIGJ1aWxkLXNjcmlwdC1jaGVjayByb3V0aW5lIGdlbmVyaWMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCBmb3IgYnVpbGQgc2NyaXB0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwcm92aWRlIGluZnJhc3RydWN0dXJlIGZvciBidWlsZGluZyBhbmQgcmVuYW1pbmcgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbW9yZSB0ZXN0IGluZnJhc3RydWN0dXJlIHNldHVwCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgdGhlIGtleXdvcmQgJ2FsbCcKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIGdyb3VwIGdhdGhlcmluZwoKMjAxMC0wNC0yNiAyMDozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGlubyBvZiBhIG5ldyB0ZXN0aW5nIGhhcm5lc3MKCjIwMTAtMDQtMjUgMTc6MzcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAxMC0wNC0yNSAxNToyMSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiByZXZlcnRlZCBhIHJlY2VudCB1bm5lY2Vzc2FyeSBtb2RpZmljYXRpb24uCgoyMDEwLTA0LTI1IDE1OjAwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgbXVsdGlwbGUgLS1zYW4gYXJncywgY2hlY2sgZXJyb3IgY29kZXMgb24gb3BlbnNzbCBjbWRzIGFuZAogICBkaWUgb24gZmFpbHVyZQoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IHJlc3RvcmVkIGNvbnNpc3RlbmN5IGJldHdlZW4gd29ya3NwYWNlLWJ1aWxkIGFuZCBiYXRjaAogICBidWlsZCAtLSBtYWRlIHN1cmUgdGhhdCBub3RpZmljYXRpb25fbG9nLmMgaXMgb25seSBpbmNsdWRlZCBpbgogICB0aGUgbmV0c25tcG1pYnMgcHJvamVjdC4KCjIwMTAtMDQtMjUgMTM6NTggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBmaXhlcyBmb3IgcmVjZW50bHkgaW50cm9kdWNlZCBidWlsZCBicmVha2FnZS4KCjIwMTAtMDQtMjUgMTM6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxMzo0OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9jbG9zZWRpci5jLCBzbm1wbGliL29wZW5kaXIuYywgIAogICAgICAgc25tcGxpYi9yZWFkZGlyLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFdpbjMyIE1TVkMgNiBub24tU0RLIGJ1aWxkIHdvcmtzIGFnYWluLgoKMjAxMC0wNC0yNSAxMzo0MiAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSB0cmFuc2Zvcm1hdGlvbiBydWxlLgoKMjAxMC0wNC0yNSAxMjowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWRlIGl0IGFnYWluIHBvc3NpYmxlIHRvIGRpc2FibGUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsgd2hlbgogICBidWlsZGluZyB2aWEgd2luMzIvYnVpbGQuYmF0LgoKMjAxMC0wNC0yMyAxMzoxNCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgLS1zYW4gRE5TOmEuYi5jIGhhbmRsaW5nLCBoZWxwIHRleHQgZml4ZXMsIG90aGVyIGJ1ZyBmaXhlcy4KICAgTm90ZSBtdWx0aXBsZSAtLXNhbiBub3Qgc3VwcG9ydGVkIHlldAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBidWlsZCB0aGUgLm1hZGUgdmVyc2lvbiBvZiBuZXQtc25tcC1jZXJ0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQgYWZ0ZXIgbW92aW5nIGFsbCB0aGUgZmlsZXMgYXJvdW5kCgoyMDEwLTA0LTIxIDIwOjE2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGJ1aWxkIHRydXN0IGNoYWluIGZvciBjbGllbnQgY2VydDsgYWRkIHN1YmplY3QgdG8gaW5kZXggY2FjaGU7CiAgIHJlYnVpbGQgaW5kZXhlcwogICBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleDsgcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0VG9UU05fZW50cnkgdG8gY2VydF91dGlsIGhlYWRlcgogICAtIG1vdmUgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgogICAtIGFkZCBuZXRzbm1wX29wZW5zc2xfY2VydF9kdW1wX2V4dGVuc2lvbnMsCiAgIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2lzc3VlZF9ieQoKMjAxMC0wNC0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgc2luZ2xlLWRhc2ggLyBzbm1wLmNvbmYgLyBkb3VibGUtZGFzaCBwcmVjaWRlbmNlCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRoYXQgdGhlIHRva2VucyBjYW4gYmUgdXNlZCBmb3IKICAgY29tbWFuZCBsaW5lIGFwcGxpY2F0aW9ucyB0b28KCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZmlsZSBsb2FkaW5nIG9yZGVyIGFuZCBob3cgdG8gdHVybiBvZmYgaG9zdC1zcGVjaWZpYwogICBjb25maWcKCjIwMTAtMDQtMjEgMTU6NTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiBHZW5lcmljIGhvc3Qtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzbm1wLmNvbmYgZmlsZXMKICAgYXJlIG5vdyByZWFkLiBTZWUgdGhlIEhPU1QtU1BFQ0lGSUMgRklMRVMgc2VjdGlvbiBvZiB0aGUKICAgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKMjAxMC0wNC0yMCAxMjo0NCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI5NzEyNzA6IHJlZnVzZSB0byBwYXJzZSBBU04uMSB0b2tlbnMKICAgd2l0aCB3cm9uZyB0eXBlIGZpZWxkLgogICBUaGlzIG1heSB5aWVsZCB0byBwcm9ibGVtcyB3aXRoIHRoaXJkLXBhcnR5IGFwcGxpY2F0aW9ucyB3aGljaAogICBtYXkgZGVwZW5kIG9uIHBhcnNpbmcgdWdseSBBU04uMSBkYXRhIC0gd2UnbGwgc2VlLi4uCgoyMDEwLTA0LTIwIDAwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbWJpbmUgcmVtb3RlIGZpbmdlcnByaW50IGNoZWNraW5nIGFuZCBjaGVjayBib3RoIHNpZGVzCgoyMDEwLTA0LTIwIDAwOjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGlmIHRoZSByZW1vdGUgZmluZ2VycHJpbnQgaXMgc3BlY2lmaWVkLCByZXF1aXJlIGFuIGV4YWN0IG1hdGNoCgoyMDEwLTA0LTE5IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdmFyaW91cyBtaW5vciBidWdzLCBlc3BlY2lhbGx5IGluIG91dHB1dCBtZXNzYWdlcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgcHJvdG90eXBpbmcgb2YgbmVlZGVkIFJGQyBzdGVwcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNvbnZlcnQgaWYgZXJyb3IgY2hlY2sgdG8gcmV0dXJuIGltbWVkaWF0ZWx5IHNvIG90aGVyIGNvZGUgY2FuIGJlCiAgIG91dGRlbnRlZAoKMjAxMC0wNC0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgUkZDIHRleHQKCjIwMTAtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3RyYW5zcG9ydHMsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4uCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY3JlYXRlZCBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIHNlY3VyaXR5TmFtZSBmcm9tIHRoZSBjZXJ0CgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZG9uJ3QgbmVlZCB0byBzZXQgdGhlIGFjY2VwdCBzdGF0ZSBmb3IgVExTIChqdXN0IERUTFMpCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBUTFMgY29tbWVudCBkb2N1bWVudGF0aW9uIGFuZCBzdGVwcyB0YWtlbiBmcm9tIHRoZSBSRkMKCjIwMTAtMDQtMTYgMTM6NTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG51bWVyb3VzIGZpeGVzLCBtb3JlIHZlcmJvc2UgZGVmYXVsdCBvdXRwdXQsIGFkZGl0aXZlIHNob3cgZmxhZ3MsCiAgIGFyYml0cmFyeSBjb25maWcgcGFyYW0gaGFuZGxpbmcsIGJldHRlciBoZWxwIHRleHQKCjIwMTAtMDQtMTYgMTM6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgZG9uJ3QgZG91YmxlIGRlY2xhcmUgYSBzdHJ1Y3QKCjIwMTAtMDQtMTYgMDM6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydCB1dGlsIGZpeGVzCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzIGFuZCBkdXBsaWNhdGUgY29kZQogICAtIGNoZWNrIHBydCBiZWZvcmUgZnJlZQogICAtIG5ldyBmdW5jIGZvciB0eXBlIGZyb20gZmlsZW5hbWUKICAgLSBuZXcgZnVuY3Rpb25zIGZvciBmaW5kaW5nIHN1YnNldHMgZnJvbSBmaWxlbmFtZQogICAtIGZpeCB0eXBlcyBpbiBrZXkgc2VhcmNoIGZ1bmN0aW9uIGJ1dCB0aGVuIGlmZGVmIGlmICh1bnVzZWQKICAgZnVuY3Rpb24pCgoyMDEwLTA0LTE1IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHVzZSBhIHN0cnVjdHVyZSByZWZlcmVuY2UgdG8gcHJlZGVjbGFyZSB0aGUgc3RydWN0dXJlCgoyMDEwLTA0LTE1IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGNvcnJlY3QgZGVjbGFyYXRpb24gb2YgdGhlIGZfb3BlbiBjb21tYW5kIG5vdyByZXF1aXJpbmcgcmV0dXJuaW5nCiAgIGEgdHJhbnNwb3J0CgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNvbmZpZyBjb250YWluZXIKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBmaW5nZXJwcmludCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gaW50byBuZXcgdGxzIHN0cnVjdHVyZQogICB3aXRoaW4gRFRMU1VEUCBzbyBwZXItdHJhbnNwb3J0IGZpbmdlcnByaW50cyBjYW4gYmUgc3BlY2lmaWVkCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3Blcmx5IGNoZWNrIGZvciB0bHNiYXNlIHBvaW50ZXJzIGluIGR0bHN1ZHBfc2VuZCgpCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGdyZXAgdGhlIHRyYW5zcG9ydCBsaXN0IGZvciBUTFMgbm90IGp1c3QgRFRMUyBmb3IgY2hlY2tpbmcgZm9yCiAgIC1sc3NsCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgYnVnIGZpeGVzIGFuZCBtYWRlIFRMU1RDUCB3b3JrIHdpdGggdGhlIC1UIGZsYWcKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1ha2UgdGhlIGZfb3BlbiBjYWxsIGFzc2lnbiB0aGUgbmV3IHRyYW5zcG9ydCBwb2ludGVyIHRvIHVzZSAoYW5kCiAgIGNoZWNrIGlmIE5VTEwgYXMgYSBmYWlsdXJlIGNvbmRpdGlvbgoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2luIHdvcmsgbW92aW5nIERUTFMgY29uZmlnIHJvdXRpbmUgaW4gcGxhY2UKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBwYXNzIHRoZSBlbnRpcmUgdGxzYmFzZSB0byB0aGUgY2xpZW50X3NldHVwCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHN0YXJ0aW5nIHRoZSBzdG9yaW5nIG9mIGNvbmZpZyBkYXRhIGludG8gdGhlIHRsc2Jhc2UKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIGNsaWVudCBzc2wgc2V0dXAgdG8gYWxsb3cgZm9yIGRpcmVjdCBmaW5nZXJwcmludAogICBzcGVjaWZpY2F0aW9uIG9mIG15L3RoZWlyIGNlcnRzCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc3BsaXQgVExTIGludG8gY3JlYXRpb24vY2xvc2UgZnVuY3Rpb25zIGZvciBldmVudHVhbCBjb25maWcKICAgcGFzc2luZyBzdXBwb3J0CgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGFzcyB0cmFuc3BvcnQgY29uZmlnIGRhdGEgdG8gdGhlIHRyYW5zcG9ydCBmX2NvbmZpZygpIGZ1bmN0aW9uCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXR1cm4gTlVMTCBvbiB0cmFuc3BvcnQgY29uZmlnIGVycm9yCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IC1UIGNvbW1hbmQgbGluZSBmbGFnIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZQogICB0cmFuc3BvcnRzCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjaGVjayB0cmFuc3BvcnQgTlVMTG5lc3MgYmVmb3JlIHVzaW5nCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJlZ2lubmluZyBvZiB3b3JrIHRvIG1ha2UgdHJhbnNwb3J0cyBjb25maWd1cmFibGUgd2l0aAogICBzdXBwbGltZW50YWwgY29uZmlndXJhdGlvbiBkYXRhIGFuZCBuZXcgY2FsbHMgZm9yIGZfb3Blbi9mX2NvbmZpZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHRleHQgaW4gY29tbWVudHMgZnJvbSBmdXR1cmUgUkZDIHRvIGRvY3VtZW50IHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNC0xNSAxODo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYXJrIHBlbSB3L2tleSBhcyBpZGVudGl0eTsgdHdlYWsgcGFydG5lciBkZWJ1ZzsgY29tcGFyZSBmaWxlCiAgIGN0aW1lIGFnYWluc3QgaW5kZXggdG9vCgoyMDEwLTA0LTE1IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBsb2NhbCBzcGFjZSB0byByZWZvcm1hdCBjZXJ0IGZvciBzZWFyY2gKCjIwMTAtMDQtMTUgMTY6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE4NDk2OgogICAtIENvbW1lbnRlZCBvdXQgI2RlZmluZSBORVRTTk1QX1VTRV9ETEwgYWdhaW4gaW4gZmlsZQogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBvbiB0aGUgNS40IGJyYW5jaC4gVGhpcyBjaGFuZ2UKICAgaGFkIGJlZW4gY29tbWl0dGVkIHVuaW50ZW50aW9uYWxseS4KICAgLSBSZS1lbmFibGVkICNkZWZpbmUKICAgVVNJTkdfTk9USUZJQ0FUSU9OX0xPR19NSUJfTk9USUZJQ0FUSU9OX0xPR19NT0RVTEUgaW4KICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCBvbiB0aGUgdHJ1bmsgYW5kIHRoZQogICBWNS41IGJyYW5jaC4gV2hpbGUgYnVpbGQuYmF0IHJlcG9ydHMgYW4gZXJyb3Igb24gZWFybGllciBicmFuY2hlcwogICB3aXRoIHRoaXMgc3ltYm9sIGVuYWJsZWQsIHRoZXJlIGlzIG5vIHN1Y2ggcHJvYmxlbSBvbiB0aGUgdHJ1bmsKICAgb3IgVjUuNSBicmFuY2hlcyBhbmQgaGVuY2UgdGhlcmUgd2FzIG5vIHJlYXNvbiB0byBkaXNhYmxlIHRoaXMKICAgcHJlcHJvY2Vzc29yIHN5bWJvbC4KCjIwMTAtMDQtMTUgMTU6MDggIG1hcnoKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBhZGQgbmV0LXNubXAtY2VydCB0byBtYWtlL2luc3RhbGwKCjIwMTAtMDQtMTUgMTA6NTIgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQ6CgogICBUZXN0cyBub3Qgd29ya2luZyBmb3IgVENQIHNob3VsZCBiZSBza2lwcGVkIGFsc28gZm9yIFRDUDYuCgoyMDEwLTA0LTE0IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCB2YXJzL3RleHQgZnJvbSBjdXQtbi1wYXN0ZQoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggY29tbWVudHMKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbG90cyBvZiBjZXJ0IHVwZGF0ZXMKICAgLSBjaGFuZ2UgY2VydCBzdWJkaXIgc2VhcmNoaW5nIHRvIG1hdGNoIG5ldC1zbm1wLWNlcnQKICAgLSB1cGRhdGUga2V5IHR5cGUgaGFuZGxpbmcKICAgLSBpZ25vcmUgd29ybGQgcmVhZGFibGUga2V5cwogICAtIGtlZXAgdHlwZSBpbiBpbmRleGVzCiAgIC0gdHdlYWsgY2VydC9rZXkgcHJpbnQgZm9ybWF0CgoyMDEwLTA0LTE0IDE3OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ha2UgbmV0LXNubXAtY2VydCBleGVjdXRhYmxlCgoyMDEwLTA0LTE0IDEzOjEyICBqc2FmcmFuZWsKCiAgICogIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgRml4ZWQgdGVzdHMgJ1Byb3h5IEdFVC9TRVQgc3VwcG9ydCcgYW5kICdTTk1QdjIgdmFjbSBkZW5pYWwKICAgc3VwcG9ydCcgd2l0aCB1ZHA2IHRyYW5zcG9ydC4KCjIwMTAtMDQtMTQgMDk6NDcgIGR0czEyCgogICAqICB3aW4zMiwgd2luMzIvYmluLCB3aW4zMi9kaXN0LCB3aW4zMi9kaXN0L2h0bWxoZWxwLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlciwgd2luMzIvZGlzdC9zY3JpcHRzLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAKICAgICAgICB3aW4zMi9saWIsIHdpbjMyL2xpYmFnZW50LCB3aW4zMi9saWJoZWxwZXJzLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQsIHdpbjMyL2xpYnNubXAsIHdpbjMyL2xpYnNubXBfZGxsLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLCB3aW4zMi9sb2NhbCwgd2luMzIvbmV0LXNubXAsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50LCB3aW4zMi9uZXQtc25tcC9saWJyYXJ5LCB3aW4zMi9uZXRzbm1wbWlicywgIAogICAgICAgd2luMzIvc25tcGJ1bGtnZXQsIHdpbjMyL3NubXBidWxrd2Fsaywgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YSwgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZ2V0LCB3aW4zMi9zbm1wZ2V0bmV4dCwgIAogICAgICAgd2luMzIvc25tcG5ldHN0YXQsIHdpbjMyL3NubXBzZXQsIHdpbjMyL3NubXBzdGF0dXMsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwLCB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB1c20sIHdpbjMyL3NubXB2YWNtLCAgIAogICAgICB3aW4zMi9zbm1wd2FsazoKCiAgIERvbid0IHRyeSB0byBTVk4tbWFuYWdlIHRoZSBXaW5kb3dzIGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlCiAgIChhZGQgcmVsZWFzZSwgZGVidWcsIE1ha2VmaWxlIHRvIHRoZSBwcmV2aW91cyBpZ25vcmUgbGlzdCkKCjIwMTAtMDQtMTQgMDg6MTYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IFdpbmRvd3MgYmF0Y2ggYnVpbGQgdXNpbmcgVmlzdWFsIFN0dWRpbyB3aXRoIGR5bmFtaWMgbGlua2luZy4KICAgVW5yZWZlcmVuY2VkIHN5bWJvbCBpbnRyb2R1Y2VkIGJ5IFNWTiByZXZpc2lvbiAxODM5MwoKMjAxMC0wNC0xNCAwODowOCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBGaXggYmF0Y2ggYnVpbGQgdXNpbmcgcmVjZW50IHZlcnNpb25zIG9mIFZpc3VhbAogICBTdHVkaW8uCiAgIFBhcnRpYWwgYmFjayBwb3J0IG9mIFNWTiByZXZpc2lvbnMgMTc1NzMgYW5kIDE3Njk2LgoKMjAxMC0wNC0xNCAwMTo0NyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHBlcm1zIG9uIGNyZWF0ZWQgZmlsZXMgLXJ3LS0tLS0tLSwgdW1hc2soMDc3KQoKMjAxMC0wNC0xMyAyMjoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBmaXggcGVybXMsIGFkZCAtLWNuLy1jLCBiZXR0ZXIgZGF0ZXMgZGVmYXVsdHMsIHNubXAtdGxzIG9yZ191bml0LAogICBhZGRlZCBpbml0aWFsIGR1bW15IGNvbmZpZyBmaWxlCgoyMDEwLTA0LTEzIDE0OjIxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXhlcyBmb3Igc2hvdyBjbWRzLCBjbWRsaW5lLCBoZWxwCgoyMDEwLTA0LTEzIDAyOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBrZXkrY2VydCBpbiAucGVtIGZpbGVzOyBtaXNjIHR3ZWFrcwoKMjAxMC0wNC0xMCAyMzoyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBidWlsZCBmaXggZm9yIEM4OSBjb21waWxlcnMgKGUuZy4gb24gSFAtVVggMTAuMjApCgoyMDEwLTA0LTEwIDIyOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICBpbml0aWFsIGN1dCBhdCB0bHN0bUNlcnRUb1RTTlRhYmxlCgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgYWRkIGRlZmluZSBvZiBtYXggaGFzaCBjb25zdGFudAoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXNlIGNlcnQgdXRpbCBjaGVjayBmb3IgZmluZ2VycHJpbnQgbGVuL2FsZ29yaXRobQoKMjAxMC0wNC0xMCAxMjo1OSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgc2hvdyBjbWQgZml4ZXMKCjIwMTAtMDQtMDkgMjE6MzIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZhaXJseSBmdW5jdGlvbmFsIChub24taW50ZXJhY3RpdmUpIC0gYmUgaXQga25vd246IHRoZXJlIGFyZSBidWdzCgoyMDEwLTA0LTA5IDIwOjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmg6CgogICBtZXJnZSBzb21lIHRhYmxlX2RhdGEuY29uZiBjaGFuZ2VzOyByZW1vdmUgdW51c2VkIGNvZGUgYW5kIGEKICAgYnVuY2ggb2YgdmVyYm9zZSBjb21tZW50cwoKMjAxMC0wNC0wOCAxNDo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGgKCjIwMTAtMDQtMDggMTA6NTUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENoZWNrIHJlc3VsdHMgb2YgY2FsbHMgdG8gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlIGFuZCBsb2cKICAgYW4gZXJyb3IuCiAgIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHJlbGF0ZSB2YXJpb3VzICdjNjQgMzIgYml0IGNoZWNrIGZhaWxlZCcKICAgZXJyb3JzIHdpdGggc3BlY2lmaWMgY291bnRlci4KCjIwMTAtMDQtMDggMDE6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXcgZnVuY3Rpb24KCjIwMTAtMDQtMDggMDE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogdHJhbnNsYXRlIE5PU1VDSCovRU5ET0ZNSUIgZXJyb3JzIGR1cmluZyBSRVNFUlZFMQogICB0byBOT0NSRUFUSU9OCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgTkVXUzogc25tcGQ6IHRhYmxlX2RhdGEvdGRhdGEgbmV4dCBoYW5kbGVyIHdpbGwgbm90IGJlIGNhbGxlZAogICBkdXJpbmcgZ2V0CiAgIHByb2Nlc3NpbmcgaWYgbm8gdmFsaWQgcm93cyBhcmUgZm91bmQgZm9yIHRoZSBoYW5kbGVyCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IGFnZW50IHdpbGwgbm8gbG9uZ2VyIGNhbGwgdGFibGUgaGFuZGxlcnMgaWYgYSBzZXQKICAgcmVxdWVzdCBmb3IKICAgdGhlIGhhbmRsZXIgaGFzIGludmFsaWQgaW5kZXhlcwogICBDSEFOR0VTOiBzbm1wZDogZG9uJ3QgY2FsbCBjbGVhbnVwIG9uIGZpcnN0IHJlcXVlc3Qgb24gYmFkCiAgIGluZGV4ZXMuIGluc3RlYWQsCiAgIHNldCBhY3R1YWwgZXJyb3IgbGF0ZXIsIGFuZCBmcmVlIHJlcXVlc3QgZGF0YSBzZXRzIG9uIGZpcnN0CiAgIHJlcXVlc3QgZm9yIHNldHMKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgZmluZ2VycHJpbnQgdmFyYmluZAoKMjAxMC0wNC0wNyAyMjo1NiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTb2xhcmlzIHRyIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIgcmFuZ2VzIHJlbGlhYmx5IChzZWUgdGhlCiAgIGF1dG9jb25mIG1hbnVhbCksIGNoYW5nZSB0aGUgZXhwcmVzc2lvbiB0byBvbmUgdGhhdCBpcyBzaW1wbGUKICAgZW5vdWdoIHRvIGIgc3VwcG9ydGVkLgoKMjAxMC0wNC0wNyAxNDowNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5zZXJ0IHRoZSBjYWNoZSBoZWxwZXIgY29ycmVjdGx5LgoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9ucyB0byByZW1vdmUgbGlzdC9yb3cgZGF0YSBmcm9tCiAgIHJlcXVlc3QgbGlzdAoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGlmZGVmIHZhciBkZWNsIGZvciB2YXJzIG9ubHkgdXNlZCBpbiBsYXRlciBpZmRlZiBibG9jawoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgUm93U3RhdHVzIGFuZAogICBTdG9yYWdlVHlwZSB2YXJiaW5kcwogICAtIGFsc28gcmVtb3ZlIHNvbWUgZHVwbGljYXRlIGNvZGUgYW5kIGZpeCBjb21tZW50cyBpbmRlbnQgbWFuZ2xlZAoKMjAxMC0wNC0wNyAxMDozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZSwgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZjoKCiAgIHVwZGF0ZSBtYW4gcGFnZTsgZml4IHNoZWxsIHJlZGlyZWN0OyBjcmVhdGUgZXhhbXBsZSByY2ZpbGUgaWYKICAgbWlzc2luZwoKMjAxMC0wNC0wNyAwNzoxNSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBVc2UgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HIGluc3RlYWQgb2YgRElTQUJMRV9NSUJfTE9BRElORwoKMjAxMC0wNC0wNyAwMDozOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBPbmx5IGVuYWJsZSBob3N0U3dJbnN0IHJwbSBzdXBwb3J0IG9uIGxpbnV4IGhvc3RzCiAgIHdpdGggbGlicnBtLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIG5vbi1ycG0gbGludXgKICAgZGlzdHJpYnV0aW9ucy4KCjIwMTAtMDQtMDcgMDA6MTQgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWw6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2UgdGhlIHRlc3Qgc3VpdGUgdG8gd29yayBldmVuIGlmIG1pYgogICBsb29rdXAgaXMgZGlzYWJsZWQuCgoyMDEwLTA0LTA3IDAwOjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNjoKCiAgIENoZWNrIGZvciBjb20yc2VjNiwgbm90IGNvbTJzZWMuCgoyMDEwLTA0LTA2IDIyOjUxICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIE1vdmUgZGlyZWN0b3J5IGNyZWF0aW9uIGJlZm9yZSB0aGUgZGlyZWN0b3JpZXMgYXJlIHVzZWQuCgoyMDEwLTA0LTA2IDExOjAzICBkdHMxMgoKICAgKiBGQVE6CgogICBQeXRob24gaXMgYXBwYXJlbnRseSBjbGllbnQtc2lkZSBvbmx5LgoKMjAxMC0wNC0wNiAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNldCBzdXBwbGVtZW50YXJ5IGdyb3VwcyBiZWZvcmUgY2hhbmdpbmcgVUlECiAgICh3aGljaCBwcm9iYWJseSBpbnZvbHZlcyBnaXZpbmcgdXAgcHJpdmlsZWdlcykKCjIwMTAtMDQtMDYgMDg6NTcgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIERvY3VtZW50IGxhcmdlLWRpc2sgc3RhdGlzdGljcyBhcyBsYXRjaGluZyBhdCAyVGIgKHJhdGhlciB0aGFuCiAgIHdyYXBwaW5nKS4KCjIwMTAtMDQtMDYgMDE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLjEuZGVmOgoKICAgTkVXUzogbWliMmM6IG1pYjJjIGNhbiBub3cgb3B0aW9uYWxseSBydW4gc2VkIG9uIGdlbmVyYXRlZCBjb2RlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb252ZXJ0IEMrKyBjb21tZW50cyB0byBDIGNvbW1lbnRzCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIHB0ciBjaGVjayBiZWZvcmUgcHJ0IHVzZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZmlsZW5hbWUgdG8gZGVidWcgb24gbmV3IGNlcnRzOyBtYWtlIHN0YXRpYyBmdW5jIHRvIHJldHVybgogICBtb2RlIG5hbWVzCgoyMDEwLTA0LTA2IDAwOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFsbG93IGEgZm91bmQgZmluZ2VycHJpbnQgc2VsZi1zaWduZWQgY2VydCBmb3Igbm93OyBldmVudHVhbGx5CiAgIG5lZWQgdG8gcmVzcGVjdCB0aGUgTUlCIGNvbmZpZyB0YWJsZQoKMjAxMC0wNC0wNiAwMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBta2RpciBzbm1wbGliL3RyYW5zcG9ydHMgd2hlbiBETkUgZm9yIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNvdXJjZQogICBkaXIKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBlcnJvciBjb2RlIGNsZWFudXAgZm9yIHRsc2Jhc2Vfd3JhcHVwX3JlY3YKCjIwMTAtMDQtMDUgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3JlIGJldHRlciBlcnJvci9kZWJ1ZyBjb2RlcwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIGZ1dHVyZS1SRkMgYWJvdXQgdGhlIGltcGxlbWVudGF0aW9uOyB1c2UKICAgZmxhZ3MgZm9yIHNlcnZlci9jbGllbnQgc3BlY2lmaWNhdGlvbiBmb3IgZXhwYW5zaW9uCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciB1c2FnZSBjb25zdHJhaW50cwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgZnVuY3Rpb24gcHJvdGVjdGlvbiBsb2dpYyBpbiBhIHRvcC1sZXZlbCBjaGVjawoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggaW5pdCBvcmRlcmluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG12IHRsc2Jhc2UgaW5pdCBmdW5jdGlvbiB0byBhIHByb3BlciBjdG9yIGZvciBhdXRvLWNhbGxpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogZ2VuZXJhdGUgdGhlIHRyYW5zcG9ydCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBsaXN0CiAgIGR5bmFtaWNhbGx5IGFuZCB1c2UgaXQKCjIwMTAtMDQtMDIgMTY6MzUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBtb3ZlZCB0cmFuc3BvcnQgY29kZSBpbnRvIGEgc2VwYXJhdGUgc3ViZGlyZWN0b3J5IGluCiAgIHNubXBsaWIKCjIwMTAtMDQtMDIgMDk6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRG8gbm90IGF0dGVtcHQgdG8gY2hlY2sgc2l6ZW9mIHZvaWQgdG8gb2J0YWluIHRoZSBhbW91bnQgb2YKICAgbWVtb3J5IHRvIGNvcHkuCgoyMDEwLTA0LTAxIDE3OjExICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbnN0ZWFkIG9mIGZ3ZCBkZWNsYXJlcywgcmVxdWlyZSBvdGhlciBoZWFkZXIKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG91dGRhdGVkIGRlYnVnIG1zZwoKMjAxMC0wNC0wMSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjZXJ0YXBpIHRvIGZpbmQgY2VydHMva2V5cwoKMjAxMC0wNC0wMSAxNDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlZ2lzdGVyIGV4dHJhWDUwOVN1YkRpciB0b2tlbgoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTM6MTMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBhZGQgcGVyc2lzdGVudCBzdG9yYWdlOyB0b2tlbiBmb3IgY3JlYXRpbmcgZW50cmllcyBpbiBzbm1wZC5jb25mOwogICBmaXggaW5kZXgKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgY2VydGlmaWNhdGUgYXBpIHRvIHN1cHBvcnQgdGxzL2R0bHMKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBhZGQgZnVuY3Rpb25zIHRvIGdldCBmaW5nZXJwcmludCBmcm9tIGNlcnQgYW5kIGxvZwogICBvcGVuc3NsIGVycnMKCjIwMTAtMDQtMDEgMTI6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IHR5cG8KCjIwMTAtMDQtMDEgMTA6MzMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wNC0wMSAxMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiB0YWJsZV9kYXRhIHRlbXBsYXRlIGVuaGFuY2VtZW50cwogICAtIGFkZCBlcnJvciBjaGVja3MgZHVyaW5nIHRhYmxlIGluaXQKICAgLSBjcmVhdGUgY2FjaGUgZWFybGllciBzbyB3ZSBjYW4gYmFpbCBvbiBmYWlsdXJlCiAgIC0gYWRkIG9wdGlvbiB0byBjcmVhdGUvZGVsZXRlIHJvdyB3L291dCBhZGRpbmcvcmVtb3ZpbmcgZnJvbQogICBjb250YWluZXIKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmg6CgogICBhZGQgaGVscGZ1bCBwYXJhbSBuYW1lcyBhcyBoaW50cyBpbiBwcm90b3R5cGUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBzZWFyY2ggZm9yIGNvbnRhaW5lciBzcGVjaWZpYyBjb250YWluZXIgYmVmb3JlIGdlbmVyaWMKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGVuaGFuY2UgZmlsZSB1dGlscyBhbmQgZGlyIHV0aWxzCiAgIC0gYWRkIG9wdGlvbmFsIHN0YXRzIHN0cnVjdCB0byBuZXRzbm1wX2ZpbGUKICAgLSBnZW5lcmFsaXplIGRpciBjb250YWluZXIgZmlsdGVyLCBhZGQgY29udGV4dCB0byBjYWxsYmFjawogICAtIGFkZCBvcHRpb24gdG8gc3RvcmUgbmV0c25tcF9maWxlcyAody9zdGF0cykgaW4gY29udGFpbmVyCiAgIGluc3RlYWQgb2YganVzdCBuYW1lCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgcHJvdG90eXBlIHRvIGhlYWRlcjsgY2hlY2sgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDEwLTAzLTMxIDE1OjM0ICBqc2FmcmFuZWsKCiAgICogIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9zbm1wLWJyaWRnZS1taWIsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL3NubXAtYnJpZGdlLW1pYi4xLCBtaWJzL0JSSURHRS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAyOTUyNzA4OiBmcm9tIEplbnMgT3N0ZXJrYW1wOiBBZGRlZCBQZXJsCiAgIGltcGxlbWVudGF0aW9uIG9mIEJSSURHRS1NSUIKCjIwMTAtMDMtMzEgMDI6MTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVyIHBhY2tldCBsYWJlbGluZyBmb3IgRFRMU1VEUAoKMjAxMC0wMy0zMSAwMjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY29tbW9uIGNvbnRleHQgY3JlYXRpb24gY29kZQoKMjAxMC0wMy0zMCAyMzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgVExTIG1ldGhvZCB0byBUTFN2MSBmcm9tIFNTTHYyMwoKMjAxMC0wMy0zMCAyMzoyMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIG1vcmUgY29tbW9uIGRhdGEgYW5kIGZ1bmN0aW9uYWxpdHkgaW50byB0aGUgVExTIGJhc2UKCjIwMTAtMDMtMzAgMjM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWlub3IgVExTIGNvZGUgY2xlYW51cAoKMjAxMC0wMy0zMCAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmV3b3JrIGlmKCkgd3JhcHBpbmcgZm9yIGxlc3MgY29uZnVzaW9uIGluIGVycm9yIGhhbmRsaW5nCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb2RlIGNvbnNvbGlkYXRpb24gaW4gc3RhcnRfbmV3X2NhY2hlZF9jb25uZWN0aW8KCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtZSBnZW5lcmljICdiaW8nIHBvaW50ZXIgdG8gJ3JlYWRfYmlvJyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5CgoyMDEwLTAzLTMwIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIGJ1ZmZlcmVkIGRhdGEgY3JlYXRpb24gdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UKCjIwMTAtMDMtMzAgMTc6NTIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCBnZW4gd3JhcHBlciBzY3JpcHQgLSBub3Qgd29ya2luZwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2xlYW4gdXAgZXJyb3Igb3V0cHV0IHNvIGl0IGRvZXNuJ3QgcmVwb3J0IHdhbnRfcmVhZCBhbmQKICAgd2FudF93cml0ZSBlcnJvcnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtaW5nIG9mIHNlbmRpbmcgZnVuY3Rpb24gZm9yIGNsYXJpdHkgYW5kIGNoZWNrIG9uZSBtb3JlCiAgIGxvY2F0aW9uIGZvciBuZWVkZWQgb3V0Z29pbmcgcGFja2V0cwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgZHRsc3VkcCB0cmFjaW5nIHRva2VucwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENIQU5HRVM6IGFkZGVkIGEgbmV3IERFQlVHVFJBQ0VUT0soKSBtYWNybwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmV0dGVyIGNvbW1lbnRzIGFuZCBtb3JlIHdvcmsgb24gc2VuZGluZyBidWZmZXJlZCBkYXRhIGluIHRoZQogICByaWdodCBzcG90cwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJndW1lbnRzIHRvIGdldF9jb21tb25OYW1lCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgb2YgY2FjaGluZyBvZiBwYWNrZXRzIGJlZm9yZSB0aGV5IGNhbiBiZSBzZW50IHZpYSBEVExTCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBoYW5kbGUgU1NMX1dBTlRfUkVBRC9XUklURSBiZXR0ZXI7IHN0aWxsIG5lZWQgdG8gYnVmZmVyIG91dGdvaW5nCiAgIHdyaXRlIGRhdGEKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1pbm9yIGNoYW5nZSB0byBvdXRwdXQgZXJyb3IgcHJpbnRpbmcKCjIwMTAtMDMtMjkgMTU6MjAgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogc25tcGQ6IEZpeCBoYW5kbGluZyBvZiBtdWx0aXBsZSBtYXRjaGluZyBWQUNNIGVudHJpZXMuCiAgIChVc2UgdGhlICJiZXN0IiBtYXRjaCwgcmF0aGVyIHRoYW4gdGhlIGZpcnN0IG9uZSkuCiAgIFJlcG9ydGVkIGJ5IEFkYW0gTGV3aXMuCiAgIE5vdGUgdGhhdCB0aGlzIGNvdWxkIHBvdGVudGlhbGx5IGFmZmVjdCB0aGUgYmVoYXZpb3VyIG9mCiAgIGV4aXN0aW5nIGFjY2VzcyBjb250cm9sIGNvbmZpZ3VyYXRpb25zLgoKMjAxMC0wMy0yOSAxNToxNiAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6Z2V0VmFsdWUoKTogZG9uJ3QgcmV0dXJuCiAgIGEgcG9pbnRlciB0byBhIGJ1ZmZlciBvbiB0aGUgc3RhY2suIEhvdyBjYW4gdGhpcyBoYXZlIHdvcmtlZAogICByZWxpYWJseSA/PwogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OnNldFZhbHVlKCksCiAgIEFTTl9DT1VOVEVSNjQ6IGZpeGVkIGJ1ZyB0aGF0IGNvdWxkIGNhdXNlIHRoaXMgbWV0aG9kIHRvIGZhaWwKICAgZXZlbiB3aGVuIGEgdmFsaWQgbnVtYmVyIHdhcyBwcm92aWRlZC4KCjIwMTAtMDMtMjkgMTU6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGFnZW50IGNyYXNoIHdoZW4gc2VuZGluZyBlbmNyeXB0ZWQgU05NUHYzCiAgIHRyYXBzLgogICBSZXBvcnRlZCBieSBTcmlrYXBpbGFuIEdhbmRoaQoKMjAxMC0wMy0yOSAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENhdGNoIHN0ZGVyciBvbiBXaW5kb3dzIHRvby4KCjIwMTAtMDMtMjkgMTE6NDggIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDMtMjkgMTE6MTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGRlc3Ryb3lpbmcgYQogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGZhaWx1cmUgb2YKICAgY3JlYXRpbmcgYSBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSB0aGUKICAgTmV0U05NUDo6T0lEOjpnZXR0YWJsZSgpIHN1YnJvdXRpbmUuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIHRyaWdnZXJlZCBieQogICB0aGUgaW1wbGVtZW50YXRpb24gb2YgTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgYSBQRFUgcHJvY2Vzc2luZwogICBlcnJvciBpbiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBtZW1vcnkgbGVha3MgdHJpZ2dlcmVkIGJ5IGNyZWF0aW5nIGFuIFNOTVB2MwogICBzZXNzaW9uIHZpYSBOZXRTTk1QOjpTTk1QLgogICAKICAgQWxzbyBmaXhlZCB0aGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBhY2Nlc3NlcyB0cmlnZ2VyZWQgYnkKICAgYWRkaW5nIGEgdmFyYmluZCB0byBhIFBEVSB2aWEgTmV0U05NUDo6U05NUCBpbnRyb2R1Y2VkIGEgZmV3IGRheXMKICAgYWdvLgogICAKICAgVGhlIGJ1Z3MgbWVudGlvbmVkIGFib3ZlIGhhdmUgYmVlbiBmb3VuZCBieSBpbnNwZWN0aW5nIHRoZSBvdXRwdXQKICAgb2YgdGhlIGZvbGxvd2luZyBzaGVsbCBjb21tYW5kOgogICBjZCBwZXJsICYmIHZhbGdyaW5kIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIG1ha2UKICAgdGVzdAoKMjAxMC0wMy0yOSAxMDo1OSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFN3aXRjaGVkIGJhY2sgdG8gdGhlIHByZXZpb3VzIHdheSBvZiBzdGFydGluZyBwcm9jZXNzZXMKICAgYXN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCBpcyBtb3JlIHJlbGlhYmxlLgoKMjAxMC0wMy0yOSAwOToyNyAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIERvIG5vdCBvbmx5IHNhdmUgc25tcGQgLyBzbm1wdHJhcGQgbG9ncyBidXQgYWxzbyB0aGUgc3Rkb3V0IC8KICAgc3RkZXJyIG91dHB1dCBnZW5lcmF0ZWQgYnkgdGhlc2UgcHJvY2Vzc2VzLgoKMjAxMC0wMy0yOCAxNjowOSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENoYW5nZXMgaW4gcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKICAgLSBBZGRlZCBjb21tYW5kLWxpbmUgb3B0aW9uIC1kIGZvciBzbm1wZCBhbmQgc25tcHRyYXBkLgogICAtIHNubXBkIGFuZCBzbm1wdHJhcGQgb3V0cHV0IGlzIG5vdyBzYXZlZCB0byBhIGxvZyBmaWxlIChvbmUgcGVyCiAgIHRlc3QpLgogICAtIFJld3JvdGUgUGVybCBjb2RlIGZvciBzdGFydGluZyB0aGUgc25tcGQvc25tcHRyYXBkIHByb2Nlc3NlcwogICBzdWNoIHRoYXQgdGhlIHNhbWUgY29kZSB3b3JrcyBvbiBVbml4IGFuZCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yOCAxMzozNyAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9tYWxsb2MoKSwKICAgbmV0c25tcF9jYWxsb2MoKSwgbmV0c25tcF9yZWFsbG9jKCksIG5ldHNubXBfc3RyZHVwKCkgYW5kCiAgIG5ldHNubXBfZnJlZSgpLgogICBDSEFOR0VTOiBXaW4zMjogc25tcGxpYjogcmVtb3ZlZCB0aGUgdHJvdWJsZXNvbWUgI2RlZmluZSBtYWxsb2MKICAgbmV0c25tcF9tYWxsb2MgZXRjLiBUaGlzIG1lYW5zIHRoYXQgd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucyBmcm9tCiAgIHRoZSBOZXQtU05NUCBETEwgZnJvbSBDIG9yIEMrKyBjb2RlIHRoYXQgaXMgYmVpbmcgbGlua2VkIGFnYWluc3QKICAgYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBNU1ZDIHJ1bnRpbWUgRExMIHRoYW4gdGhlIE5ldC1TTk1QIERMTCwKICAgYW5kIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkgdGhhdCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBOZXQtU05NUAogICBETEwsIHlvdSB3aWxsIGVpdGhlciBoYXZlIHRvIGNhbGwgdGhlIE5ldC1TTk1QIG1lbW9yeSBhbGxvY2F0aW9uCiAgIGZ1bmN0aW9ucyBleHBsaWNpdGx5IG9yIHJlZGVmaW5lIG1hbGxvYygpIGV0Yy4geW91cnNlbGYuCgoyMDEwLTAzLTI4IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeGVkIGEgcmVjZW50bHkgcmVpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAzLTI3IDE4OjQyICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIGludm9jYXRpb24gb2YgY2FsbG9jKCkgZnJvbSBYU1VCcy4KCjIwMTAtMDMtMjYgMTk6MTYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgRm9sbG93LXVwIGZvciByMTgzNjggYW5kIHIxODM2OTogbWFkZSBzdXJlIHRoYXQgdGhlIE5ldC1TTk1QIFBlcmwKICAgZXh0ZW5zaW9ucyBjb21waWxlIHdpdGhvdXQgdHJpZ2dlcmluZyBwcmVwcm9jZXNzb3Igd2FybmluZ3MgYWJvdXQKICAgcmVkZWZpbmluZyBtYWxsb2MgZXRjLiBub3IgdHJpZ2dlciAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMgb24KICAgV2luZG93cy4KCjIwMTAtMDMtMjYgMTQ6NDQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIFJlZmFjdG9yaW5nOiBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uOgogICBuZXRzbm1wX3NldF9ub25fYmxvY2tpbmdfbW9kZSgpLgoKMjAxMC0wMy0yNiAxMTo1OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAKICAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCB1c2luZyB2YXJpYWJsZXMgb2YgdHlwZSBjaGFyIGFzIGFuCiAgIGFycmF5IHN1YnNjcmlwdC4gTm90ZTogYXMgZmFyIGFzIEkga25vdyB0aGVzZSB3YXJuaW5ncyBhcmUgb25seQogICByZXBvcnRlZCB3aGVuIHVzaW5nIHRoZSBDeWd3aW4gZ2xpYmMgaGVhZGVycy4KCjIwMTAtMDMtMjYgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlIChvbiBXaW5kb3dzIE1TVkMgd2FzIGNvbXBsYWluaW5nCiAgIGFib3V0IHNpemVfdCB3aGlsZSBwcm9jZXNzaW5nIDxuZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oPikuCgoyMDEwLTAzLTI1IDIwOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogYWdlbnR4OiBjaGFuZ2VkIGRlZmF1bHQgVENQIHRhcmdldCBmcm9tIDAuMC4wLjA6NzA1IHRvCiAgIGxvY2FsaG9zdDo3MDUuIFRoaXMgaXMgbm90IG9ubHkgYSBtb3JlIHNlY3VyZSBjaG9pY2UgYnV0IGl0IGFsc28KICAgbWFrZXMgaXQgcG9zc2libGUgb24gV2luZG93cyBzeXN0ZW1zIHRvIGxldCBhbiBBZ2VudFggc3ViYWdlbnQKICAgY29ubmVjdCB0byBhbiBBZ2VudFggbWFzdGVyIGFnZW50IHJ1bm5pbmcgb24gdGhlIHNhbWUgc3lzdGVtCiAgIHdpdGhvdXQgaGF2aW5nIHRvIHNldCB0aGUgdmFyaWFibGUgTkVUU05NUF9EU19BR0VOVF9YX1NPQ0tFVC4KCjIwMTAtMDMtMjUgMTY6MTEgIGJ2YXNzY2hlCgogICAqICBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBXaW4zMjogcGVybDogZml4ZWQgc2V2ZXJhbCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMuCiAgIE5vdGU6IHNpbmNlIGNhbGxvYygpIGlzIG5vdCByZWRlZmluZWQgaW4gPENPUkUvWFNVQi5oPiB1c2luZwogICBjYWxsb2MoKSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGxlYWRzIHRvICJGcmVlIHRvIHdyb25nIHBvb2wiCiAgIGVycm9ycywgYXQgbGVhc3Qgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTY6MDQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbW9yZSBzaWxlbnQgYnkgbm90CiAgIHJlZGVmaW5pbmcgbWFsbG9jKCkgb3IgZnJlZSgpIGR1cmluZyBjb21waWxhdGlvbiBvZiBQZXJsCiAgIGV4dGVuc2lvbnMgKHJlc3VsdGVkIGluIHdhcm5pbmdzIGFib3V0IG1hbGxvYygpIC8gZnJlZSgpCiAgIHJlZGVmaW5pdGlvbiBpbiB0aGUgUGVybCBoZWFkZXIgQ09SRS9YU1VCLmgpLgoKMjAxMC0wMy0yNSAxNTowNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBCVUc6IDI5Njk4NzI6IG1hZGUgc3VyZSB0aGF0IFNPQ0tfU1RBUlRVUCBpcyBpbnZva2VkCiAgIGJlZm9yZSBpbml0X2FnZW50KCkgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTM6MzkgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgbWFjcm9zIGluc3RlYWQgb2YgbWFnaWMgbnVtYmVycyBhcyBuZXRzbm1wX3BhcnNlX2FyZ3MgcmV0dXJuCiAgIGNvZGVzLgoKMjAxMC0wMy0yNSAxMzozMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBidWlsZCBwcm9jZXNzIGJ5CiAgIHJlbW92aW5nIHRoZSBmaWxlIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLiBXaGljaCBJUHY2CiAgIGZ1bmN0aW9ucyBhcmUgZXhwb3J0ZWQgZnJvbSBuZXRzbm1wLmRsbCBpcyBub3cgZGV0ZXJtaW5lZCBieQogICB3aGljaCBvZiB0aGUgZnVuY3Rpb25zIGluIHRoaXMgRExMIGhhdmUgYmVlbiBkZWNsYXJlZCBhcwogICBORVRTTk1QX0lNUE9SVC4KCjIwMTAtMDMtMjQgMjA6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgZG9uJ3QgdXNlIHBhc3NlZCBwdHIgYXMgdGVtcCB2YXI7IHVzZSBzbm1wX2VudW1fbGlzdHMgaW4gaW5pdAogICB0ZXN0CgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIGFkZCBORVRTTk1QX0RTX0xJQl9DRVJUX0VYVFJBX1NVQkRJUgoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgZWFybGllciAoaGF2ZSB0bHNfYm9vdHN0cmFwIGNhbGwgaXQpCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzOyBhZGQgY2VydCBkZWJ1ZyBtc2dzIGluIHNlcnZlciBzZXR1cDsgZnJlZQogICBzc2wgbG9nIGRhdGEKCjIwMTAtMDMtMjQgMTA6NDcgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDSEFOR0VTOiBhcHBzOiByZXR1cm4gbm96ZXJvIGV4aXQgY29kZSB3aGVuIHBhcnNpbmcgb2YgY2VydGFpbgogICBwYXJhbWV0ZXIgZmFpbHMuCiAgIEUuZy4gJy1BJyBwYXJhbWV0ZXIgd2l0aCB0b28gc2hvcnQgcGFzc3BocmFzZSBvciBLdSBrZXkKICAgZ2VuZXJhdGlvbiBpbiBnZW5lcmFsLgoKMjAxMC0wMy0yNCAwNzoxMSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBDb3JyZWN0IHRoZSB0eXBlIG9mIHRoZSBpZC9kZXNjcmlwdGlvbiBvZiB0aGUgT3Blbi1QRFUuCgoyMDEwLTAzLTIyIDE4OjI5ICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFVwZGF0ZXMgZm9yICJtYWtlIGNoZWNrcyI6CiAgIC0gTWFkZSBzdXJlIHRoYXQgZXhpdCBjb2RlIDAgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGlzCiAgIHN1Y2Nlc3NmdWwgYW5kIHRoYXQKICAgZXhpdCBjb2RlIDEgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGZhaWxlZC4KICAgLSBNYWRlICJtYWtlZmlsZWNoZWNrIiBza2lwIFN1YnZlcnNpb24gYm9va2tlZXBpbmcgZmlsZXMgYW5kIGFsc28KICAgdGhlIG1ha2VmaWxlCiAgIHRoYXQgY29udGFpbnMgIm1ha2VmaWxlY2hlY2siLgoKMjAxMC0wMy0yMiAxNjoxMCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQ6CgogICBGaXggdHlwbyBpbiBkZWZhdWx0IElwQWRkcmVzcyB2YWx1ZQogICAoU2VlIEJ1ZyAjMjk3MjE0MSkKCjIwMTAtMDMtMjIgMTU6NDQgIHJzdG9yeQoKICAgKiAgTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvY2FsbGJhY2suYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIGNoYW5nZSBhbGwgYXNzZXJ0KCkgdG8gbmV0c25tcF9hc3NlcnQoKTsgYWRkIGFzc2VydGNoZWNrIHRvIHRvcAogICBsZXZlbCBtYWtlZmlsZQoKMjAxMC0wMy0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogbWlicy9VQ0QtRElTS0lPLU1JQi50eHQ6CgogICBGb2xsb3ctdXAgZm9yIHIxODM0OTogYWRkZWQgbWlzc2luZyBjb21tYSBzdWNoIHRoYXQgaXQgaXMgYWdhaW4KICAgcG9zc2libGUgdG8gY29tcGlsZSBVQ0QtRElTS0lPLU1JQi4KCjIwMTAtMDMtMjIgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBGaXggYnVpbGQgd2hlbiBNSUIgbG9hZGluZyBpcyBkaXNhYmxlZCAoYnJva2VuIGJ5IFNWTiByZXZpc2lvbgogICAxODM0MSkKICAgUmVwb3J0IGRlZmF1bHQgTUlCIHBhdGggZm9yIGNsaWVudCBhcHBzIHRvby4KCjIwMTAtMDMtMjIgMTM6NTkgIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBDSEFOR0VTOiBtYW46IEJVRzogMjk3Mjg2MDogVXBkYXRlIGJyb2tlbiByZWZlcmVuY2VzCgoyMDEwLTAzLTIyIDEzOjQ5ICBkdHMxMgoKICAgKiAgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsICAgCiAgICAgIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IEJVRzogMjk3Mzg5MDogRml4IGltcG9ydHMsIERpc2tJT0VudHJ5IGxpc3QgYW5kCiAgIHJldmlzaW9uIGhpc3RvcmllcwoKMjAxMC0wMy0yMiAxMTo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgV2luMzIsIHdpbkV4dERMTDogc29sdmVkIHRoZSBteXN0ZXJ5IG9mICJBU04gdHlwZSB6ZXJvIi4gVGhlCiAgIHdpbkV4dERMTCBjb2RlIGRvZXMgbm93IG5vIGxvbmdlciB0cmlnZ2VyIGNvbnZlcnNpb25zIG9mIFdpbmRvd3MKICAgQVNOIHZhcmJpbmRzIHdpdGggQVNOIHR5cGUgemVyby4gTm90ZTogdGhpcyBjb2RlIGNoYW5nZSBkb2VzIG5vdAogICBjaGFuZ2UgdGhlIGFnZW50IGJlaGF2aW9yLgoKMjAxMC0wMy0yMCAyMDoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmg6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgoKMjAxMC0wMy0yMCAyMDoyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgQWRkZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggKHNob3VsZCBoYXZlIGJlZW4gYWRkZWQgaW4gdGhlCiAgIHByZXZpb3VzIGNvbW1pdCkuCgoyMDEwLTAzLTIwIDE5OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgCiAgICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBjaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmb3VydGggYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIGZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaAogICB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4gcGFzc2luZyBhbm90aGVyIGRhdGF0eXBlIHRoZW4KICAgY2hhciogb3IgY29uc3QgY2hhciouCiAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQKICAgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqCiAgIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCgoyMDEwLTAzLTIwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBnY2MgKE1pbkdXKS4KCjIwMTAtMDMtMjAgMTk6MDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3Igc2lncHJvY21hc2suCgoyMDEwLTAzLTIwIDA5OjE0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFJlZmFjdG9yaW5nOiBtb3ZlZCBkdXBsaWNhdGVkIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbi4KCjIwMTAtMDMtMTkgMjI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBvcnQgTUlCIGFuZCBjb25maWcgZGlyZWN0b3JpZXMgc2VhcmNoIHBhdGhzIG9uIGVycm9ycwogICAoYW5kIGluIHRoZSBoZWxwIG1lc3NhZ2UpCgoyMDEwLTAzLTE5IDEzOjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBpcyBsb2dnZWQgd2hlbgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGlzIGF0dGVtcHRlZCBtb3JlIGRldGFpbGVkLgogICAKICAgQW4gZXhhbXBsZToKICAgKGJlZm9yZSkKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAobWliSUkvc25tcCwKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCkKICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgogICAoYWZ0ZXIpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb246IE1JQiBtb2R1bGVzIG1pYklJL3NubXAgYW5kCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwgKG9pZCAuMS4zLjYuMS4yLjEuMTEpLgogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCgoyMDEwLTAzLTE5IDEyOjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG11bHRpcGxlIHZhcmJpbmQgc2V0IHJlcXVlc3RzIGFyZSBub3cKICAgcHJvY2Vzc2VkIGNvcnJlY3RseS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbWFkZSBlcnJvciBjb2RlcyBpbiBTTk1QIHJlc3BvbnNlIFBEVXMKICAgYXMgUkZDLWNvbXBsaWFudCBhcyBwb3NzaWJsZS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogaWYgbG9hZGluZyBhbiBleHRlbnNpb24gRExMIGZhaWxzLCB0aGUKICAgcmVhc29uIHdoeSBsb2FkaW5nIGZhaWxlZCBpcyBub3cgbG9nZ2VkLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRoYXQgb2NjdXJyZWQgd2hlbgogICBTbm1wRXh0ZW5zaW9uUXVlcnkoRXgpIGZhaWxlZC4gVGhpcyBtZW1vcnkgbGVhayBoYXMgYmVlbiBmb3VuZAogICB2aWEgc291cmNlIHJlYWRpbmcuIE5vdGU6IGl0IGlzIG5vdCBjbGVhciB3aGV0aGVyIGl0IHdhcyBwb3NzaWJsZQogICB0byB0cmlnZ2VyIHRoaXMgbWVtb3J5IGxlYWsuIFRoaXMgbGVhayBpcyBjZXJ0YWlubHkgbm90IHRyaWdnZXJlZAogICBieSBldmVyeSByZXF1ZXN0IGZvciB3aGljaCBhIHJlc3BvbnNlIHdpdGggbm9uLXplcm8gZXJyb3Igc3RhdHVzCiAgIGlzIHNlbnQgYmFjay4KCjIwMTAtMDMtMTggMTY6MjkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGtlZXAgY291bnQgb2YgZW5hYmxlZCBsb2dzOyB1c2UgdGhpcyBjb3VudCB0byBkZXRlcm1pbmUgd2hlbiB0bwogICBsb2cgdG8gc3RkZXJyCgoyMDEwLTAzLTE4IDE2OjI4ICByc3RvcnkKCiAgICogIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IHNubXAgdG9rZW4gbG9nT3B0aW9uIGFsbG93cyBzcGVjaWZ5aW5nIGxvZwogICBkZXN0aW5hdGlvbnMgdmkgY29uZiBmaWxlcwogICAtIGlmIHN0ZGVyciBsb2cgZW5hYmxlZCBiZWNhdXNlIG9mIG5vIGxvZyBkZXN0aW5hdGlvbiwgdHVybiBpdAogICBvZmYgd2hlbiBhCiAgIGxvZyBkZXN0aW5hdGlvbiBpcyBlbmFibGVkCiAgIC0gZG9uJ3QgY2FsbCBuZXRzbm1wX2VuYWJsZV9zdGRlcnJsb2coKSBmcm9tIGFwcHMgYW55bW9yZQoKMjAxMC0wMy0xOCAxNTozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgdWRwIHRyYW5zcG9ydCBpbmhlcml0YW5jZSB0d2Vha3MKICAgLSBtb3ZlIGJhc2ljIHVkcCByZWN2ZnJvbS9zZW5kdG8gY29kZSBmcm9tIFVEUERvbWFpbiB0bwogICBVRFBCYXNlRG9tYWluCiAgIC0gdHdlYWsgdXBkIHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc3Rpb24KICAgLSB0d2VhayB1ZHBpcHY0IHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc2lvbgogICAtIGFsc28gZml4ZWQgbmV0c25tcF9pcHY0XyogLT4gbmV0c25tcF91ZHBpcHY0XyoKICAgLSB0d2VhayBEVExTVURQRG9tYWluIG90IHVzZSB1ZHBiYXNlXyogaW5zdGVhZCBvZiB1ZHBfKgoKMjAxMC0wMy0xOCAxNToyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvdGVjdCBjZXJ0IGhlYWRlciBhbmQgaW5pdCBjYWxsIHdpdGggaWZkZWZzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHVzZSBuZXcgdXRpbGl0eSByb3V0aW5lIGZvciBjZXJ0IG5hbWVzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcF9vcGVuc3NsIGhlYWRlciBhZnRlciBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhZGQgcm91dGluZXMgdG8gcHVsbC9kdW1wIG5hbWVzIGZyb20gWDUwOSBjZXJ0cwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgZW51bSBsaXN0cyB0byBtYW5hZ2UgZGlyZWN0b3J5IGluZGV4ZXMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgaW5pdGlhbGl6ZSBzdGF0aWMgc3RvcmFnZSBiZWZvcmUgdXNlOyBwcm90ZWN0IGVudW0gaW5pdCBmcm9tCiAgIG11bHRpcGxlIGNhbGxzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgaW5mbyBhYm91dCBuZXcgdHNtL3RscyBtaWJzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCB0byBzbm1wIGluaXQKCjIwMTAtMDMtMTcgMTM6MzcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgTUlCIHJldmlzaW9uIGhpc3RvcnkuCgoyMDEwLTAzLTE3IDEzOjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgb25lIGxlYWstYXQtZXhpdC4KCjIwMTAtMDMtMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyOTcxMjU3OiBGaXhlZCB3aW5FeHRETEwgaGFuZGxpbmcgb2YgbXVsdGktdmFyYmluZAogICBnZXROZXh0IHJlcXVlc3RzIHdpdGggT0lEcyBpbiByZXZlcnNlIGxleGljb2dyYXBoaWNhbCBvcmRlci4KCjIwMTAtMDMtMTcgMTA6MjUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTW9yZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IHR1bmluZy4KCjIwMTAtMDMtMTYgMTk6MzEgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIENvbXBpbGVzIG5vdyB3aXRoIE1JQiBjb21waWxlcnMgdGhhdCBkbyBub3QgcmVjb2duaXplIGEgZG91YmxlCiAgIGRhc2ggYXMgdGhlIGVuZCBvZiBhIE1JQiBjb21tZW50LgoKMjAxMC0wMy0xNiAxOToyNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeGVkIHR3byBzeW50YXggZXJyb3JzLgoKMjAxMC0wMy0xNiAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIGJ1ZyBpbiBnZXROZXh0IGhhbmRsaW5nIHRoYXQKICAgY291bGQgY2F1c2UgdGhlIE1JQiBvdXRwdXQgdG8gYmUgdHJ1bmNhdGVkLgoKMjAxMC0wMy0xNiAxODo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNYWRlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgbW9yZSBkZXRhaWxlZC4KCjIwMTAtMDMtMTYgMTU6MjQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg6CgogICBNYWRlIHN1cmUgdGhhdCBDKysgcHJvZ3JhbXMgdGhhdCBpbmNsdWRlIE5ldC1TTk1QIGhlYWRlciBmaWxlcwogICBjb21waWxlIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoyMCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggLS1kaXNhYmxlLWRlcHJlY2F0ZWQgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIERpc2FibGUgYWxsIHRoZSBwcmludGluZyBpZiBkZWJ1ZyBvdXRwdXQgaXMgb2ZmLgoKMjAxMC0wMy0xNSAwMDoxNyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTUgMDA6MDcgIHRhbmRlcnMKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTQgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIG1ha2Ugc3VyZSBoZWFkZXIgaWZkZWYgbmFtZSBpcyB1bmlxdWUKCjIwMTAtMDMtMTQgMjE6MDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgYWRkIG1pc3NpbmcgaW5pdC9zaHV0ZG93biBwcm90b3R5cGVzIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wMy0xNCAyMTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBtb3ZlIGRlYnVnIG1lc3NhZ2UgZWFybGllcgoKMjAxMC0wMy0xNCAyMTowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF9pbml0X2NvbnRhaW5lcjsgZml4IGNvbXBsZXIgd2FybmluZwoKMjAxMC0wMy0xNCAyMDo1MSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDb3JyZWN0IG5ldHNubXBfYXNzZXJ0X29yX3JldHVybiBhbmQgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCiAgIGZvciB0aGUgTkVUU05NUF9OT19ERUJVR0dJTkcgY2FzZQoKMjAxMC0wMy0xNCAxOToxMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbmFtZSBjZXJ0IGluaXQvc2h1dGRvd24gZnVuY3M7IG9ubHkgY29tcGlsZSBjZXJ0X3V0aWxzIGlmCiAgIHVzaW5nL2hhdmUgU1NMOyBpbml0IGNlcnRzIGZyb20gdGxzIGJhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2FsbCBuZXRzbm1wX2luaXRfb3BlbnNzbCBpbnN0ZWFkIG9mIG5ldHNubXBfaW5pdF90bHNiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgb2JqZWN0cyBpbiB2ZXJzaW9uIDA4IG9mIHRoZSBkdGxzIGRyYWZ0CgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliLCBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBpbXBvcnQgaW5pdGlhbCBjb2RlIGZvciBkdGxzIG1pYnMKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICBUTFNUTS1NSUIgZnJvbSBkcmFmdC1pZXRmLWlzbXMtZHRscy10bS0wOS50eHQKCjIwMTAtMDMtMTQgMTc6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgZmV3IG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDE0OjEwICBidmFzc2NoZQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3Mzg0OiBjaGFuZ2VkIE5FVFNOTVBfRFNfTUFYX1NVQklEUyBmcm9tIDQwIHRvCiAgIDQ4LgoKMjAxMC0wMy0xNCAxMzo1MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDaGFuZ2VzOgogICAtIFJlbW92ZWQgLVduby1jaGFyLXN1YnNjcmlwdHMgZnJvbSBERVZGTEFHUy4gVXNpbmcgYSB2YXJpYWJsZSBvcgogICBleHByZXNzaW9uIG9mCiAgIHR5cGUgY2hhciBhcyBhbiBhcnJheSBpbmRleCBpcyBhbG1vc3QgYWx3YXlzIGFuIGVycm9yLgogICBGdXJ0aGVybW9yZSwKICAgLVdjaGFyLXN1YnNjcmlwdCBkb2VzIG5vdCB0cmlnZ2VyIGFueSB3YXJuaW5ncyBvbiB0aGUgTmV0LVNOTVAKICAgY29kZSBiYXNlLgogICAtIFJlbW92ZWQgLVdpbmxpbmUgZnJvbSBERVZGTEFHUy4gTm90IG9ubHkgd2FzIG5vYm9keSBwYXlpbmcKICAgYXR0ZW50aW9uIHRvIHRoZQogICBtZXNzYWdlcyB0cmlnZ2VyZWQgYnkgLVdpbmxpbmUsIGJ1dCByZWNlbnQgdmVyc2lvbnMgb2YgdGhlIGdjYwogICBjb21waWxlciBhcmUKICAgYmV0dGVyIHRoYW4gaHVtYW5zIGF0IGRlY2lkaW5nIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5saW5lZAogICBhbmQgd2hpY2gKICAgb25lcyBub3QuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVyYW4gYXV0b3JlY29uZi4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTM6MzYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVtb3ZlZCB0aGUgJzB4JyBwcmVmaXggYWdhaW4gZnJvbSBhIGRlYnVnIHN0YXRlbWVudCB0aGF0IHdhcwogICBpbnRyb2R1Y2VkIGluIHIxODI4Mi4KCjIwMTAtMDMtMTMgMTk6MDcgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9UcmFwUmVjZWl2ZXIvcHBwb3J0LmgsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlCiAgIHBlcmwgc3ViZGlyZWN0b3J5LgogICBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuCgoyMDEwLTAzLTEzIDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmUgdGhlIFRMU1RDUCBET01BSU4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCBpZmRlZiB0eXBvCgoyMDEwLTAzLTEyIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgZGVidWdnaW5nIHN5bWJvbCBuYW1lcyB0byBhIGdlbmVyaWMgdGxzIHN0cmluZwoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBpbml0aWFsIHdvcmtpbmcgU05NUCBvdmVyIFRMUyBvdmVyIFRDUCBjb25uZWN0aW9uCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBwcmludCBhIG1vcmUgY29tcGxldGUgT3BlblNTTCBzdGFjawoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggYXNzZXJ0IHN0YXRlbWVudHMKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgYWRkZWQgYW4gYWNjZXB0ZWRfYmlvIHBvaW50ZXIgZm9yIHRoZSBiaW8gYWZ0ZXIgU1NMX2FjY2VwdAoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIHRoZSBhYmlsaXR5IGZvciBmX2NvcHkgYW5kIGZfY29uZmlnCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIG1pc3NpbmcgOwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGQgYSBmX2NvcHkgcG9pbnRlcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICByZXR1cm4gaW50IG5vdCBpbnQgKiBvbiBlcnJvcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBhIGZfY29uZmlnIGZ1bmN0aW9uIGZvciB0cmFuc3BvcnRzCgoyMDEwLTAzLTEyIDExOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBQQVRDSDogMjg1MDA2NzogU3VwcHJlc3MgZXh0cmFuZW91cyAiaW5kZXgiCiAgIGhlYWRlciB0b2tlbgogICBQYXRjaCBzdXBwbGllZCBieSBEYW4gTmVsc29uCgoyMDEwLTAzLTEyIDExOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mCiAgIGdldHVsb25nZnJvbXN5c2NsYXNzbmV0c3RhdGlzdGljcygpCgoyMDEwLTAzLTExIDE2OjUyICBkdHMxMgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSBmb3JtYXQgb2YgdGhlIC1lLy1FIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKMjAxMC0wMy0xMSAxNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKGFiYW5kb25lZCkgJ2RhdGFzZXQyJyBoZWxwZXIuCgoyMDEwLTAzLTExIDE1OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgRG9uJ3QgaW5pdGlhbGlzZSB0aGUgVExTIHRyYW5zcG9ydCB1bmxlc3MgaXQncyBhY3R1YWxseSBiZWVuCiAgIGNvbmZpZ3VyZWQgaW4uCgoyMDEwLTAzLTExIDE1OjQ3ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgdXNlIFNOTVBfVE1QRElSIGluc3RlYWQgb2YgVE1QRElSCgoyMDEwLTAzLTExIDE1OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBxdWVyeSByaWdodCBib29sICh0c20gcHJlZml4IGlzIGxpYiBib29sLCBub3QgYXBwKQoKMjAxMC0wMy0xMSAxNTowOCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5NTIwMzQ6IFJldHVybiBvZiB0aGUgR3JlYXQgU3VTRSAnc3ByaW50ZicKICAgSHVudC4uLgogICBQYXRjaCBzdXBwbGllZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTQ6NTUgIGR0czEyCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5Mzc5OTY6IEFkZCBEYXRlOiBoZWFkZXIgdG8gZW1haWwgc2VuZCBieQogICB0cmFwdG9lbWFpbAoKMjAxMC0wMy0xMSAxNDo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2NzQwMDogUmV0cmlldmUgZXJyb3IgY291bnRlcnMgZm9yIHRoZQogICBFdGhlckxpa2UtTUlCCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzLgoKMjAxMC0wMy0xMSAxNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY4NjQyOiBDYXRjaCBvdmVyZmxvdyBvZiBwYXNzLXRocm91Z2gKICAgY29tbWFuZCBidWZmZXIuCiAgIFBhdGNoIGZyb20gQW5kcmVhcyBKYWVnZXIvTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDEyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1NjY1NzogSGFuZGxlIG92ZXItbGVuZ3RoIEFnZW50WCBPSURzLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2IgV2VzdAoKMjAxMC0wMy0xMSAxMjoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVidWcgcGFyYW1ldGVyLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIChkdW1teSkgcmV0dXJuIHZhbHVlLCB0byBzdXBwcmVzcyBjb21waWxlcgogICB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzIG9mIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdy4KICAgVGhpcyBkb2Vzbid0IF9hY3R1YWxseV8gcHJvdGVjdCBhZ2FpbnN0IHN1Y2ggYW4gb3ZlcmZsb3csCiAgIHNpbmNlIHRoZSB0YXJnZXQgYnVmZmVyIGlzIG5vbi1lbXB0eSwgc28gc3RybmNhdCBjYW4ndAogICB1c2UgaXQgYWxsIGFueXdheS4gQnV0IHRoaXMgc2hvdWxkIGF0IGxlYXN0IG1pc2xlYWQgdGhlCiAgIGNvbXBpbGVyIHN1ZmZpY2llbnRseSB0byBzaHV0IGl0IHVwIQogICAKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDExOjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIFJlcGxhY2UgYmFja3F1b3RlIHdpdGggc2luZ2xlIHF1b3RlIGluIGNvbmZpZ3VyZSBvdXRwdXQgbWVzc2FnZS4KICAgV2hpbGUgdGhpcyBjaGFuZ2UgaXMgcHJvYmFibHkgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgaXQgZmVlbHMKICAgc2Vuc2libGUgdG8gYXZvaWQgdGhpcyBwYXJ0aWN1bGFyIHVzZSBvZiBiYWNrcXVvdGVzLCBKdXN0IEluCiAgIENhc2UuCiAgIFNlZSBkaXNjdXNzaW9uIGluIFBhdGNoICMyOTUyMTY5CgoyMDEwLTAzLTExIDExOjQzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDI5NTIxNDA6IE92ZXJmbG93IGNvdW50ZXIzMiBhbmQgZ2F1Z2UzMgogICBvbiA2NGJpdCBzeXN0ZW1zIGNvcnJlY3RseQogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjk1MjAyMDogRXhwbGljaXRseSBzZXQgcGVybWlzc2lvbiBvbgogICB0ZW1wb3JhcnkgdGVzdGluZyBvdXRwdXQgZGlyZWN0b3JpZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0by4KCjIwMTAtMDMtMTEgMTE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTUwODQ1OiBGaXggaWZIaWdoU3BlZWQgY2FsY3VsYXRpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDA4OjI2ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL09JRC54cywgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgTWFkZSBjb21waWxhdGlvbiBvZiB0aGUgUGVybCBtb2R1bGUgTmV0U05NUC5wbSBvbiBXaW5kb3dzIG1vcmUKICAgc2lsZW50OiBhZGRlZCBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIGFuZCBtYWRlIHN1cmUgdGhhdCAjaW5jbHVkZQogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IG9jY3VycyBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGUgZmlsZQogICB0aGF0IGRlZmluZXMgX1dJTjMyX1dJTk5ULgoKMjAxMC0wMy0xMCAyMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBjcmVhdGUgaW5kZXhlcyBmb3IgY2VydGlmaWNhdGVzIGluIGNvbmZpZyBwYXRoCgoyMDEwLTAzLTEwIDE4OjQ4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBBZGRlZCAiI2luY2x1ZGUgPHVuaXN0ZC5oPiIgc3VjaCB0aGF0IG9uIFVuaXggc3lzdGVtcyB0aGUKICAgY29tcGlsZXIgZG9lcyBub3QgcHJpbnQgYSB3YXJuaW5nIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IKICAgdGhlIGZ1bmN0aW9uIGNsb3NlKCkuCgoyMDEwLTAzLTEwIDE4OjMwICByc3RvcnkKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuNi5kZXYKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHVwZGF0ZSBWZXJzaW9uLU11bmdlIGZvciByZW5hbWVkIGNvbmZpZ3VyZS5hYwoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBzYXZlIGNvbmZpZ3VyZSBjYWNoZSBldmVyeSBvbmNlIGluIHdoaWxlCgoyMDEwLTAzLTEwIDE2OjEyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgUmVvcmRlcmVkIHNvbWUgb2YgdGhlIE1ha2VmaWxlIHJ1bGVzIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZQogICBkaWZmcyB3aXRoIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLgoKMjAxMC0wMy0xMCAxNjoxMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMiwgYmF0Y2ggYnVpbGRpbmc6IERMTCBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTEwIDE2OjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIGEgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nIGJ5IGFkZGluZyBhIGZvcndhcmQKICAgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbiBfY2FjaGVfZnJlZSgpLgoKMjAxMC0wMy0xMCAxNjowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBXaW4zMi4KCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgbWlzc2luZyBjb250cmlidXRvcnMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggcG90ZW50aWFsIGRvdWJsZSBmcmVlIGluIENPTlRBSU5FUl9GUkVFCiAgIC0gYWxzbyBhZGRlZCBzZXZlcmFsIGNvbXBhcmUgcm91dGluZXMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBmcmVlaW5nIGEgY2FjaGUsIHN0b3AgdGltZXIgYW5kIGNhbGwgY2FjaGUKICAgZnJlZSBmdW5jCiAgIC0gYWxzbyBhZGQgbmV0c25tcF9jYWNoZV9yZW1vdmUKCjIwMTAtMDMtMTAgMDM6NTIgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdW5kbyBjb21taXQgMTgyMzQKCjIwMTAtMDMtMTAgMDM6NDEgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTWVyZ2UgYnJhbmNoICdwdWxsbWUnIG9mIC4uL3RydW5rLXN0YWdpbmcKCjIwMTAtMDMtMDkgMTc6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfcmVhZF9tb2R1bGUoKSBmcm9tIG5ldHNubXAuZGxsCiAgIHN1Y2ggdGhhdCBOZXRTTk1QLnBtIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMDkgMTc6NDcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFNpbXBsaWZpZWQgdHdvIG1ha2VmaWxlcyB1c2VkIGJ5IGJ1aWxkLmJhdCAoV2luMzIpLgoKMjAxMC0wMy0wOSAxNzoyNCAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJ1aWxkaW5nIE5ldFNOTVAucG0gZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBjb21waWxlciB3YXJuaW5ncyBhYm91dCByZWRlZmluaW5nIF9XSU4zMl9XSU5OVCBub3IKICAgTlRERElfVkVSU0lPTi4KCjIwMTAtMDMtMDkgMTc6MjIgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBOZXRTTk1QLnBtIG1vcmUgc2lsZW50IGJ5CiAgIGFkZGluZyB0aGUgTVNWQyBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTLgoKMjAxMC0wMy0wOSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSBkZWJ1ZyBtc2cgdXNlZCBkdXJpbmcgZGVidWdnaW5nCgoyMDEwLTAzLTA5IDE3OjAyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgd3JhcHBlciAtIHRlc3RpbmcgcmVwbyB3cml0ZSBwcml2cwoKMjAxMC0wMy0wOSAxMDoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBidWlsZCBydWxlcy4gVGhlc2UgZHVwbGljYXRlIHJ1bGVzIHdlcmUKICAgaGFybWxlc3MgYnV0IHRyaWdnZXJlZCBhIHdhcm5pbmcuCgoyMDEwLTAzLTA5IDAyOjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZGlyZWN0b3J5IGNvbnRhaW5lciBlbmhhbmNlbWVudHMKICAgLSBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrCiAgIC0gYWRkIGZpbHRlciBjYWxsYmFjayB0byBmaWx0ZXIgZmlsZXMgcmV0dXJuZWQKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiByZWxhdGl2ZSBhbmQgbm90IGZ1bGwgcGF0aHMKICAgLSBhZGQgb3B0aW9uIHRvIHNvcnQgcmV0dXJuZWQgbGlzdAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIGVtcHR5IGNvbnRhaW5lciBpbnN0ZWFkIG9mIE5VTEwgaWYgbm8KICAgZmlsZXMgZm91bmQKICAgLSBjaGFuZ2UgZGVmYXVsdCBjb250YWluZXIgbmFtZSB0byBkaXJlY3RvcnkgdGhhdCB3YXMgc2Nhbm5lZAogICAtIHR3ZWFrIGRlYnVnL2xvZyBtZXNzYWdlcwoKMjAxMC0wMy0wOCAyMzowNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBkZWZpbmUgYW5kIHVzZSBuZXcgTkVUU05NUF9MT0dPTkNFIG1hY3JvCgoyMDEwLTAzLTA4IDIyOjQ0ICByc3RvcnkKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBjb25mIGZpbGVzIGNhbiBub3cgaW5jbHVkZSBvdGhlciBjb25mIGZpbGVzCiAgIC0gYWxzbyB0d2Vha2VkIGRlYnVnIHRva2VucyBoZXJlIGFuZCB0aGVyZQoKMjAxMC0wMy0wOCAyMjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0eXBvIChjYXVzZWQgZXh0ZXJuYWwgcmVmZXJlbmNlIHdoZW4gRFRMU1VEUCBjb25maWd1cmVkCiAgIHdpdGhvdXQgZHRsc3RjcCkKCjIwMTAtMDMtMDYgMDI6MjcgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXRzbm1wX2NvbnRhaW5lciBlbmhhbmNlbWVudHM6CiAgIC0gYWRkIGZyZWVfaXRlbSBmdW5jdGlvbjsgZGVmYXVsdHMgdG8KICAgbmV0c25tcF9jb250YWluZXJfc2ltcGxlX2ZyZWUKICAgLSBhZGQgQ09OVEFJTkVSX0ZSRUVfQUxMIG1hY3JvL2Z1bmN0aW9uIChsaWtlIENPTlRBSU5FUl9DTEVBUiBidXQKICAgY2FsbHMgY29udGFpbmVyIGZyZWVfaXRlbSBmb3IgZWFjaCBpdGVtIGluIHByaW1hcnkgY29udGFpbmVyKQogICAtIGFkZCBhYmlsaXR5IHRvIHNldCBvcHRpb25zIG9uIGJpbmFyeV9hcnJheSBjb250YWluZXJzCgoyMDEwLTAzLTAyIDE3OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgTWFkZSBzdXJlIHRoYXQgd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluIGJ5IGFkZGluZyBtaXNzaW5nCiAgIHNvdXJjZSBmaWxlIG5hbWVzLiBTb3J0ZWQgc291cmNlIGZpbGUgbmFtZXMgYWxwaGFiZXRpY2FsbHkgdG9vLgoKMjAxMC0wMy0wMiAxNjo1NCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiB0aGUgYmF0Y2ggZmlsZSB3aW4zMi9idWlsZC5iYXQKICAgd29ya3MgYWdhaW4gd2l0aCB0aGUgUGxhdGZvcm0gU0RLIGVuYWJsZWQuCgoyMDEwLTAzLTAyIDE2OjUyICBidmFzc2NoZQoKICAgKiB3aW4zMi9NYWtlZmlsZS1hcHBzLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgyMTUgKHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSBjbC5leGUgb3B0aW9uIC9HWCBieQogICB0aGUgZXF1aXZhbGVudCAvRUhzYzsgYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIiwgYWRkZWQKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgYW5kIHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVgpLgoKMjAxMC0wMi0yOCAxNTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBXaW4zMjogZml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHJlZGVmaW5pdGlvbiBvZgogICBfV0lOMzJfV0lOTlQgYnkgbWFraW5nIHN1cmUgdGhhdCA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGlzCiAgIGluY2x1ZGVkIGJlZm9yZSA8d2luZG93cy5oPi4KCjIwMTAtMDItMjggMTU6MjQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZXBsYWNlZCB0aGUgb2Jzb2xldGUgL0dYIGJ5IHRoZQogICBlcXVpdmFsZW50IC9FSHNjLgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgdG8gbWFrZSBidWlsZGluZyB3aXRoIE1TVkMgMjAwOAogICBtb3JlIHNpbGVudC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIC9GcC4uLiBhbmQgL1lYLiBUaGVzZQogICBvcHRpb25zIGluZmx1ZW5jZSBob3cgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzIGFyZSBnZW5lcmF0ZWQsCiAgIHdoaWNoIGFyZSBub3QgdXNlZCBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QuIC9ZWCBpcyBub3QKICAgc3VwcG9ydGVkIGJ5IE1TVkMgMjAwOC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIGEgZHVwbGljYXRlIG9jY3VycmVuY2Ugb2YKICAgc3RydG91bGwub2JqLgoKMjAxMC0wMi0yOCAxNDoxMSAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlLCB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogYXBwbGllZCB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgdG8KICAgdGhlIHdpbjMyL0NvbmZpZ3VyZSBzY3JpcHQgYW5kIHdpbjMyL01ha2VmaWxlLmluLgoKMjAxMC0wMi0yNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCAgIAogICAgICBzbm1wbGliL2dldG9wdC5jLCBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgc25tcGxpYi93aW5waXBlLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBkZWNsYXJlZCBhbGwgZnVuY3Rpb25zIHRoYXQgYXJlIGV4cG9ydGVkIGZyb20gdGhlCiAgIE5ldC1TTk1QIERMTCBhcyBORVRTTk1QX0lNUE9SVC4gVGhlIHJlc3VsdCBpcyBhIG1pbm9yCiAgIG9wdGltaXphdGlvbjogY29kZSB0aGF0IHVzZXMgdGhlIE5ldC1TTk1QIERMTCB3aWxsIG5vdyBjYWxsIHRoZQogICBETEwtZXhwb3J0ZWQgZnVuY3Rpb25zIGRpcmVjdGx5IGluc3RlYWQgb2YgaW5kaXJlY3RseSB2aWEgdGhlCiAgIHN0dWIgaW4gdGhlIGltcG9ydCBsaWJyYXJ5LgoKMjAxMC0wMi0yNyAxMTo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgUmVtb3ZlZCBhIHJlZHVuZGFudCBzdHJuY2FzZWNtcCgpIGRlY2xhcmF0aW9uLgoKMjAxMC0wMi0yNyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDItMjcgMDk6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg5IChyc3RvcnkpOiBidWlsZHMgYWdhaW4gb24gV2luZG93cy4KCjIwMTAtMDItMjUgMTc6NTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIFJldmVydGVkIHIxODIwNyAoZHNwL2RzdyB0byB2Y3Byb2ovc2xuIGNvbnZlcnNpb24pIGV4Y2VwdCB0aGUKICAgc3VwcHJlc3Npb24KICAgbGlzdCBjaGFuZ2VzLiBUaGUgZ29hbCBvZiB0aGlzIGNvbnZlcnNpb24gd2FzIHR3b2ZvbGQ6IG5vdCBvbmx5CiAgIHRvIGJlIGFibGUKICAgdG8gbG9hZCB0aGUgcHJvamVjdCBmaWxlcyBpbiBNU1ZDIDIwMDIgLSAyMDA4IGJ1dCBhbHNvIHRvIGJlIGFibGUKICAgdG8gY29tbWl0CiAgIGNoYW5nZXMgbWFkZSBmcm9tIGluc2lkZSB0aGUgTVNWQyAyMDA4IElERS4gVW5mb3J0dW5hdGVseQogICBjb252ZXJ0aW5nIGRzcC9kc3cKICAgZmlsZXMgdG8gdmNwcm9qL3NsbiBmaWxlcyB3aXRoIE1TVkMgMjAwOCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvCiAgIGxvYWQgdGhlCiAgIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBlYXJsaWVyIE1TVkMgdmVyc2lvbnMuIFdoeSBvbiBlYXJ0aCBkaWQKICAgTWljcm9zb2Z0CiAgIGRlY2lkZSB0byBwdXQgYSB2ZXJzaW9uIG51bWJlciBpbiBYTUwgZmlsZXMgPwoKMjAxMC0wMi0yNCAxOTo0MSAgYnZhc3NjaGUKCiAgICogIHdpbjMyLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCB3aW4zMi9saWJhZ2VudCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9saWJzbm1wLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIHdpbjMyL25ldHNubXBtaWJzLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgd2luMzIvc25tcGJ1bGtnZXQsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCB3aW4zMi9zbm1wYnVsa3dhbGssICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEsIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwKICAgICAgICAgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0LCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgd2luMzIvc25tcG5ldHN0YXQsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0LCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCB3aW4zMi9zbm1wdGFibGUsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCB3aW4zMi9zbm1wdHJhcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9zbm1wdXNtLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbSwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIHdpbjMyL3NubXB3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgKHJldmVydGVkKSBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGNvbnZlcnRlZCAuZHNwLy5kc3cgZmlsZXMgdG8KICAgLnZjcHJvai8uc2xuIGZpbGVzLiBUaGlzIGltcGxpZXMgdGhhdCBzdXBwb3J0IGZvciBNU1ZDIDYuMCBoYXMKICAgYmVlbiBkcm9wcGVkIGFuZCB0aGUgbWluaW11bSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB2ZXJzaW9uCiAgIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBpcyBNaWNyb3NvZnQgVmlzdWFsCiAgIFN0dWRpbyAuTkVUICgyMDAyKS4KCjIwMTAtMDItMjMgMTk6MDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHdoZW4gZ2VuZXJhdGluZyBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBzeXN0ZW0KICAgbG9jYXRpb24gYW5kIG5vIGRvbWFpbiBuYW1lIGlzIGZvdW5kIGluIC9ldGMvcmVzb2x2LmNvbmYsIHVzZQogICAiQG5vLndoZXJlIiBpbnN0ZWFkIG9mICIiLgoKMjAxMC0wMi0yMyAxODo1MCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBtNC9hY19wcm9tcHRfdXNlci5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMyAxODo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgUmVtb3ZlZCBhbGwgdHJhbnNwb3J0IHRlc3RzIHNpbmNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUKICAgd2hlcmUgdGhleSBjYW4gc2FmZWx5IG9wZXJhdGUgKHdhcyBzdG9wcGluZyB0YW5kZXJzJyBuaWdodGx5CiAgIHRlc3RzIGZyb20gc3VjY2VlZGluZykKCjIwMTAtMDItMjMgMTg6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBlcnJvciBhbmQgZGVidWdnaW5nIG91dHB1dAoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHRoZSBzZXJ2ZXIgY29udGV4dCBnZW5lcmF0b3IgdG8gYWN0dWFsbHksIHVtLCByZXR1cm4gdGhlCiAgIGNvbnRleHQuCgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbml0aWFsaXplIHRoZSAncmVzJyB2YXJpYWJsZSBzaW5jZSBpdCdzIGNoZWNrZWQKCjIwMTAtMDItMjMgMTg6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBwcm9ncmVzcyB0b3dhcmQgYSByZWFsIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB0bHN0Y3AgY3RvciBpbnZvY2F0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgcmVxdWlyZSBUTFNCYXNlCgoyMDEwLTAyLTIzIDE4OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGhvc3QgaWRlbnRpZmllciBhcyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6MzUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBzaWduaWZpY2FudCBtb3JlIHdvcmsgb24gdGhlIFRMUyBUQ1AgZG9tYWluCgoyMDEwLTAyLTIzIDE3OjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE5MyAoanNhZnJhbmVrKTogcmVyYW4gYXV0b3JlY29uZiBmb3IgdGhlIHRydW5rCiAgIGFuZCB0aGUgNS41IGJyYW5jaC4KCjIwMTAtMDItMjMgMTQ6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgTkVUU05NUF9QUkl6IGluc3RlYWQgb2YgJXoKCjIwMTAtMDItMjMgMTI6MjcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXhlZCBjb21waWxhdGlvbiB3aXRoIHJwbS00LjYuCiAgIFR1cm4gb24gdGhlIGxlZ2FjeSBBUEkgd2hlbiBycG0tNC42IGlzIGRldGVjdGVkLgoKMjAxMC0wMi0yMyAwNzozOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODAwMCAoZGlzYWJsaW5nIFNJR0FMUk0gc3VwcG9ydCkgYmVjYXVzZSB0aGlzIGludm9sdmVzCiAgIGEgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2UuCgoyMDEwLTAyLTIzIDAwOjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTAyLTIzIDAwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVidWcgbXNnIHR3ZWFrczsgdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMKICAgLSBhZGQgZGVidWcgaGVhZGVyIGZvciBzbm1wIHZlcnNpb24KICAgLSBhZGQgbGVuZ3RoIHRvIGRlYnVnIHNlbmQvcmVjZWl2ZSBtZXNzYWdlcwogICAtIHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zIGZvciBzZW5kL3JlY3YvZmluZGluZyBwZWVyIGFkZHJlc3MKCjIwMTAtMDItMjMgMDA6MjUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZywgbmV0c25tcF90cmFuc3BvcnRfc2VuZCAmCiAgIG5ldHNubXBfdHJhbnNwb3J0X3JlY3YKICAgLSBtb3ZlcyB0cmFuc3BvcnQgbWFuaXB1bGF0aW9uIGludG8gdHJhbnNwb3J0IGNvZGUKICAgLSBjZW50cmFsIHBsYWNlIGZvciBsb2dnaW5nL2RlYnVnZ2luZyBzZW50L3JlY2VpdmVkIGRhdGEKCjIwMTAtMDItMjIgMTk6MzMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjIgMTk6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4Ni4gUmVncmVzc2lvbiB0ZXN0IDM0ICh3aGV0aGVyIGF1dGhlbnRpY2F0aW9uCiAgIGZhaWx1cmUgdHJhcHMgYXJlIHNlbnQgYnkgc25tcGQpIHBhc3NlcyBub3cgYWdhaW4uCgoyMDEwLTAyLTIyIDA5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgc3VyZSB0aGF0IGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWx1cmUgZG9lcwogICBub3QgY3JlYXRlIGRhbmdsaW5nIHBvaW50ZXJzIGluIHRoZSBNSUIgc3VidHJlZSByZWdpc3RyeS4KCjIwMTAtMDItMjIgMDk6MTEgIGJ2YXNzY2hlCgogICAqIGFnZW50LCBhcHBzLCBhcHBzL3NubXBuZXRzdGF0OgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0yMiAwODo0MiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODoxMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNaW5HVyB3aGVuIElQdjYgc3VwcG9ydCBpcyBlbmFibGVkLgoKMjAxMC0wMi0yMSAxODo1OCAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbGlic2RsbC5kc3csICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgd2luMzIvd2luMzJkbGwuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiByZW5hbWVkIGxpYnNkbGwuZHN3IGludG8gd2luMzJkbGwuZHN3LgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgbGlua2luZyB0aGUgTmV0LVNOTVAKICAgYXBwbGljYXRpb25zIHdpdGggbmV0c25tcC5kbGwgYnkgYWRkaW5nIGFsbCBhcHBsaWNhdGlvbiBwcm9qZWN0cwogICB0byB0aGUgc2FtZSB3b3Jrc3BhY2UgdGhhdCBpcyB1c2VkIGZvciBidWlsZGluZyB0aGUgRExMLgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbmV0c25tcC5kbGwgbGVzcyBlcnJvcgogICBwcm9uZSBieSBsZXR0aW5nIHRoZSBjb21waWxlciBwcmludCBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZQogICBwcmVwcm9jZXNzb3Igc3ltYm9sIE5FVFNOTVBfVVNFX0RMTCBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDItMjEgMTg6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQWRkZWQgbGlic25tcC5kZWYgdG8gdGhlIGxpc3Qgb2YKICAgbGlic25tcF9kbGwuZHNwIHNvdXJjZSBmaWxlcyBzdWNoIHRoYXQgdGhlIERMTCBpcyByZWJ1aWx0IHdoZW4KICAgdGhlIC5kZWYgZmlsZSBoYXMgYmVlbiBtb2RpZmllZC4KCjIwMTAtMDItMjEgMTg6NDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3NldF9saW5lX2J1ZmZlcmluZygpIGZyb20KICAgbmV0c25tcC5kbGwuCgoyMDEwLTAyLTIxIDE3OjM5ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3JlIFdpbjMyIElQdjYgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnRzOgogICAtIE1vdmVkICN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYIGZyb20gc25tcGxpYi8qLmMgdG8KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguCiAgIC0gQ2hhbmdlZCB0aGUgZ2xvYmFsIGluNmFkZHJfYW55IHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgc3VjaCB0aGF0CiAgIG11bHRpcGxlIGRlZmluaXRpb25zIGRvIG5vdCB0cmlnZ2VyIGEgbGlua2VyIGVycm9yLgogICAtIEFkZGVkIHR5cGVkZWZzIGZvciB1aW50OF90LCBpbnQ4X3QsIHVpbnQxNl90IGFuZCBpbnQxNl90LgogICAtIFJlcGxhY2VkICcjaWYgTkVUU05NUF9FTkFCTEVfSVBWNicgYnkgJyNpZmRlZgogICBORVRTTk1QX0VOQUJMRV9JUFY2Jy4KCjIwMTAtMDItMjEgMDg6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmM6CgogICBtYWtlIHN1cmUgdGhhdCBJTkFERFJfTk9ORSBpcyBkZWZpbmVkIChmaXhlcyBidWlsZCBlcnJvciBvbgogICBTb2xhcmlzKQoKMjAxMC0wMi0xOSAxOTozOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBTeW5jaHJvbml6ZWQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0wMi0xOSAxNDoxOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGxpYnNubXAgYnVpbGRzIGFnYWluIGFzIGEgRExMIHdoZW4gSVB2NiBpcwogICBlbmFibGVkLgoKMjAxMC0wMi0xOSAxMzoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3cgdXAgZm9yIHIxODE2NDogc3luY2hyb25pemVkIGxpYnNubXAuZGVmLmluIHdpdGgKICAgbGlic25tcC5kZWYKCjIwMTAtMDItMTkgMDk6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGFkZGVkICNpbmNsdWRlIDxtYWxsb2MuaD4gaW4KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0IHRoZSBNU1ZDIGNvbXBpbGVyCiAgIGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIGJ5IHRoZSBtYWxsb2MgcmVkZWZpbml0aW9uIHdoZW4gYnVpbGRpbmcKICAgbGlic25tcCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0ZWQgbmV0c25tcF9wYXJzZV9hcmdzKCkgc3VjaCB0aGF0IHRoZSBOZXQtU05NUCBhcHBsaWNhdGlvbnMKICAgYnVpbGQgYWdhaW4gd2hlbiBsaWJzbm1wIGlzIGJ1aWx0IGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbW92ZWQgTVNWQyBPcGVuU1NMIGxpbmtlciBzZXR0aW5ncyBmcm9tCiAgIHNubXBsaWIva2V5dG9vbHMuYyB0byB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQKICAgdGhlc2Ugc2V0dGluZ3MgYXJlIG5vdCBvbmx5IGVmZmVjdGl2ZSB3aGVuIGJ1aWxkaW5nIHNubXBsaWIgYXMgYQogICBzdGF0aWMgbGlicmFyeSBidXQgYWxzbyB3aGVuIGFueSBOZXQtU05NUCBhcHBsaWNhdGlvbiBpcyBidWlsdAogICB0aGF0IGxpbmtzIHdpdGggc25tcGxpYiBhcyBhIHN0YXRpYyBsaWJyYXJ5IG9yIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODozMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgV2luMzIgY2xlYW51cDogTVNWQyAvIERMTCB0ZXN0cyBub3cgdXNlIHRoZSBvZmZpY2lhbGx5IGVuZG9yc2VkCiAgIG1hY3JvIG5hbWVzLgoKMjAxMC0wMi0xOSAwNzo1MCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQnVpbGRzIGFnYWluLgoKMjAxMC0wMi0xOSAwNjo0NyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDI5NDI5NDA6IGZyb20gIkJpbGwgRmVubmVyIjogQWRkIGEgbmV3CiAgIGZ1bmN0aW9uLCBuZXRzbm1wX3BhcnNlX2FyZ3MsIHRoYXQgaXMgbGlrZSBzbm1wX3BhcnNlX2FyZ3MgYnV0CiAgIHRha2VzIGFuIGFkZGl0aW9uYWwgYml0bWFzaywgZmxhZ3MsIHRvIGFmZmVjdCB0aGUgYmVoYXZpb3VyLiBBbHNvCiAgIHJlbW92ZSB0aGUgbWFnaWMgaGFuZGxpbmcgb2Ygc29tZSBhcHBsaWNhdGlvbiBuYW1lcy4KCjIwMTAtMDItMTggMTQ6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2JpbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMTggMTQ6MjAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgU29ydGVkIG5hbWVzIG9mIHNvdXJjZSBmaWxlcyBhbHBoYWJldGljYWxseS4KCjIwMTAtMDItMTggMTM6MDMgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHNubXBsaWIvd2luc2VydmljZS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCB3aW4zMi9uZXRzbm1wbWlic3NkaywgICAKICAgICAgd2luMzIvc25tcGRzZGssIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogZHJvcHBlZCBzdXBwb3J0IGZvciBidWlsZGluZyBOZXQtU05NUCB3aXRoCiAgIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCB3aXRob3V0IHBsYXRmb3JtIFNESy4gQnVpbGRpbmcKICAgTmV0LVNOTVAgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgKyBQU0RLIG9yIGFueSBsYXRlcgogICB2ZXJzaW9uIG9mIE1TVkMgaXMgc3RpbGwgcG9zc2libGUgaG93ZXZlci4KICAgCiAgIE5vdGU6IGlmIGluIHRoZSBmdXR1cmUgZm9yIHdoYXRldmVyIHJlYXNvbiBpdCBzaG91bGQgYmVjb21lCiAgIG5lY2Vzc2FyeSBhZ2FpbiB0byBiZSBhYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIHdpdGggTVNWQyB3aXRob3V0CiAgIHJlbHlpbmcgb24gdGhlIHBsYXRmb3JtIFNESyBoZWFkZXJzLCBwbGVhc2UgI2lmZGVmIG91dCB0aGUgTUlCCiAgIGNvZGUgdGhhdCByZWxpZXMgb24gdGhlIFBTREsgaGVhZGVycyBpbnN0ZWFkIG9mIHNwbGl0dGluZyB0aGUKICAgd29ya3NwYWNlIGZpbGVzIGFnYWluLgoKMjAxMC0wMi0xOCAxMjo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIGRvczJ1bml4LgoKMjAxMC0wMi0xOCAwOTo0NSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBTb3VyY2UgY29kZSBjbGVhbnVwOgogICAtIE1vdmVkIGRvY3VtZW50YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXQgbWVtYmVycyB0byB0aGUKICAgY29tbWVudAogICBibG9jayBqdXN0IGFib3ZlIHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgdHlwZS4KICAgLSBSZW1vdmVkIHN1cGVyZmx1b3VzICdleHRlcm4gIkMiJyBzcGVjaWZpZXI6IHRoaXMgbGlua2FnZQogICBzcGVjaWZpZXIKICAgb25seSBoYXMgYW4gZWZmZWN0IG9uIGRlY2xhcmF0aW9ucyBvZiB2YXJpYWJsZXMgb2YgZnVuY3Rpb25zIGFuZAogICBub3QKICAgb24gdHlwZWRlZnMgb3Igc3RydWN0IGRlZmluaXRpb25zLgogICAtIFJhbiB0aGlzIGhlYWRlciBmaWxlIHRocm91Z2ggaW5kZW50LgoKMjAxMC0wMi0xOCAwOToyNiAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBDaGFuZ2VzOgogICAtIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCiAgIC0gRml4ZWQgYSBmZXcgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgTVNWQyAocGFzc2luZyBpbnQKICAgaW5zdGVhZCBvZiB1X3Nob3J0IHRvIGh0b25zKCkgLyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdGhhdCB3ZXJlCiAgIG1pc3NpbmcgYmVjYXVzZSBvZiBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZXMpLgoKMjAxMC0wMi0xNiAxNzoxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IFRoZSBoZWFkZXIgZmlsZSA8c3lzL3RpbWViLmg+IGlzIG5vIGxvbmdlcgogICBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4gT3I6IHRoZSBoZWFkZXIgZmlsZQogICA8c3lzL3RpbWViLmg+IHdpbGwgaGF2ZSB0byBiZSBpbmNsdWRlZCBleHBsaWNpdGx5IGluIHNvdXJjZSBmaWxlcwogICB0aGF0IG5lZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBmdGltZSgpLgogICAKICAgTm90ZTogY29tcGFyZWQgdG8gcjE4MDI0IGFuZCBiZWZvcmUsIHRoaXMgY2hhbmdlIGRvZXMgbm90IGFmZmVjdAogICBCU0Qgc3lzdGVtcyAtLSA8c3lzL3RpbWViLmg+IHdhcyBvbmx5IGluY2x1ZGVkIGZyb20KICAgPG5ldC1zbm1wL3R5cGVzLmg+IG9uIEJTRCBzeXN0ZW1zIGluIHJldmlzaW9ucyByMTgwMjUuLnIxODE1Mi4KCjIwMTAtMDItMTQgMTk6MjkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6CgogICBCdWlsZHMgbm93IG9uIEZyZWVCU0QgdmVyc2lvbiA4LjAuCgoyMDEwLTAyLTEzIDIwOjU5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIEFkanVzdCB0aGUgcGxhY2VtZW50IG9mIDsncyBpbiBvcmRlciB0bwogICBhKSBBdm9pZCB3YXJuaW5ncyBhYm91dCBzcHVyaW91cyBzZW1pY29sb25zCiAgIGIpIE5vdCBoYXZlIHVudGVybWluYXRlZCBkZWNsYXJhdGlvbnMgaW4gaGVhZGVycwoKMjAxMC0wMi0xMiAwMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IHVwZGF0ZSBpbmxpbmUgZG9jdW1lbnRhdGlvbjsgYWRkIHN0b3JhZ2V0eXBlIHRlc3QKICAgZm9yIGNvbHVtbnMKCjIwMTAtMDItMTIgMDE6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCB0eXBvIGluIGRlZmluZQoKMjAxMC0wMi0xMiAwMTowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggc2VkIHByb2Nlc3Npbmcgb24gd2hpdGUtc3BhY2UgYWRkaW5nIHNvbGFyaXMgbWFjaGluZXMKCjIwMTAtMDItMTAgMjM6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYWRkIHRvcCBzcmNkaXIgdG8gY3BwIHNlYXJjaCBwYXRoCgoyMDEwLTAyLTEwIDIzOjUyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBmcmVlYnNkIG5lZWRzIHRpbWUuaCBhYm92ZSB0aW1lYi5oCgoyMDEwLTAyLTEwIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIHVzZSBzZWQgd2l0aCBtdWx0aXJlcGxhY2Ugb24gYSBsaW5lIHRvIGZpeCBwb3NzaWJsZSB3aGl0ZXNwYWNlCiAgIGlzc3VlIG9uIHNvbGFyaXMKCjIwMTAtMDItMTAgMjM6MjIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIHdvcmsgZm9yIFRMUyBzZXBhcmF0aW9uIGludG8gc2VwYXJhdGUgZmlsZXMgd2l0aCBhIGJhc2UKICAgZmlsZQoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgoKICAgbW92ZSBiYXNlIHRyYW5zcG9ydCBjcmVhdGlvbiBmdW5jdGlvbiBvdXQgb2YgbGludXggaWZkZWZzCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgYW5vdGhlciBlcnJvciBsb2dnaW5nIGZ1bmN0aW9uCgoyMDEwLTAyLTEwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZGVkIFRMUyBvdmVyIFRDUAoKMjAxMC0wMi0xMCAxNjozOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBJbXByb3ZlZCBFdGhlckxpa2UtTUlCIHN1cHBvcnQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMKCjIwMTAtMDItMTAgMTA6MDQgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFN1cHBvcnQgbnVsbC1ieXRlcyBpbiBvY3RldCBzdHJpbmdzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRvbW15IEJlYWRsZQoKMjAxMC0wMi0xMCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBUTFMgaW5mcmFzdHJ1Y3R1cmUgaW50byBhIGJhc2UgZG9tYWluIGZpbGUKCjIwMTAtMDItMTAgMDA6MDQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQ2IGZ1bmN0aW9ucyB0byB0aGUgaXB2NiBiYXNlCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3aGl0ZSBzcGFjZSBmb3JtYXR0aW5nCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCB1ZHBfc2VuZC9yZWN2IHRvIHVkcGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmUgbmV0c25tcF9zb2NrX2J1ZmZlcl9zZXQgaW50byBzb2NrZXRiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgbW92ZSBpcHY0IHNwZWNpZmljIFVEUCB0cmFuc3BvcnQgY3JlYXRpb24gdG8gdWRwaXB2NCBiYXNlCgoyMDEwLTAyLTEwIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1hZGUgY29tbW9uIGZ1bmN0aW9ucyBiZSByZWZlcmVuY2VkIGRpcmVjdGx5IGJ5IHRoZSB0cmFuc3BvcnRzCiAgIGFuZCByZW1vdmVkIG9yaWdpbmFsIGZ1bmN0aW9uYWxpdHk7IHRoZXkgd2VyZSBzdGF0aWMgc28gdGhlcmUgaXMKICAgbm8gYmFja3dhcmRzIGNvbXBhdCBpc3N1ZXMKCjIwMTAtMDItMTAgMDA6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQgYmFzZWQgY2xvc2UgdG8gYSBzb2NrZXQgYmFzZWQgZG9tYWluIGNvbW1vbiB0byBtYW55CiAgIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgbW92ZSBUQ1AgY29tbW9uIGZ1bmN0aW9ucyB0byBhIFRDUEJhc2UgZG9tYWluIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTA5IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdG1TdGF0ZVJlZmVyZW5jZSBzaG91bGQgYmUgdXNpbmcgdGhlIGluZGV4ZWQgYWRkcl9wYWlyCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtYWtlIG5ldHNubXBfZHRsc3VkcF9jbG9zZSBtYWtlIHVzZSBvZiBuZXRzbm1wX2Jhc2V1ZHBfY2xvc2UKCjIwMTAtMDItMDkgMjM6NTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgYmFzZSBVRFAgc29ja2V0IGNyZWF0aW9uIGludG8gYSBjb21tb24gYmFzZSBmdW5jdGlvbiBhbmQKICAgbWFkZSB1c2Ugb2YgaXQKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmg6CgogICBwcm9wZXIgX0ggaWZkZWYgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBhZGRlZCBhIHJhdyBVRFAgYmFzZSBkb21haW4KCjIwMTAtMDItMDkgMjM6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBVRFAgSVB2NCBiYXNlOyBtb3ZlZCBhbmQgcmV1c2VkIG1vcmUgaW5mcmFzdHJ1Y3R1cmUKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGlwdjQgYWRkcmVzcyBmb3JtYXR0aW5nIGludG8gc25tcElQdjRCYXNlRG9tYWluCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTAgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTmV3IElQdjQgYW5kIElQIGJhc2UgdHJhbnNwb3J0IGZpbGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBkb24ndCBkb3VibGUgaW5jbHVkZSB0cmFuc3BvcnQgbW9kdWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgYW5kIHJlcG9ydCBjb25maWdfZXJyb3JzIGluIHRyYW5zcG9ydCBoZWFkZXJzCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIGFsbG93IGEgTkVUU05NUF9RVUlDS19DSEVDSyBlbnYgdmFyaWFibGUgdG8gYnlwYXNzIGhlYWRlciBjaGVja3MKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGJldHRlciBjb21tZW50cwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBpbiB0cmFuc3BvcnQgaGVhZGVycyBmb3IKICAgZm9yY2UtaW5jbHVkaW5nIG9mIG90aGVyIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo0MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRlZmluZSBhIHN0YW5kYXJkaXplZCBpbmRleGVkIGFkZHJfcGFpciBpbnN0ZWFkIG9mIHVzaW5nIG9uZQogICBsYWJlbGVkIG9ubHkgZm9yIFVEUCBldmVyeXdoZXJlCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCB0cmFuc3BvcnQgcHJlZml4IGxpc3QgZm9yIGluY29taW5nIG1lc3NhZ2VzCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSB0aGUgc2VjdXJpdHkgbGV2ZWwgZnJvbSB0aGUgVFNNIGNhY2hlOyBwcmV2aW91cyBleGlzdGVuY2UKICAgZnJvbSBmcm9tIGEgZHJhZnQgY29weSBvZiB0aGUgVFNNIFJGQyBhbmQgaXMgbm93IHN0b3JlZCBlbnRpcmVseQogICBpbiB0aGUgdG0gcmVmZXJlbmNlCgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBpbmNvbWluZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IG91dGdvaW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBjcmVhdGUgZGVmaW5lZCBzaXplZCBhcnJheSBhbmQgbGVuZ3RoIHZhcmlhYmxlCgoyMDEwLTAyLTA1IDA5OjUyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGZpbGVkZXNjcmlwdGlvciBsZWFrIGluIEV0aGVybGlrZS1NSUIgYW5kCiAgIFJNT04tTUlCCgoyMDEwLTAyLTA0IDE1OjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCByZWFsIGlmU3BlZWQgb2YgbmV0d29yayBpbnRlcmZhY2UgZXZlbiBpdAogICBpcyBkb3duLgogICBTb21lIGludGVyZmFjZXMgY2FuIHJlcG9ydCB0aGVpciByZWFsIHNwZWVkLCBldmVuIHRoZXkgYXJlIGRvd24uCiAgIEFuZCBpZiB0aGV5IGNhbid0LCB0aGUgZmFsbGJhY2sgdG8gMTBNYnBzIGlzIHN0aWxsIHRoZXJlLgoKMjAxMC0wMi0wMSAxNDo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGZpbGUKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLgoKMjAxMC0wMi0wMSAxNDo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBzbm1wbGliL2tleXRvb2xzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIHByb2NlZHVyZSBmb3IgYnVpbGRpbmcKICAgd2l0aCBTTk1QdjMgc3VwcG9ydCBlbmFibGVkIChPcGVuU1NMKS4KCjIwMTAtMDItMDEgMTQ6MzQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNYWRlIHN1cmUgdGhhdCBhbGwgY2FsbHMgdG8gZnJlZSgpIGFyZSBpbnRlcmNlcHRlZCB3aGVuIGJ1aWxkaW5nCiAgIHdpdGggZG1hbGxvYwogICBzdXBwb3J0IGVuYWJsZWQuIEluY2x1ZGVkIDxkbWFsbG9jLmg+IGluIHRob3NlIHNvdXJjZSBmaWxlcyB3aGVyZQogICBpdCB3YXMgbm90CiAgIHlldCBpbmNsdWRlZCwgYW5kIHByb3ZpZGVkIGEgd3JhcHBlciBmdW5jdGlvbiBmb3IgZnJlZSgpIHdoZXJlCiAgIHRoZSBhZGRyZXNzIG9mCiAgIHRoaXMgZnVuY3Rpb24gd2FzIHRha2VuIChEbWFsbG9jIGNhbiBvbmx5IGludGVyY2VwdCBmcmVlKCkgd2hlbgogICBpdCBpcyBjYWxsZWQKICAgZGlyZWN0bHkgYnV0IG5vdCB3aGVuIGl0IGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlcikuCgoyMDEwLTAyLTAxIDEwOjQ5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBORVdTOiBidWlsZGluZzogQnVpbGRpbmcgTmV0LVNOTVAgd2l0aCBkbWFsbG9jIHN1cHBvcnQgZW5hYmxlZCBpcwogICBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDItMDEgMDE6MDUgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBidWlsZGluZzogJ21ha2UgdGVzdCBURVNUT1BUUz0iLVAgdGNwIicgd29ya3MgZmluZSBub3cKCjIwMTAtMDEtMzEgMDg6MDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGFuIHNoIHN5bnRheCBlcnJvciBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdAogICB0aGF0IHdhcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aXRob3V0IGxpYmNyeXB0byBhbmQgd2l0aG91dAogICBsaWJlYXkzMi4KICAgVGhlIGZvbGxvd2luZyBlcnJvciB3YXMgcmVwb3J0ZWQ6CiAgIGNvbmZpZ3VyZVszMzEzNl06IHg6IHVua25vd24gdGVzdCBvcGVyYXRvcgoKMjAxMC0wMS0yOSAyMDowNyAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEVsYWJvcmF0ZSBvbiByZXYuIDE4MDg5IGFuZCBhZGp1c3QgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGhlCiAgICogICAgKnJlYWxseSB3b3JraW5nIG9uZSouICAyMDEwLTAxLTI5IDE5OjExICBqc2FmcmFuZWsKCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEZpeCB0ZXN0IDM1IHdoZW4gY29uZmlndXJlIG9wdGlvbiAnLS13aXRoLXRlbXAtZmlsZS1wYXR0ZXJuJyB3YXMKICAgdXNlZCBhbmQgdGhlIGRpcmVjdG9yeSBmb3IgdGVtcC4gZmlsZXMgZG9lcyBub3QgZXhpc3QgeWV0LgoKMjAxMC0wMS0yOSAxNTowNyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2Nsb3NlZGlyLmMsICAgCiAgICAgIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvb3BlbmRpci5jLCBzbm1wbGliL3JlYWRkaXIuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIE1vdmVkIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgb3BlbmRpcigpLCByZWFkZGlyKCksIGNsb3NlZGlyKCkgYW5kCiAgIGdldHRpbWVvZmRheSgpIHJlcGxhY2VtZW50cyBmb3IgTVNWQyBmcm9tIHNubXBsaWIvc3lzdGVtLmMgdG8KICAgc2VwYXJhdGUgc291cmNlIGZpbGVzIGluIHNubXBsaWIuCgoyMDEwLTAxLTI5IDA4OjU3ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ29uZmlndXJlIHNjcmlwdCBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudDogcmVuYW1lZCB0aGUgdmFyaWFibGUKICAgInNhdmVkX0xJQlMiIGludG8gIm5ldHNubXBfc2F2ZV9MSUJTIi4KCjIwMTAtMDEtMjkgMDY6MzkgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayB0aGUgc2l6ZSBvZiBzdW5fcGF0aCBhbmQgdXNlIHRoYXQgdG8KICAgZ2VuZXJhdGUgdGhlIG1heGltYWwgc2l6ZSBzdHJpbmdzIGZvciBzdHJlc3NpbmcgY29tMnNlY3VuaXguCgoyMDEwLTAxLTI3IDE1OjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBORVdTOiBNaW5HVzogcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0IHN1aXRlIGlzIGFnYWluIHBvc3NpYmxlCiAgICgnbWFrZSB0ZXN0JykuCgoyMDEwLTAxLTI3IDE0OjQzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogQ3lnd2luOiBidWlsZGluZyB3aXRoIGFub3RoZXIgT3BlblNTTCBwYWNrYWdlIHRoYW4gdGhlCiAgIEN5Z3dpbi1wcm92aWRlZCBwYWNrYWdlcyBvcGVuc3NsIGFuZCBvcGVuc3NsLWRldmVsIGlzIGFnYWluCiAgIHBvc3NpYmxlLgogICBORVdTOiBNaW5HVzogYnVpbGRpbmcgd2l0aCBPcGVuU1NMIHdvcmtzIGFnYWluLgoKMjAxMC0wMS0yNiAyMToyNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIGNvbnRleHQgYXJndW1lbnQgb2Ygc2VuZF92M3RyYXAsCiAgIHNlbmRfdHJhcF92YXJzX3dpdGhfY29udGV4dCBhbmQgbmV0c25tcF9zZW5kX3RyYXBzIHJlZmVyIHRvIGEKICAgY29uc3QgY2hhciouCgoyMDEwLTAxLTI2IDIxOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6CgogICBDb3JyZWN0IG1pc3NwZWxsaW5nIC0gI2Vsc2lmIHRvICNlbGlmCgoyMDEwLTAxLTI2IDIxOjIxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEFwcGFyZW50bHkgbm90IGFsbCBzeXN0ZW1zIGRlZmluZSBJTkVUX0FERFJTVFJMRU4gc28gYWRkIGl0IGlmIGl0CiAgIGlzIG1pc3NpbmcuCgoyMDEwLTAxLTI2IDE1OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWRkZWQgbmV0c3RhdCBwYXRoIGZvciBNaW5HVy4KCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHN0YXQgbmFtZXMKCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXBkYXRlIGNvbW1lbnRzIHRvIHJlZmxlY3QgUkZDNTU5MSBhcyB0aGUgZG9jdW1lbnQgZGVzY3JpYmluZyB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDEtMjYgMTE6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGJ5dGUgb3JkZXIgb2YgdWRwTG9jYWxQb3J0IGlzIG5vdwogICBjb3JyZWN0LgoKMjAxMC0wMS0yNiAxMDo0NiAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGZpeGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgKCJtYWtlCiAgIHRlc3QiKS4gVGhpcyBoYXMgYmVlbiBmaXhlZCBieSB1c2luZyB0aGUgcHJvcGVyIGVudmlyb25tZW50CiAgIHNlcGFyYXRvciBjaGFyYWN0ZXIgYW5kIGJ5IGFkZGluZyB0aGUgcGF0aCBvZiB0aGUgbmV0c3RhdAogICBleGVjdXRhYmxlIGZvciBDeWd3aW4gaW4gdGVzdGluZy9URVNUQ09ORi5zaC4KCjIwMTAtMDEtMjYgMDk6MjcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gcmVhZGluZyBSUE0KICAgZGF0YWJhc2UuCiAgIE9sZCBycG0gdmVyc2lvbnMgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBIZWFkZXIgd2hlbiBhbm90aGVyIFJQTQogICBpbnN0YW5jZSBob2xkcwogICBkYXRhYmFzZSBsb2Nrcy4gSS5lLiBzbm1wZCBzb21ldGltZXMgY3Jhc2hlcyB3aGVuIHJlYWRpbmcKICAgaHJfc3dJbnN0IGFuZCBycG0gaXMKICAgaW5zdGFsbGluZy91cGRhdGluZy9yZW1vdmluZyBhbm90aGVyIHBhY2thZ2UuIEFzIGEgc29sdXRpb24sCiAgIHdob2xlIFJQTSBjYWNoZQogICBpcyB0aHJvd24gYXdheSBhbmQgcmUtcmVhZCB3aGVuIHdlIGdvdCBhbiBlcnJvciBmcm9tIGxpYnJwbS4gVGhlCiAgIHdob2xlIHByb2Nlc3MKICAgaXMgcmVzdGFydGVkIG9ubHkgdGhyZWUgdGltZXMsIHRvIHByZXZlbnQgZW5kbGVzcyBsb29wLgoKMjAxMC0wMS0yNSAyMjoxNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IERvIG5vdCBjaGVjayBpZiB2YWx1ZXMgb2YgdHlwZSBzaXplX3QKICAgYXJlIGxlc3MgdGhhbiAwLgoKMjAxMC0wMS0yNSAyMjoxMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQ2hlY2sgdGhlIHJhbmdlIG9mIG9pZCB2YWx1ZXMgdG93YXJkcyB0aGUgbWF4aW11bQogICBvaWQgdmFsdWUsIG5vdFVMT05HX01BWAoKMjAxMC0wMS0yNSAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBvbmx5IGJhaWwgb24gbWlzc2luZyBsaWJpcGhscGFwaSBmb3IgeHdpbnNvY2syCgoyMDEwLTAxLTI1IDE5OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbmFtZSBNQVhfU1RBVFMgdG8gTkVUU05NUF9TVEFUX01BWF9TVEFUUwoKMjAxMC0wMS0yNSAxOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmM6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3M7IGNoZWNrIGZvciBpbmRleAogICBvdmVyZmxvdwoKMjAxMC0wMS0yNSAxOTo0NCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81Lmg6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3MKCjIwMTAtMDEtMjUgMTY6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXNlICpjdXJyZW50KiBjb3B5IG9mIHRoZSBNSUIgd2hlbiBnZW5lcmF0aW5nIHN0YXRzCgoyMDEwLTAxLTI1IDE2OjAxICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmg6CgogICBtb3ZlIHNubXBfZ2V0X3N0YXRpc3RpYyBoZWxwZXIgdG8gaGVscGVycyBkaXI7IHVwZGF0ZSBhbGxfaGVscGVycwogICBoZWFkZXIKCjIwMTAtMDEtMjUgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgUmVwbGFjZWQgZXhwbGljaXQgZGVjbGFyYXRpb25zIG9mIG9wdGluZCwgb3B0b3B0IGFuZCBvcHRhcmcgYnkKICAgI2luY2x1ZGUgPHVuaXN0ZC5oPiBiZWNhdXNlIGV4cGxpY2l0bHkgZGVjbGFyaW5nIHRoZXNlIHZhcmlhYmxlcwogICBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEN5Z3dpbi4KCjIwMTAtMDEtMjUgMTQ6MjUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogQ3lnd2luOiBJUHY2IGlzIG9ubHkgc3VwcG9ydGVkIHVuZGVyIEN5Z3dpbiAxLjcgb3IgbGF0ZXIuCiAgIFRoZSBvbGQgaW1wbGVtZW50YXRpb24gb2YgSVB2NiBzdXBwb3J0IGluIE5ldC1TTk1QIHVuZGVyIEN5Z3dpbgogICBpbnZvbHZlZCBhIHN0cmFuZ2UgbWl4dHVyZSBvZiBDeWd3aW4gYW5kIFdpbnNvY2syIHNvY2tldCBjYWxscywKICAgd2hpY2ggd2FzIHRvbyBoYXJkIHRvIG1haW50YWluLgogICBORVdTOiBDeWd3aW46IGJ1aWxkcyBhZ2FpbiB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkCiAgICgtLWVuYWJsZS1pcHY2KS4gQXQgbGVhc3QgTmV0LVNOTVAgNS41IGRvZXNuJ3QgYnVpbGQgdW5kZXIgQ3lnd2luCiAgIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQuIFRoZSBjb25maWd1cmUgc2NyaXB0IHJlcG9ydGVkCiAgICJjaGVja2luZyBpcHY2IHN0YWNrIHR5cGUgLi4uIHJlc3VsdDogInVua25vd24sIG5vIiAuLi4gZXJyb3I6CiAgIElQdjYgdHJhbnNwb3J0cyBub3QgYXZhaWxhYmxlIGlmIElQdjYgc3VwcG9ydCBpcyBub3QgZW5hYmxlZCIuCgoyMDEwLTAxLTI1IDE0OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSA8c3RyaW5nLmg+LgoKMjAxMC0wMS0yNSAxNDoxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHRoZSBJUHY2IHN0YWNrIGluY2x1ZGVkIGluIEN5Z3dpbgogICB2ZXJzaW9uIDEuNy4KICAgSVB2NiBzdXBwb3J0IGlzIG9uZSBvZiB0aGUgbmV3IGZlYXR1cmVzIG9mIEN5Z3dpbiAxLjcuIEZvciBtb3JlCiAgIGluZm9ybWF0aW9uLAogICBzZWUgYWxzbyBodHRwOi8vY3lnd2luLmNvbS9jeWd3aW4tdWctbmV0L292LW5ldzEuNy5odG1sLgoKMjAxMC0wMS0yNSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogQ3lnd2luOiB0aGUgbWVzc2FnZSAiY29uZmlndXJlOiBXQVJOSU5HOiB3aW5zb2NrLmg6CiAgIHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgZG9lcyBubyBsb25nZXIgYXBwZWFyIHdoZW4KICAgcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdC4KICAgRm9sbG93LXVwIGZvciByMTgwNTA6IHJlLWVuYWJsZWQgbGliaXBobHBhcGkgYW5kIGlwaGxwYXBpLmggdGVzdHMKICAgZm9yIG5vbi1NaW5HVyBwbGF0Zm9ybXMgc2luY2UgdGhlIEN5Z3dpbiBidWlsZCBuZWVkcyB0aGVzZS4KCjIwMTAtMDEtMjUgMDc6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIHNubXBsaWIvaW5ldF9udG9wLmMsICAKICAgICAgIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIGF1dG9jb25mIHRvIGRlY2lkZSBpZiBpbmV0X250b3AuYyBhbmQKICAgaW5ldF9wdG9uLmMgYXJlIHRvIGJlIGNvbXBpbGVkLgoKMjAxMC0wMS0yNSAwNzowOSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBDSEFOR0VTOiBNaW5HVzogc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNvbmZpZ3VyZSB0ZXN0CiAgIGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTI1IDA1OjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFRMU1RNIGNvdW50ZXIgc3RhdHMKCjIwMTAtMDEtMjUgMDU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGluIFRTTSBuZWVkZWQgY291bnRlciBkZWZpbml0aW9ucwoKMjAxMC0wMS0yNSAwNToxMiAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRTTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICBhZGRlZCB0aGUgU05NUC1UU00tTUlCCgoyMDEwLTAxLTI0IDE0OjQzICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBORVdTOiBzbm1wZDogTWFkZSBzdWJ0cmVlX2NvbnRleHRfY2FjaGU6OmNvbnRleHRfbmFtZSBhIGNvbnN0CiAgIGNoYXIqLgoKMjAxMC0wMS0yNCAxNDoyNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QKCjIwMTAtMDEtMjQgMTM6MjcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogUHJlZmVyIHRvIHVzZSBhIHZhcmlhYmxlIG9mIHRoZSByaWdodCB0eXBlIG92ZXIKICAgYW4gdWdseSBjYXN0LiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBhcyB3ZWxsLgoKMjAxMC0wMS0yNCAxMjo1OSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW50cm9kdWNlZCB0aGUgdmFyaWFibGUgJ3dpdGhfc29ja2xpYicgaW4gdGhlCiAgIGNvbmZpZ3VyZSBzY3JpcHQuIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgZm9yIE1pbkdXCiAgIGFuZCB0byAiZGVmYXVsdCIgZm9yIGFsbCBvdGhlciBzeXN0ZW1zLiBXaW5zb2NrMiB0ZXN0cyBhcmUgb25seQogICBydW4gaWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiAoTWluR1cpLgoKMjAxMC0wMS0yNCAxMjo1MyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIGRlYnVnIGxvZ3MuCgoyMDEwLTAxLTI0IDEyOjQ1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXM6IGZpeGVkIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvCiAgIHVuc2lnbmVkIGNoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFrZSBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkKICAgZGVjbGFyYXRpb25zCiAgIGF2YWlsYWJsZSB0byB0aGUgY29tcGlsZXIuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1hZGUgc3VyZSB0aGF0IDx3czJ0Y3BpcC5oPiB3aWxsCiAgIGJlIGluY2x1ZGVkCiAgIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCBjb21wbGFpbgogICBhYm91dCBzdHJ1Y3QKICAgc29ja2FkZHJfaW42IGJlaW5nIHVzZWQgYmVmb3JlIGJlaW5nIGRlZmluZWQuCgoyMDEwLTAxLTI0IDExOjQyICBidmFzc2NoZQoKICAgKiBtYW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAxLTI0IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGtnZXQuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgICAKICAgICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsICAgCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ2xlYW51cCAoV2luZG93cyk6IHJlbW92ZWQgc3VwZXJmbHVvdXMgI2luY2x1ZGUgPHN5cy90aW1lYi5oPgogICBkaXJlY3RpdmVzLiBUaGlzIGhlYWRlciBmaWxlCiAgIGhhcyBvbmx5IHRvIGJlIGluY2x1ZGVkIGZyb20gc25tcGxpYi9zeXN0ZW0uYyBiZWNhdXNlIG9mIHRoZQogICBfZnRpbWUoKSBjYWxsIGluIHRoYXQgZmlsZS4KCjIwMTAtMDEtMjQgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgVGhlIG1hY3JvICdDKCknIG5vdyBjYXN0cyBpdHMgcmVzdWx0IGZyb20gdW5zaWduZWQgbG9uZyB0bwogICB1bnNpZ25lZCBpbnQuCiAgIFRoaXMgY2hhbmdlIGZpeGVzIGEgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZm9ybWF0IHNwZWNpZmljYXRpb24KICAgbWlzbWF0Y2hlcwogICBhbmQgZml4ZXMgYSBidWcgKGluY29ycmVjdCBzbm1wbmV0c3RhdCBvdXRwdXQpIG9uIGJpZyBlbmRpYW4KICAgc3lzdGVtcy4KCjIwMTAtMDEtMjQgMTA6MzMgIGJ2YXNzY2hlCgogICAqIG1hbi9jb25maWdfYXBpLjM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzk0NjogcmVtb3ZlZCBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20KICAgcmVwb3NpdG9yeS4KCjIwMTAtMDEtMjQgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTW92ZWQgdHdvIGRlY2xhcmF0aW9ucyBvZiBzdGF0aWMgZnVuY3Rpb25zIGZyb20gLmggdG8gLmMuCgoyMDEwLTAxLTI0IDEwOjIxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCgoyMDEwLTAxLTI0IDEwOjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBidWlsZHMgYWdhaW4gd2hlbiBIQVZFX0dFVEFERFJJTkZPIGlzIG5vdAogICBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMDowMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9pbmV0X250b3AuYywgICAKICAgICAgc25tcGxpYi9pbmV0X250b3AuaCwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9pbmV0X3B0b24uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBjb25maWd1cmUgdGVzdHMgZm9yIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKS4KICAgLSBBZGRlZCBoZWFkZXIgZmlsZXMgc25tcGxpYi9pbmV0X250b3AuaCBhbmQgc25tcGxpYi9pbmV0X3B0b24uaC4KICAgLSBSZXBsYWNlZCAiZXh0ZXJuIGluZXRfbnRvcCguLi4pOyIgYW5kICJleHRlcm4gaW5ldF9wdG9uKC4uLik7IgogICBieSAjaW5jbHVkZSAiaW5ldF9udG9wL3B0b24uaCIuCiAgIC0gQ29udmVydGVkIHNubXBsaWIvaW5ldF9udG9wLmMgYW5kIHNubXBsaWIvaW5ldF9wdG9uLmMgZnJvbSBLJlIKICAgQyB0byBBTlNJIEMuCiAgIC0gUmVwbGFjZWQgdGhlIGluZXRfYXRvbigpIGNhbGxzIHRoYXQgd2VyZSBpbnRyb2R1Y2VkIGluIHIxODAzMwogICBpbiBzbm1wbGliL3NubXBVRFBEb21haW4uYyBieSBpbmV0X3B0b24oKSBjYWxscyBzdWNoIHRoYXQgaXQgaXMKICAgYWdhaW4gcG9zc2libGUgdG8gYnVpbGQgTmV0LVNOTVAgb24gV2luZG93cy4KCjIwMTAtMDEtMjQgMDY6MDggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIGRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMgdGhhdCBkb24ndAogICBleGlzdCBvciBhcmUgZGVjbGFyZWQgZWxzZXdoZXJlLgoKMjAxMC0wMS0yNCAwNTo0OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlZCB0aGUgdW51c2VkIHZhcmlhYmxlcyB3YXJtX3N0YXJ0X29pZCwKICAgbGlua19kb3duX29pZCwgbGlua191cF9vaWQsIGF1dGhfZmFpbF9vaWQgYW5kIGVncF94eHhfb2lkLgoKMjAxMC0wMS0yMyAyMjowNiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJldHRlciBzZXQgb2YgU0tJUElGL1NLSVBJRk5PVFMKCjIwMTAtMDEtMjMgMjA6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJlIGNvcnJlY3QgaW4gd2hhdCBpdCBpcyB0aGF0IGlzIHRlc3RlZCBpbiB0aGUgaGVhZGVyLgoKMjAxMC0wMS0yMyAyMDoyNyAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGNvbTJzZWMgZGlyZWN0aXZlcyB0byBmYWlsIGlmIHRoZXJlCiAgIGFyZSB0b28gZmV3IGFyZ3VtZW50cy4gQWRkaXRpb25hbGx5IGNoYW5nZWQgdGhlIHN0b3JhZ2Ugc3RydWN0dXJlCiAgIHRvIG5vdCBhbGxvY2F0ZSBtb3JlIHNwYWNlIHRoYW4gbmVjZXNzYXJ5LgoKMjAxMC0wMS0yMyAyMDoyMiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIG5ldyB0ZXN0cyBjaGVja2luZyB0aGUgZXJyb3IgaGFuZGxpbmcgb2YgdGhlIGNvbTJzZWMqIGRpcmVjdGl2ZXMKCjIwMTAtMDEtMjMgMTk6MTcgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODAyNTogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIzIDE3OjUxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBPUyBoZWFkZXIgZGV0ZWN0aW9uIGNoZWNrIGlzIG5vdyBydW4gYmVmb3JlCiAgIElQdjYgc3RhY2sgZGV0ZWN0aW9uLgogICBDSEFOR0VTOiBTb2xhcmlzOiBzb2NrYWRkcl9pbjYuc2luNl9hZGRyIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93CiAgIHdvcmsuCgoyMDEwLTAxLTIzIDE3OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgRml4ZWQgYSBTb2xhcmlzLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAxLTIzIDE3OjAwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBNaW5HVzogYWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIDxzeXMvdGltZWIuaD4gYW5kIGFsc28gZm9yIHN0cnVjdAogICB0aW1lem9uZS4KCjIwMTAtMDEtMjMgMTY6MzIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE1pbkdXOiBtYWRlIHN1cmUgdGhhdCB0aGUgSVB2Ni1yZWxhdGVkIGRhdGF0eXBlcyBhcmUgYXZhaWxhYmxlCiAgIGJlZm9yZSBiZWluZyB1c2VkLgoKMjAxMC0wMS0yMyAxNjozMCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkICN1bmRlZiBIQVZFX1dJTkRPV1NfSC4KCjIwMTAtMDEtMjMgMTY6MjggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IGEgbWlzc2luZwogICBwcm90b3R5cGUgZm9yIGlzZGlnaXQoKS4KCjIwMTAtMDEtMjMgMTY6MjQgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBNaW5HVzogaXBobHBhcGkuaCBjb25maWd1cmUgdGVzdCBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yMyAxNToxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgUmVuYW1lZCB0aGUgV2luc29jazIgSVB2NiBzdGFjayBmcm9tICdtaW5ndycgaW50byAnd2luc29jazInLgoKMjAxMC0wMS0yMyAxNTowNyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYmV0d2VlbiB0aGUgc3VwcG9ydGVkIFdpbjMyIGNvbXBpbGF0aW9uCiAgIGVudmlyb25tZW50cyBhcyBmb2xsb3dzOgogICAtIE1hZGUgc3VyZSB0aGF0IHRoZSA8d2luc29jazIuaD4gYW5kIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZXMKICAgYXJlIG9ubHkgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciA8aXBobHBhcGkuaD4uCiAgIC0gUmVwbGFjZWQgc2V2ZXJhbCBXSU4zMiAvIGN5Z3dpbiB0ZXN0cyBieSBhIEhBVkVfSVBITFBBUElfSAogICB0ZXN0LgogICAtIERvY3VtZW50ZWQgdGhhdCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpcyBvbmx5IHVzZWQKICAgZm9yIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wMS0yMiAxNjo0NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTA6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCiAgIDYuCgoyMDEwLTAxLTIyIDE2OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaDoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MDE2OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjIgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODAxNjogbWFkZSBNaW5HVyBsaWJpcGhscGFwaSBjaGVjayBtb3JlIHJvYnVzdC4KCjIwMTAtMDEtMjIgMTM6MzIgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIGFjbG9jYWwubTQsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgCiAgICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgd2luMzIvU25tcC13aW5FeHRETEwuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogTWluR1c6IHdpbkV4dERMTCBjb21waWxlcyBub3cgdW5kZXIgTWluR1cuCiAgIENIQU5HRVM6IE1pbkdXOiBidWlsZGluZyBOZXQtU05NUCB3b3JrcyBhZ2Fpbi4KICAgCiAgIERldGFpbGVkIG92ZXJ2aWV3OgogICAqIENoYW5nZXMgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQ6CgogICAtIHNvY2tldCgpIGxpYnJhcnkgY2hlY2sgcGFzc2VzIGFnYWluIG9uIE1pbkdXLgogICAtIEFkZGVkIGxpYnJhcnkgY2hlY2tzIGZvciBsaWJ3czJfMzIsIGxpYnJlZ2V4IGFuZCBsaWJzbm1wYXBpLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgd2luc29jazIuaCBhbmQgd3MydGNwaXAuaCBoZWFkZXIgZmlsZXMuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSBjaG93bigpIGFuZCBsb2NhbHRpbWVfcigpIGZ1bmN0aW9ucy4KICAgLSBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjaGVjayBkb2VzIG5vdyB3b3JrIG9uIE1pbkdXLgogICAtIEFkZGVkIElQdjYgc3RhY2sgdHlwZSBjYWxsZWQgIm1pbmd3Ii4KICAgKiBTb3VyY2UgY29kZSBjaGFuZ2VzOgoKICAgLSBJbmNsdWRlIDx3aW5zb2NrMi5oPiBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBpbnN0ZWFkIG9mCiAgIDx3aW5zb2NrLmg+CiAgIHVuZGVyIE1pbkdXIHN1Y2ggdGhhdCBJUHY2IHN1cHBvcnQgaXMgYXZhaWxhYmxlLgogICAtIE1vdmVkICNpbmNsdWRlIDx3aW5zb2NrLmg+IGZyb20gLmMgZmlsZXMgdG8gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGEgY29weSBvZiB0aGUgTWluR1cgaGVhZGVyIGZpbGUgPHNubXAuaD4gKHdoaWNoIGlzIG5vdAogICBjb3B5cmlnaHRlZCkKICAgYXMgd2luMzIvU25tcC13aW5FeHRETEwuaC4KICAgLSBhZ2VudDogb25seSBjYWxsIGNob3duKCkgd2hlbiBhdmFpbGFibGUgKEhBVkVfQ0hPV04pLgogICAqIERvY3VtZW50YXRpb24gY2hhbmdlczogdXBkYXRlZCBSRUFETUUud2luMzIuCgoKMjAxMC0wMS0yMiAwODozNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNhc3QgZnJvbSBjaGFyKiB0byBjaGFyKgoKMjAxMC0wMS0yMiAwMDozOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIENvcHlyaWdodCBmaWxlIHVwZGF0ZSBmb3IgU1BBUlRBLCBJbmMuCgoyMDEwLTAxLTIyIDAwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGFkZCBwcm9wZXIgcHJlZml4ZXMgaW4gVFNNIGZvciBTU0gsIERUTFMsIGV0YywgYmFzZWQgb24gdGhlCiAgIGRvbWFpbgoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGFkZGVkIDUuNSBicmFuY2gKCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbWlub3IgZWNobyBvdXRwdXQgY2hhbmdlCgoyMDEwLTAxLTIxIDIwOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjb21tZW50IG5leHQgdG8gY29kZSBpdCBpcyB0YWxraW5nIGFib3V0OyBObyBjb2RlIGNoYW5nZQoKMjAxMC0wMS0yMSAxNDo1NSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTI2Mzc0OiBmcm9tIEVkIFN3aWVyazogZml4ZWQgcmVhZGluZyBvZgogICBpcEFkZHJlc3NUYWJsZSBmcm9tIC9wcm9jL25ldC9pZl9pbmV0NiBvbiBMaW51eAogICAKICAgVGhlIGtlcm5lbCBtaWdodCBwcm92aWRlIGxvbmdlciBmaWVsZHMsIGVzcGVjaWFsbHkgb24gNjQtYml0CiAgIHN5c3RlbXMuCgoyMDEwLTAxLTIwIDEyOjQyICBidmFzc2NoZQoKICAgKiBQT1JUSU5HLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRml4ZWQgdHlwbzogcmVwbGFjZWQgJ25lY2lzc2FyeScgYnkgJ25lY2Vzc2FyeScuCgoyMDEwLTAxLTIwIDA4OjUzICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgRml4IG1pbm9yIHR5cG8gaW4gbWFuIHBhZ2UsIGl0J3Mgc25tcG5ldHN0YXQgLUNwLCBub3QgLUNQLgoKMjAxMC0wMS0xNCAxMjozNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGZpeGVkIG1lbW9yeSBsZWFrIGluIFJNT04tTUlCIGFuZCBFVEhFUkxJS0UtTUlCIHdoZW4KICAgdGhlcmUgYXJlIG11bHRpcGxlIGFsaWFzZXMgb2YgYW4gbmV0d29yayBpbnRlcmZhY2UKICAgUmF0aW9uYWxlOiB0aGUgYWxpYXNlZCBpbnRlcmZhY2VzIGhhdmUgdGhlIHNhbWUgaWZJbmRleCAtPgogICBDT05UQUlORVJfSU5TRVJUIGZhaWxzLCBidXQgdGhlIHJlamVjdGVkIGVudHJ5IHdhcyBub3QgZnJlZWQuCgoyMDEwLTAxLTEzIDExOjIxICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBtZW1vcnkgbGVhayBpbiBpcEFkZHJlc3NQcmVmaXhUYWJsZQogICAtIG5ldF9zbm1wX3NlYXJjaF91cGRhdGVfcHJlZml4X2luZm8gcmV0dXJucyBkaWZmZXJlbnQgY29kZSwgd2hlbgogICB0aGUgZW50cnkgd2FzIG5vdCBpbnNlcnRlZCB0byBsaXN0IGFuZCBjYW4gYmUgZnJlZWQuCgoyMDEwLTAxLTEyIDAwOjUyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZDogcnVuIHJwbSBjb25maWd1cmUgY2hlY2tzIGZvciBocl9zd2luc3QgcmV3cml0ZQogICAocnBtCiAgIHZlcnNpb24gb25seSkKCjIwMTAtMDEtMTEgMjM6NTggIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBQRVJMTERPUFRTX0ZPUl9BUFBTIHRvIGFnZW50eHRyYXAgbGluayBsaW5lIChmaXhlcwogICAibGlicGVybC5zbyBub3QKICAgZm91bmQiIGVycm9ycykKCjIwMTAtMDEtMTEgMDA6MTEgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBnZXQgcmlkIG9mIHVzaW5nIGRlcHJlY2F0ZWQgc3ludGF4IGZvciB0cmFwL2luZm9ybSBzaW5rcwoKMjAxMC0wMS0wOCAwODo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IG9ic29sZXRlZCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcuCiAgIEZyb20gbm93IG9uIHVzaW5nIFNJR0FMUk0gdG8gdHJpZ2dlciBOZXQtU05NUCBhbGFybSBoYW5kbGVycyBpcwogICBubyBsb25nZXIgc3VwcG9ydGVkLgogICAKICAgTW90aXZhdGlvbjogYXMga25vd24gbGlibmV0c25tcCBzdXBwb3J0cyB0aW1lLWJhc2VkIGFsYXJtcyB2aWEKICAgdGhlIGZ1bmN0aW9ucwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCksIHJ1bl9hbGFybXMoKSBhbmQgb3RoZXIgZnVuY3Rpb25zLiBUd28KICAgZGlmZmVyZW50IHdheXMgdG8KICAgdHJpZ2dlciB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpIGFyZSBzdXBwb3J0ZWQgaW5zaWRlCiAgIGxpYm5ldHNubXA6CiAgIDEuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIHRpbWVvdXQgYXJndW1lbnQgb2Ygc2VsZWN0KCkgaXMgc21hbGwKICAgZW5vdWdoIHN1Y2gKICAgdGhhdCBzZWxlY3QoKSByZXR1cm5zIGJlZm9yZSB0aGUgbmV4dCBhbGFybSBtdXN0IGJlIGhhbmRsZWQgKHdoZW4KICAgdGhlCiAgIHZhcmlhYmxlIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQgdG8gb25lLCB3aGljaAogICBpcyB0aGUKICAgZGVmYXVsdCkuCiAgIDIuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIGtlcm5lbCBmaXJlcyBTSUdBTFJNIGF0IHRoZSB0aW1lIHdoZW4KICAgcnVuX2FsYXJtcygpCiAgIHNob3VsZCBiZSBjYWxsZWQgKHdoZW4gdGhlIHZhcmlhYmxlCiAgIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQKICAgdG8gemVybywgd2hpY2ggaGFzIHRvIGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSkuCiAgIAogICBUaGUgZm9sbG93aW5nIGlzc3VlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWNvbmQgYXBwcm9hY2g6CiAgIDEuIEFsYXJtIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbnNpZGUgTmV0LVNOTVAgdG8gZS5nLiByZWZyZXNoCiAgIGNhY2hlZCB0YWJsZQogICBjb250ZW50cy4gQXMgZmFyIGFzIEkgY2FuIHNlZSB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBOZXQtU05NUAogICBzb3VyY2UgY29kZQogICB0aGF0IHByZXZlbnRzIHRoZSBmb2xsb3dpbmcgZnJvbSBoYXBwZW5pbmc6IGEgdGFibGUgcmVmcmVzaAogICB0cmlnZ2VyZWQgdmlhCiAgIFNJR0FMUk0gd2hpbGUgYSByb3cgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIGEgY2FjaGVkIHRhYmxlLiBUaGlzCiAgIGNhbiByZXN1bHQKICAgaW4gZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGV2ZW4gYSBjcmFzaC4KICAgMi4gUE9TSVggcmVzdHJpY3RzIHNpZ25hbCBoYW5kbGVycyB0byBjYWxsaW5nIGZ1bmN0aW9ucyB0aGF0IGFyZQogICBlaXRoZXIgcmVlbnRyYW50CiAgIG9yIG5vbi1pbnRlcnJ1cHRpYmxlCiAgIChodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3hzaF9jaGFwMDJfMDQuaHRtbCN0YWdfMDJfMDQpLgogICBTdGFuZGFyZCBJL08gZnVuY3Rpb25zIGxpa2UgcHJpbnRmKCkgYW5kIGZwcmludGYoKSBhcmUgbmVpdGhlcgogICByZWVudHJhbnQgbm9yCiAgIG5vbi1pbnRlcnJ1cHRpYmxlLiBydW5fYWxhcm1zKCkgaXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgc2lnbmFsCiAgIGhhbmRsZXIsIHdoaWNoCiAgIG1lYW5zIHRoYXQgdGhpcyByZXN0cmljdGlvbiBhcHBsaWVzIHRvIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkKICAgaXRzZWxmIGFuZAogICBhbGwgZnVuY3Rpb25zIGNhbGxlZCBieSBpdCAod2hpY2ggaW5jbHVkZXMgdGhlIGFsYXJtIGNhbGxiYWNrCiAgIGZ1bmN0aW9ucykuCiAgIE9yOiBlLmcuIHNubXBfbG9nKCkgYW5kIGl0cyBjYWxsZXJzIG11c3Qgbm90IGJlIGNhbGxlZCBmcm9tCiAgIGluc2lkZSBydW5fYWxhcm1zKCkKICAgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwgaGFuZGxlci4gVGhpcwogICBpcyBhIHNldmVyZQogICByZXN0cmljdGlvbiwgYW5kIG9uZSB0aGF0IGlzIGhhcmQgdG8gd29yayB3aXRoLgogICAzLiBOb3QgYWxsIHNvZnR3YXJlIGRldmVsb3BlcnMga25vdyBob3cgdG8gbWFrZSBzdXJlIHRoYXQgc2lnbmFsCiAgIGRlbGl2ZXJ5IHdvcmtzCiAgIGNvcnJlY3RseSBpbiBhIG11bHRpdGhyZWFkZWQgY29udGV4dC4gUE9TSVggZG9lcyBub3QgZ3VhcmFudGVlIHRvCiAgIHdoaWNoIHRocmVhZAogICBhIHNpZ25hbCBsaWtlIFNJR0FMUk0gd2lsbCBiZSBkZWxpdmVyZWQsIHVubGVzcyB0aGF0IHNpZ25hbCBoYXMKICAgYmVlbiBibG9ja2VkCiAgIGJlZm9yZSB0aHJlYWQgY3JlYXRpb24gYW5kIGlzIHVuYmxvY2tlZCBhZnRlciB0aHJlYWQgY3JlYXRpb24KICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvcHRocmVhZF9zaWdtYXNrLmh0bWwpLgogICBUaGlzIGlzIHJlbGV2YW50IGZvciB0aGUgTmV0LVNOTVAgcHJvamVjdCBub3Qgb25seSBiZWNhdXNlIGEKICAgd29ya2VyIHRocmVhZCBpcwogICBjcmVhdGVkIGluc2lkZQogICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMgYnV0IGFsc28KICAgYmVjYXVzZSBsaWJuZXRzbm1wIGlzIG9mdGVuIHVzZWQgaW5zaWRlIG11bHRpdGhyZWFkZWQgc29mdHdhcmUuCiAgIEN1cnJlbnRseSBubwogICBhdHRlbXB0IGlzIG1hZGUgdG8gbWFrZSBzdXJlIHRoYXQgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgdGhlCiAgIE5ldC1TTk1QIGV2ZW50CiAgIHByb2Nlc3NpbmcgbG9vcCB0aHJlYWQuIElmIFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IGFub3RoZXIKICAgdGhyZWFkLCB0aGlzIHdpbGwKICAgcmVzdWx0IGluIG9uZSBvciBtb3JlIGRhdGEgcmFjZXMuCiAgIAogICBCZWNhdXNlIGFsbCB0aGUgZGlmZmljdWx0aWVzIGFzc29jaWF0ZWQgd2l0aCBwcm9jZXNzaW5nIGFsYXJtcwogICBmcm9tIGluc2lkZSBhCiAgIHNpZ25hbCBoYW5kbGVyIGZ1bmN0aW9uLCBhbmQgYmVjYXVzZSBmaXhpbmcgdGhlc2Ugd291bGQgcmVxdWlyZQogICBtb3JlIGVmZm9ydCB0aGFuCiAgIGl0IGlzIHdvcnRoLCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaGFzIGJlZW4KICAgZGVwcmVjYXRlZCBhbmQgZnJvbSBub3cKICAgb24gYXBwcm9hY2ggKDEpIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBhcHByb2FjaCB0byB0cmlnZ2VyIGFsYXJtCiAgIGhhbmRsZXJzLgoKMjAxMC0wMS0wNyAxOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFBhdGNoIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgdG8gZml4IGEgbWlub3IgbWVtbGVhayBpbiBjcHUKICAgc3lzY3RybCBmZXRjaGluZwoKMjAxMC0wMS0wNyAxNjoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFJlbW92ZWQgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgYW5kIG1hZGUgc3VyZSB0aGF0CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgJ1wwJy10ZXJtaW5hdGVzIHRoZSBvdXRwdXQgYnVmZmVyCiAgIGluIGFsbCBjYXNlcy4KICAgVXBkYXRlZCBkb2N1bWVudGF0aW9uIGFuZCB1bml0IHRlc3RzLgoKMjAxMC0wMS0wNyAxNDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBSZW1vdmVkIHRocmVlIHN1cGVyZmx1b3VzIGNhc3RzIGJlY2F1c2UgdGhlc2UgdHJpZ2dlcmVkIGEKICAgY29tcGlsZXIgd2FybmluZwogICB3aGVuIGNvbXBpbGVkIHdpdGggTVNWQy4KCjIwMTAtMDEtMDcgMTM6MjggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHRoZSByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGNoYW5nZXMgZnJvbSByMTc5OTIKICAgYmVjYXVzZSB0aGVzZQogICBjYXVzZWQgdGhlIGZvbGxvd2luZyBWYWxncmluZCBjb21wbGFpbnQgZHVyaW5nIHNubXBkIHN0YXJ0dXA6CiAgIAogICA9PTI1MjAxPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZAogICB2YWx1ZShzKQogICA9PTI1MjAxPT0gYXQgMHg0MDQ3QjE0OiBuZXRzbm1wX3NlbmRfdHJhcHMgKGFnZW50X3RyYXAuYzo3OTgpCiAgID09MjUyMDE9PSBieSAweDQwNDgxMjg6IHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMKICAgKGFnZW50X3RyYXAuYzo4NTMpCiAgID09MjUyMDE9PSBieSAweDQwNDgxOUQ6IHNlbmRfdHJhcF92YXJzIChhZ2VudF90cmFwLmM6OTYzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MjVCOiBzZW5kX2Vhc3lfdHJhcCAoYWdlbnRfdHJhcC5jOjEwMTEpCiAgID09MjUyMDE9PSBieSAweDgwNEI1RDI6IG1haW4gKHNubXBkLmM6Mzk0KQoKMjAxMC0wMS0wNyAxMjozMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNyAxMjoxOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBEZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGFzc2lnbmluZyBhIGNoYXIgKiBwb2ludGVyIHRvCiAgIHN5c09SVGFibGU6Ok9SX2Rlc2NyIGRvZXMgb3IgZG9lcyBub3QgdHJhbnNmZXIKICAgb3duZXJzaGlwLiBTbyB3aGV0aGVyIE9SX2Rlc2NyIGlzIGRlY2xhcmVkIGFzIGNoYXIgKiBvciBhcyBjb25zdAogICBjaGFyICosIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0CiAgIGxlYXN0IG9uZSBzdGF0ZW1lbnQgb24gd2hpY2ggdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGNoYXIKICAgKiAgLyBjb25zdCBjaGFyICogbWlzbWF0Y2guIFRoZSBvbmx5ICAgIHNvbHV0aW9uIGlzIHRvIGNhc3QgYXdheQogICAgICBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZSB0byBtYWtlIHN1cmUgICAgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgICAgY29tcGxhaW4sICAgIGFzIGltcGxlbWVudGVkIGluIHRoaXMgcGF0Y2guICAyMDEwLTAxLTA3IDExOjQ2IAogICAgICBidmFzc2NoZQoKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICB1c21fc2F2ZV91c2VyKCk6IHdoZW4gd3JpdGluZyB1c2VyLT5uYW1lIGFuZCB1c2VyLT5zZWNOYW1lLCBvbmx5CiAgIHdyaXRlIHRoZSBBU0NJSSBkYXRhIGFuZCBub3QgdGhlCiAgIHRlcm1pbmF0aW5nICdcMCcuIFNpbmNlIGJvdGggaXRlbXMgYXJlIHJlYWQgYnkgY2FsbGluZwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCB3cml0aW5nCiAgIHRoZSB0ZXJtaW5hdGluZyAnXDAnIGlzIG5vdCBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEKICAgcmVhZCBiYWNrIGlzIHRlcm1pbmF0ZWQgcHJvcGVybHkuCgoyMDEwLTAxLTA3IDA5OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpOiB1bnRpbAogICBub3cgdGhpcwogICBmdW5jdGlvbiB0ZXJtaW5hdGVkIHRoZSBvdXRwdXQgYnVmZmVyIGluIHNvbWUgY2FzZXMgd2l0aCAnXDAnCiAgICh3aGVuIHRoZQogICBpbnB1dCB3YXMgaW4gdGhlIGZvcm1hdCAweC4uLiBhbmQgYSBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQgYW5kCiAgIGFsc28KICAgd2hlbiB0aGUgaW5wdXQgd2FzIGluIEFTQ0lJIGZvcm1hdCwgYnV0IG5vdCB3aGVuIHRoZSBpbnB1dCB3YXMgaW4KICAgZm9ybWF0CiAgIDB4Li4uIGFuZCBubyBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQpLiBDaGFuZ2VkIHRoaXMgc3VjaCB0aGF0CiAgIHRoaXMKICAgZnVuY3Rpb24gZG9lcyBubyBsb25nZXIgdGVybWluYXRlIHRoZSBpbnB1dCBidWZmZXIgd2l0aCAnXDAnLgogICBUaGlzCiAgIGNoYW5nZSB3YXMgcG9zc2libGUgYmVjYXVzZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgYWxsCiAgIGNhbGxlcnMgdGhhdAogICBuZWVkZWQgYSAnXDAnIHRlcm1pbmF0ZWQgc3RyaW5nIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgaW5zdGVhZC4KCjIwMTAtMDEtMDYgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFJldmVydGVkIHIxNzk2OCBhbmQgcjE3OTcyLgoKMjAxMC0wMS0wNiAxNTo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgdGhlIGNvbnN0CiAgIGtleXdvcmQuCgoyMDEwLTAxLTA2IDE1OjM4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDYgMTU6MzYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQgaW4gcjE3OTc1LgoKMjAxMC0wMS0wNiAxNTozMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE1OjMxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdGhlIGZ1bmN0aW9ucyByZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpIGFuZAogICBzbm1wZF9yZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpLCB3aGljaAogICBhY2NlcHQgYSBwYXJzZXIgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHN0cmluZyB0aGF0IGl0CiAgIHBhcnNlcy4gVXNpbmcgdGhlc2UgZnVuY3Rpb25zIHJlc3VsdHMKICAgaW4gZWFzaWVyIHRvIHJlYWQgY29kZSB0aGFuIHVzaW5nIHRoZSBub24tY29uc3QgaGFuZGxlcgogICByZWdpc3RyYXRpb24gZnVuY3Rpb25zIGFuZCBjYXN0aW5nIHRoZSBwYXJzZXIKICAgZnVuY3Rpb24gZXhwbGljaXRseSBmcm9tICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikpIHRvCiAgICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjaGFyKikpLgoKMjAxMC0wMS0wNiAxNToyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHJlYWRfY29uZmlnX3JlYWRfb2JqaWRfY29uc3QoKS4KCjIwMTAtMDEtMDYgMTQ6NDIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgRm9yIHRob3NlIFZBQ00gZnVuY3Rpb25zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgc3RyaW5ncyBwYXNzZWQgYXMKICAgYXJndW1lbnRzLAogICBjaGFuZ2VkIHRoZSBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIHRvIGNvbnN0IGNoYXIgKi4KCjIwMTAtMDEtMDYgMTQ6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmM6CgogICBSZW1vdmVkIGFuIHVudXNlZCB2YXJpYWJsZS4KCjIwMTAtMDEtMDYgMTQ6MTQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjA4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdAogICBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNDowNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgbmV3IGZ1bmN0aW9ucyBza2lwX3doaXRlX2NvbnN0KCksIHNraXBfbm90X3doaXRlX2NvbnN0KCksCiAgIHNraXBfdG9rZW5fY29uc3QoKSwgY29weV9ud29yZF9jb25zdCgpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpLgogICAtIENoYW5nZWQgcmV0dXJuIHR5cGUgb2YgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBmcm9tCiAgIGNoYXIgKiB0bwogICBjb25zdCBjaGFyICouIE5vdGU6IHRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgIHNpbmNlIHRoaXMKICAgZnVuY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBpbmNsdWRlZCBpbiBhbnkgcmVsZWFzZS4KICAgLSBGaXhlZCBkb2N1bWVudGF0aW9uIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCiAgIC0gUmVkdWNlZCBudW1iZXIgb2YgY2FzdC1hd2F5LWNvbnN0IGNvbnN0cnVjdHMgaW4gcmVhZF9jb25maWcuYy4KCjIwMTAtMDEtMDYgMTM6MzUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgUmVmaW5lZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCk6CiAgIHdoZW4gdXNpbmcKICAgdGhlIGdjYyBjb21waWxlciwgaXQgaXMgbm93IHZlcmlmaWVkIHdoZXRoZXIgdGhlIHR5cGVzIChjb25zdCB0KQogICBhbmQgdHlwZW9mKGUpCiAgIGFyZSBjb21wYXRpYmxlLCB3aGVyZSB0IGlzIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgZSB0aGUgc2Vjb25kCiAgIGFyZ3VtZW50IG9mCiAgIHRoaXMgbWFjcm8uCgoyMDEwLTAxLTA2IDEzOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaDoKCiAgIEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MgYmlnZ2VyIHRoYW4gNgogICBieXRlcyB0byBhdFRhYmxlLiBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzCiAgIHdpdGggOSBhbmQgbW9yZSBieXRlcy4KCjIwMTAtMDEtMDYgMTI6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTI0MTQwOiBGaXggdGVybWluYXRpb24gb2YgQ1BVL0ZQVSB0eXBlcwoKMjAxMC0wMS0wNiAxMjozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkyMjM5MDogRml4IHRlc3QgZm9yIG1pc3NpbmcgY29udGV4dE5hbWUKICAgcGFyYW1ldGVyCgoyMDEwLTAxLTA2IDExOjU3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIENoYW5nZXM6CiAgIC0gSW50cm9kdWNlZCBhIG5ldyBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpIHRoYXQgYWxsb3dzIHRvCiAgIGNhc3QKICAgYXdheSBjb25zdG5lc3Mgd2l0aG91dCB0aGF0IGdjYyAtV2Nhc3QtcXVhbCByZXBvcnRzIGEgd2FybmluZy4KICAgLSBNYWRlIGNhc3RpbmcgYXdheSBjb25zdG5lc3MgZXhwbGljaXQgYnkgaW50cm9kdWNpbmcgdGhlCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgbWFjcm8uIFRoaXMgc3VwcHJlc3NlcyB0aGUgd2FybmluZwogICBnY2MgLVdjYXN0LXF1YWwgcHJpbnRlZCBmb3IgdGhlc2Ugc3RhdGVtZW50cy4KCjIwMTAtMDEtMDYgMTE6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAwOToxNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL2FnZW50eHRyYXAuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG8gbm90IHVzZSAwIHdoZW4gcmVmZXJyaW5nIHRvIE5VTEwuCgoyMDEwLTAxLTA2IDA4OjI2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGVzIG9mIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQKICAgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCiAgIGZyb20gc3RydWN0IHRpbWV2YWwgKiB0byBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqLiBOb3RlOiB0aGlzIGRvZXMKICAgbm90IGFmZmVjdAogICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMTAtMDEtMDYgMDg6MjMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ2hhbmdlcyAobm8gZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb2RpZmllZCk6CiAgIC0gUmVtb3ZlZCBkaXNraW9fcGFyc2VfY29uZmlnKCkgZGVjbGFyYXRpb24gYmVjYXVzZSB0aGF0IGZ1bmN0aW9uCiAgIGlzIG5laXRoZXIgY2FsbGVkIG5vciBkZWZpbmVkIGluIHRoZSBzb3VyY2UgZmlsZSBkaXNraW8uYy4KICAgLSBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgZ2V0c3RhdHMoKSBzdWNoIHRoYXQgZ2NjIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbi4KICAgLSBMaW51eDogY2hhbmdlZCB2aXNpYmlsaXR5IG9mIGdldHN0YXRzKCkgZnJvbSBnbG9iYWwgdG8gc3RhdGljCiAgIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBCU0QgYW5kIERhcndpbiBpbXBsZW1lbnRhdGlvbnMgb2YKICAgZ2V0c3RhdHMoKS4KCjIwMTAtMDEtMDYgMDg6MDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKiBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAwMjoxOCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIG1hbi9NYWtlZmlsZS5pbiwgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGFwcHM6IE9ubHkgYnVpbGQgYWdlbnR4dHJhcCBpZiB0aGUgYWdlbnR4IGxpYnJhcmllcyBhcmUKICAgYnVpbHQuIEFkZCBhIHRlc3QgY2FzZSBmb3IgYWdlbnR4dHJhcC4KICAgCiAgIFRoZSBlbmFibGVtZW50L2Rpc2FibGVtZW50IGlzIGluc3BpZXJlZCBieSBhdXRvbWFrZSBjb25kaXRpb25hbHMKCjIwMTAtMDEtMDYgMDE6NTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RhcnR0aW1lLgoKMjAxMC0wMS0wNSAyMjo1NCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmg6CgogICBDSEFOR0VTOiBIaWRlIG1vc3QgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgaW4gdGhlIGxvZ21hdGNoCiAgIG1vZHVsZS4gQ2xlYW5lZCB1cCB0aGUgaGVhZGVyIGFjY29yZGluZ2x5LiBSZW1vdmUgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zIGJ5IHJlb3JkZXJpbmcgdGhlIGZ1bmN0aW9ucy4KCjIwMTAtMDEtMDUgMjI6MzMgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVR1M6IDI5MTkzNzk6IEluaXRpYWxpc2UgU05NUCBzZXNzaW9ucyBwcm9wZXJseQogICBQcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAxMC0wMS0wNSAyMjoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MTkzMjA6IEF2b2lkIGFjY2Vzc2luZyBmcmVlZCBtZW1vcnkKICAgUmVwb3J0ZWQgYnkgVG9tYXN6IExpcwoKMjAxMC0wMS0wNSAxODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MTQ0MTA6IEZpeCBjcmFzaCBvbiBlbXB0eSBjb21tYW5kIGxpbmVzCgoyMDEwLTAxLTA1IDE1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMjU4NDogRml4IG51bGwgT0lEIGhhbmRsaW5nIGluIEFnZW50eAogICBvbiA2NGJpdAogICBQYXRjaCBzdXBwbGllZCBieSBMdXR6IEphZW5pY2tlCgoyMDEwLTAxLTA1IDEwOjExICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIENIQU5HRVM6IGhwdXg6IGZpeCBidWlsZCBlcnJvciBvbiBIUC1VWCAxMC4yMAoKMjAxMC0wMS0wNSAwODo0MiAganNhZnJhbmVrCgogICAqIG1hbiwgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgUmVtb3ZlIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbSByZXBvc2l0b3J5LgoKMjAxMC0wMS0wNCAxNjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZCB0aGF0IG9jY3VycmVkIHdoZW4gYW4gQVNDSUkKICAgc3RyaW5nIHdhcwogICBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgLwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGFuZCB0aGUgdGhpcmQgYXJndW1lbnQgKCpsZW4pCiAgIGVxdWFscyAwLgoKMjAxMC0wMS0wNCAxNjo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5ICdjb25zdCcuCgoyMDEwLTAxLTA0IDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB1bml0IHRlc3QgZm9yIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCgoyMDEwLTAxLTA0IDEwOjQ1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBjb3JyZWN0IG9pZCBsZW5ndGggaW4gdGFibGUgaW5kZXhlcy4KCjIwMTAtMDEtMDQgMDg6MTAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgc25tcF9hbGFybS5jIGNhbiBiZSBjb21waWxlZCBhZ2FpbiB3aXRoIEM4OQogICBjb21waWxlcnM6IGZvciBDODkKICAgaXQgaXMgcmVxdWlyZWQgdGhhdCBpbml0aWFsaXplcnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zLgoKMjAxMC0wMS0wMyAxNjoyOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jOgoKICAgUmVuYW1lIG5ldHNubXBfYXJjaF90Y3Bjb25uX2RlbGV0ZSB0bwogICBuZXRzbm1wX2FyY2hfdGNwY29ubl9lbnRyeV9kZWxldGUgaW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoCiAgIHRoZSBoZWFkZXIgZmlsZSBhbmQgYWxsIHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZS4KCjIwMTAtMDEtMDMgMTY6MjYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBBZGQgbWlzc2luZyBkZWNsYXJhdGlvbnMuCgoyMDA5LTEyLTMwIDEyOjQ5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgRm9sbG93LXVwIGZvciByMTc5MzM6IGZpeGVkIHRoZSBpc3N1ZSB0aGF0IGluY2x1ZGluZyB0aGUgaGVhZGVyCiAgIGZpbGUKICAgPG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaD4gZnJvbSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgogICB0cmlnZ2VycwogICBjb21waWxlciBlcnJvcnMgZHVyaW5nIHRoZSBjb25maWd1cmUgcHJvY2VzcyAoY29tcGxhaW50cyBhYm91dAogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gbm90IGJlaW5nIGluY2x1ZGVkIGJlZm9yZQogICA8bmV0LXNubXAvdHlwZXMuaD4pLgogICBOb3RlOiB0aGlzIGRvZXMgbm90IHNvbHZlIHRoZSB1bmRlcmx5aW5nIHByb2JsZW0gdGhhdCBNSUIgY29kZQogICBtdXN0IG5vdAogICBpbmNsdWRlIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvdHlwZXMuaD4gYmVjYXVzZSBkb2luZyBzbyB3b3VsZAogICB0cmlnZ2VyIGEKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBzdGVwIChNSUIgY29kZSBpcwogICBjb21waWxlZCBkdXJpbmcKICAgdGhlIGNvbmZpZ3VyZSBzdGVwLCB3aGlsZSB0aGUgY29uZmlndXJlIHN0ZXAgZ2VuZXJhdGVzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBhbmQgPG5ldC1zbm1wL3R5cGVzLmg+IG5lZWRzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCgoyMDA5LTEyLTMwIDExOjQ4ICBidmFzc2NoZQoKICAgKiBhcHBzLCBtYW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxOTogdXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0cy4KCjIwMDktMTItMjggMTg6MDMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkLiBGb3VuZCB0aGlzIGJ5IGFuYWx5emluZyBjb21waWxlcgogICB3YXJuaW5ncy4KICAgTm90ZTogdGhlIGFmZmVjdGVkIGZ1bmN0aW9uLCByZWdpc3Rlcl9zdHJpbmdfaW5kZXgoKSwgaXNuJ3QKICAgY2FsbGVkIGZyb20KICAgYW55d2hlcmUgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGl0c2VsZi4KCjIwMDktMTItMjMgMDk6NDkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIEZpeCBpbnZhbGlkIHJlYWQgcmVwb3J0ZWQgYnkgdmFsZ3JpbmQ6CiAgIEludmFsaWQgcmVhZCBvZiBzaXplIDEKICAgbWVtY3B5IChtY19yZXBsYWNlX3N0cm1lbS5jOjQwMikKICAgX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkX3Y0CiAgIChpcGFkZHJlc3NfaW9jdGwuYzoyNDApCiAgIG5ldHNubXBfYXJjaF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19saW51eC5jOjE1OCkKICAgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfY29tbW9uLmM6MTEyKQogICAKICAgUmV0dXJuaW5nIHN0cnVjdHVyZSB3aXRoIHBvaW50ZXJzIGluc2lkZSBpcyBub3QgdGhlIGJlc3QgdGhpbmcgdG8KICAgZG8uCgoyMDA5LTEyLTIyIDE2OjA1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCgoyMDA5LTEyLTIyIDEyOjAyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAKICAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFJldmVydGVkIHRoZSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZXMgb2YgcjE3OTEzOgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvLgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUgZnVuY3Rpb25zCiAgIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwKICAgdWF0aW1lX3JlYWR5KCksIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KICAgLSBzdGFydHRpbWUgaXMgYWdhaW4gYSBnbG9iYWwgdmFyaWFibGUgaW5zdGVhZCBvZiBhIHN0YXRpYyBvbmUuCiAgIEFsc28gaW1wbGVtZW50ZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIE1vdmVkIHRoZSBtYXJrZXJfdCB0eXBlZGVmIGZyb20gbmV0LXNubXAvbGlicmFyeS90b29scy5oIHRvCiAgIG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaC4KICAgLSBBZGRlZCBhIG5ldyB0eXBlZGVmLCBjb25zdF9tYXJrZXJfdC4KICAgLSBGb3IgdGhvc2UgYXRpbWVfKigpIC8gdWF0aW1lXyooKSAvICpfdHRpY2tzKCkgZnVuY3Rpb25zIHRoYXQgZG8KICAgbm90IGNoYW5nZQogICB0aGVpciBhcmd1bWVudHMsIGRlY2xhcmVkIHRoZXNlIGFyZ3VtZW50cyBjb25zdF9tYXJrZXJfdCBpbnN0ZWFkCiAgIG9mIG1hcmtlcl90LgogICAtIFJlbmFtZWQgbmV0c25tcF9nZXRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIHRvCiAgIG5ldHNubXBfZ2V0X2FnZW50X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9hZ2VudF9zdGFydHRpbWUoKQogICByZXNwZWN0aXZlbHkuIE1vdmVkIHRoZXNlIGZ1bmN0aW9ucyBmcm9tIHRvb2xzLmMgdG8gc3lzdGVtLmMuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb24gYXRpbWVfaHN1YnRyYWN0KCkgKHdhcyBpbnRyb2R1Y2VkIGluCiAgIHIxNzkxMykgYW5kCiAgIGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb24sIG5ldHNubXBfc2V0X2FnZW50X3VwdGltZSgpLgoKMjAwOS0xMi0yMiAwNzo1OSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTI2LCB3aGljaCBtYWRlIHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZWQuIEEgbmV3IHBhdGNoIHdpbGwKICAgZm9sbG93CiAgIHRoYXQgZml4ZXMgdGhlIGNhbGxlcnMgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB0aGF0CiAgIHdlcmUKICAgYXNzdW1pbmcgdGhhdCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlcyB0aGUKICAgc3RyaW5nCiAgIHJlYWQgYnkgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMjEgMTQ6MjkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IGNyYXNoIGluIElGLU1JQiBhbmQgSVAtTUlCIHdoZW4gdGhlcmUgYXJlCiAgIHNvbWUgaW50ZXJmYWNlcyB3aXRoIGJyb2FkY2FzdCBJUCBhZGRyZXNzIGFuZCBzb21lIHdpdGhvdXQuCiAgIAogICBSZXNldCB0aGUgYmNhc3RlbnRyeSBpbiB0aGUgbG9vcCwgc28gaXQgY2Fubm90IGJlIGluc2VydGVkIHRvIHRoZQogICBjb250YWluZXIKICAgdHdpY2UuCiAgIAogICBXaXRob3V0IHRoaXMgcGF0Y2gsIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGhvdXQgYnJvYWRjYXN0IGFkZHJlc3MKICAgaXMgcHJvY2Vzc2VkLAogICB0aGUgYmNhc3RhZGRyZXNzIGZyb20gcHJldmlvdXMgbG9vcCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICBjb250YWluZXIuIFRoaXMKICAgb2J2aW91c2x5IGZhaWxzIGFuZCB0aGUgYmNhc3RlbnRyeSBpcyBmcmVlZCwgYnV0IHRoZSBjb250YWluZXIKICAgc3RpbGwgY29udGFpbnMKICAgcmVmZXJlbmNlIHRvIGl0IC0+IFNJR1NFR1YuCgoyMDA5LTEyLTIxIDEzOjUyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyODogd2hpbGUgcjE3OTI4IGZpeGVkIGEgZGFuZ2xpbmcgcG9pbnRlcgogICBkZXJlZmVyZW5jZQogICBkZXRlY3RlZCBieSBydW5uaW5nIHRoZSBOZXQtU05NUCBzb2Z0d2FyZSBvbiBXaW5kb3dzLCB0aGF0IHBhdGNoCiAgIGludHJvZHVjZWQKICAgYSBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlIGFib3V0IHdoaWNoIG9ubHkgVmFsZ3JpbmQgb24gTGludXgKICAgY29tcGxhaW5lZC4KICAgVGhpcyBmb2xsb3ctdXAgcGF0Y2ggZml4ZXMgYm90aCBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcwogICB0cmlnZ2VyZWQgYnkKICAgcGFyc2luZyB0aGUgcGVyc2lzdGVudERpciBrZXl3b3JkLgoKMjAwOS0xMi0yMSAxMzozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkwMTEyMi4gQ2hhbmdlczoKICAgLSBOZXcgZmVhdHVyZTogc3BlY2lmeWluZyBBU04gdHlwZSBTTk1QX05PU1VDSElOU1RBTkNFIGFzIHRoZQogICB0aGlyZCBhcmd1bWVudAogICBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgd2lsbCBjYXVzZSBhbiBTTk1QIEdldFJlcXVlc3QgLwogICBHZXROZXh0UmVxdWVzdCB0bwogICByZXR1cm4gdGhlIGVycm9yIGNvZGUgbm9TdWNoSW5zdGFuY2UgKFNOTVB2Mikgb3Igbm9TdWNoTmFtZQogICAoU05NUHYxKS4gVGhpcwogICBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIGEgY2FjaGVkIHRhYmxlIHdpdGggb25lIG9yIG1vcmUKICAgImhvbGVzIi4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIHZhbHVlIGhhcyBub3QgYmVlbiBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuCiAgIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogaWYgdGhlIHNpemUgb2YgdGhlIGNhY2hlZCB2YWx1ZQogICBzaHJ1bmssIHVzZQogICByZWFsbG9jKCkgaW5zdGVhZCBvZiBmcmVlKCkgYW5kIG1hbGxvYygpLgoKMjAwOS0xMi0yMSAxMjoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MTIwNTU6IG1ha2Ugc3VyZQogICB0aGF0CiAgIHBhcnNpbmcgdGhlICJwZXJzaXN0ZW50RGlyIiBrZXl3b3JkIGluIHNubXAuY29uZiBkb2VzIG5vdCB0cmlnZ2VyCiAgIGEKICAgZGFuZ2xpbmcgcG9pbnRlci4gVG8gbXkgc3VycHJpc2UgQm91bmRzQ2hlY2tlciBjb21wbGFpbmVkIGFib3V0CiAgIHRoaXMKICAgKG9uIFdpbmRvd3MpLCBidXQgVmFsZ3JpbmQgZGlkIG5vdCByZXBvcnQgdGhpcyBpc3N1ZSAob24gTGludXgpLgoKMjAwOS0xMi0yMSAxMjowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MjUgKGZpeCBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cCk6IHdoaWxlCiAgIHIxNzkyNSBmaXhlZAogICBvbmx5IHRoZSBsZWFrIHRyaWdnZXJlZCBmcm9tIGluc2lkZSB0aGUgZm9yLWxvb3AsIHRoaXMgcGF0Y2ggZG9lcwogICBub3cgYWxzbwogICBmaXggdGhlIGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZSBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfYWRkX3JvdygpCiAgIGNhbGwgbmVhcgogICB0aGUgZW5kIG9mIGxvZ19ub3RpZmljYXRpb24oKS4KCjIwMDktMTItMjEgMTI6MDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjI6IG1ha2Ugc3VyZSB0aGF0IHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBpcyBwcm9wZXJseSB0ZXJtaW5hdGVkLCBzdWNoIHRoYXQKICAgdGhlCiAgIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiBkbyBub3QgdHJpZ2dlciBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCiAgIEZvdW5kCiAgIHRoaXMgaXNzdWUgdmlhIEJvdW5kc0NoZWNrZXIuCgoyMDA5LTEyLTIxIDExOjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDY4LCB3aGljaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwLgogICBUaGUKICAgZnVuY3Rpb24gbG9nX25vdGlmaWNhdGlvbigpIGFkZHMgYSByb3cgdG8gdGhlIHRhYmxlCiAgIG5sbUxvZ1ZhclRhYmxlLCBidXQKICAgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJlZm9yZSB0aGF0IHRhYmxlIGhhcyBiZWVuCiAgIGluaXRpYWxpemVkLiBJZgogICB0aGF0IGhhcHBlbnMsIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZm9yIGEgcm93IGJ1dCB0aGF0IG1lbW9yeSBpcwogICBuZXZlcgogICBhZGRlZCB0byB0aGUgY2FjaGVkIHRhYmxlIGRhdGEuIFRoZSBCb3VuZHNDaGVja2VyIHRvb2wgcmVwb3J0ZWQKICAgdGhpcyBhcwogICBhICJtZW1vcnkgbGVhayBsZWF2aW5nIHNjb3BlIi4KCjIwMDktMTItMjEgMTA6NTQgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIHRoZSBmb2xsb3dpbmcgdGV4dCB0byB0aGUgIkxpbWl0YXRpb25zIiBzZWN0aW9uIG9mCiAgIFJFQURNRS53aW4zMjoKICAgIldoZW4gdXNpbmcgd2luRXh0RExMLCB0aGVyZSBpcyBhbiBvZmZzZXQgb2YgdXAgdG8gb25lIHNlY29uZAogICBiZXR3ZWVuIHRoZQogICB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lIHZhcmJpbmQgaW5jbHVkZWQgaW4gdGhlIHRyYXBzIGdlbmVyYXRlZCBieQogICBTTk1QCiAgIGV4dGVuc2lvbiBETExzIChlLmcuIGxpbmtVcCBhbmQgbGlua0Rvd24pIGFuZCB0aGUgdmFsdWUgb2YgdGhlCiAgIHN5c1VwVGltZQogICB2YXJiaW5kIGluY2x1ZGVkIGluIHRyYXBzIGdlbmVyYXRlZCBieSBOZXQtU05NUCBpdHNlbGYgKGUuZy4KICAgY29sZFN0YXJ0KS4iCgoyMDA5LTEyLTIxIDEwOjA5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgU3BlbGxpbmcgZml4OiByZXBsYWNlZCBhbGwgb2NjdXJyZW5jZXMgb2YgJ3NwZWNpZmMnIGJ5CiAgICdzcGVjaWZpYycuCgoyMDA5LTEyLTIxIDEwOjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFJlZmFjdG9yaW5nOiBlbGltaW5hdGVkIGR1cGxpY2F0ZWQgY29kZSBieSByZWltcGxlbWVudGluZwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgdXNpbmcgc25tcF9hbGFybV9yZWdpc3Rlcl9ocigpLiBOZWl0aGVyIHRoZQogICBOZXQtU05NUCBBUEkgbm9yIHRoZSBiZWhhdmlvciBvZiBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgaGFzIGJlZW4KICAgY2hhbmdlZC4KCjIwMDktMTItMjAgMTE6MTAgIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2FnZW50eHRyYXAuYywgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vYWdlbnR4dHJhcC4xLmRlZjoKCiAgIE5FV1M6IGFwcHM6IEFkZCBjb21tYW5kIHRvIHNlbmQgQWdlbnRYIG5vdGlmeSByZXF1ZXN0cyB0byBhCiAgIG1hc3RlciBhZ2VudC4KCjIwMDktMTItMTcgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE3IC0tIGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTE3IDE2OjAzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MDMgLyBwYXRjaCAyOTExMzIzICJGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZwogICBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uIiAoc3VibWl0dGVkIGJ5IG15c2VsZikuIFRoYXQgcGF0Y2gKICAgZGlkIG5vdCBvbmx5CiAgIGZpeCB0aGUgbG9ja3VwIGJ1dCBhbHNvIG1hZGUgc25tcGQgcHJpbnQgYSB3YXJuaW5nIGR1cmluZyBzdGFydHVwCiAgIHdoZW4KICAgaXF1ZXJ5U2VjTmFtZSB3YXMgbm90IGNvbmZpZ3VyZWQuIFRoaXMgd2FybmluZyB3YXMgcHJpbnRlZCBldmVuCiAgIHdoZW4gbm8KICAgaW50ZXJuYWwgcXVlcmllcyB3ZXJlIHBlcmZvcm1lZC4gVGhpcyB3YXJuaW5nIGlzIG5vdyBvbmx5IHByaW50ZWQKICAganVzdCBiZWZvcmUKICAgdGhlIGZpcnN0IGludGVybmFsIHF1ZXJ5IGlzIG1hZGUgKGR1cmluZyB0aGUgZmlyc3QgY2FsbCBvZgogICBuZXRzbm1wX3F1ZXJ5X2dldF9kZWZhdWx0X3Nlc3Npb24oKSBpbnN0ZWFkIG9mIGR1cmluZyBjcmVhdGlvbiBvZgogICB0aGUgaW50ZXJuYWwKICAgc2Vzc2lvbikuCgoyMDA5LTEyLTE3IDEzOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jOgoKICAgUk1PTiBNSUIgc291cmNlIGNvZGUgY29tcGlsZXMgYWdhaW4gLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKSBhbmQKICAgQUdVVElMX3N5c191cF90aW1lKCkgc3VjaCB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBub3JtYWxpemUgdGhlCiAgIHR2X3VzZWMgZmllbGQgb2YKICAgc3RydWN0IHRpbWV2YWwgcHJvcGVybHkuIE5vdGU6IHRoaXMgc291cmNlIGNvZGUgbW9kaWZpY2F0aW9uIGRvZXMKICAgbm90IGFmZmVjdAogICB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhZm9yZW1lbnRpb25lZCB0d28gZnVuY3Rpb25zLgoKMjAwOS0xMi0xNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogbWFuL25ldHNubXBfdXRpbC4zOgoKICAgUmVtb3ZlZCBkb2N1bWVudGF0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvIC0tIHNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzowNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENvbnZlcnRlZCBzdGFydHRpbWUgZnJvbSBhIGdsb2JhbCB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIGFuZCBhcHBsaWVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBBZGRlZCB0d28gbmV3IG1hY3JvczogTkVUU05NUF9USU1FUkFERCgpIGFuZAogICBORVRTTk1QX1RJTUVSU1VCKCkuCiAgIC0gQWRkZWQgdGhyZWUgbmV3IGZ1bmN0aW9uczogbmV0c25tcF9nZXRfc3RhcnR0aW1lKCksCiAgIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIGFuZCBhdGltZV9oc3VidHJhY3QoKS4KICAgLSBSZXBsYWNlZCBnZXR0aW1lb2ZkYXkoKSArIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBjYWxscyBieSBhIGNhbGwKICAgdG8gbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkuCiAgIC0gUmVtb3ZlZCB0aGUgbWFjcm8gRElGRlRJTUVWQUwoKSBiZWNhdXNlIGl0IHdhcyBub3QgdXNlZCBpbnNpZGUKICAgdGhlIE5ldC1TTk1QIHByb2plY3QgYW5kIGJlY2F1c2UgaXQgY29udGFpbmVkIGEgYnVnLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9ucyBjYWxjdWxhdGVfdGltZV9kaWZmKCksIHVhdGltZV9yZWFkeSgpLAogICBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCgoyMDA5LTEyLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBCdWcgZml4OiBhY2NvcmRpbmcgdG8gUkZDIDI1NzEgdGhlIHVuaXQgb2Ygc25tcEVuZ2luZVRpbWUgaXMgb25lCiAgIHNlY29uZCwKICAgbm90IG9uZSBodW5kcmVkdGggb2YgYSBzZWNvbmQuCgoyMDA5LTEyLTE3IDEwOjAzICBkdHMxMgoKICAgKiBtYW4vc25tcHRlc3QuMS5kZWY6CgogICBGaXggdHlwby4KCjIwMDktMTItMTYgMTI6MzAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3Mtb25seSBidWcgZml4ZXM6CiAgIC0gRml4ZWQgdGhlIHN0cmFuZ2UgYnVpbGQgZXJyb3JzIHRoYXQgb2NjdXJyZWQgd2hlbiBjb21waWxpbmcKICAgbGlibmV0c25tcCBhcyBhIERMTCBhbmQgd2hlbiBlaXRoZXIgPHN0ZGxpYi5oPiBvciA8c3RyaW5nLmg+IHdhcwogICBpbmNsdWRlZCBhZnRlciA8bmV0LXNubXAtY29uZmlnLmg+IGluc3RlYWQgb2YgYmVmb3JlLgogICAtIEZvciBkZWJ1ZyBidWlsZHMgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbywgZml4ZWQgdGhlCiAgIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgX21hbGxvY19kYmcoKSBjYWxsIGludm9rZWQgYnkgc3RyZHVwKCkgYW5kCiAgIGZyZWUoKS1pbmcgc3RyZHVwKCktZWQgbWVtb3J5IGJ5IGluY2x1ZGluZyB0aGUgPGNydGRiZy5oPiBoZWFkZXIKICAgaW4gdG9vbHMuYyBhbmQgYnkgZGVmaW5pbmcgdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgX0NSVERCR19NQVBfQUxMT0MuIERldGVjdGVkIHZpYSB0aGUgbWVtb3J5IGNoZWNrZXIgaW5jbHVkZWQgaW4KICAgSW50ZWwgUGFyYWxsZWwgU3R1ZGlvLgoKMjAwOS0xMi0xNCAxNzoyMyAgdGFuZGVycwoKICAgKiAgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgc3luYyBkZWZpbml0aW9uIG9mIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBQZXJsIHdpdGggdGhlIGNoYW5nZXMKICAgaW4KICAgcjE3ODU1IGFuZCByMTc5MDgKCjIwMDktMTItMTQgMTM6NTUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeCBUQ1AgdHJhbnNwb3J0IGJyb2tlbiBieSByZXYuIDE3ODU1IC0gY29waWVzIG9mCiAgIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBzbm1wVENQRG9tYWluLmMgYW5kIHNubXBVRFBEb21haW4uYyBtdXN0CiAgIGJlIHRoZSBzYW1lLgoKMjAwOS0xMi0xMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgQ0hBTkdFUzogc25tcHVzbTogcGF0Y2ggZnJvbSBNYXJ0aW4gQmpvcmtsdW5kIHRvIGFkZCBhIC1DdyBvcHRpb24KICAgdG8gdXNlIGNyZWF0ZUFuZFdhaXQgZm9yIGFnZW50cyB0aGF0IGFyZSBzdHJpY3QgYWJvdXQgbm90CiAgIGFsbG93aW5nIGEgcm93IHRvIGJlIHNldCB0byBhY3RpdmUgdW50aWwgdGhlIGF1dGhlbnRpY2F0aW9uCiAgIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWQ7IHBsdXMgd2hpdGUtc3BhY2UgY2xlYW4gdXAsIG1hbnVhbAogICBhZGRpdGlvbnMgYW5kIGhlbHAgb3V0cHV0IG1vZGlmaWNhdGlvbnMgYnkgaGFyZGFrZXIKCjIwMDktMTItMTEgMTQ6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhIGZvcm1hdCBzcGVjaWZpZXIgbWlzbWF0Y2guCgoyMDA5LTEyLTExIDE0OjA2ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgd2luRXh0RExMIGJ1Z3MgZml4ZWQ6CiAgIC0gc3lzVXBUaW1lLjAgZG9lcyBub3cgcmVwb3J0IHRoZSBjb3JyZWN0IHZhbHVlLgogICAtIGEgbGlua1VwIG9yIGxpbmtEb3duIHRyYXAgaXMgbm93IHNlbnQgYWZ0ZXIgdGhlIHN0YXR1cyBvZiBhCiAgIG5ldHdvcmsgaW50ZXJmYWNlCiAgIGhhcyBjaGFuZ2VkLgogICAtIHRoZSB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lLjAgdmFyYmluZCBpbiBsaW5rVXAgYW5kIGxpbmtEb3duCiAgIHRyYXBzIGlzIG5vdwogICBjb3JyZWN0LgoKMjAwOS0xMi0xMCAxNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0hFUzogMjkxMTk3MDogUHJvcGVybHkgdGVybWluYXRlIGxpbmtlZCBsaXN0CiAgIG9mIHJlZ2lzdHJhdGlvbnMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pcmtvIERlY2tlcnQuCgoyMDA5LTEyLTEwIDE1OjQzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjkxMTMyMzogRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbgoKMjAwOS0xMi0xMCAxMzo1OSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZgogICBoclN5c3RlbVVwdGltZS4wLgogICAtIEZpeGVkIGEgZmV3IHR5cG9zLgoKMjAwOS0xMi0xMCAxMzowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFkZGVkIG1pc3NpbmcgbmV3bGluZSBpbiBhIGxvZ2dpbmcgc3RhdGVtZW50LgoKMjAwOS0xMi0xMCAxMjo1NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHdpbkV4dERMTCBidWdzOgogICAtIEZpeGVkIGJ1ZyBpbiB0cmFwIGZvcndhcmRpbmc6IGxpbmtEb3duIHRyYXBzIHdlcmUgc2VudCBhcwogICB3YXJtU3RhcnQgdHJhcHMKICAgYW5kIGxpbmtVcCB0cmFwcyB3ZXJlIHNlbnQgYXMgbGlua0Rvd24gdHJhcHMuCiAgIC0gRml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZXh0ZW5zaW9uIERMTCBsb2FkaW5nLgogICAtIEEgZGVidWcgdHJhY2Ugc3RhdGVtZW50IGlzIG5vdyBpbnZva2VkIHdoZW5ldmVyIGEgc2VyaW91cyBlcnJvcgogICBoYXMgYmVlbgogICBkZXRlY3RlZC4KCjIwMDktMTItMTAgMTI6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT0lEcyBpbiBkZWJ1ZyBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgdGhlIHdpbkV4dERMTCBtb2R1bGUgYXJlIG5vdwogICBwcmludGVkIGluCiAgIHN5bWJvbGljIGZvcm0gaW5zdGVhZCBvZiBudW1lcmljIGZvcm0uCgoyMDA5LTEyLTEwIDA4OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBQcm9qZWN0IGRlcGVuZGVuY2llcyBzaG91bGQgbm93IHJlYWxseSBiZSBjb3JyZWN0LiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzg3My4KCjIwMDktMTItMTAgMDg6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ2hhbmdlcyAob25seSBzb3VyY2UgY29kZSBjb21tZW50cyBoYXZlIGJlZW4gY2hhbmdlZCk6CiAgIC0gUmVtb3ZlZCBhIG5vdGUgdGhhdCBjb250cmFkaWN0ZWQgdGhlIGluc3RydWN0aW9ucyBpbgogICBSRUFETUUud2luMzIuCiAgIC0gVXBkYXRlZCBidWlsZCBpbnN0cnVjdGlvbnMgYWZ0ZXIgdGhlIGFkZGl0aW9uIG9mIHRoZSBmaWxlCiAgIHdpbjMyL1NubXAtd2luRXh0RExMLmggaW4gcjE3ODMwLgoKMjAwOS0xMi0xMCAwODoxNyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wc3RhdHVzLmM6CgogICBNYWRlIGZpbGUgaGVhZGVyIGNvbW1lbnRzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZGVzY3JpcHRpb25zIGluIHRoZQogICByZXNwZWN0aXZlIG1hbiBwYWdlcy4KCjIwMDktMTItMTAgMDM6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnRfc3lzT1JfY2FsbGJhY2sgd29uJ3QgdHJpZ2dlciBhIHdhcm5pbmcgd2hlbgogICByZWdpc3RlcmVkIGFzIGEgY2FsbGJhY2suIENoYW5nZSBhZ2VudHhfcmVvcGVuX3N5c09SVGFibGUgaW4KICAgb3JkZXIgdG8gYXZvaWQgd2FybmluZ3Mgb2YgY29uc3QgcmVtb3ZhbC4KCjIwMDktMTItMDkgMTU6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIE1vdmVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnIGluc2lkZSB0aGUKICAgZnVuY3Rpb24KICAgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIG9ubHkgdXNlZCBieQogICB0aGF0IGZ1bmN0aW9uLgogICAtIERvY3VtZW50ZWQgdGhlIHB1cnBvc2Ugb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJy4KICAgLSBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCB0aGUgY2FsbCBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBkb2VzCiAgIG5vdCB0cmlnZ2VyIGFuCiAgIGludmFsaWQgbWVtb3J5IGFjY2VzcyAoc3RyWy0xXSkgd2hlbiBhbiBlbXB0eSBzdHJpbmcgaXMgcGFzc2VkIHRvCiAgIHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTA5IDE0OjM3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzCiAgIGJpZ2dlciB0aGFuIDYgYnl0ZXMgdG8gaXBOZXRUb01lZGlhVGFibGUgYW5kCiAgIGlwTmV0VG9QaHlzaWNhbFRhYmxlLgogICBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzIHdpdGggOSBhbmQgbW9yZQogICBieXRlcy4gU25tcGQgb24gTGludXggd2FzIG5vdCBhYmxlIHRvIHBhcnNlIC9wcm9jL25ldC9hcnAgdGhlbgogICBhbmQgcHJvZHVjZWQgdWdseSAnaW9jdGwgMzUxMjMgcmV0dXJuZWQgLTEnIHRvIGxvZy4KCjIwMDktMTItMDkgMTI6MjcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIG1pc3NpbmcgLUxvIGluIGEgY29tbWFuZCBsaW5lIGV4YW1wbGUuCgoyMDA5LTEyLTA5IDEyOjE2ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBBZGRlZCBzbm1wYXBpLmxpYiB0byB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2Ygc25tcGQuZXhlLgogICBBcHBhcmVudGx5IFZpc3VhbAogICBTdHVkaW8gMjAwNSBhbmQgMjAwOCBuZWVkIHRoaXMgbGlicmFyeSBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3QKICAgd2hlbiBsaW5raW5nCiAgIHRoZSBleGUsIHdoaWxlIGZvciBWaXN1YWwgU3R1ZGlvIDYgaXQgaXMgc3VmZmljaWVudCB3aGVuIHRoaXMKICAgbGlicmFyeSBpcwogICBwcmVzZW50IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBuZXRzbm1wbWlicy5saWIuCgoyMDA5LTEyLTA5IDA4OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODQgYW5kIHIxNzg3MywgdGhlIGJ1aWxkCiAgIHByb2Nlc3MgYmVjYW1lIHNpbXBsZXIuCgoyMDA5LTEyLTA5IDA4OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEV4cG9ydCBzdHJ0b3VsbCAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxNzg4Ni4KCjIwMDktMTItMDkgMDg6MjEgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJldmVydGVkIHIxNzcwMCBmb3IgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NiwgbW9kaWZ5aW5nCiAgIHRoZQogICBzdHJ0b3VsbCBsaW5lIGluIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIGlzIG5vIGxvbmdlcgogICBuZWNlc3NhcnkuCgoyMDA5LTEyLTA5IDA4OjEyICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3M6IHN3aXRjaGVkIGZyb20gX3N0cnRvdWk2NCgpIHRvIHN0cnRvdWxsKCkgZm9yIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvCiAgIDIwMDIgYW5kIGxhdGVyIGJlY2F1c2UgdGhlIGZvcm1lciBpcyBub3QgZnVsbHkgUE9TSVggY29tcGxpYW50LgogICBUaGUgc3RydG91bGwoKQogICB1bml0IHRlc3QgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBvdXRwdXQgZm9yIF9zdHJ0b3VpNjQoKSB3aXRoCiAgIE1TVkMgMjAwODoKICAgdGVzdCAxNCBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCiAgIHRlc3QgMTYgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAoKMjAwOS0xMi0wOCAyMTo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IGEgbWFzayBpcyBnaXZlbiB0byBvcGVuCiAgIHdoZW4gT19DUkVBVCBpcyBzcGVjaWZpZWQKCjIwMDktMTItMDggMTY6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIHRoaXMgb3V0LgoKMjAwOS0xMi0wOCAxNTo0NyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBVbml4IHN5c3RlbXMgKGZpeGVkIGEgdHlwbyBpbnRyb2R1Y2VkIGluIHIxNzg4MSkuCgoyMDA5LTEyLTA4IDE1OjM3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuIFdpdGhvdXQgdGhpcwogICBkZWZpbmUgdGhlIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGJlbmlnbiByZWRlZmluaXRpb24gb2YKICAgdHlwZSBzb2NrbGVuX3QuCgoyMDA5LTEyLTA4IDE1OjI4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENsZWFuZWQgdXAgdGhlIGNvZGUgZm9yIHNldHRpbmcgbGluZSBidWZmZXJpbmc6CiAgIC0gSW5zdGVhZCBvZiBoYXZpbmcgY2FsbHMgdG8gc2V0dmJ1ZigpIGluIG11bHRpcGxlIGZpbGVzLCB0aGVyZQogICBpcyBub3cgb25lIGNhbGwKICAgdG8gc2V0dmJ1ZigpIGZyb20gdGhlIG5ldyBmdW5jdGlvbiBuZXRzbm1wX3NldF9maWxlbG9nLiBUaGVzZQogICBzb3VyY2UgZmlsZXMKICAgYXJlOiBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0YWJsZS5jCiAgIGFuZCBhZ2VudFxtaWJncm91cFxkaXNtYW5cdHJhY2Vyb3V0ZVx0cmFjZVJvdXRlQ3RsVGFibGUuYy4KICAgLSBVc2luZyAtTG8gLyAtTGUgZG9lcyBub3cgZW5hYmxlIGxpbmUgYnVmZmVyaW5nIGZvciBzdGRvdXQgLwogICBzdGRlcnIgcmVzcGVjdGl2ZWx5LgogICAtIFJlbW92ZWQgY29kZSBpbiBzbm1wZC5jIGFuZCBzbm1wdHJhcGQuYyBmb3Igc2V0dGluZyBsaW5lCiAgIGJ1ZmZlcmluZyBvbiBzdGRvdXQKICAgc2luY2Ugc2V0dGluZyBsaW5lIGJ1ZmZlcmluZyBvbiBzdGRvdXQgaXMgbm93IHRyaWdnZXJlZCBieSB0aGUKICAgY29tbWFuZC1saW5lCiAgIG9wdGlvbiAtTG8uCiAgIEJ1Z3MgZml4ZWQ6CiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgYWxzbyBzZXQgZm9yIHN0ZGVyciB3aGVuIHRoZQogICBjb21tYW5kLWxpbmUgb3B0aW9uCiAgIC1MZSBoYXMgYmVlbiBzcGVjaWZpZWQuCiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgc2V0IGNvcnJlY3RseSBmb3Igc3Rkb3V0IG9uIFdpbmRvd3MKICAgc3lzdGVtcwogICAoY29tbWFuZC1saW5lIG9wdGlvbiAtTG8pLgoKMjAwOS0xMi0wOCAxMjozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGxvY2FsIHZhcmlhYmxlcyB0aGF0IHdlcmUgZGVmaW5lZAogICBidXQKICAgbm90IHVzZWQgYnkgb25seSBlbmFibGluZyB0aGUgbG9jYWwgdmFyaWFibGUgZGVmaW5pdGlvbnMgb24gdGhlCiAgIHBsYXRmb3JtIHRoYXQgdXNlcyB0aGVzZSB2YXJpYWJsZXMgKExpbnV4KS4KCjIwMDktMTItMDggMTI6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEFkZGVkICNpbmNsdWRlICJtaWJncm91cC91dGlsX2Z1bmNzLmgiLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA5LTEyLTA4IDEyOjI1ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEluY2x1ZGUgdGhlIGdldGhvc3RlbnQoKSAvIHNldGhvc3RlbnQoKSBkZWNsYXJhdGlvbnMgYmVmb3JlIHVzaW5nCiAgIHRoZXNlCiAgIGZ1bmN0aW9ucy4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMDggMTI6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXhlZCBhbiBpbmNvbnNpc3RlbmN5ICh3aGljaCBpcyBhbGxvd2VkIGJ5IHRoZSBBTlNJIEMgc3RhbmRhcmQpCiAgIGJldHdlZW4KICAgZnVuY3Rpb24gZGVjbGFyYXRpb24gYW5kIGZ1bmN0aW9uIGRlZmluaXRpb24gb2YKICAgbmV0c25tcF9hZGRfZ2xvYmFsX3RyYXBoYW5kbGVyIGFuZAogICBuZXRzbm1wX2FkZF9kZWZhdWx0X3RyYXBoYW5kbGVyIHN1Y2gKICAgdGhhdCB0aGUgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgZG9lcyBubyBsb25nZXIgY29tcGxhaW4KICAgYWJvdXQKICAgdGhpcy4KCjIwMDktMTItMDggMTI6MDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBpbXBsaWNpdGx5IGNhc3RpbmcgYXdheSBjb25zdG5lc3MuCgoyMDA5LTEyLTA4IDEyOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9ubHkgY29tcGlsZSB0aGUgd2luRXh0RExMIHNvdXJjZSBjb2RlIGlmIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8KICAgVVNJTkdfV0lORVhURExMX01PRFVMRSBoYXMgYmVlbiBkZWZpbmVkLgoKMjAwOS0xMi0wOCAxMjowMyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4KCjIwMDktMTItMDggMTI6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIG91dCB0aGUgYnVpbGQgb3JkZXIuCgoyMDA5LTEyLTA4IDA5OjQ2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cyAvIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvOiBkaXNhYmxlZCB0aGUgY29tcGlsZXIgd2FybmluZwogICBhYm91dAogICBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2hlcyAoNDAxOCkgYmVjYXVzZSB0aGlzIHdhcm5pbmcgZG9lcyBub3QKICAgeWllbGQKICAgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbi4KCjIwMDktMTItMDggMDk6MTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc2MzkgKHBhdGNoIDI3ODA0MTEgLS0gZml4IGNvbXBpbGVyIHdhcm5pbmdzKToKICAgYXBwbGllZAogICB0aGlzIHBhdGNoIHRvIG5ldC1zbm1wLWNvbmZpZy5oLmluIHRvbyBzdWNoIHRoYXQKICAgbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluIG1hdGNoIGFnYWluLgoKMjAwOS0xMi0wOCAwODoxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudHhfc3lzT1JfY2FsbGJhY2soKSBkb2VzIG5vdCB0cmlnZ2VyIGEKICAgY29tcGlsZXIKICAgd2FybmluZyB3aGVuIHRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBoYXMgYmVlbgogICBkZWNsYXJlZCBjb25zdC4KCjIwMDktMTItMDggMDg6MTQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9mIHN0cnRvdWxsKCkgZnJvbSAndW5zaWduZWQgbG9uZyBsb25nJwogICAod2hpY2gKICAgaXMgbm90IHZhbGlkIEM4OSkgdG8gJ3VpbnQ2NF90JyAoZGVjbGFyZWQgaW4KICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCiAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBjb21waWxlIGFnYWluIHdpdGgKICAgTVNWQyA2LjAuCgoyMDA5LTEyLTA3IDEwOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgVHdlYWsgbWlzc2luZyBzdWJpZGVudGlmaWVyIHByb2Nlc3NpbmcgdG8gYmUgbW9yZSB0eXBlLWF3YXJlLgogICAoQW4gaXNzdWUgd2l0aCBBSVgsIGF0IGxlYXN0KQoKMjAwOS0xMi0wNiAxODozOCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IE1ha2UgdGhlIGxpc3RzIG9mIGNvbTJTZWMqRW50cmllcyBzdGF0aWMKCjIwMDktMTItMDYgMTg6MzQgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNYWtlIHRoZSBpdGVyYXRvciB2YXJpYWJsZSBpbiBuZXRzbm1wXypfZ2V0U2VjTmFtZSBjb25zdAoKMjAwOS0xMi0wNiAxODoyOSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IENoYW5nZSB0aGUgdHlwZXMgb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YKICAgbmV0c25tcF8qX2dldFNlY05hbWUgZnJvbSBjaGFyKiB0byBjb25zdCBjaGFyKiBzaW5jZSB0aGV5IHBvaW50CiAgIGludG8gaW50ZXJuYWwgc3RydWN0dXJlcy4KCjIwMDktMTItMDUgMjA6MTkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgZml4IGRlY2xhcmF0aW9uIG9mIHN0cnRvdWxsCgoyMDA5LTEyLTA1IDE3OjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2FsbCBuZXRzbm1wX3JlYWRfbW9kdWxlIGluc3RlYWQgb2YgcmVhZF9tb2R1bGUgdG8gbWFrZSBpdAogICBjb21waWxlIHdpdGgKICAgTkVUU05NUF9DTEVBTl9OQU1FU1BBQ0UKCjIwMDktMTItMDIgMTU6MzkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGludmFsaWQgYWNjZXNzIHRvIG1lbW9yeSBpbiBUQ1AtTUlCCiAgIFRoaXMgcGFydGx5IHJldmVydHMgcGF0Y2ggMTc3MTkgLSB0aGUgZW50cmllcyAqYXJlKiB1c2VkIGFmdGVyCiAgIHJhd19kYXRhIGNvbnRhaW5lciBpcyBmcmVlZC4gVGhlc2UgZW50cmllcyBzaG91bGQgYmUgZnJlZWQgd2hlbgogICBhc3NvY2lhdGVkIHJvd3JlcV9jdHggaXMgZnJlZWQuCgoyMDA5LTEyLTAyIDA4OjMwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCB1ZHBUYWJsZSBpbmRleGVzIG9uIGJpZy1lbmRpYW4gNjRiaXQgTGludXguCiAgIFRoZSBpbmRleCB3YXMgYWx3YXlzICcwLjAuMC4wJyBpbnN0ZWFkIG9mIHJlYWwgbG9jYWwgSVAgYWRkcmVzcy4KCjIwMDktMTItMDEgMTI6MzYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFVwZGF0ZSBhIHJlZHVuZGFudCAoYW5kIHByb2JhYmx5IGluYWNjdXJhdGUpIGNvbW1lbnQuCgoyMDA5LTEyLTAxIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjgyMjM2MDogRml4IG1lbW9yeSBsZWFrIHdoZW4gYnVpbGRpbmcKICAgdGFibGUgT0lEcwoKMjAwOS0xMi0wMSAxMjowOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogQlVHUzogMjgzNzk5ODogSGFuZGxlIG1pc3NpbmcgaW5zdGFuY2UKICAgc3ViaWRlbnRpZmllcnMgaW4gcmVzdWx0cwoKMjAwOS0xMi0wMSAxMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NDEwMDg6IFByb3RlY3QgYWdhaW5zdCBjcmFzaCBmb2xsb3dpbmcKICAgZmFpbGVkIEFnZW50WCByZXNwb25zZQoKMjAwOS0xMi0wMSAwNzozNCAganNhZnJhbmVrCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IHJlc3BvbmRpbmcgdG8gYnJvYWRjYXN0IHJlcXVlc3RzLgogICBVRFAgcmVzcG9uc2VzIGFyZSBzZW50IHdpdGggc291cmNlIElQIGFkZHJlc3Mgd2hpY2ggd2FzCiAgIGRlc3RpbmF0aW9uIG9mCiAgIGFwcHJvcHJpYXRlIHJlcXVlc3RzIChpbXBsZW1lbnRlZCBpbiBTVk4gcmV2LiAxNTIxNSkuIEJ1dCBpZiB0aGUKICAgZGVzdGluYXRpb24KICAgb2YgYSByZXF1ZXN0IGlzIGJyb2FkY2FzdCBJUCBhZGRyZXNzLCB0aGUgcmVxdWVzdCB3YXMgc2VudCB3aXRoCiAgIHRoZSBicm9hZGNhc3QKICAgYWRkcmVzcyBhcyBzb3VyY2UuIHNlbmRtc2coKSBvbiBMaW51eCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYW5kCiAgIHJldHVybnMgZXJyb3IKICAgLT4gcmVzcG9uc2UgaXMgbm90IHNlbnQuIEluIG9yZGVyIHRvIHNlbmQgcmVzcG9uc2VzIGZyb20gdGhlIHNhbWUKICAgaW50ZXJmYWNlLAogICBpbnRlcmZhY2UgaW5kZXggb2YgdGhlIGFwcHJvcHJpYXRlIGludGVyZmFjZSBtdXN0IGJlIHVzZWQuCgoyMDA5LTEyLTAxIDAwOjI5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NTIuCgoyMDA5LTEyLTAxIDAwOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NDIuCgoyMDA5LTExLTMwIDE2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg3Mzg1ODogRml4IGhhbmRsaW5nIG9mIHNjaGVkT3duZXIgaW5kZXguCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBTY2h1YmVydC4KCjIwMDktMTEtMzAgMTY6NDYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUdTOiAyODg4NTY5OiBGaXggZ2VuZXJhdGlvbiBvZiB0YWJsZSBjb2x1bW5zCiAgIGFycmF5CgoyMDA5LTExLTMwIDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg5NDA1OTogSGFuZGxlIGVycm9ycyB3aGVuIGNvdW50aW5nCiAgIGludGVyZmFjZXMKCjIwMDktMTEtMzAgMTY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMjg5NzAwMDogU3VwcHJlc3MgMzItYml0IGNvdW50ZXIgdHJ1bmNhdGlvbgogICB3YXJuaW5ncy4KCjIwMDktMTEtMzAgMTU6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMzA5MjogRml4IGJyb2tlbiBoYW5kbGluZyBvZiBicm9hZGNhc3QKICAgZW50cmllcy4KCjIwMDktMTEtMzAgMTU6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAxMDI5OiBGaXggY29tcGlsZXIgd2FybmluZyBvbgogICBDbG9zZUhhbmRsZSgpCiAgIEVuZGlhbiBwcm9ibGVtcyBhbHJlYWR5IGFkZHJlc3NlZCBieSBwYXRjaCAjMjgzNTU3NgoKMjAwOS0xMS0zMCAxNToxMyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyODkwOTMxOiBCZXR0ZXIgaGFuZGxpbmcgb2YgQ291bnRlcjY0CiAgIHZhbHVlcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFJvbWFub3YuCgoyMDA5LTExLTMwIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4NzgxNjogUHJvdGVjdCBhZ2FpbnN0IGRpdmlzaW9uLWJ5LXplcm8KICAgY3Jhc2gKCjIwMDktMTEtMzAgMTU6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzIyMDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4KICAgaWZYVGFibGUgaXMgbm90IGluY2x1ZGVkLgoKMjAwOS0xMS0zMCAxNDo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzE1NTogRml4IG1lbW9yeSBsZWFrIGluIHByb3h5CiAgIGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBHb3d0aGFtIFRob21tYW5kcmEuCgoyMDA5LTExLTMwIDE0OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMDkyOiBTdXBwb3J0IG1vbml0b3JpbmcgcHJvY2Vzc2VzIHRoYXQKICAgc2hvdWxkIG5vdCBiZSBydW5uaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBDaHJpc3RpYW4gKGNnNzUpLgogICAKICAgUW46IFNob3VsZCB0aGlzIGZ1bmN0aW9uYWxpdHkgYmUgYmFjay1wb3J0ZWQgdG8gZWFybGllciBsaW5lcz8KCjIwMDktMTEtMzAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODc3NTE4OiBGaXggaGFuZGxpbmcgb2Ygc2NvcGVkIEFnZW50WAogICB2YXJpYWJsZXMKCjIwMDktMTEtMzAgMTQ6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODM1NTc2OiBGaXggZW5kaWFubmVzcyBpc3N1ZXMgaW4KICAgcGFzcy9wYXNzX3BlcnNpc3QKCjIwMDktMTEtMjcgMDg6NTQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jOgoKICAgUmVtb3ZlIGV4ZWN1dGFibGUgYXR0cmlidXRlIGZyb20gc291cmNlIGZpbGVzLgoKMjAwOS0xMS0yNSAyMDozNSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGFsbCB0aGUgb2lkcyBhbmQgb2lkIGxlbmd0aHMgaW4gYWdlbnRfdHJhcC5jCiAgIGNvbnN0IGFuZCB1c2UgdGhlbSBmcm9tIGV2ZXJ5d2hlcmUuCgoyMDA5LTExLTI1IDIwOjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogSW5zdGFsbCBsaWJyYXJ5L29pZC5oLiBUaGFua3MgdG8gIlRvbWFzeiBMaXMiCiAgIHdobyBzcG90dGVkIHRoZSBidWcuCgoyMDA5LTExLTI1IDA5OjQ3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBDb21tZW50LW9ubHkgY2hhbmdlOiBjaGFuZ2VkIHRoZSBuYW1lIGluIHRoZSBmaWxlIGhlYWRlciBmcm9tCiAgIHRlc3RoYW5kbGVyLmgKICAgdG8gaW5zdGFuY2UuaCBzdWNoIHRoYXQgaXQgbm93IG1hdGNoZXMgdGhlIGZpbGVuYW1lLgoKMjAwOS0xMS0yNCAwNzo0OSAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QKCjIwMDktMTEtMjMgMDc6MDcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgZW50ZXJwcmlzZSBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NlbmRfdHJhcHMgYW5kIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgY29uc3QKCjIwMDktMTEtMjMgMDc6MDIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBuYW1lIGFyZ3VtZW50IHRvIGZpbmRfdmFyYmluZF9pbl9saXN0CiAgIGNvbnN0CgoyMDA5LTExLTIyIDIzOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgUmVtb3ZlIHNvbWUgbG9jYWwgcmVkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zCgoyMDA5LTExLTIyIDAxOjAzICBtYWdmcgoKICAgKiAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmcsIFdpbjMyOiBSZW1vdmUgYSBmZXcgdW51c2VkIGNvbmZpZ3VyZSBzeW1ib2xzCgoyMDA5LTExLTIxIDA4OjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgUmVwbGFjZWQgYW4gYWNjaWRlbnRhbGx5IGNvbW1pdHRlZCBmaWxlIGJ5IHRoZSBwcm9wZXIgY29udGVudHMuCgoyMDA5LTExLTIwIDE2OjI5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFJldmVydGVkIGFjY2lkZW50YWxseSBtZXJnZWQgY2hhbmdlcy4KCjIwMDktMTEtMjAgMTY6MjYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAwOS0xMS0yMCAxNjoxOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTcGVsbGluZyBmaXggaW4gQyBzb3VyY2UgY29kZSBjb21tZW50czogcmVwbGFjZWQgJ3JldHJpdmFsJyBieQogICAncmV0cmlldmFsJy4KCjIwMDktMTEtMjAgMTY6MTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgYSBuYW1pbmcgaW5jb25zaXN0ZW5jeTogcmVwbGFjZWQgdHdvIG9jY3VycmVuY2VzIHdpbkV4dERsbAogICBieSB3aW5FeHRETEwgaW4gc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDA5LTExLTE5IDIyOjUyICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTAwMDc4OiBBZGQgc3VwcG9ydCBmb3IgT0lEIHZhcmlhYmxlcyB3aXRoCiAgIHNpemUgaW4gZWxlbWVudHMgaW5zdGVhZCBvZiBieXRlcywgY29ycmVjdCBzeXNPYmplY3RJRCB0byB1c2UKICAgdGhpcy4KCjIwMDktMTEtMTMgMTI6NTkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBsb2dnaW5nIG9mICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMgogICBiaXRzJyBpbiBJUC1NSUIgYW5kIFRDUC1NSUIKICAgVGhlIGNvdW50ZXJzLCB3aGljaCBncm93IGZhc3QgYXJlIG5vdyBjdXQgdG8gMzJiaXRzLgoKMjAwOS0xMS0xMiAwODoyNiAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFVzZSBiaWcgcHJpbnRmJ3MgaW5zdGVhZCBvZiBtYW55IHNtYWxsIG9uZXMgdG8gc2F2ZSBhIGZldyBodW5kcmVkCiAgIGJ5dGVzIG9uIHRoZSBmaW5hbCBleGVjdXRhYmxlIHNpemUuCgoyMDA5LTExLTEyIDAyOjI0ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvbC5jLCAgIAogICAgICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBBQ19SRVBMQUNFX0ZVTkNTIHRvIGhhbmRsZSBjb2RlIHRoYXQgaXMKICAgbWlzc2luZyBvbiBzb21lIHBsYXRmb3Jtcy4KCjIwMDktMTEtMTEgMDk6MDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IGNhY2hlIGZyZWUgcm91dGluZSB0byBtYXRjaCBoZWFkZXIgZGVjbGFyYXRpb24uCiAgIFJldHVybiBzdWNjZXNzL2ZhaWx1cmUgdmFsdWVzIGZyb20gY2FjaGUgbG9hZCByb3V0aW5lLgogICBQcm9ibGVtIGlkZW50aWZpZWQgYnkgWHVhbi4KCjIwMDktMTAtMzAgMDk6NTEgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJldmVydCAxNzgwOCwgaW5zdGVhZCBmYWN0b3Igb3V0IHRoZSBkZWNsYXJhdGlvbgogICBvZiBvaWQgdG8gaXQncyBvd24gZmlsZSBhbmQgaW5jbHVkZSB0aGF0IGZpbGUgZnJvbSBib3RoIHR5cGVzLmgKICAgYW5kIGFzbjEuaAoKMjAwOS0xMC0zMCAwODoyOCAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBzbm1wbmV0c3RhdDogQWRkIGNvcnJlY3Qgc2l6ZSBwcmVmaXhlcwogICB3aGVuIHByaW50aW5nIHZhcmlhYmxlcyBvZiB0eXBlIG9pZC4KCjIwMDktMTAtMzAgMDg6MDcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSBvaWQgdG8gYmUgYSAzMi1iaXQgdHlwZSBvbiBJTFA2NCBhbmQKICAgTFA2NCBwbGF0Zm9ybXMuCgoyMDA5LTEwLTMwIDA4OjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSBvaWQgdHlwZWRlZiBmcm9tCiAgIDxuZXQtc25tcC9saWJyYXJ5L2FzbjEuaD4uIEl0IGlzIHN0aWxsIHByZXNlbnQgaW4KICAgPG5ldC1zbm1wL3R5cGVzLmg+LCB1c2UgdGhhdCBmaWxlLgoKMjAwOS0xMC0yOCAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBkb24ndCByZXF1aXJlIHN1YmFnZW50X2luaXQoKSBpZiBub3Qgb25seSBidWlsZGluZyBtYXN0ZXIgYWdlbnQKICAgY29kZQoKMjAwOS0xMC0yNyAwNjo0NCAgbWFnZnIKCiAgICogIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMgdG8gdV9jaGFyKgoKMjAwOS0xMC0xNCAyMzoxMiAgbWFnZnIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbgogICBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KCjIwMDktMTAtMTIgMjA6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHJwIHZhcmlhYmxlIHRvIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBvbmUuCgoyMDA5LTEwLTA5IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6Mjg3MTc0NzogcGx1ZyBtZW1vcnkgbGVhayBpbiBPSUQKICAgcHJvY2Vzc2luZy4KICAgVGhlIG1lbW9yeSBsZWFrZWQgd2hlbiBzbWFsbCBPSUQsIHdoaWNoIGNvdWxkIGZpdCBwcmUtYWxsb2NhdGVkCiAgIHZwLT5uYW1lX2xvYywgd2FzIHBsYWNlZCBpbiBkaWZmZXJlbnQgKGFsbG9jYXRlZCkgb25lLgoKMjAwOS0xMC0wOSAwNTozMSAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogQlVHOiAyODM4MjQzOiBDb3JyZWN0IHRoZSBvdXRwdXQgb2YgdW5zaWduZWQgdmFsdWVzLgogICBUaGFua3MgdG8gSmFjayBIdWFuZyBvZiBRdWFsY29tbSB3aG8gcG9pbnRlZCBvdXQgdGhpcyBidWcuCgoyMDA5LTEwLTA5IDA1OjAwICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIHBhcnNpbmcgb2YgcmFuZ2VzIHRvIGFjY2VwdCBhbGwKICAgdmFsaWQgdmFsdWVzLgoKMjAwOS0xMC0wNyAyMjoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IG1pc2M6IFBBVENIOiAyODM2MTEyOiBVc2UgdGhlIHJpZ2h0IG1vZGlmaWVyIHdoZW4KICAgcHJpbnRpbmcgc2l6ZV90IGFuZCBzc2l6ZV90IHZhcmlhYmxlcy4KCjIwMDktMTAtMDcgMTI6NTAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBjcmVhdGlvbiBvZiB2aWV3cyB1c2luZyBzbm1wdXNtLCBPSURzIHdpdGgKICAgaW5kZXhlcyA+IDI1NSBhcmUgYWxsb3dlZCBub3cuCiAgIFRoaXMgcmV2ZXJ0cyBTVk4gY29tbWl0ICM3NDkyLgoKMjAwOS0xMC0wNSAxOToxOSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIHNwZWxsaW5nIG9mIF9fY3BsdXNwbHVzIHdoZW4KICAgY2hlY2tpbmcgaWYgdGhlIGZpbGUgc2hvdWxkIGJlIHdyYXBwZWQgaW4gZXh0ZXJuICJDIi4KCjIwMDktMTAtMDUgMDY6MTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIENIQU5HRVM6IHNubXB3YWxrOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiB0aGUgZW5kIG9pZCBpcyBsb25nZXIKICAgdGhhbiB0aGUgY3VycmVudCBvaWQgY29ycmVjdGx5CgoyMDA5LTA5LTMwIDEwOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUHJvdGVjdCBhZ2FpbnN0IG1pc3NpbmcgcGFja2FnZSB2ZXJzaW9uCiAgIGluZm9ybWF0aW9uIGNyYXNoaW5nIHRoZSBhZ2VudC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBJbnlhdmVuIFNha2FyYWkuCgoyMDA5LTA5LTI3IDE0OjU5ICBhbGV4X2IKCiAgICogIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyOiBCaW5hcnkgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFuZCBzY3JpcHQgdXBkYXRlcy4KCjIwMDktMDktMjQgMDA6MDggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo1NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHJlbW92ZSBTVk4gYnJhbmNoIHdvcmRpbmcKCjIwMDktMDktMjMgMjM6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHByb3BlciBwcm9qZWN0IGNhcGl0YWxpemF0aW9uCgoyMDA5LTA5LTIzIDIzOjM1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDktMjMgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIyIDIxOjUxICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHR5cG9zCgoyMDA5LTA5LTE0IDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6NDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFpeCwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFBhdGNoIGZyb20gbWFnZnIgZm9yIDUuNSBzcGVjaWZpYyBhaXggYnVpbGQgZml4ZXMKCjIwMDktMDktMDIgMDc6MTIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZW5hbWUgTUlCIG1hY3JvIHRvIE5FVFNOTVBfTUlCMl9PSUQsIE1JQiBpcwogICB0b28gZ2VuZXJpYyBhbmQgbWF5IGNvbmZsaWN0IHdpdGggYXBwbGljYXRpb25zLgogICAKICAgVGhlIG9sZCBNSUIgbWFjcm8gaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdW5sZXNzCiAgIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TIGlzIGRlZmluZWQuCgoyMDA5LTA4LTMxIDE5OjM4ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkaXRpb25hbCBSRkMgbWlicwoKMjAwOS0wOC0zMSAxOTozNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgSUFOQSBmaXhlZCBhIGJ1ZwoKMjAwOS0wOC0yOSAwNzoyOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOS0wOC0yOSAwNzoyOCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogcmV0IGlzIG9ubHkgdXNlZCBpbiBzZXR0YWJsZSB0YWJsZXMgc28gb25seSBkZWNsYXJlIGl0CiAgIHRoZW4uCgoyMDA5LTA4LTI5IDA3OjI0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZXBsYWNlIHRoZSBfb2lkX2xlbiB2YXJpYWJsZSB3aXRoIGFuIGV4cGxpY2l0IGNhbGwgb2YKICAgT0lEX0xFTkdUSC4KCjIwMDktMDgtMjkgMDc6MjEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IE1ha2UgZXZlcnkgZnVuY3Rpb24gdGhhdCBjYW4gYmUgc3RhdGljIHN0YXRpYy4gUmVtb3ZlIHRoZQogICBkZWNsYXJhdGlvbnMgb2YgdGhlIHN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoZSBwcml2YXRlIGRlZmluZXMgZnJvbQogICB0aGUgaGVhZGVyLgoKMjAwOS0wOC0yOSAwNzoxOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVvcmRlciB0aGUgZnVuY3Rpb25zIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KCjIwMDktMDgtMjkgMDc6MTYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IG5ldHNubXBfdGFibGVfcmVnaXN0ZXIgc2hvdWxkIGJlIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUKICAgYW5kIHRha2Ugb25seSB0d28gYXJnbWVudHMuCgoyMDA5LTA4LTI5IDA3OjE0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBidWlsZF9vaWQgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYWxsb2NhdGVkIG9pZC4gQ2hhbmdlIHRvCiAgIHVzZSBidWlsZF9vaWRfbm9hbGxvYyBhbmQgcmVtb3ZlIG9uZSBjb3B5IG9mIHRoZSBpbmRpY2VzLgoKMjAwOS0wOC0yOSAwNzoxMCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogVGhlcmUgaXMgbm8gaW5kZXhfb2lkX2xlbiBtZW1iZXIgaW4gc3RydWN0IGVudHJ5LiBVc2UgdGhlCiAgIGludGVuZGVkIGxvY2FsIHZhcmlhYmxlIGluZGV4X29pZF9sZW4uCgoyMDA5LTA4LTI5IDA3OjA2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBDb3JyZWN0IHRoZSByZXR1cm4gdHlwZSBvZiAke2l9X2dldCplbnRyeSB0byBtYXRjaCB0aGUKICAgcmV0dXJuZWQgdHlwZS4KCjIwMDktMDgtMjYgMjI6MzcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHdod29vcHM7IGJsZXcgdGhlIGNoYW5nZWxvZyBmb3IgcmMyCgoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlZCBiYXNlZCBvbiBuZXcgU0YgdXBsb2FkIG1ldGhvZHM7IG5vIGxvbmdlciBhcyBhdXRvbWF0YWJsZQoKMjAwOS0wOC0yNiAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIEphbiB0byBlbmRsZXNzIGxvb3AgaW4gZGVmYXVsdCByb3V0ZXMKICAgb24gbGludXgKCjIwMDktMDgtMjYgMTc6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBKYW4gdG8gZml4IEMrKyB3cmFwcGVyCgoyMDA5LTA4LTI2IDE0OjUzICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBJbml0aWFsIHN0YWIgYXQgYSBtaW5pbWFsLWhlbHBlciAocmF3KSB0YWJsZSB0ZW1wbGF0ZSwKICAgbGVhdmluZyBtb3N0IG9mIHRoZSB3b3JrIHRvIHRoZSB1c2VyLXByb3ZpZGVkIE1JQiBoYW5kbGVyLgoKMjAwOS0wOC0yNiAxNDo1MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJvZ3VzIGZhaWx1cmVzIChyZXR1cm5pbmcgMCkgYW5kIHN1YnNlcXVlbnQKICAgZG91YmxlLWZyZWVzLAogICBkdWUgdG8gMTUtLzMxLWJpdCBtYXNraW5nIHdoZW4gc2VsZWN0aW5nIHJlcXVlc3QgSURzLiBJZGVudGlmaWVkCiAgIGJ5IGtyb21lc2t5LgoKMjAwOS0wOC0yMCAxMzozMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBsdWcgbGVha3MgaW4gaXBJZlN0YXRzVGFibGUsCiAgIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlLCBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlLgogICAKICAgSXQgc2VlbXMgdG8gbWUgdGhlIHRhYmxlcyB3ZXJlIHdyb25nbHkgZ2VuZXJhdGVkIHdpdGgKICAgbTJjX2RhdGFfYWxsb2NhdGUgb3IKICAgc29tZW9uZSBmb3Jnb3QgdG8gcmVsZWFzZSB0aGUgdXNlciBwcm92aWRlZCBkYXRhLgoKMjAwOS0wOC0xMiAxNTowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IGxpYnRvb2wgdmVyc2lvbiBpbiBORVdTCgoyMDA5LTA4LTExIDAwOjQyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6CgogICB3aG9vcHM7IGFkZCByZWFsIGNoYW5nZWxvZyBlbnRlcmllcyBmb3IgLnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0xMCAyMToyMSAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMDcgMTA6MzIgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBDb3JyZWN0LCBjb25zb2xpZGF0ZSwgY2xhcmlmeSBhbmQgY2xlYW51cCB0aGUgY2F0YWxvZyBvZiBjdXJyZW50CiAgIGNoYW5nZXMuCgoyMDA5LTA4LTA2IDA3OjU3ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgb24gZXhlYyB2cyBleHRlbmQuCgoyMDA5LTA4LTA1IDIwOjA3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyODIyMzU1OiBGaXggbWVtb3J5IGxlYWtzIG9uCiAgIHVkcEVuZHBvaW50VGFibGUgKGxpbnV4KQogICBQYXRjaCBzdXBwbGllZCBieSBGcmFuayBMaWNodGVuaGVsZAoKMjAwOS0wOC0wNSAxOTowNSAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI4MjIzMzc6IEZpeCBtZW1vcnkgbGVhayBpbgogICBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAwOS0wOC0wNSAxNToxNiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFdoZW4gZGVsZXRpbmcgcm93IGNvbnRleHQsIGRlbGV0ZSBhbHNvIGFzc29jaWF0ZWQgZGF0YS4KCjIwMDktMDgtMDUgMTU6MTUgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgVGhlIGNvbnRhaW5lciB1c2VkIHRvIHRyYWNrIGVudHJpZXMgdG8gZGVsZXRlIGZyb20gY2FjaGUgc2hvdWxkCiAgIGJlIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgbmVlZGVkLgoKMjAwOS0wOC0wNSAxNToxMiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBVRFAtIGFuZCBUQ1AtTUlCLgogICBUaGUgZGF0YSBmcm9tIHJhd19kYXRhIGFyZSBjb3BpZWQgdG8gY2FjaGUsIHNvIGl0IHNob3VsZCBiZQogICBmcmVlZC4KCjIwMDktMDgtMDUgMTA6MTYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDI4MTE1Nzc6IEZpeCBidWcgaW4gR2V0QnVsayBoYW5kbGluZy4KICAgRG9uJ3QgZ2V0IGNvbmZ1c2VkIGJ5IGluZGV4IHZhbHVlcyB0aGF0IGNvbnRhaW4gYSAnOicgY2hhcmFjdGVyLgoKMjAwOS0wOC0wNCAyMTo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAyODI3MjY5OiBTdXBwcmVzcyBub24tb3JkZXJlZCBUT0RPIGNvbW1lbnRzLgoKMjAwOS0wOC0wNCAyMTozNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgY29kZSBmb3IgYSBzaW5nbGUgdGFibGUsCiAgIGFzIHdlbGwgYXMgYSBsYXJnZXIgZ3JvdXAuCiAgIEFsc28gYWRkcmVzc2VzIGJ1ZyAyMTUwMjg1CgoyMDA5LTA4LTA0IDIxOjE2ICBtYWdmcgoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBzbm1wbGliOiBmcm9tICJCYXJ0IHZhbiBBc3NjaGUgJiBNYWdudXMgRnJvbXJlaWRlIjogTW9yZSB1cGRhdGVzCiAgIHRvIHN0cnRvdWxsLmMKCjIwMDktMDgtMDQgMTA6NTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFLDvGNrZXJ0IjogZml4IHBvc3NpYmxlIGNyYXNoIHdoZW4KICAgNjQtYml0IGNvdW50ZXJzIGluIGlwU3lzdGVtU3RhdHNUYWJsZSBnZXQgYmlnZ2VyIHRoYW4gMl4zMgoKMjAwOS0wOC0wMyAxOToyNyAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyODI3NzIyOiBmcm9tICJCYXJ0IFZhbiBBc3NjaGUiOiBJbXByb3ZlCiAgIHN0cnRvdWxsIHRvIGJlIGxlc3MgTVNWQy1zcGVjaWZpYwoKMjAwOS0wOC0wMyAxODozOCAgbWFnZnIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlIGZyb20gdGhlIHNldCBvZiBmaWxlcyB0aGF0IHNob3VsZAogICBiZSBpbnN0YWxsZWQKCjIwMDktMDctMjcgMTI6NDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wNy0yNyAxMjoxMSAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjM6CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UKCjIwMDktMDctMjcgMTI6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBmcmVlYnNkOiBwYXRjaCBmcm9tIENlemFyeSBNb3JnYSB0byBmaXggYSBtYWtlIHRlc3Qgb24KICAgZnJlZWJzZAoKMjAwOS0wNy0yNyAxMjowMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNy0yNyAxMTo1MiAgaGFyZGFrZXIKCiAgICogIEZBUSwgTkVXUywgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA3LTI3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcmV2ZXJ0IGFjY2lkZW50aWFsbHkgYXBwbGllZCBwYXRjaAoKMjAwOS0wNy0yNyAwODozNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIHVkcC9kdGxzCgoyMDA5LTA3LTI3IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCByZXF1aXJlIGEgc2Vzc2lvbiB0byBjYXJyeSBhIHNlY05hbWUKCjIwMDktMDctMjYgMjE6MzQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyBmb3IgV29ya3NwYWNlIGJ1aWxkLgoKMjAwOS0wNy0yNiAxODoyMCAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC1BZGRlZCBzdHJ0b3VsbCBmdW5jdGlvbiBhbmQgY29uZmlndXJlIGNoZWNrIGZvciBzeXN0ZW1zIHdpdGhvdXQKICAgaXQgc3VjaCBhcyBXaW4zMiBNU1ZDIDYKICAgLVdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyAtIHJlcXVpcmVzIG5ldyBzdHJ0b3VsbC5jIGZpbGUKICAgLVdpbjMyOiBOZXcgYnVpbGQtYmluYXJ5IHNjcmlwdCB0byBzaW1wbGlmeSBidWlsZGluZyB0aGUgV2luZG93cwogICBiaW5hcnkgcGFja2FnZS4KCjIwMDktMDctMjUgMDU6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgTWFrZSBzdXJlIGEgbWVzc2FnZSBpcyB3cml0dGVuIGlmIHRoZSByZWxldmFudCB0YWJsZSBpcyBtaXNzaW5nLgoKMjAwOS0wNy0yMyAyMToyOSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCBhZGRyZXNzIGluIFJFQURNRS4KCjIwMDktMDctMjMgMDE6MDcgIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDgrIGZpeGVzLgoKMjAwOS0wNy0yMyAwMDo1NSAgYWxleF9iCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDUrIGJ1aWxkIGZpeGVzLiBUaGFua3MgdG8gQmFydCBWYW4gQXNzY2hlLgoKMjAwOS0wNy0yMSAxMjoyMiAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLnJvdy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBBZGQgc2ltcGxlIGRlYnVnIG91dHB1dCB0byBtaWIyYyB0ZW1wbGF0ZXMuCgoyMDA5LTA3LTIxIDEyOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggbWlzc2luZyBzZW1pY29sb24gdHlwb3MuCgoyMDA5LTA3LTIxIDA5OjE1ICBkdHMxMgoKICAgKiBGQVE6CgogICBOZXcgc3VnZ2VzdGVkIGVudHJpZXMuCgoyMDA5LTA3LTIwIDE5OjI0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPRElORyBzZWN0aW9uLgoKMjAwOS0wNy0yMCAxMTowOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIuaDoKCiAgIEFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIGZyb20gcGF0Y2ggIzIwNTMyNzMuCgoyMDA5LTA3LTE5IDE1OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPTVBJTElORyBzZWN0aW9uLgoKMjAwOS0wNy0xNiAxMjozOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgQWRkIElQdjYgb2N0ZXQgY291bnRlcnMuCiAgIE5ldyBMaW51eCBrZXJuZWxzIChlLmcuIDIuNi4zMS1yYzIsIG1heWJlIHNvbWUgZWFybGllcikgcHJvdmlkZQogICBjb3VudGVycyBmb3IKICAgaW5jb21pbmcvb3V0Z29pbmcgSVB2NiB0cmFmZmljIGZvciBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwSWZTdGF0c1RhYmxlLgoKMjAwOS0wNy0xNSAyMjo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcHV0IHRlbXBvcmFyeSBkYXRhIHRvIHdoZXJlIHRoZXkgYmVsb25nCgoyMDA5LTA3LTExIDIxOjUwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlZ2VuZXJhdGUgY29uZmlndXJlCgoyMDA5LTA3LTExIDIxOjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgYnVpbGQgZml4IChlLmcuIGZvciBGcmVlQlNEKTogYWRqdXN0IGt2bSBjb25maWd1cmUgdGVzdHMKCjIwMDktMDctMTAgMTI6MzUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGVjayBJUHY2IHBvcnQgcmFuZ2VzIGluIHRoZSBzYW1lIHdheSBhcyBJUHY0IHBvcnRzIGFyZSBjaGVja2VkLgoKMjAwOS0wNy0xMCAwNzo0NiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjOgoKICAgRml4IGFub3RoZXIgSVB2NCBhZGRyZXNzIHNpemUgLSBsb25nIGhhcyA4IGJ5dGVzIG9uIDY0Yml0IExpbnV4LgogICBBbHNvIGZpeCB0aGUgZGVmYXVsdCB0eXBlIGZvXkNBU05fSVBBRERSRVNTIGluIG1pYjJjLCBzbyB0aGUKICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYyBjYW4gYmUgc2FmZWx5IHJlZ2VuZXJhdGVkLgoKMjAwOS0wNy0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBjbGVhbnVwIG9mIHRlc3RpbmcgY2FzZXMgdG8gcmVtb3ZlIGRvdWJsZSBpbmNsdWRlIGFuZCBkb3VibGUKICAgZXhwb3J0cwoKMjAwOS0wNy0wOSAyMzowNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHA6CgogICBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFRDUC9JUHY0IHRlc3QKCjIwMDktMDctMDkgMjI6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgbmV3IHRlc3RzIGZvciB0ZXN0aW5nIGRlZmluZWQgdHJhbnNwb3J0cwoKMjAwOS0wNy0wOSAyMjoxNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYSBDT05GSUdBUFAgbWFjcm8gZm9yIGFkZGluZyBzdHVmZiB0byBzbm1wLmNvbmYKCjIwMDktMDctMDggMTU6MTIgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBnZXRob3N0YnlhZGRyIHBhcmFtZXRlciwgbmV0c25tcF91ZHBfZm10YWRkciBuZXZlciByZXR1cm5lZCBhCiAgIGhvc3RuYW1lLgoKMjAwOS0wNy0wNyAxNTo0NiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRml4IElQIGFkZHJlc3MgbGVuZ3RoIG9uIDY0IGJpdCBzeXN0ZW1zIGluIG1pYklJLCBwYXNzIGFuZAogICBwYXNzX3BlcnNpc3QgbW9kdWxlcy4KCjIwMDktMDctMDcgMTU6MjQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgVXNlIGNvcnJlY3RseSBzaXplZCBJUCBhZGRyZXNzZXMgaW4gYWRkcmVzcyB0cmFuc2xhdGlvbiB0YWJsZQogICBwcm9jZXNzaW5nIC0gdV9sb25nIGNhbiBtYWtlIHByb2JsZW1zIG9uIGJpbiBlbmRpYW4gNjQgYml0CiAgIHN5c3RlbXMKCjIwMDktMDYtMjkgMTM6NTIgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICByZW1vdmUgZW50cnkgZm9yIGEgcGF0Y2ggdGhhdCBnb3QgcmV2ZXJ0ZWQKCjIwMDktMDYtMjUgMTU6MjQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBNb3ZlIG5vbi1jb3JlIGRhdGEgdHlwZXMgaW50byBhIHNlcGFyYXRlIChsaWJyYXJ5IGludGVybmFscykKICAgaGVhZGVyIGZpbGUuCiAgIE1vdmUgdGhlIGxhcmdlX2ZkX3NldCBkYXRhIHN0cnVjdHVyZSBpbnRvIHRoaXMgaGVhZGVyIGZpbGUuCgoyMDA5LTA2LTE4IDIyOjI5ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFsbG93IGJ1aWxkaW5nIHdpdGggUGVybCB2ZXJzaW9ucyB0aGF0IGxhY2sKICAgUEVSTF9FWElUX0RFU1RSVUNUX0VORAoKMjAwOS0wNi0xOCAyMjoxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBDSEFOR0VTOiBidWlsZDogYnVpbGQgZml4IGZvciBUcnU2NCBVbml4IGFuZCBJUklYOiBtb3ZlIF9YT1BFTioKICAgZGVmaW5pdGlvbnMgdG8gd2hlcmUgdGhleSBhcmUgaW4gNS40LnggYW5kIGVhcmxpZXIKCjIwMDktMDYtMTggMDY6MDIgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENsZWFuIHVwIC0td2l0aC1ubCBjb25maWd1cmF0aW9uCiAgICogIE1vdmUgdGhlIF9BUkdfV0lUSCB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSAgMjAwOS0wNi0xNiAxNToxNwogICAgICAgcnN0b3J5CgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2hlY2sgZm9yIG51bGwgcG9pbnRlciBiZWZvcmUgZGVyZWYKCjIwMDktMDYtMTUgMjM6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBhZGQgY29tbWVudCBleHBsYWluaW5nIG5vdCBxdWl0ZSBvYnZpb3VzIGxhY2sgb2YgbWVtbW92ZQoKMjAwOS0wNi0xNSAxOTozMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgUmVtb3ZlICNpZiAwIGNvbW1lbnRlZCBjb2RlCgoyMDA5LTA2LTE1IDE1OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEFHRU5UIHNlY3Rpb24uCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucmMxIC0+IFY1LjYucmMyCgoyMDEwLTA5LTA0IDAxOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDktMDQgMDA6NTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOS0wMyAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0bHN0Y3AgcGFyc2luZyBvZiBob3N0IG5hbWVzLgoKMjAxMC0wOS0wMyAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBjaGVjayB0aGUgcmV0dXJuIGNvZGUgb2YgZmdldHMgYW5kIGZvcGVuIGJlZm9yZSBpbnNlcnRpbmcgdGhlCiAgIHJlc3VsdHMuCgoyMDEwLTA5LTAzIDIyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFBhdGNoIGZyb20gdGFuZGVycyB0byBmaXggYnJva2VuIGFsYXJtcyBhZnRlciB0aGUgcHJldmlvdXMKICAgcmUtZW50cmFudCBwYXRjaAoKMjAxMC0wOS0wMyAyMjowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaCAzMDU4NjQ1OiBmcm9tIGpvcmlzZXNhdHVybnVzOiBtb2RpZmllZAogICB2ZXJzaW9uIG9mIHRoZSBwYXRjaCB0byB1c2UgTVNHX0RPTlRXQUlUIGZvciB0aGUgdW5peCBkb21haW4KICAgc29ja2V0CgoyMDEwLTA5LTAzIDIxOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU4MTQwOiBmcm9tIHRha2V2b3M6IGNoZWNrIHRoYXQgaW5vZGUgaXMKICAgbm9uLXplcm8KCjIwMTAtMDktMDMgMjE6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0Mjg6IGZyb20gdGFrZXZvczogZml4CiAgIGdldF9waWRfZnJvbV9pbm9kZSB3aGVuIHRoZSBpbm9kZSBpcyBub3QgZm91bmQuCgoyMDEwLTA5LTAzIDIwOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIGR1cGxpY2F0ZSByZXR1cm4gYmVmb3JlIHRoZSBlcnJvciBjb2RlcyBnZXQgc2V0LgoKMjAxMC0wOS0wMSAxODowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IExvZyBiZWZvcmUgcmV0dXJuaW5nLgoKMjAxMC0wOS0wMSAwMjo0MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBUTFMgc2VuZF9ub3RpZnkgb24gY2xvc3VyZSBhbmQgc29tZSBtZW1vcnkgY2xlYW4tdXAgcGF0Y2hlcwoKMjAxMC0wOC0zMSAxNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT25seSBwcmludCB0aGUgc2VjdXJpdHkvY29udGV4dCBFbmdpbmVJRCBtaXNtYXRjaCBub3RlIHVuZGVyIFVTTQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIENIQU5HRVM6CgogICByZW1vdmUgcmVmZXJlbmNlIHRvIHJldmVydGVkIHBhdGNoIDMwNDI3NjUKCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG5vdGUgb24gd2hlcmUgdG8gZmluZCBjb250ZW50IHVzZWQgdG8gZ2VuZXJhdGUKICAgbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICByZXZlcnQgcjE5MzQyLCBwYXRjaCAzMDQyNzY1LCB3aGljaCBicm9rZSBjbGllbnQgdGNwIGRpc2Nvbm5lY3QKICAgaGFuZGxpbmcKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IG1vcmUgY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgY2hlY2sgZm9yIGNvbmYgZXJyb3JzIGFmdGVyIGFnZW50IHN0YXJ0dXA7IGVuYWJsZSBsb2dUaW1lc3RhbXA7CiAgIG1ha2Ugc3VyZQogICBhbGwgY2VydCBuYW1lL3RhZ3MgYXJlIHVuaXF1ZQoKMjAxMC0wOC0yNCAyMTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3Igc3RyaW5nIHRvIGRpc2N1c3MgdGhlIHJpZ2h0IGZhaWxlZCBvcGVuc3NsIG5ldwogICBpbnZvY2F0aW9uCgoyMDEwLTA4LTI0IDA1OjM3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IENvcnJlY3QgaWZkZWZzLCByZW1vdmUgZGVhZCB2YXJpYWJsZXMuCgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucHJlMyAtPiBWNS42LnJjMQoKMjAxMC0wOC0xOSAyMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOC0xOSAyMToxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbnRvLXFueDYuaDoKCiAgIC8vIC0+IEMgY29tbWVudHMKCjIwMTAtMDgtMTkgMjA6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOC0xOSAyMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzA0Mjc2NTogZnJvbSBtZWhhZjogbWFrZQogICBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiKCkgcmUtZW50cmFudAoKMjAxMC0wOC0xOSAyMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICB0dXJuIG9mZiBjb29raWUgZXhjaGFuZ2VzIHVudGlsIGEgY29tcGxldGUgY29kZSBzZXQgY2FuIGJlCiAgIHdyaXR0ZW4gdG8gc3VwcG9ydCBpdCBiYXNlZCBvbiB0aGUgcmVxdWlyZWQgZnVuY3Rpb24gY2FsbGJhY2tzCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFkZCBtaXNzaW5nIGNhbGwgdG8gc3RvcmUgcGVyc2lzdGVudCBkYXRhIGFzIG5lZWRlZAoKMjAxMC0wOC0xNyAxODozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGRpc3BsYXlpbmcgYSBieXRlIGFzIHNpbmdsZSBkaWdpdCBoZXgKICAgdmFsdWUsIGRlZmF1bHQgdG8KICAgcHJlZml4aW5nIHdpdGggMCB1bmxlc3MgdGhlcmUgaXMgYSBzZXBlcmF0b3Igb3IgYWRkaXRpb24gaGludAogICBkYXRhCgoyMDEwLTA4LTE3IDEwOjMxICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhbiB1bnVzZWQgbGFiZWwgdGhhdCB3YXMgdHJpZ2dlcmVkCiAgIHdoZW4KICAgY29tcGlsaW5nIHdpdGhvdXQgU1NMIHN1cHBvcnQuCgoyMDEwLTA4LTE2IDIzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjc5MDI0OTogZnJvbSB3aWxscHdpbGxwOiByZWR1Y2UgY2FjaGUgdGltZQogICBmb3IgdGhlIGlmdGFibGUgdG8gM3NlY29uZHMgdG8gaW5jcmVhc2UgYWNjdXJhY3kKCjIwMTAtMDgtMTYgMTY6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIDMwNDYzNzE6IGZyb20gY2hyaXN0b3BoYjQ6IEZpeCBtZW1vcnkgbGVhawogICBpbiBTTk1QdjEgdHJhcCBoYW5kbGluZy4KCjIwMTAtMDgtMTYgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI4MjU2NTM6IGZyb20gYnJ1NWNlOiBmaXggc2VuZG1haWwuY2YKICAgcGFyc2luZyBpbiBjZXJ0YWluIGNvbmRpdGlvbnMKCjIwMTAtMDgtMTYgMTA6MTYgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEJ1aWxkIG5ldHNubXBfYWdlbnRfYXBpLjMgbWFuIHBhZ2UgZnJvbSB0ZW1wbGF0ZQoKMjAxMC0wOC0xNiAwOToyMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogRG9jdW1lbnRhdGlvbiAoUHJvdmlkZWQgYnkgVG9tYXN6CiAgIExpcykKCjIwMTAtMDgtMTYgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlLW9yZGVyIGNvZGUgdG8gZ3JvdXAgcmVsYXRlZAogICBmdW5jdGlvbnMgdG9nZXRoZXIKCjIwMTAtMDgtMTYgMDc6NDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI5OTUwOTg6IEZpeCBjcmVhdGlvbiBvZiBTTk1QdjMgc2Vzc2lvbnMKICAgd2l0aCBBUElfU0lOR0xFCgoyMDEwLTA4LTE0IDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlcwoKMjAxMC0wOC0xNCAxNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTA0OTAwOiBEb2N1bWVudGF0aW9uIHBsdXMgYXNzb3J0ZWQKICAgaGFuZGxlciBjb2RlIGZpeGVzCgoyMDEwLTA4LTE0IDA5OjI4ICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICBSZXN0b3JlIGFnZW50IEFQSSBtYW4gcGFnZQogICBEb24ndCB0cnkgdG8gZXh0cmFjdCBtdWx0aXBsZSBtYW4gcGFnZSBsaW5rcyBwZXIgbGluZQogICAod2hpY2ggcnVucyBpbnRvIHByb2JsZW1zIHdpdGggT1Mtc3BlY2lmaWMgbGluZSBlbmRpbmdzKS4KICAgSW5zdGVhZCwgZW5zdXJlIHRoZSBtYW4gcGFnZSBOQU1FIHNlY3Rpb24gbGlzdHMgb25lCiAgIHJvdXRpbmUgcGVyIGxpbmUKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBicm9rZW4gTWFrZWZpbGUgYWZ0ZXIgbWFuIHBhZ2UgbW92ZXMKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dCwgbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlZCBUTFMgTUlCIHRvIGN1cnJlbnQgY29weQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlcGxhY2VkIFJGQyBjb21tZW50IG51bWJlcgoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaDogMzA0Mjc3MDogZnJvbSBtZWhhZjogTWFkZSBydW5fYWxhcm1zKCkKICAgcmVlbnRyYW50CgoyMDEwLTA4LTEzIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNDQ1MTI6IGZyb20gcGhpbHdlYnN0ZXI6IGZpeCBzeXNvYmplY3RpZAogICBkaXJlY3RpdmUuCgoyMDEwLTA4LTEzIDE5OjAwICByc3RvcnkKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeDoKCiAgIHVzZSAxMjcuMC4wLjEgaW5zdGVhZCBvZiBsb2NhbGhvc3QgYXMgZGVmYXVsdCBTTk1QX1RFU1RfREVTVCBzbwogICBUTFMgdGVzdHMgd29yawoKMjAxMC0wOC0xMyAxODo1MCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBpbXBsZW1lbnRlZCBhIGZpeCBmb3IgdGhlIGlzc3VlIHJlcG9ydGVkIGluCiAgIHBhdGNoICMzMDQyNzcwLiBDcmVhdGVkIGEgc25tcF9zZWxlY3RfaW5mb19mbGFncyBmdW5jdGlvbiwgYW5kCiAgIHNpbWlsYXIsIHRoYXQgYWxsb3cgZm9yIGFsYXJtcyB0byBub3QgYmUgcnVuLiBUaGlzIGlzIHRoZW4gdXNlZAogICBpbiB0aGUgc3luY2hfcmVzcG9uc2UgZnVuY3Rpb25zIHRvIGF2b2lkIDEwMCUgQ1BVIGxvb3BzCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhcHBzL3NubXB0cmFwZC5jOgoKICAgbWFrZSBzbm1wdHJhcGQgcmVnaXN0ZXIgdGhlIGNlcnR0b3NlY25hbWUgdGFibGUgaW4gdGhlIGFnZW50eAogICByZWdpc3RyYXRpb25zCgoyMDEwLTA4LTEzIDE4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgbWlub3Igd29yZGluZyBhZGRpdGlvbnMKCjIwMTAtMDgtMTMgMTU6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYzoKCiAgIENIQU5HRVM6IGFpeDogUEFUQ0g6IDI4ODY1OTg6IGZyb20gZXhzbmFmdTogSGVhZGVyIGZpeGVzIGZvcgogICBjb21waWxpbmcgb24gQUlYNgoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgTkVXUzogcG9ydHM6IFBBVENIOiAyODM2ODk1OiBmcm9tIHNlYW5ib3VkcmVhdTogc3VwcG9ydCBmb3IgUU5YNgoKMjAxMC0wOC0xMyAxNDozMyAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZjoKCiAgICdlbmZvcmNlIG5ldHNubXAgcHJlZml4ZXMKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI5ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9wZHVfYXBpLjMuZGVmLCBtYW4vcGR1X2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjIwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgRG9uJ3QgYXV0b21hdGljYWxseSBnZW5lcmF0ZSBtYW4gcGFnZXMKCjIwMTAtMDgtMTMgMTQ6MTggIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgbWFuL3NubXBfc2Vzc19jbG9zZS4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX2Vycm9yLjMsIG1hbi9zbm1wX3Nlc3NfaW5pdC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX29wZW4uMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19yZWFkLjMsIG1hbi9zbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19zZW5kLjMsIG1hbi9zbm1wX3Nlc3Nfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3RpbWVvdXQuMywgbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zLCAgIAogICAgICBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMywgbWFuL3NubXBfdGltZW91dC4zOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBtYW4gcGFnZSBsaW5rcwogICAoU2hvdWxkIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LCBidXQgZG9uJ3QgZXhpc3QgYW55IG1vcmUKICAgYW55d2F5KQoKMjAxMC0wOC0xMyAxNDoxMyAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgIAogICAgICAgbWFuL2dldF9tb2R1bGVfbm9kZS4zLCBtYW4vaW5pdF9taWIuMywgbWFuL2luaXRfbWliX2ludGVybmFscy4zLCAKICAgICAgICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NldF9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAgCiAgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywgbWFuL3ByaW50X21pYi4zLCAgCiAgICAgICBtYW4vcHJpbnRfb2JqaWQuMywgbWFuL3ByaW50X3ZhbHVlLjMsIG1hbi9wcmludF92YXJpYWJsZS4zLCAgIAogICAgICBtYW4vcmVhZF9hbGxfbWlicy4zLCBtYW4vcmVhZF9taWIuMywgbWFuL3JlYWRfbW9kdWxlLjMsICAgCiAgICAgIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsIG1hbi9yZWFkX29iamlkLjMsIG1hbi9zaHV0ZG93bl9taWIuMzoKCiAgIFJlbW92ZSBEb3h5Z2VuLWdlbmVyYXRlZCBtYW4gcGFnZXMsIGFuZCB0aG9zZSBsaW5raW5nCiAgIGluZGl2aWR1YWwgcm91dGluZXMgdG8gdGhlIGFwcHJvcHJpYXRlIG1hbiBwYWdlLgogICAoVGhlc2UgYXJlIGJldHRlciBnZW5lcmF0ZWQgZHluYW1pY2FsbHkpCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFByb21wdCBmb3Igd2hldGhlciB0byBnZW5lcmF0ZSBjYWNoaW5nIGNvZGUgb3Igbm90LgoKMjAxMC0wOC0xMyAxMjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIFJld29yayBndWlkYW5jZSBxdWVzdGlvbnMgd2hlbiBzZWxlY3RpbmcgdGhlIGJlc3QgdGFibGUgZnJhbWV3b3JrCiAgIHRvIHVzZS4KICAgRW5zdXJlIHRhYmxlIGhhbmRsaW5nIGNvZGUgZG9lc24ndCBvdmVyd3JpdGUgc2NhbGFyIGhhbmRsaW5nCiAgIGNvZGUuCiAgIENoZWNrIHRoYXQgdGhlIHN0YXJ0aW5nIHBvaW50IGlzIHN1aXRhYmxlIGZvciBNZkQgZnJhbWV3b3JrLgoKMjAxMC0wOC0xMiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMTIgMTU6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBhIGR1cGxpY2F0ZSB2YWx1ZSBjaGVjawoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIGFkZCBhIHRlc3Qgd2hlcmUgd2UgY2FuIHRydXN0IGEgQ0Etc2lnbmVkIGNlcnQgYW5kIHdlIGRvbid0IHRydXN0CiAgIHRoZSBDQQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHRlc3QgYSBkaXJlY3RseSBtYXBwZWQgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGNoYW5nZSB0aGUgbGFDb25maWcgdG8gcmVhZC13cml0ZSB0byBtYXRjaCB0aGUgcGF0Y2gKCjIwMTAtMDgtMTEgMjI6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjkzMTQ0NjogZnJvbSBhaG1ha2U6IG1ha2UgdGhlIGxvYWQgYXZlcmFnZXMKICAgd3JpdGFibGUuCgoyMDEwLTA4LTExIDA2OjQzICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBDSEFOR0VTOiBTaWxlbmNlIHNvbWUgY29tcGlsYXRpb24gd2FybmluZ3MgZnJvbSB0ZXN0IGNhc2VzLgoKMjAxMC0wOC0wOSAyMTowOSAgbWFnZnIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBIYW5kbGUgZW1iZWRkZWQgJSdzIGluIHRoZSByZXN1bHQgbWVzc2FnZS4KCjIwMTAtMDgtMDkgMjE6MDcgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgQ0hBTkdFUzogRG8gbm8gZG91YmxlIGRlY2xhcmUgdGhlIGluZGV4IHZhbHVlcy4KCjIwMTAtMDgtMDUgMTE6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVXBkYXRlICJhdXRoKiIgdXNhZ2UgbWVzc2FnZSB3aXRoIGNvbnRleHQgc3VwcG9ydAoKMjAxMC0wOC0wMiAyMDowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRml4IHR3byBzaWxseSBtaXN0YWtlcy4KCjIwMTAtMDgtMDIgMTQ6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEFJWCBmaWxlc3lzdGVtIHR5cGVzIGFyZSB0YWdnZWQgYXMgaW50ZWdlcnMsIG5vdCBzdHJpbmdzLgoKMjAxMC0wOC0wMiAxMzo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIGZpeCBQZXJsIHN5c3RlbSgpIGNvbmZpZ3VyZSBjaGVjayB0byB3b3JrIHJlbGlhYmx5IG9uIHN5c3RlbXMKICAgdGhhdCBsYWNrCiAgIFBlcmwKCjIwMTAtMDgtMDIgMTE6MDggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBtYWRlIGl0IHBvc3NpYmxlIHRvIGFuYWx5emUgYWxsIGNvZGUgY292ZXJlZCBieQogICB0aGUgcmVncmVzc2lvbiB0ZXN0cyB3aXRoIGEgZHluYW1pYyBhbmFseXplciwgYXQgbGVhc3QgaWYgdGhhdAogICBhbmFseXplciBzdXBwb3J0cyBmb2xsb3dpbmcgY2hpbGQgcHJvY2Vzc2VzLiBBbiBleGFtcGxlOgogICAKICAgcm0gLXJmIC90bXAvc25tcC10ZXN0LSoKICAgbWFrZSAtcwogICBTTk1QX1NBVkVfVE1QRElSPXllcyBEWU5BTUlDX0FOQUxZWkVSPSJ2YWxncmluZAogICAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLXRyYWNrLW9yaWdpbnM9eWVzIiBtYWtlIC1zIHRlc3QKICAgZ3JlcCAtaSB1bmluaXRpYWxpc2VkIC90bXAvc25tcC10ZXN0LSogfCB4YXJncyBsZXNzCgoyMDEwLTA4LTAyIDExOjAyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHR3byBWYWxncmluZCBjb21wbGFpbnRzOgogICAKICAgQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICBhdCAweDZENzAyRTA6IHZmcHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkQ5OUQxMTogdnNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkQ3QTQxMjogc25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RTE0NDM3OiBpbmV0X250b2EgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg1RTVFMjE5OiBuZXRzbm1wX2lwdjRfZm10YWRkciAoc25tcElQdjRCYXNlRG9tYWluLmM6MjE1KQogICBieSAweDVFNjU3MTc6IG5ldHNubXBfdGNwX2ZtdGFkZHIgKHNubXBUQ1BEb21haW4uYzo3MCkKICAgYnkgMHg1RTU2N0VDOiBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZwogICAoc25tcF90cmFuc3BvcnQuYzoyMjQpCiAgIGJ5IDB4NUUyNDc5QTogX3Nlc3NfcHJvY2Vzc19wYWNrZXQgKHNubXBfYXBpLmM6NTQ0MSkKICAgYnkgMHg1RTI1RTM3OiBfc2Vzc19yZWFkIChzbm1wX2FwaS5jOjYwMzcpCiAgIGJ5IDB4NUUyNjFEQTogc25tcF9zZXNzX3JlYWQyIChzbm1wX2FwaS5jOjYxNDkpCiAgIGJ5IDB4NUUyNjI4Mjogc25tcF9yZWFkMiAoc25tcF9hcGkuYzo1NzQwKQogICBieSAweDQwNERFNDogbWFpbiAoc25tcGQuYzoxMjI3KQogICBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCiAgIGF0IDB4NEMyNzBBNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKICAgYnkgMHg1RTY1NzM5OiBuZXRzbm1wX3RjcF9hY2NlcHQgKHNubXBUQ1BEb21haW4uYzo4MikKICAgYnkgMHg1RTI1MzgzOiBfc2Vzc19yZWFkIChzbm1wX2FwaS5jOjU3ODYpCiAgIGJ5IDB4NUUyNjFEQTogc25tcF9zZXNzX3JlYWQyIChzbm1wX2FwaS5jOjYxNDkpCiAgIGJ5IDB4NUUyNjI4Mjogc25tcF9yZWFkMiAoc25tcF9hcGkuYzo1NzQwKQogICBieSAweDQwNERFNDogbWFpbiAoc25tcGQuYzoxMjI3KQogICAKICAgQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICBhdCAweDZGN0IyRTA6IHZmcHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkZBNEQxMTogdnNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkY4NTQxMjogc25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg3MDFGNDM3OiBpbmV0X250b2EgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg1NkZBMjE5OiBuZXRzbm1wX2lwdjRfZm10YWRkciAoc25tcElQdjRCYXNlRG9tYWluLmM6MjE1KQogICBieSAweDU3MDE3MTc6IG5ldHNubXBfdGNwX2ZtdGFkZHIgKHNubXBUQ1BEb21haW4uYzo3MCkKICAgYnkgMHg1NkYyN0VDOiBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZwogICAoc25tcF90cmFuc3BvcnQuYzoyMjQpCiAgIGJ5IDB4NTZGMjk0RjogbmV0c25tcF90cmFuc3BvcnRfc2VuZCAoc25tcF90cmFuc3BvcnQuYzoyNDgpCiAgIGJ5IDB4NTZCQzQ4Nzogc25tcF9zZXNzX2FzeW5jX3NlbmQgKHNubXBfYXBpLmM6NTIwNCkKICAgYnkgMHg1NkJDNjUxOiBzbm1wX2FzeW5jX3NlbmQgKHNubXBfYXBpLmM6NDk5OCkKICAgYnkgMHg1NkJDNjc3OiBzbm1wX3NlbmQgKHNubXBfYXBpLmM6NDk4NCkKICAgYnkgMHg1Njk4NDQwOiBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiIChzbm1wX2NsaWVudC5jOjEwMDYpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDU3MDFCM0U6IG5ldHNubXBfdGNwX3RyYW5zcG9ydCAoc25tcFRDUERvbWFpbi5jOjE2MykKICAgYnkgMHg1NzAxRTZGOiBuZXRzbm1wX3RjcF9jcmVhdGVfdHN0cmluZyAoc25tcFRDUERvbWFpbi5jOjMwNSkKICAgYnkgMHg1NkYzODA0OiBuZXRzbm1wX3Rkb21haW5fdHJhbnNwb3J0X2Z1bGwKICAgKHNubXBfdHJhbnNwb3J0LmM6NjAxKQogICBieSAweDU2RjNBQ0M6IG5ldHNubXBfdHJhbnNwb3J0X29wZW5fY2xpZW50CiAgIChzbm1wX3RyYW5zcG9ydC5jOjY2OSkKICAgYnkgMHg1NDM0NEY2OiBzdWJhZ2VudF9vcGVuX21hc3Rlcl9zZXNzaW9uIChzdWJhZ2VudC5jOjc1OCkKICAgYnkgMHg1NDM0OUM4OiBhZ2VudHhfcmVvcGVuX3Nlc3Npb24gKHN1YmFnZW50LmM6ODY5KQogICBieSAweDU0MzREMDA6IHN1YmFnZW50X3N0YXJ0dXAgKHN1YmFnZW50LmM6OTkpCiAgIGJ5IDB4NTZFQUVCNzogc25tcF9jYWxsX2NhbGxiYWNrcyAoY2FsbGJhY2suYzozMzgpCiAgIGJ5IDB4NTZERTZGQjogcmVhZF9jb25maWdzIChyZWFkX2NvbmZpZy5jOjEwMTgpCiAgIGJ5IDB4NTZDMjg3RTogaW5pdF9zbm1wIChzbm1wX2FwaS5jOjg1MCkKICAgYnkgMHg0MDQ3N0I6IG1haW4gKHNubXB0cmFwZC5jOjEwNDgpCgoyMDEwLTA4LTAxIDA2OjExICBidmFzc2NoZQoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgRml4ZWQgc3BlbGxpbmcgZXJyb3JzIHJlcG9ydGVkIGJ5IGlzcGVsbCAtbC4KCjIwMTAtMDgtMDEgMDY6MDAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfZW51bS5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgdGV4dCBzdHJpbmcgaW4gYSB1bml0IHRlc3Q6IHJlc3R1cmFudCAtPgogICByZXN0YXVyYW50LgoKMjAxMC0wOC0wMSAwNTo1MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oOgoKICAgRG9jdW1lbnRlZCBiZWhhdmlvciBvZiBzZV9hZGRfcGFpcl90b19zbGlzdCgpLgoKMjAxMC0wNy0zMSAyMzo1MCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oOgoKICAgRm9sbG93LXVwIGZvciByMTkyNjY6IGFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIHRvIHN1cHBvcnQgTWFjIE9TIFgKICAgMTAuNgogICAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5wcmUyIC0+IFY1LjYucHJlMwoKMjAxMC0wNy0zMSAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA3LTMxIDIwOjI0ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjE2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgY2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgcmVhZG1lIHNlY3Rpb24gdG8gY2FsbCBvdXQgTkVXUy10b28KCjIwMTAtMDctMzEgMjA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBtaXNzaW5nIG5ld3MgaXRlbXMKCjIwMTAtMDctMzAgMTM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0ggMzAzNTMyODogZnJvbTogc3dzOiBjaGVjayB0aGUgcmVzdWx0cyBvZgogICBzZXNzaW9uIGNyZWF0aW9uIGZvciBhIGZhaWx1cmUgY2FzZS4KCjIwMTAtMDctMzAgMTM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IHBhdGNoIDMwMzU1Nzg6IGZyb20gc3dzOiBrZWVwIGVycm9yIGNvZGVzIHVwIHRvCiAgIGRhdGUKCjIwMTAtMDctMjkgMTU6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTo0NyAgZHRzMTIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIG9mICd2YV9saXN0JyBmb3IgdmFyYXJncy1iYXNlZCBBUElzCgoyMDEwLTA3LTI5IDE0OjU4ICBkdHMxMgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIEFJWCA3CiAgIChvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgaWRlbnRpY2FsIHRvIEFJWCA2KQoKMjAxMC0wNy0yOSAxNDo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIERpc2FibGUgZW1iZWRkZWQgcGVybCBieSBkZWZhdWx0IG9uIGFyY2hpdGVjdXJlcyB3aGVyZQogICB0aGlzIHNlZW1zIHRvIGNhdXNlIHByb2JsZW1zIChIUC1VWCAmIE1hYyBPUyBYKQoKMjAxMC0wNy0yOSAxMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgR3VhcmQgYWdhaW5zdCBibGFuayAnaW5jbHVkZSonIGxpbmVzLgogICBIYW5kbGUgcmVsYXRpdmUgJ2luY2x1ZGVGaWxlJyBwYXRocwoKMjAxMC0wNy0yOSAxMDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldHVybiBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgY29uZmlnIGZpbGVzIGFyZSBhY3R1YWxseQogICBwcm9jZXNzZWQuCiAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIGZhaWxpbmcgdG8gaW5jbHVkZSBjb25maWcgZmlsZXMuCgoyMDEwLTA3LTI4IDE0OjQ0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgIAogICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBCcmluZyBtYW4gcGFnZSBkb2N1bWVudGF0aW9uLCBoZWFkZXIgZmlsZXMgYW5kIFdpbmRvd3MgRExMCiAgIGRlZmluaXRpb25zCiAgIG9mIHRvcC1sZXZlbCBwdWJsaWMgQVBJIGNhbGxzIGludG8gbGluZSB3aXRoIGVhY2ggb3RoZXIuCgoyMDEwLTA3LTI4IDE0OjQwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbWlzbmFtZWQgY29tbWVudAoKMjAxMC0wNy0yOCAxNDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERvbid0IG1peCBTTUl2MSBhbmQgU01JdjIgTUlCcyBpbiB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQnMgdG8KICAgbG9hZC4KICAgVXNlIG5ld2VyIFNNSXYyIHZlcnNpb25zICh3aGljaCBpbmNsdWRlIHN1aXRhYmxlIGRpc3BsYXkgaGludHMpCiAgIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBSRkMxMjEzIE1JQiAod2hpY2ggZG9lc24ndCkKCjIwMTAtMDctMjggMTQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbmRlbnRhdGlvbiBmb3IgJ2luY2x1ZGVTZWFyY2gnIHByb2Nlc3NpbmcgY29kZS4KCjIwMTAtMDctMjggMTQ6MDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEV4dGVuZCAnaW5jbHVkZScgY29uZmlnIGZpbGUgcHJvY2Vzc2luZyB0byBjb3ZlciB0aHJlZQogICBkaWZmZXJlbnQgbW9kZXMgb2Ygd29ya2luZzoKICAgLSBsb29rIGZvciB0aGUgZmlsZSBvbiB0aGUgY29uZmlnIHNlYXJjaCBwYXRoCiAgIC0gaW5jbHVkZSB0aGUgc3BlY2lmaWVkIGZpbGUgYnkgbmFtZQogICAtIGlvYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5CiAgIFVzZSBkaWZmZXJlbnQgY29uZmlnIHRva2VucyB0byBkaXN0aW5ndWlzaCB0aGVzZSBjYXNlcy4KCjIwMTAtMDctMjcgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjkxMjUyMDogZnJvbSBsaXN0b206IEZyZWUga21lbSByZWZlcmVuY2VzCiAgIG9uIHNodXRkb3duCgoyMDEwLTA3LTI3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NNVVgtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IHBhdGNoIDI5NzQ3MTY6IGZyb20gYnZhc3NjaGU6IGZpeCBpc3N1ZXMgaW4gdGhlCiAgIFNNVVgtTUlCCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBpbmNsdWRlIHRoZSBuZXcgc2VjdXJpdHktaGVkYWVycyBtb2R1bGUKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIHJlbW90ZSBkZWJ1Z2dpbmcvcHJvY2Vzc2luZyBzdGRlcnIgb3V0cHV0CgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDMwMjg5MjM6IGZyb20gamVuc286IG5ldyBjb3B5IG9mIHRoZQogICBicmlkZ2UtbWliIHBlcmwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXNlY3VyaXR5LWhlYWRlcnMuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIHNlY3VyaXR5IGhlYWRlci9pbml0IGdlbmVyYXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHM6CgogICB0cmFuc3BvcnQgY29uZmlndXJlIHBvcnRpb24KCjIwMTAtMDctMjcgMDg6MzAgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi10cmFuc3BvcnQtaGVhZGVycy5pbiwgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXZhcmlhYmxlcy5pbjoKCiAgIG1vdmUgdHJhbnNwb3J0IGhlYWRlciBnZW5lcmF0aW9uIHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgY3JlYXRlIGFuCiAgIGV4dGVybmFsIHNlcGFyYXRlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZyBpdAoKMjAxMC0wNy0yNyAwODoxNCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgZ2ZzIGZpbGVzeXN0ZW1zIGluIGhyU3RvcmFnZVRhYmxlIGFuZAogICBockZTVGFibGUuCgoyMDEwLTA3LTI0IDE1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIHdhcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gcHJvY2Vzc2luZyBhbiBpbmNsdWRlZCBjb25maWcgZmlsZS4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjQgMTU6MzYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgaXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIG9wZW5pbmcgYSBuZXcgU05NUCBzZXNzaW9uLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yMyAwMzoxMiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGQgdGhlIFRMUyBtb2R1bGVzIHRvIHRoZSBsaXN0IG9mIHRlc3QgbW9kdWxlcwoKMjAxMC0wNy0yMSAxOToyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRml4IHR5cG8gaW4gZG94eWdlbiBjb21tZW50CgoyMDEwLTA3LTIxIDE5OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIEZpeCB0eXBvIGluIHNwZWVkIGNvbXB1dGF0aW9uCgoyMDEwLTA3LTIxIDE5OjIxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSW5jbHVkZSBnZW5lcmF0ZWQgc2VjdXJpdHktaW5jbHVkZXMuaAoKMjAxMC0wNy0yMSAxOToyMCAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oOgoKICAgRml4IGluaXQgZnVuYyBuYW1lIChjb3B5LXBhc3RlIGdsaXRjaCkKCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBzZW1pY29sb24KCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIE91dCBvZiBvcmRlciBkZWNsYXJhdGlvbgoKMjAxMC0wNy0yMSAxOToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBMb2cgZXJyb3Igb24gZmlsZSBvcGVuIGVycm9yCgoyMDEwLTA3LTIxIDE5OjE2ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU3BlbGluZyBlcnJvcgoKMjAxMC0wNy0yMSAxODoxMCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmY6CgogICBVcGRhdGUgZm9yIGN1cnJlbnQgUkZDcwoKMjAxMC0wNy0yMSAxODowOCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCB2ZXJzaW9uIGZyb20gSUFOQQoKMjAxMC0wNy0yMSAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcjE3NDk1IGVycm9uZW91c2x5IGRpc2FibGVkIGRpc2tJT0xBeCBmb3IgbGludXgKCjIwMTAtMDctMjAgMTA6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGdlbmVyYXRpbmcKICAgdGVtcC4gZmlsZSBuYW1lcwoKMjAxMC0wNy0yMCAwNzozMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9zbm1wZC5jLCBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgICAKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIERlc2NyaWJlIC1EIHVzYWdlIGFzIC1EW1RPS0VOXSBpbnN0ZWFkIG9mIC1EIFtUT0tFTl0KCjIwMTAtMDctMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICB1cGRhdGUgZGlzcGxheSBoaW50IHRvIHNvbWUgbGVzcyBhbWJpZ3VvdXMgKGFuZCB0aGF0IHdvcmtzIHdpdGgKICAgb3VyIGxpYikKCjIwMTAtMDctMTcgMDQ6MTMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IHRlc3RzaW1wbGUgZm9yIGJ1aWxkZGlyIT1zcmNkaXIKCjIwMTAtMDctMTcgMDQ6MTIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgYWRkIHRlc3RzaW1wbGUgdGFyZ2V0CgoyMDEwLTA3LTE2IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWxlYXNlIGl0ZXJhdG9yIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDEwLTA3LTE1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBpc3N1ZSB3aXRoIFVTTSB1c2luZyBpbmFjdGl2ZSB1c2VycwoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGluY2x1ZGUgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcjsgZGVmaW5lIE5BTUVfTUFYIGlmIG5vdCBhbHJlYWR5CiAgIGRlZmluZWQ7CiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHRoYXQgc29tZSBuZXdlciBvcGVuc3NsIG1hY3JvcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcKICAgdGhlbTsgaW5jbHVkZQogICBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgZHRscyBkb21haW4gaWYgbm8gZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaWZkZWYgcHJvdGVjdGlvbiBmb3IgbGF0ZXIgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBkYXJ3aW4gb3BlbnNzbCBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgcmVjZW50IHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgZml4IHR5cG8gaW4gaWZkZWYgdGVzdAoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBpbmNsdWRlZCBmaWxlIG5hbWUKCjIwMTAtMDctMTQgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZml4IHRoZSBmaXg6IHB1dCBQUkl6IHNwZWMgaW4gY29ycmVjdCBwbGFjZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBzcGVjaWZ5IFNOTVAgdmVyc2lvbiBvbiBjb21tYW5kbGluZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAxMC0wNy0xNCAxNTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbmNsdWRlIHNzbC5oIGJlZm9yZSBjZXJ0X3V0aWwuaAoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZGVidWcgb3V0cHV0IGZvciBmb3VuZCBjZXJ0CgoyMDEwLTA3LTEzIDE2OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbXNnCgoyMDEwLTA3LTEyIDEwOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBXaW4zMiBhbmQgQ3lnd2luOiBtYWRlIHN1cmUgdGhhdCBhY2Nlc3NpbmcgdGhlIG1pYklJCiAgIGludGVyZmFjZXMgdGFibGUgZG9lcyBub3QgdHJpZ2dlciBvdXQtb2YtcmFuZ2UgYXJyYXkgYWNjZXNzZXMKICAgKHdhcyBkZXRlY3RlZCBieSBCb3VuZHNDaGVja2VyKS4KCjIwMTAtMDctMTIgMTA6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4ZWQgYSBkYW5nbGluZy1wb2ludGVyLXJlYWQgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTguIEluCiAgIHIxOTAxOCB0aGUgdHlwZSBvZiBncm91cFN1YnRyZWVMZW4gd2FzIGNoYW5nZWQgZnJvbSBpbnQgdG8KICAgc2l6ZV90LCB3aGljaCBjaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiB0aGUgbG9vcCAid2hpbGUKICAgKGdyb3VwU3VidHJlZUxlbi0tID4gMCkgLi4uIjogaW5zdGVhZCBvZiBub3QgZXhlY3V0aW5nIHRoZSBsb29wCiAgIGJvZHkgd2hlbiBncm91cFN1YnRyZWVMZW4gd2FzIG5lZ2F0aXZlLCByMTkwMTggY2F1c2VkIHRoZSBib2R5IG9mCiAgIHRoYXQgbG9vcCB0byBiZSBleGVjdXRlZC4gRGV0ZWN0ZWQgYnkgcnVubmluZyBzbm1wZCB1bmRlcgogICBCb3VuZHNDaGVja2VyIHdoaWxlIHBlcmZvcm1pbmcgYSBNSUIgd2Fsay4KCjIwMTAtMDctMTIgMTA6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBSZXZlcnRlZCByMTkwNDcgKHdoaWNoIHdhcyB3cm9uZykgYW5kIGltcGxlbWVudGVkIGEgcHJvcGVyIGZpeAogICBmb3IgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzLgoKMjAxMC0wNy0xMiAxMDowOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNy0xMiAxMDowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgU3VwcHJlc3NlZCBtb3JlIE1TVkMgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzOgoKICAgYWRkIGNvbW1lbnQgd2l0aCBvYmplY3QgbmFtZSBmb3IgbnVtZXJpYyBpZHMKCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gZ2V0IHNlcnZlcklkIGZyb20gc25tcFRsc3RtQWRkclRhYmxlIGRhdGE7IHVzZQogICBuZXcgYXBpCiAgIHRvIGNvbmZpZyBzZXJ2aWNlSWQgZm9yIHRyYXAgdHJhbnNwb3J0IHdoZW4gc2VuZGluZyB0cmFwcwoKMjAxMC0wNy0xMSAxMToxOCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ0hBTkdFUzogQlVHOiAzMDI3OTAwOiB3aGVuIGNyb3NzLWNvbXBpbGluZyBpdCBpcyBub3cgYXNzdW1lZAogICB0aGF0IG1lbWNtcCgpIGlzIGF2YWlsYWJsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgaXQgaXMgbm90CiAgIGF2YWlsYWJsZS4KCjIwMTAtMDctMTEgMTA6MzAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHIxOTE5Ny4KCjIwMTAtMDctMTAgMjA6MDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN5bmMgdXAgaGVscCBvdXRwdXQgYW5kIG9wdGlvbnMgcHJvY2Vzc2luZwoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBDeWd3aW4gc2VjdGlvbiBpbiBSRUFETUUud2luMzIuCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBXaW4zMjogU3VwcHJlc3NlZCAiaW1wbGljaXQgY2FzdCBmcm9tIGludCB0byB1X2NoYXIiCiAgIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBNU1ZDLgoKMjAxMC0wNy0wOSAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIFRlc3Rpbmc6IG1hZGUgdGhlIGRlYnVnIG91dHB1dCB0aGF0IGFwcGVhcnMgaW4gdGhlICJpbnZva2VkIiBmaWxlCiAgIGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMC0wNy0wOSAxNToxMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDEwLTA3LTA4IDE5OjMwICBtYXJ6CgogICAqICBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQsICAgCiAgICAgIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGFkZHMgcGVyIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZmlsZSBzdXBwb3J0IHNvIGRlZmF1bHRzIGNhbiBiZQogICBjdXN0b21pc2VkIG9uIGNtZGxpbmUgdyAtaSA8aWRlbnRpdHk+IC0gc2VlIG5ldC1zbm1wLWNlcnQuY29uZgogICBmb3IgZXhhbXBsZXMgYW5kIHNvbWUgaGVscCBpbmZvCgoyMDEwLTA3LTA4IDEyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAwMzk4MTogUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVyZmxvdwoKMjAxMC0wNy0wOCAxMToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDE5MjQzOiBSZWdpc3RlciBleGVjRml4IGNvbXBhdGFiaWxpdHkKICAgZGlyZWN0aXZlIGNvcnJlY3RseS4KCjIwMTAtMDctMDcgMTA6MTkgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGU6CgogICBDSEFOR0VTOiBDeWd3aW4gYW5kIE1pbkdXOiB0ZXN0cyBUMTEwLCBUMTExLCBUMTEyLCBUMTIwLCBUMTIxIGFuZAogICBUMTIyIGRvIG5vdyBwYXNzIHdoZW4gc25tcGQgaXMgYnVpbHQgd2l0aCB3aW5FeHRETEwgc3VwcG9ydAogICBlbmFibGVkLgoKMjAxMC0wNy0wNiAxODo1OSAgYnZhc3NjaGUKCiAgICogIENoYW5nZUxvZywgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBNYWRlIHJlZ3Jlc3Npb24gdGVzdHMgZWFzaWVyIHRvIGRlYnVnIGJ5IGluY2x1ZGluZyBvayAvIG5vdCBvawogICBzdGF0dXMgaW4gdGhlICJpbnZva2VkIiBmaWxlLgogICBTcGVsbGluZyBmaXhlczogcmVtZWJlciAtPiByZW1lbWJlcjsgc2VwZXJhdG9yIC0+IHNlcGFyYXRvci4KCjIwMTAtMDctMDYgMTU6MDQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgVGVzdCBUMDY1IGRvZXMgbm93IHJlYWxseSBwYXNzIG9uIE1pbkdXLgoKMjAxMC0wNy0wNSAxMDowMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGN1cmx5IGJyYWNlcyBzdWNoIHRoYXQgJ3x8JyBhbmQgJyYmJyBhcmUgZXZhbHVhdGVkIGluIHRoZQogICBjb3JyZWN0IG9yZGVyLgoKMjAxMC0wNy0wNCAxMTozNyAgYnZhc3NjaGUKCiAgICogYXBwczoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDctMDQgMTE6MzQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBGYWxsIGJhY2sgZnJvbSBSVU5GVUxMVEVTVFMgdG8gUlVOVEVTVFMgaWYgbmVpdGhlciBUQVA6Okhhcm5lc3MKICAgbm9yIFRlc3Q6Okhhcm5lc3MgaXMgYXZhaWxhYmxlLgoKMjAxMC0wNy0wNCAxMToyMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHRlc3QgbnVtYmVyIGluIC90bXAvc25tcC10ZXN0cy0kdGVzdG51bSBpcyBzZXQKICAgdG8gc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bCB0aGFuIGp1c3QgIjAiLgoKMjAxMC0wNy0wNCAxMToyMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNwbGl0IGEgbG9uZyBjb21tZW50IGxpbmUuCgoyMDEwLTA3LTA0IDEwOjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgc3JjZGlyIGlzIGNvbXB1dGVkIGNvcnJlY3RseSBpZiBgZGlybmFtZQogICAkMGAgPSAuCgoyMDEwLTA3LTAyIDE2OjI3ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgU2ltcGxpZmllZCByMTkxODEgKEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aAogICBub24tZW1wdHkgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cpLgoKMjAxMC0wNy0wMSAxODoxNSAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aCBub24tZW1wdHkKICAgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cuCgoyMDEwLTA3LTAxIDE4OjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDctMDEgMTc6NTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBGaXhlZCB0d28gcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMDEgMDA6MTkgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MDMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnByZTEgLT4gVjUuNi5wcmUyCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ4ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmY6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlzc2VkIHR3byB0b2tlbnMgaW4gdGhlIG1hbiBwZ2FlcwoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWYsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICByZW5hbWUgdGhlIGRlZlg1MDkgdG9rZW5zIHRvIHNvbWV0aGluZyBtb3JlIGZyaWVuZGx5OiBjbGllbnRDZXJ0CiAgIGFuZCBzZXJ2ZXJDZXJ0CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB0b3AtZmlsZSBjb21tZW50IHVwZGF0ZXMKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCBjYWxsIGNlcnRfZmluZCB3aXRoIGEgTlVMTCBhcmd1bWVudAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFsbG93IGRlZiBjZXJ0cyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBmaWxlbmFtZQoKMjAxMC0wNi0zMCAyMzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBmaXggc3ludGF4IGVycm9yCgoyMDEwLTA2LTMwIDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdHVybiBhIGNvdXBsZSBvZiBub24tY3JpdGljYWwgZXJyb3JzIGludG8gZGVidWcgc3RhdGVtZW50cyBwZXIKICAgZGlzY3Vzc2lvbiB3aXRoIHJzdG9yeQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWtlIHRoZSByZWdleHAgcGF0dGVybiBtYXRjaCBmb3IgdGVzdHMgdG8gcnVuIGNhc2UgaW5zZW5zaXRpdmUKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGltcG9ydCBzdGRlcnIgZnJvbSBzeXMsIHBlciBkaXNjdXNzaW9uIG9uIC11c2VycwoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIGJhY2sgaW4gdGhlIGRlZmF1bHQgcG9ydCBzcGVjaWZpZXIKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBlbmFibGUgcHVsbGluZyB0aGUgcHJpdmF0ZSBrZXkgb3ZlciBodHRwCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW92ZSBVUkwgY29sbGVjdGlvbiBpbnRvIGEgc3ViIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYWJpbGl0eSB0byBwdWxsIGEgY2VydCBmcm9tIGEgVVJMCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFyZ3VtZW50IGJ1ZyBpbiB0aGUgaXNfdXJsIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgY29kZQoKMjAxMC0wNi0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3RHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICByZW5hbWUgZmlsZSBmb3IgY29uc2lzdGVuY3kKCjIwMTAtMDYtMzAgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBzbm1wdGxzIGFwcAoKMjAxMC0wNi0zMCAyMDowMCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHJlbW92ZSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbnQgZGVidWcgY29kZQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGRlZmluZSBPSURzIGJhc2VkIG9uIFNOTVBfVExTX1RNX0JBU0UKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NyAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlOyBhZGQKICAgc25tcF9zdG9yZV9uZWVkZWQgb24gY29tbWl0CgoyMDEwLTA2LTMwIDE5OjU2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIG5ldyBmaW5nZXJwcmludCBwYXJzZS9idWlsZCBmdW5jdGlvbnM7IHJlbW92ZSBiYWQgbGVuZ3RoCiAgIGNoZWNrOyBhdXRvCiAgIHRyYW5zaXRpb24gYmV0d2VlbiBub3RSZWFkeSBhbmQgbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU1ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgcmVtb3ZlIHByZS1yZmMgbWliOyBzZWUgU05NUC1UTFMtVE0tTUlCLnR4dCBpbnN0ZWFkCgoyMDEwLTA2LTMwIDE5OjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgY29uc29saWRhdGUgbXVsdGlwbGUgZmlsZXMKCjIwMTAtMDYtMzAgMTk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIGhhc2ggdHlwZSBwYXJzZSByb3V0aW5lIHB1YmxpYzsgYWRkIHJvdXRpbmVzIHRvIGJ1aWxkL3BhcnNlCiAgIFNubXBUTFNGaW5nZXJwcmludAoKMjAxMC0wNi0zMCAxOTo1MSAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGxzLmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogc25tcHRsczogbmV3IGFwcCBmb3IgbWFuYWdpbmcgKEQpVExTIGNvbmZpZyB2aWEKICAgU05NUC1UTFMtVE0tTUlCIHRhYmxlcwoKMjAxMC0wNi0zMCAxOTo1MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBjYWxsIG5ldyBzbm1wX3N0b3JlX25lZWRlZCgpIGZ1bmN0aW9uIGFmdGVyIGEgY29tbWl0IGluIHRhYmxlcwogICB0aGF0CiAgIGhhdmUgcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0zMCAxOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHNpbXBsZSBzdGF0ZSBtYWNoaW5lCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgcm93IGNyZWF0aW9uIEFQSSB3aGljaCB1c2VzIGEKICAgc3RhdGUgbWFjaGluZQogICB0byB0cnkgcmVhbGx5IGhhcmQgdG8gY3JlYXRlIGEgcm93IGZyb20gYSBnaXZlbiB2YXJiaW5kIGxpc3QKCjIwMTAtMDYtMzAgMTk6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGQ6IG5ldyBBUEkgZm9yIGluZGljYXRpbmcgdGhhdCBwZXJzaXN0ZW50IHN0b3JlIG5lZWRzCiAgIHRvIGJlIHNhdmVkIGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgZmluaXNoZXMgcHJvY2Vzc2luZwoKMjAxMC0wNi0zMCAxOTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgYWRkIHNvbWUgbmV3IHdyYXBwZXIgbWFjcm9zCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNDTlNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNUR0bHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTZUbHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMThUbHNDTlNlc3Npb25fc2ltcGxlOgoKICAgYWRkZWQgY2hlY2tzIGZvciBjaGVja2luZyBkaXJlY3QgcGFzc2luZyBvZiBsb2NhbGhvc3QgdG8gdGhlCiAgIGV4cGVjdGVkIG5hbWUKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyOgoKICAgY2hlY2sgZm9yIHdpbGRjYXJkIHN1cHBvcnQKCjIwMTAtMDYtMzAgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3VwcG9ydCBTQU4gYW5kIENOIHdpbGRjYXJkIG1hdGNoaW5nIHBlciBzcGVjCgoyMDEwLTA2LTMwIDE1OjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc05hbWUsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFycywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxRHRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMlRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExRHRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJUbHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNEdGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTRUbHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxRHRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMlRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxRHRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJUbHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFEdGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJUbHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxRHRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJUbHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDBUbHNJcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDBUbHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMUR0bHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFEdGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJUbHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICBtb3ZlZCB0ZXN0IGZpbGVzIGFyb3VuZCBmb3IgYmV0dGVyIG5hbWluZwoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGR0bHMgdHJhbnNwb3J0IGFkZHJlc3MgdG8gdGhlIGV4cGVjdGVkIGhvc3RuYW1lCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdGhlIGV4cGVjdGVkIGhvc3RuYW1lIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJpbmcgaWYgcG9zc2libGUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhIGJpdCBtb3JlIGhlbHAgb3V0cHV0IGJ5IGRlZmF1bHQKCjIwMTAtMDYtMjkgMjI6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgRm9sbG93LXVwIGZvciByMTkxMTY6IG1ha2Ugc3VyZSB3ZSBpbmNsdWRlIGFnZW50IGNvbmZpZwoKMjAxMC0wNi0yOSAyMjoxOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIEFkZCBtaXNzaW5nIGNvbmZpZ19yZXF1aXJlcwoKMjAxMC0wNi0yOSAxNzozMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICByZXdvcmsgdGhlIHNubXBjbWQgbWFudWFsIHBhZ2UgdG8gc2VwYXJhdGUgb3V0IHRoZSBmbGFncyBpbnRvCiAgIHNlY3Rpb25zIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZSB0eXBlCgoyMDEwLTA2LTI5IDE2OjUxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBwb2QgZG9jcywgc29tZSBkZWZhdWx0IHZhbCBmaXhlcywgaW5mbyBvdXRwdXQgbm9ybWFsaXplZAoKMjAxMC0wNi0yOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgYWRkZWQgc3NoLmggaW5jbHVkZQoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICByZW9yZ2FuaXplIHRoZSBtYW51YWwgcGFnZSBhIGJpdCBmb3IgU05NUHYzIGFuZCBUTFMKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggZGVmYXVsdCB0bHMgcmVnaXN0cmF0aW9ucwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgdHJhbnNwb3J0cyBhZnRlciBhbiBvcGVuIGZhaWxzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmluZyBsb2dnaW5nIGFyb3VuZCBzbyB0aGF0IG9wZW5zc2wgZXJyb3JzIGFyZSBwcmludGVkIG9uCiAgIGZhaWx1cmVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXg6CgogICBmaXggc29tZSBub24taW50ZXJhY3RpdmUgaW52b2NhdGlvbiBpc3N1ZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gYSBjb21tb24gZnVuY3Rpb24KCjIwMTAtMDYtMjggMTk6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGU6CgogICBjaXBoZXIgc3VpdGUgc2VsZWN0aW9uIGFuZCB0ZXN0cyBmb3IgaXQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9MSUNFTlNFOgoKICAgbGljZW5zZSB1cGRhdGVzCgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvY2xpZW50LnB5LCAgIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgU05NUHYzIG92ZXIgVExTIHN1cHBvcnQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBiZXR0ZXIgb3V0cHV0IHNob3dpbmcgdGVzdCB0eXBlcwoKMjAxMC0wNi0yOCAwMDo1NCAgdGFuZGVycwoKICAgKiAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgCiAgICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IG1hbjogY2xlYW4gdXAgbWFudWFsIHBhZ2VzCiAgIChmcm9tIERlYmlhbiBwYXRjaCA1Nl9tYW5wYWdlKQoKMjAxMC0wNi0yNyAyMzoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGNhbGwgdmFjbV9zdGFuZGFyZF92aWV3cygpIG9yCiAgIGluaXRfdmFjbV9jb25maWdfdG9rZW5zKCkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbW9kdWxlIHdhcyBub3QKICAgY29tcGlsZWQKICAgKGZyb20gRGViaWFuIHBhdGNoIDYxX3ZhY21fbWlzc2luZ19kZXBlbmRlbmN5X2NoZWNrKQoKMjAxMC0wNi0yNyAwMzoyMyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFwcCB0YWcgY29tcGxldGlvbnMKCjIwMTAtMDYtMjcgMDA6NTYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgaGFuZGxlIGNvbmZpZyBmaWxlIHNldHRpbmcgaW50ZXJhY3RpdmUsIHRydWUvZmFsc2UgdmFsdWVzIGhhbmRsZWQKICAgaW4gY29uZmlnCgoyMDEwLTA2LTI2IDIwOjU4ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggc29tZSBidWdzIHcvIHNwYWNlcyBpbiBuYW1lcyBhbmQgYXBwIHRhZyBoZWxwCgoyMDEwLTA2LTI2IDE5OjM4ICBtYXJ6CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdGVzdHMgdG8gdXNlIG5vbi1pbnRlcmFjdGl2ZSAtSQoKMjAxMC0wNi0yNiAxNzo0NiAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBiZXR0ZXIgaW50ZXJhY3RpdmUsID89aGVscCwgPHRhYj4gY29tcGwsIG1vcmUgaGVscCwgU0FOIGxvb3AKICAgZm9ybWF0IGFuZCB0ZXJtaW5hdGlvbiBmaXgsIHRvbGVyYXRlIHNwYWNlcyBpbiBmaWVsZHMgYW5kCiAgIGZpbGVuYW1lcywgbW9yZSBjb21wbGV0ZSBlcnJvciBvdXRwdXQsIGVtYnJ5b25pYyBpbXBvcnQgZnJvbSB1cmwKCjIwMTAtMDYtMjYgMTM6NDggIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0wNi0yNiAxMzo0NyAgYnZhc3NjaGUKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeGVkIHRoZSBlcnJvcnMgaW4gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZWQKICAgbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTA2LTI2IDEzOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSBTTVVYIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMTAtMDYtMjYgMDA6NDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZToKCiAgIGZpeGVzIGFuZCB0ZXN0aW5nIGZvciBjaGVja2luZyBTQU4gRE5TIG5hbWVzIGZyb20gdGhlIHNlcnZlcgoKMjAxMC0wNi0yNiAwMDo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgZ2VuZXJpY2l6ZSB0aGUgc2VydmVyIG5hbWUgdGVzdHMKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5oLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICB1c2VwcmVmaXggc2NhbGFyIHRlc3RpbmcgYW5kIHN1cHBvcnQKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICByZW1vdmUgZGVidWdnaW5nIGxpbmVzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcHV0IGluIG9ubHkgbWluaW1pYWwgZGVidWcgZmxhZ3MKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZToKCiAgIGNvZGUgYW5kIHRlc3QgY2FzZXMgZm9yIENSTCBoYW5kbGluZwoKMjAxMC0wNi0yNSAxNToyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZToKCiAgIEFkZGVkIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGVhY2ggbGluZSBwcmludGVkIGJ5IHRoZSBQZXJsCiAgIGludGVycHJldGVyLgoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZWR1Y2UgbnVtYmVyIG9mIHJlc2VuZCBhdHRlbXB0cyBhbmQgdGltZW91dAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB3YXJuaW5nIGZpeGVzCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVtb3ZlIGxvZ2ljIHR5cG8gZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGU6CgogICBJUHY2IGZpeGVzIGZvciBUQ1AKCjIwMTAtMDYtMjUgMTM6MDEgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRpbmcgMTkwOTUsIGl0IGJyZWFrcyB0ZXN0cwoKMjAxMC0wNi0yNSAwOTo0MCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFuc2xhdGU6IGZpeGVkIHByaW50aW5nIG9mIHJhbmdlcyB3aXRoIFVOU0lHTkVECiAgIHR5cGUuCgoyMDEwLTA2LTI0IDIzOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBmdW5jdGlvbiBuYW1lcyBmb3Igc3RhdCBpbmNyZWFzZXMKCjIwMTAtMDYtMjQgMjM6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9ycyBpbiBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS40IGZvciBkdGxzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjMuMgoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGllbnQgc2lkZSBjb25uZWN0IGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvdW50ZXIgYW5kIGNvbW1lbnQgaW1wcm92ZW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHVwZGF0ZSBjb3VudGVyIGNhbGxzIGFuZCBjb21tZW50IHRleHQKCjIwMTAtMDYtMjQgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBNb3ZlZCBMRF9MSUJSQVJZX1BBVEggc2V0dXAgZnJvbSBpbmRpdmlkdWFsIHRlc3RzIHNjcmlwdHMgdG8KICAgc2ltcGxlX1RFU1RDT05GLnNoLgoKMjAxMC0wNi0yNCAxOTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgRml4ZWQgYSBjb21tZW50LgoKMjAxMC0wNi0yNCAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBTaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxOTA4NC4KCjIwMTAtMDYtMjQgMTc6NDcgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNi0yNCAxMjozMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgICJ0ZXN0IC1lIiBpc24ndCBwb3J0YWJsZTsgdXNlICJ0ZXN0IC14IiBpbnN0ZWFkIGZvciB0aGUgUGVybAogICBzeXN0ZW0oKQogICBjaGVjawoKMjAxMC0wNi0yMyAxMToxNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgSVAtTUlCOjppcHY2SW50ZXJmYWNlRm9yd2FyZGluZyBvbgogICBMaW51eAogICAKICAgVGhlIHZhbHVlIHdhcyAwIChub3QgZm9yd2FyZGluZykgb3IgMSAoZm9yd2FyZGluZyksIHNob3VsZCBiZSAyCiAgIGFuZCAxCiAgIGluc3RlYWQgLSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeS5mb3J3YXJkaW5nX3Y2IGlzIGJvb2xlYW4sIG5vdAogICBUcnV0aFZhbHVlLgoKMjAxMC0wNi0yMiAyMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgc3VwcG9ydCBmb3IgY2VydFNlY05hbWUgbWFwcGluZyBmcm9tIGEgbG9jYWwgY2VydCBmaWxlIG5hbWUgYW5kIGEKICAgdGVzdCBmb3IgaXQKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbmF0aW9uIHVwZGF0ZSB0byBjbGVhbiB1cCBhbmQgaW5jbHVkZSBUTFMgcGFyYW1ldGVycwoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBmb3IgcGFzc2luZyBpZGVudGl0aWVzIGFuZCBmdWxsIHdvcmtpbmcgdmVyc2lvbgoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudDoKCiAgIHBlcmwgVExTL0RUTFMgdGVzdHMKCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpcnN0IHB0YWNoIG9uIFNOTVAvVExTIGNyZWF0aW5nIGEgbmV3IHNlc3Npb24gZnVuY3Rpb24KCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmlyc3Qgd29ya2luZyBzdXBwb3J0IGZvciBhIGRlbGF5ZWQgY2xvc2UoKSB0byBhdHRlbXB0IHRvIHNlbmRpbmcKICAgb3V0c3RhbmRpbmcgcGFja2V0cyBpbiB0aGUgcXVldWU7IHRoaXMgaXMgcmVxdWlyZWQgZm9yIHNubXB0cmFwCiAgIHRvIHdvcmsgYXQgYWxsIHdoZW4gc2VuZGluZyB0cmFwcyAobm90IGluZm9ybXMpIG92ZXIgRFRMUwoKMjAxMC0wNi0yMiAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdHMgVDA1OSBhbmQgVDA2NSBkbyBub3cgcGFzcy4KCjIwMTAtMDYtMjIgMTk6MDEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFRoZSB3aWR0aCBhcmd1bWVudCBmb3IgJS4qZCBtdXN0IGhhdmUgdHlwZSBpbnQsIG5vdCBzaXplX3QuIFRoaXMKICAgYnVnIHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxNC4KCjIwMTAtMDYtMjIgMTg6NTcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBDSEFOR0VTOiBNaW5HVzogcnVuX3NoZWxsX2NvbW1hbmQoKSB3aXRoIGVpdGhlciBpbnB1dCBvciBvdXRwdXQKICAgKGJ1dCBub3QgYm90aCkgZG9lcyBub3cgd29yay4KICAgVGhpcyBkaWQgbm90IHdvcmsgdW50aWwgbm93IGJlY2F1c2Ugb24gTWluR1cgbWtzdGVtcCgpIGdlbmVyYXRlcwogICBhIE1pbkdXLXN0eWxlIHBhdGggKC90bXAvLi4uKSB3aGlsZSBzeXN0ZW0oKSBpbnZva2VzIGNtZC5leGUgYW5kCiAgIGhlbmNlIGV4cGVjdHMgYSBXaW5kb3dzLXN0eWxlIHBhdGggKEM6XC4uLikuCgoyMDEwLTA2LTIyIDE3OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQWxzbyByZXBvcnQgdGhlIHBvcnQgc3BlY2lmaWNhdGlvbiBpZiBbICRTTk1QX1ZFUkJPU0UgLWd0IDAgXS4KCjIwMTAtMDYtMjIgMTc6MzggIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBSZXBsYWNlZCBhbiBleHBsaWNpdCB0ZXN0IGZvciBNaW5HVyBieSBhIHRlc3Qgb24gSEFWRV9TSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM2ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFJlcG9ydCB3aGljaCB0ZXN0cyBmYWlsZWQsIGlmIGFueS4KCjIwMTAtMDYtMjIgMDg6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4ZWQgYW4gZXJyb3IgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxMC0wNi0yMSAxOToyNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIFJlYXJyYW5nZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdGVzdCBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeQogICB0byBpbnZva2Ugc2ltcGxlX2V2YWxfdG9vbHMuc2ggd2hlbiB0aGlzIHNjcmlwdCBpcyBpbnZva2VkIGFzIGEKICAgdHJhcCBoYW5kbGVyCiAgIGJ5IHNubXB0cmFwZC4KCjIwMTAtMDYtMjEgMDg6MDEgIGR0czEyCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBFbnN1cmUgdGhhdCBmZHNldCBzdHJ1Y3R1cmUgaXMgcmVzaXplZCBzdWZmaWNpZW50bHkKICAgdG8gYWNjb21vZGF0ZSB0aGUgc3BlY2lmaWVkIHNvY2tldCBJRC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBTaGl5YWxlaS4KCjIwMTAtMDYtMjAgMTk6MzIgIGR0czEyCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsICAgCiAgICAgIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEF2b2lkIGR1cGxpY2F0ZSAodW51c2VkKSBzeW1ib2xzLgoKMjAxMC0wNi0yMCAxOTozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIENvbW1lbnRlZCBvdXQgZGVidWcgY29kZS4KCjIwMTAtMDYtMjAgMTk6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIFJlc3RvcmVkIHN1bW1hcnkgc3VjY2Vzcy9mYWlsdXJlIGNvdW50IHJlcG9ydGluZy4KICAgQWxzbywgbW92ZWQga2lsbC5leGUgdGVzdCBiYWNrIHRvIFJVTlRFU1RTLgoKMjAxMC0wNi0yMCAxOToyOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZCB0aGUgdGVzdCBuYW1lIHRvIHRoZSBzdGFydCBvZiB0aGUgZmlsZQogICAiaW52b2tlZCIuCgoyMDEwLTA2LTIwIDE5OjI3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IHNraXAgdGhlIHRlc3RzIHRoYXQgcmVxdWlyZSBTSUdIVVAgc2luY2UKICAgTWluR1cgZG9lcyBub3Qgc3VwcG9ydCBTSUdIVVAuCgoyMDEwLTA2LTIwIDE1OjE5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY29uZmlndXJlIHRlc3QgdGhhdCBkZXRlY3RzIHdoZXRoZXIgb3Igbm90IFBlcmwncwogICBzeXN0ZW0oKSBmdW5jdGlvbgogICBpbnZva2VzIGEgUE9TSVggc2hlbGwuICJtYWtlIHRlc3QiIGRvZXMgbm93IGZhbGwgYmFjayB0byBSVU5URVNUUwogICBpZiBub3QuCgoyMDEwLTA2LTIwIDE1OjE2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIG9uIE1pbkdXIC0tIGFkZGVkICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPiB3aGVyZQogICBuZWNlc3NhcnkuCiAgIE5vdGU6IGFsdGhvdWdoIDxuZXQtc25tcC90eXBlcy5oPiBpcyBpbmNsdWRlZCBpbmRpcmVjdGx5IGZyb20gdGhlCiAgICogICAgICp0cmFuc3BvcnQuaCAgICBoZWFkZXIgZmlsZXMsIHRoZXNlICNpbmNsdWRlIHN0YXRlbWVudHMgYXJlCiAgICAgIG5lY2Vzc2FyeSBiZWNhdXNlIG9mICAgIGEgcGVza3kgICAgY2lyY3VsYXIgZGVwZW5kZW5jZSBiZXR3ZWVuCiAgICAgIDxuZXQtc25tcC90eXBlcy5oPiBhbmQgICAgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4uIAogICAgICAyMDEwLTA2LTIwIDE1OjEyICBidmFzc2NoZQoKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgQ0hBTkdFUzogTWluR1c6IHJlZnVzZSB0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaWYga2lsbC5leGUKICAgY2Fubm90IGJlIGZvdW5kLgoKMjAxMC0wNi0yMCAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNob3J0ZW5lZCB0aGUgc3JjZGlyIHBhdGggYnkgbWFraW5nIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluCiAgIC8uLgoKMjAxMC0wNi0xOSAxODozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIFJVTkZVTExURVNUUyB3aXRoIFRlc3Q6Okhhcm5lc3MgaW4KICAgYW5vdGhlciBkaXJlY3RvcnkgdGhhbiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgY29tcGxldGUgcmV3cml0ZSBvZiBwYXJhbXMgdG8gdXNlIHRhYmxlX2RhdGFzZXQgaW5zdGVhZCBvZgogICBjcmVhdGUtZGF0YXNldAoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1c2UgdGV4dCBmb3IgaGFzaCB0eXBlIGluIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggbWlzc2luZyBzcGVjaWZpZXIgaW4gZGVidWcKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgZGVmaW5lIGluc3RlYWQgb2YgY29uc3RhbnQ7IGZpeCBjaGVjayBmb3Igcm93cyB0byBzYXZlCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHJlbW92ZS9maW5kIGZ1bmN0aW9uIGZvciBtYXBzL2FkZHJzL3BhcmFtczsgcmVuYW1lIHBhcmFtcwogICB0YWctPm5hbWU7CiAgIGRlc3Ryb3kgLT4gZnJlZTsgZ3JvdXAgcmVjZW50IHRydXN0IGZ1bmN0aW9ucyB0b2dldGhlciBpbiBzcmM7CiAgIGRvbid0IHN0b3JlCiAgIHBhcmFtcyBmcCBhcyBiaW5hcnk7IGhhbmQgdGV4dCBhcmdzIGZvciBoYXNoIHR5cGUgKGUuZyAtLXNoYTEpCgoyMDEwLTA2LTE4IDE1OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBjb3JyZWN0ZWQgZXJyb3IgaGFuZGxpbmcgaW4gbWliSUkvYXQuCgoyMDEwLTA2LTE4IDA3OjIzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDYtMTggMDE6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIERvIG5vdCBkZWZpbmUgcmV0IHR3aWNlIHdoZW4gTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPIGlzIHNldC4KCjIwMTAtMDYtMTggMDE6MzkgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDb3JyZWN0ZWQgdHlwby4KCjIwMTAtMDYtMTggMDA6MzEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBiZXR0ZXIgTkVXUyBhbmQgQ0hBTkdFUyBmaWxlcwoKMjAxMC0wNi0xNyAyMDozOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0xNyAxODo1OSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41IC0+IFY1LjYucHJlMQoKMjAxMC0wNi0xNyAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTE3IDE4OjU5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHJlLWVuYWJsZSBzb21lIGNvbW1hbmRzCgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICBmb3Jnb3QgbWlzc2luZyBxdW90ZXMgaW4gU0VUIG91dHB1dAoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRscyB0ZXN0aW5nIGNsZWFudXAKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciBhZGRyZXNzIHByaW50aW5nOyBtb3JlIHRvIGNvbWUKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3N0bHkgcHJvcGVybHkgc2V0IHJlbW90ZS9sb2NhbCB0cmFuc3BvcnQgcGFyYW1ldGVycwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJ0bHN0Y3BhZ2VudHRyYXB0ZXN0c19zaW1wbGU6CgogICB0ZXN0cyBmb3IgYWdlbnRzIHNlbmRpbmcgb2YgdHJhcHMgb3ZlciAoRClUTFMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgbW92ZSBleHBvcnQgc3RhdGVtZW50cyB0byB0aGUgc3VwcG9ydCBmaWxlIGZvciBzaW1wbGljaXR5CgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGxzIGJvb3RzdHJhcHBpbmcgdG8gcG9zdF9wcmVtaWIgc28gb3RoZXIgY29uZmlnIHRva2VucyBjYW4KICAgdXNlIHRoZSBjZXJ0IGxvYWRpbmcgcmVzdWx0cwoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIGFkZGVkIHNubXBfZW51bSB0ZXN0cyBwdWxsZWQgZnJvbSB0aGUgbWFpbigpIHRlc3QgYXQgdGhlIGJvdHRvbQogICBvZiB0aGUgb3JpZ2luYWwgLmMgZmlsZQoKMjAxMC0wNi0xNyAxNjowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBFbGltaW5hdGUgImRpZmZlciBpbiBzaWduZWRuZXNzIiB3YXJuaW5nCgoyMDEwLTA2LTE3IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIHJldmVydCBVRFAgY2hhbmdlcyBmcm9tIHIxODk4NCBzaW5jZSBpdCBicm9rZSB0aGUgVURQIHRyYW5zcG9ydDsKICAgdGhlIHN0cnVjdCBwcm9iYWJseSBuZWVkcyB0byBtYXRjaCBhbm90aGVyIHN0cnVjdCBzb21ld2hlcmUgZWxzZQoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIG5ldyBLRVlXT1JEIG91dHB1dCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgY29uZmlnX2FuZF9vcGVuIGZvciBvcGVuaW5nIHRoZSB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZXh0cmEgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIGV4cGxpY2l0bHkgZGVjbGFyZSB0cnVzdCBjZXJ0aWZpY2F0ZXMgdG8gdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2xlYW51cCBzb21lIGxvc3QgbWVtb3J5IG9uIGNsb3NpbmcKCjIwMTAtMDYtMTYgMjE6NTYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwb3MKCjIwMTAtMDYtMTYgMjE6MzQgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBhZ2VudCBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMjA6MTYgIGR0czEyCgogICAqICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGxpYnJhcnkgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE5OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvbGRlciBuby1sb25nZXItbmVlZGVkLWR1cGxpY2F0ZS1jb25maWcgZW50cmllcwoKMjAxMC0wNi0xNiAxOToxNCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBGaXggcHJvY2Vzc2luZyBvZiB2aWV3IG1hc2tzIChtaXNwbGFjZWQgcGFyZW50aGVzZXMpCgoyMDEwLTA2LTE2IDE4OjQ1ICBkdHMxMgoKICAgKiAgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIGZyb20gYXBwIGNvZGUKICAgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0czoKCiAgIGNoZWNrIGZvciBpbmZvcm1zIHNlbnQgb3ZlciB0bHMgdHJhbnNwb3J0cwoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IG90aGVyIHZhbHVzZSBmcm9tIHBhcmVudCB0bHNiYXNlIGRhdGEKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIGFkZGVkIGJhc2ljIHRyYXAgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRlc3RzCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCB0ZW1wIGZpbGUgdG91Y2hlcwoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgbmV3IGZ1bmN0aW9uIGFuZCB0cmFuc3BvcnQgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgZl9vcGVuCiAgIGNhbGwgaGFzIGJlZW4gY2FsbGVkIHlldAoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1bnVzZWQgdmFyIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGRlZCB0cnVzdENlcnQgY29uZmlndXJhdGlvbiB0b2tlbgoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgbWlub3IgdHdlYWtzIGZvciB0ZXN0aW5nIGNsYXJpdHkKCjIwMTAtMDYtMTYgMTc6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGU6CgogICBtb3ZlZCBjb21wbGV4IChEKVRMUyB0byBhIHNlcGFyYXRlIHNlY3Rpb24gYW5kIG1hZGUgdGhlIHRyYW5zcG9ydAogICB0ZXN0cyBvbmx5IHRlc3QgbWluaW1hbCBzdXBwb3J0CgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIG1lY2hhbmlzbXMgZm9yIHNwZWNpZnlpbmcgYW5kIGV4cGVjdGluZyB0aGUgaG9zdG5hbWUgb2YgdGhlCiAgIGZhciBzaWRlCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGVzdHMgZm9yIHZlcmlmeWluZyBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hlY2sgZmFpbHVyZXMKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZToKCiAgIHRlc3RpbmcgZm9yIGNoZWNraW5nIGNsaWVudCBzaWRlIHZlcmlmaWNhdGlvbiBvZiBzZXJ2ZXIKICAgY2VydGlmaWNhdGVzCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoZWNrIHRvIG1ha2Ugc3VlciBzc2wgcG9pbnRlciBoYXMgYmVlbiBjcmVhdGVkIHZpYSBmX29wZW4gY2FsbAoKMjAxMC0wNi0xNiAxNTowMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9wZXJsLmgsIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWNsYXJlICdzaHV0ZG93bl9wZXJsJyBwcm9wZXJseS4KCjIwMTAtMDYtMTYgMTQ6MzcgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIHR5cGUgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiIKICAgd2FybmluZ3MgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNDoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRWxpbWluYXRlICJ1bnVzZWQgdmFyaWFibGUiIHdhcm5pbmcKCjIwMTAtMDYtMTYgMTQ6MjIgIGR0czEyCgogICAqICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgdmFyaW91cyAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTYgMTM6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFwcHMvc25tcHZhY20uYywgc25tcGxpYi90b29scy5jOgoKICAgRWxpbWluYXRlIChtb3N0KSBzaWduZWQtdnMtdW5zaWduZWQgd2FybmluZ3MgZnJvbSBudW1lcmljIHNjYW5mCiAgIHByb2Nlc3NpbmcgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTYgMDM6MjggIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB0aGUgZ3JlYXQgdW4tbmFtZWQgY29udGFpbmVyIGh1bnQKCjIwMTAtMDYtMTYgMDM6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHNoYXJlIGNhY2hlIGJldHdlZW4gdGFibGUgYW5kIGNvdW50IHNjYWxhcjsgd2hlbiByZWFkaW5nIGNvbmZpZywKICAgYWRkIHRvCiAgIGxpYnJhcnkgY29udGFpbmVycyBmb3IgYWN0aXZlIHJvd3MsIHRhYmxlIGNvbnRhaW5lcnMgZm9yIGluYWN0aXZlCiAgIHJvd3M7CiAgIHVzZXIgY2VydF91dGlsIGFwaXMgaW5zdGVhZCBvZiBkaXJlY3QgY29udGFpbmVyIG1hbmlwdWxhdGlvbjsKICAgd2hlbgogICBzYXZpbmcgaW5hY3RpdmUgbWFwIHJvd3MsIHNraXAgYWxsIGJ1dCBub25Wb2xhdGlsZQoKMjAxMC0wNi0xNiAwMzoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggZGVidWcgdG9rZW4gdHlwbwoKMjAxMC0wNi0xNiAwMzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhcGkgZm9yIGFkZGluZyBlbnRyaWVzIHRvIHRsdHNtIGFkZHIsIHBhcmFtcyBhbmQgY2VydCBtYXAKICAgY29udGFpbmVyczsKICAgcmVnaXN0ZXIgc2Ugc2xpc3QgcGFpciBlYXJsaWVyIHNvIHRoZXkgYXJlIGF2YWlsYWJsZSBkdXJpbmcKICAgY29uZmlnIHBhcnNpbmc7CiAgIG1ha2Ugc3VyZSBjb25maWcgc3RyaW5ncyBhcmUgbnVsbCB0ZXJtaW5hdGVkCgoyMDEwLTA2LTE1IDIxOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBTdXBwcmVzcyB3YXJuaW5nczoKICAgJ3N0cnVjdCBubG1zZ2hkciBkZWZpbmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCcgYW5kCiAgICdmdW5jdGlvbiBfbG9hZF92NiBkZWNsYXJlZCBidXQgbmV2ZXIgZGVmaW5lZCcKCjIwMTAtMDYtMTUgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9rZXJuZWwuYywgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgRWxpbWluYXRlICJlbXB0eSB0cmFuc2xhdGlvbiB1bml0IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNSAwNzowNyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAzY29weV9ud29yZF9jbGliLmM6CgogICBBZGQgdGVzdCBvZiBjb3B5X253b3JkCgoyMDEwLTA2LTE0IDIxOjMyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgRWxpbWluYXRlICJvdmVyZmxvdyBpbiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9uIiB3YXJuaW5ncwogICBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNCAxNTo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEVsaW1pbmF0ZSAic3RyaW5nIGxlbmd0aCBncmVhdGVyIHRoYW4gNTA5IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAxNToxOSAgZHRzMTIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgImluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbXB1dGFibGUiIHdhcm5pbmdzCiAgIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDA1OjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIGNvdW50IGhhbmRsZXJzIHRvIGNvdW50IG5vbi1hY3RpdmUgcm93cyB0b28KCjIwMTAtMDYtMTQgMDU6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBvbmx5IHR3ZWFrIHN0b3JhZ2VUeXBlIGZvciBhY3RpdmUgcm93czsgcmVzZXQgZW50cnkgZmxhZ3Mgd2hlbgogICByZW1vdmluZyBmcm9tCiAgIGNlcnRfdXRpbCBtYXBzOyB3aGVuIGNyZWF0ZWluZyByb3dzIGZyb20gY2VydF91dGlsIG1hcHMsIHNldAogICBzdHJhZ2V0VHlwZSB0bwogICB2b2xhdGlsZSBpZiBub25Wb2xhdGlsZSBmbGFnIG5vdCBzZXQ7IGRvbnQgZnJlZSBjYWNoZSBpbgogICBjYWNoZV9sb2FkIG9uIGVycgoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBtb3ZlIHRsc3RtQWRkciB0YWJsZSBjb25maWcgcGFyc2luZyB0byBjZXJ0X3V0aWw7IGFkZCBjYWNoZSB0bwogICBtZXJnZSBjZXJ0X3V0aWwKICAgYWRkcnMgKGFjdGl2ZSkgYW5kIG5vbi1hY3RpdmUgcm93czsKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgbm9uVm9sYXRpbGUgZmxhZyB0byB0bHN0bUFkZHIgdGFibGU7IHNldCBjb250YWluZXIgbmFtZTsgc2tpcAogICAnMHgnIGluIGZwCgoyMDEwLTA2LTE0IDA1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgTE9HX0VSUiB0byBMT0dfSU5GTyBmb3Igbm9uLWVycm9yIGxvZyBtc2cKCjIwMTAtMDYtMTMgMjE6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tCiAgIE1mRC1iYXNlZCBNSUIgbW9kdWxlIGNvZGUsIGFuZCBNZkQgdGVtcGxhdGUgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMjE6MzMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gKG5vbi1NZkQpCiAgIE1JQiBtb2R1bGUgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMTA6MjYgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIGxpYnJhcnksCiAgIGFwcHMgYW5kIGFnZW50IGZyYW1ld29yaytoZWxwZXJzIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEwIDIwOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgbG9va3VwIGNlcnQga2V5cyBmb3IgdGxzIGRvbWFpbnM7IHVzZSBTRUNfTU9ERUwgZGVmaW5lIGluc3RlYWQgb2YKICAgaGFyZGNvZGVkCiAgIGNvbnN0YW50OyBhZGQgU0VDX01PREVMX1RTTSB0byBhbGxvd2VkIHNlYyBtb2RlbHMgZm9yIG1wTW9kZWwKICAgU05NUF9WRVJTSU9OXzMKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBkZWZhdWx0IHRvIHJlYWRPbmx5L2FjdGl2ZSBmb3IgYmFkIGNvbmZpZwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkIGRlYnVnOyBzd2l0Y2ggdG8gU0VDX01PREVMX1RTTSBhbmQgd2FybiBpZiBvdGhlciBzZWNtb2RlIHNldCwKICAgaW5zdGVhZAogICBvZiBzaW1wbHkgbG9nZ2luZyB0aGF0IGl0IHdvbid0IHdvcmsKCjIwMTAtMDYtMTAgMTk6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNoZWNrIHB0cnMgYmVmb3JlIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTEwIDE5OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YSBtYW5hZ2VtZW50IHRvIGNlcnRfdXRpbDsgaW1wbGVtZW50CiAgIFRBUkdFVF9BRERSCiAgIGFuZCBUQVJHRVRfUEFSQU1TIGxvb2t1cCBpbiBjZXJ0IEFQSQoKMjAxMC0wNi0xMCAxOTo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVwZGF0ZSBzZWMgbW9kZWwgZGVmaW5lIG1pc3NlZCBpbiBlYXJsaWVyIGNoZWNraW4KCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBjb25maWcgdHJhcHNlc3MgdHJhbnNwb3J0cyBvbiBjcmVhdGlvbjsgc2ltcGxpZnkgaWZkZWZzIGZvcgogICBESVNBQkxFX1NOTVBWMQoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wa3NtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGF1dG8gc3dpdGNoIHRvIHYzIGZvciAoZCl0bHMgc2Vzc2lvbnMgaW5zdGVhZCBvZiBsb2dnaW5nIHRoYXQKICAgb3RoZXJzIHdvbnQKICAgd29yazsgZGVmaW5lIFRTTSBzZWMgbW9kZWwgd2l0aCBvdGhlciBzZWMgbW9kZWxzOyBjb25zaXN0ZW50bHkKICAgdXNlCiAgIFNOTVBfU0VDX01PREVMXyogaW4gdGhlIGNvZGUsIHVzaW5nICNkZWZpbmVzIGZvciBiYWNrd2FyZHMKICAgY29tcGF0aWJpbGl0eQogICB3LypfU0VDVVJJVFlfTU9ERUwKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0VG9UU046IG1vdmUgbWliIHJlbGF0ZWQgcGVyc2lzdGVuY2UgYmFjayBpbnRvIG1pYiBtb2R1bGU7CiAgIGNlcnRfdXRpbDogYWRkIHRsc3RtUGFyYW1zIHBlcnNpc3RlbmNlOyB1c2Ugc2xpc3QgZm9yIGNlcnQgbWFwCiAgIHR5cGUgbmFtZQogICBtYXBwaW5nOwoKMjAxMC0wNi0xMCAxOTo0NSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZyAoY29uc3QpCgoyMDEwLTA2LTEwIDA0OjU4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBBZGQgbWlzc2luZyBpbmRlbnRhdGlvbiBvZiBhIGRvLXdoaWxlIGxvb3AgdG8gbWFrZSB0aGUgY29kZQogICByZWFkYWJsZS4KCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBjb21tZW50IG91dCBrZXlVc2FnZSBzbyBwcm9wZXIgc2VsZi1zaWduZWQgY2VydHMgYXJlIGdlbmVyYXRlZAoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzb2xpZGlmeSBjZXJ0aWZpY2F0ZSBhY2NlcHRhbmNlIGZvciB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJyYXkgdHlwbwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvZyBvcGVuc3NsIGVycm9ycyBvbiBhY2NlcHQgZmFpbHVyZQoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVnaXN0ZXIgZGVmYXVsdCBwb3J0cyBmb3IgdGxzL2R0bHMKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkbyBwcm9wZXIgU1RPUkUgbG9hZGluZyBvZiB0cnVzdGVkIGNlcnRpZmljYXRlcyByYXRoZXIgdGhhbiBmaWxlCiAgIGJhc2VkIGxvYWRpbmcKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZGVkIHR3byBuZXcgQVBJczogbmV0c25tcF9jZXJ0X3RydXN0IGFuZCBuZXRzbm1wX2NlcnRfdHJ1c3RfY2EKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAndGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAnZHRscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDggMjE6MDUgIG1hZ2ZyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBhZ2VudF9yZWFkX2NvbmZpZy5oIGluIDUuNiBhcyB3ZWxsLiBJdCBkaXNhcHBlYXJlZCBpbgogICByMTg4NDMuCgoyMDEwLTA2LTA4IDA5OjI1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOgoKICAgUmVtb3ZlIChvciBhY3RpdmF0ZSkgdW51c2VkIHZhcmlhYmxlcy4KICAgRml4IG1pc25hbWVkIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgoKMjAxMC0wNi0wOCAwNzoxMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBBUEkgY2hhbmdlcyBmb3IgcHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrCiAgIG1vZHVsZS4KICAgKE9taXR0ZWQgZnJvbSByZXZpc2lvbiAxODkzMiBjaGVja2luKQoKMjAxMC0wNi0wOCAwNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgdXBkYXRlIG1ha2VmaWxlIGZvciBtb3ZlZCBoZWxwZXIgaGVhZGVycwoKMjAxMC0wNi0wNyAyMDoxOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgUmV2ZXJ0aW5nIHJldi4gMTc2MTYsIHRoZSBuZWNlc3NhcnkgY2hlY2sgaXMgYWxyZWFkeSBpbiByZXYuCiAgIDE3NDE1LgoKMjAxMC0wNi0wNiAwMzo0NSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRoczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbiBjYXNlIGV4ZWNfcHJlZml4IGlzIHVuc2V0IHRoZW4gc2V0IGl0IHRvCiAgICcke3ByZWZpeH0nIGluIG9yZGVyIHRvIHBpY2sgdXAgb3ZlcnJpZGVzIG9mICRwcmVmaXggaW4gbWFrZQogICBpbnN0YWxsLgoKMjAxMC0wNi0wNCAwNDowNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvIGEgYmV0dGVyIGpvYiBvZiB2ZXJpZnlpbmcgZmluZ2VycHJpbnRzIG9mIHJlbW90ZSBzZXJ2ZXJzCiAgIHB1bGxpbmcgZmluZ2VycHJpbnRzIGZyb20gYSBudW1iZXIgb2YgcG9zc2libGUgcGxhY2VzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgZ28gYWhlYWQgYW5kIGxvZyBvdXRwdXQgZmlsZSBmb3IgZWFzaWVyIGRlYnVnZ2luZyBpbiBlcnJvcnMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IHR5cG8KCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBjb21tZW50IGFib3V0IHJhbmRvbSBiZWluZyBpbmFkZXF1YXRlOyB3ZSdyZSBkb2luZyB0aGUKICAgYmVzdCB3ZSBjYW4gYmFzZWQgb24gd2hhdCB3ZSBoYXZlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSBhbm90aGVyIHVzZXIgZm9yIHRlc3Rpbmcgc25tcGFwcCBkZWZhdWx0IGNlcnRpZmljYXRlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJ1biBhIGRlZmF1bHQgdGVzdCB3aXRob3V0IGEgbG9jYWwga2V5IHRvIGVuc3VyZSB0aGUgc25tcGFwcCB0eXBlCiAgIGlzIHBpY2tlZCB1cAoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgdGhlIGxvY2FsIGlkZW50aXR5IGFuZCBwdWxsIGl0IGZyb20gYQogICBmaWxlbmFtZSBvZiB0aGUgaW5pdF9zbm1wKCkgcmVnaXN0ZXJlZCB0eXBlIG5hbWUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBkb2MgdXBkYXRlCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDV1bml4LnQ6CgogICB1bml4IHNvY2tldCB0ZXN0CgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAzdWRwNi50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDR0Y3A2LnQ6CgogICBpcHY2IHRlc3RzCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgbWVudGlvbiB0ZXN0IG5hbWUgaXMgSVB2NAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIGNoZWNrIHRoYXQgdHJhbnNwb3J0IHdhcyBjb25maWd1cmVkCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgYWRkIHN1cHBvcnQgZm9yIG5ldC1zbm1wLWNvbmZpZy5oIGNoZWNrcwoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvTmV0U05NUFRlc3RUcmFuc3BvcnQucG0sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIHNvbWUgYmFzaWMgdHJhbnNwb3J0IGNoZWNraW5nIGZvciBwZXJsOiB1ZHAgYW5kIHRjcAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybCwgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMDAxYmFzaWMudDoKCiAgIGJhc2ljIHRlc3RzIGZvciBwZXJsCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgaW5mcmFzdHJ1Y3R1cmUgbW9kdWxlIGZvciB0ZXN0aW5nIHBlcmwgc3VwcG9ydAoKMjAxMC0wNi0wMyAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBQb2ludCBMSUJ7Q1VSUkVOVCxBR0UsUkVWSVNJT059IGRvY3VtZW50YXRpb24gdG8gdGhlIGNvcnJlY3QKICAgZmlsZS4KICAgV2FybiBhYm91dCAnbWFrZWRlcGVuZCcgcGlja2luZyB1cCB0ZXN0aW5nIG1vZHVsZSBjb2RlLgogICBFbXBoYXNpcyB1cGRhdGUgb2YgJ2Rvd25sb2FkLmh0bWwnIHBhZ2UKICAgTWVudGlvbiB1cGRhdGUgb2YgT2ZmaWNpYWwgUGF0Y2hlcwogICBTdXBwcmVzcyBicm9rZW4gY29tbWFuZHMKCjIwMTAtMDYtMDMgMTU6MTYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzayBtb2R1bGUuCiAgIEVuc3VyZXMgY29uc2lzdGVudCByZXBvcnRpbmcgYmV0d2VlbiBVQ0QgYW5kIEhvc3RSZXMgRlN5cyB1c2FnZQogICBhbmQgZXh0ZW5kcyAnc2tpcE5GU0luSG9zdFJlc291cmNlcycgY29uZmlnIHRvIFVDRCBkaXNrIHN0YXRzLgoKMjAxMC0wNi0wMyAxNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmM6CgogICBGaXggYnJva2VuIHNpemUgY2FsY3VsYXRpb25zLgogICBTdXBwb3J0IDY0LWJpdCBzaXplL3VzYWdlIHZhbHVlcy4KCjIwMTAtMDYtMDIgMTQ6NTIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIC0td2l0aC1jYSBpbnN0ZWFkIG9mIC0tY2EKCjIwMTAtMDYtMDIgMTQ6NTEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIHRoZSBuZXcgLWJyaWVmIG9wdGlvbiBmb3IgZmluZ2VycHJpbnQgY2FwdHVyaW5nCgoyMDEwLTA2LTAyIDE0OjQwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggLS13aXRoLWNhIGhhbmRsaW5nLCBmaXggQ0EgbmV3Y2VydHMgYm9va2tlZXBpbmcKCjIwMTAtMDYtMDIgMTA6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBwYXJzaW5nIE9JRHMKICAgaW4gY29uZmlnIGZpbGVzLgoKMjAxMC0wNi0wMiAwMDoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjaGVjayB0aGF0IENBIGNlcnRpZmljYXRlcyBjcmVhdGVkIGFmdGVyIHNubXBkIHN0YXJ0cyBhcmUgc3RpbGwKICAgdXNhYmxlOyBjaGVjayBhbGwgb3V0cHV0IGZpbmdlcnByaW50cyB0byBlbnN1cmUgdGhleSB3ZXJlCiAgIHByb3Blcmx5IGNyZWF0ZWQKCjIwMTAtMDYtMDIgMDA6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGQgbWlzc2luZyBkaXJlY3RvcnkgYW5kIGZpbGUgc3VmZml4IHRvIGNhIGludm9jYXRpb25zCgoyMDEwLTA2LTAyIDAwOjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjaGVjayB0aGF0IGNlcnRpZmljYXRlIG91dHB1dCBmaW5nZXJwcmludHMgd2VyZSBmb3VuZAoKMjAxMC0wNi0wMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIHR3byBuZXcgZnVuY3Rpb25zIGZvciB2YWx1ZSBjb21wYXJpc29uIHRlc3Qgb3V0cHV0CgoyMDEwLTA2LTAyIDAwOjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIHJlbW92ZSBuby1sb25nZXItdXNlZCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0b2tlbiBzcGVjaWZpZXIgKHdlCiAgIHJlcXVpcmUgYSBjb3B5IG9mIHRoZSBrZXkpCgoyMDEwLTA2LTAyIDAwOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIC0gY2hhbmdlZCAnZmluZ2VycHJpbnQnIHRva2VuIHRvIG1vcmUgZ2VuZXJpYyAnaWRlbnRpdHknIGtleXdvcmQKICAgLSBhZGRlZCB0aGUgYWJpbGl0eSBmb3IgbmV0c25tcF9jZXJ0X2ZpbmQgdG8gdHJ5IG11bHRpcGxlIHR5cGVzCiAgIChGUCAmIGZpbGUpCiAgIC0gYW5kIHByb3ZpZGUgdGVzdCBzdWl0ZSB0ZXN0IGZvciBpdC4KCjIwMTAtMDYtMDEgMjA6MTIgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBQZXJsIGV4dGVuc2lvbiBtb2R1bGVzIGNhbiBsb2FkIHRoZSBOZXQtU05NUAogICBETExzIHdoaWxlIHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHJlZ3Jlc3Npb24gdGVzdHMuCgoyMDEwLTA2LTAxIDE2OjQ3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ham9yIHVwZGF0ZSBidWcgZml4ZXMgYW5kIGZlYXR1cmVzIC0gaW50ZXJhY3RpdmUgbW9kZSwgc2VwYXJhdGUKICAgQ0EgZGlycywgZ2VuIGNzciBmcm9tIGNlcnQsIGZpbmdlcnByaW50IGRpc3BsYXkgLS1icmllZiwKICAgZWxpbWluYXRlIHNlZCwgb3BlbnNzbC5jb25mIG92ZXJ3cml0ZSBhbmQgdGVtcGxhdGluZwoKMjAxMC0wNi0wMSAxNDo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDYtMDEgMTQ6MjUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgSVAtTUlCOjppcElmU3RhdHNSZWFzbVJlcWRzIHZhbHVlLgogICAKICAgSnVzdCBmaXhpbmcgYSBzdHVwaWQgdHlwby4KCjIwMTAtMDUtMzEgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBlbmFibGVkIFVuaXggdHJhbnNwb3J0LgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg3IGZyb20gdGhlIFY1LjUgYnJhbmNoKS4KCjIwMTAtMDUtMzAgMjI6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgdG8gcnVuIHdpdGggb2xkZXIgUGVybCAoZS5nLiBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoCiAgIElSSVgKICAgNi41KQoKMjAxMC0wNS0zMCAyMjo0OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHBvbGlzaCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTMwIDIwOjE5ICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW4sICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERvIG5vdCBsaW5rIHdpdGggbGlibmV0c25tcGhlbHBlcnMgYW55IG1vcmUgYXMKICAgaXQgaXMgZW1wdHkuCgoyMDEwLTA1LTMwIDE5OjE4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL3NubXAuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBhIHZvaWQgYXJndW1lbnQgZm9yIHRoZSBkYXRhIGFyZ3VtZW50IG9mCiAgIHhkdW1wLgoKMjAxMC0wNS0zMCAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBCVUc6IDIwNTE3NDI6IGFkZGVkIG1pc3NpbmcgUEVSTF9TWVNfSU5JVDMoKSBjYWxsIChzZWUKICAgYWxzbyBtYW4gcGVybGVtYmVkKS4KCjIwMTAtMDUtMzAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZnJlZSgpIGNhbGxlZCB3aXRob3V0IGJlaW5nIGRlY2xhcmVkCiAgIGZpcnN0KS4KCjIwMTAtMDUtMzAgMTY6NTYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGxpYjogRG8gbm90IHJlcXVpcmUgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBpbmNsdWRlZC4KCjIwMTAtMDUtMzAgMTI6MDAgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLiBSZW1vdmUKICAgdW5uZWNlc3NhcnkgaW5jbHVkZXMuCgoyMDEwLTA1LTMwIDA2OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2R1bW15LmM6CgogICBNYWRlIHN1cmUgdGhhdCBsaWJuZXRzbm1waGVscGVycyBpcyBub3QgZW1wdHkgc3VjaCB0aGF0IGJ1aWxkaW5nCiAgIE5ldC1TTk1QIG9uIEFJWCBhbmQgSVJJWCBpcyBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDUtMjkgMDk6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRm9sbG93LXVwIGZvciByMTg5MDI6IHdvcmtzIGFnYWluIHdpdGhvdXQgVEFQOjpIYXJuZXNzLgoKMjAxMC0wNS0yOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbG9uZy1hZ28gYnJva2VuIHZlcmJvc2l0eQoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbW9yZSBwcmV2aW91c2x5IGJyb2tlbiBvcHRpb24gcmVuYW1lczsgY2hhbmdlIC1kIHRvCiAgIG1hc3Rlci1kaXJlY3RvcnkgYW5kIGFkZCBhcyBhIHJlYWwgYXJndW1lbnQKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIG1vcmUgbWlzc2luZyBvbGR1Y2QgcmVuYW1lcwoKMjAxMC0wNS0yOCAyMjo1NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIHJlbmFtZWQgJ29sZHVjZCcgdG8gJ3NpbXBsZScgdG8gcHV0IGEgbW9yZSBwb3NpdGl2ZSBzcGluIG9uIHRoZW0KCjIwMTAtMDUtMjggMjI6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSB0ZXN0IHN1aXRlCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgcmV2ZXJ0IHVuaW50ZW50aW9uYW5hbGx5IGNvbW1pdHRlZCB0ZXN0IHRlc3QKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBmcmVlIHZhcmlhYmxlcyBhZ2FpbgoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxrcyBzbyB0aGF0IG11bHRpcGxlIHdhbGtzIHRlcm1pbmF0ZSBwcm9wZXJseQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIHBhdGNoIHRvIGhhbmRsZSB0ZXN0aW5nIG9mIGxvb3Bpbmcgb2YgbXVsdGlwbGUgdmFyYmluZHMgaW4gYSB3YWxrCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgaW5pdGFsIHBhdGNoIHRvIHByZXZlbnQgbG9vcGluZyB3YWxrcwoKMjAxMC0wNS0yOCAyMDo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGltcGxlbWVudCBjZXJ0IGxvb2t1cCBieSBmaWxlbmFtZQoKMjAxMC0wNS0yOCAwNzowMiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgY29uc3QgZGVjbGFyYXRpb25zIHRvIHRoZSBkaXNhYmxlZCB2ZXJzaW9ucwogICBvZiB0aGUgZGVidWdnaW5nIGNvZGUgYXMgd2VsbC4KCjIwMTAtMDUtMjggMDI6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhZGQgcGVyc2lzdGVuY2U7IGNoZWNrIGZvciBjb2wgbW9kcyB3aGlsZSByb3cgYWN0aXZlCgoyMDEwLTA1LTI4IDAyOjExICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50bGliOiBuZXcgZnVuY3Rpb25zIHRvIG1ha2Ugc3Rhc2ggcHRyIGFuZCBuZXdyb3cKICAgYXZhaWxhYmxlIHRvCiAgIHRhYmxlX2RhdGFzZXQgaGFuZGxlcnMKICAgbm9uZXdzOiBmaXggdHlwbzsgdGFicyB0byBzcGFjZXM7IHVzZSBzaXplb2YgaW5zdGVhZCBvZiBjb25zdGFudAoKMjAxMC0wNS0yNyAxODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzLgoKMjAxMC0wNS0yNyAxODoyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICAibWFrZSB0ZXN0IiB3aXRob3V0IFRBUDo6SGFybmVzcyAod2FzIGJyb2tlbiBieSByMTg4MDIpLgoKMjAxMC0wNS0yNyAxNToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIAogICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4gTW9zdCBmaXhlcyBpbnZvbHZlZCBhZGRpbmcgdGhlCiAgICJjb25zdCIga2V5d29yZC4KCjIwMTAtMDUtMjcgMTM6NTIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjk3MjU3OTogZml4ZWQgY2hlY2tpbmcgb2YKICAgc25tcFRhcmdldEFkZHJSb3dTdGF0dXMgU0VUIHJlcXVlc3RzLgoKMjAxMC0wNS0yNyAxMzo0MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICByZXZlcnQgcGFydCBvZiAxODg4NTogdGVzdCBmaWxlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBydW4gYnkKICAgdGhlbXNlbHZlcyB0b28KCjIwMTAtMDUtMjcgMTE6MTkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBjb3JyZWN0bHkgY2FsY3VsYXRlIGlmWFRhYmxlLmlmSENJblVjYXN0UGt0cyBvbiAzMi1iaXQKICAgTGludXgKICAgCiAgIExpbnV4IGRvZXMgbm90IHByb3ZpZGUgc3RhbmRhbG9uZSBjb3VudGVyIGZvciBpbmNvbWluZyB1bmljYXN0CiAgIHBhY2tldHMgKGl1Y2FzdCkKICAgLSBpdCBwcm92aWRlcyBjb3VudGVyIG9mIGFsbCBwYWNrZXRzIChpYWxsKSArIHNlcGFyYXRlIGNvdW50ZXIKICAgZm9yIHRoZSBtdWx0aWNhc3QKICAgb25lcyAoaW1jYXN0KS4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YgaWZUYWJsZSByZWFkIHRoZXNlCiAgIGNvdW50ZXJzIGFuZAogICBjYWxjdWxhdGVkIGl1Y2FzdCA9IGlhbGwgLSBpbWNhc3QgKmJlZm9yZSogdGhlc2UgdmFsdWVzIHdlcmUKICAgZXhwYW5kZWQgaW50bwogICA2NGJpdHMuIFRoaXMgcHJvZHVjZWQgZXJyb3JzIG9uIDMyYml0IHN5c3RlbXMgd2hlbiBpYWxsCiAgIG92ZXJmbG93ZWQgdG8gemVybyBhbmQKICAgaW1jYXN0IHdhcyBub3plcm8gLT4gaXVjYXN0IGdvdCBuZWdhdGl2ZSBhbmQgJ2M2NCAzMiBiaXQgY2hlY2sKICAgZmFpbGVkJyBlcnJvciBpbgogICBzbm1wZCBsb2cuIE5vdyB0aGUgYWdlbnQgZXhwYW5kcyB0aGVzZSB2YWx1ZXMgdG8gNjRiaXRzIGZpcnN0IGFuZAogICAqICAgICAqdGhlbiogcGVyZm9ybXMgICAgdGhlIGNhbGN1bGF0aW9uLCB1c2luZyBhIG5ldyBmbGFnLiAKICAgICAgMjAxMC0wNS0yNyAwODoxOCAgbWFnZnIKCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9SVU5URVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1vdmUgdGhlIHNldHRpbmcgb2YgTUlCRElSUyBmcm9tIHRoZSBzdXBwb3J0CiAgIHNjcmlwdCB0byB0aGUgZHJpdmVycyBzaW5jZSBpdCBpcyBuZWVkZWQgZm9yIHRoZSBDIHRlc3RzIGFzIHdlbGwuCgoyMDEwLTA1LTI3IDA4OjA5ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVXNlIG9sZHVjZF9ydW4sIG5vdCBydW5fb2xkdWNkLiBDaGFuZ2Ugc3JjZGlyCiAgIHRvIHJlZmVyIHRvIHRoZSB0b3AgZGlyZWN0b3J5IGFuZCBub3QgdGhlIHRlc3Rpbmcgc3ViZGlyZWN0b3J5IGFzCiAgIHRoYXQgaXMgd2hhdCBpcyBleHBlY3RlZCBpbiB0aGUgdGVzdCBzY3JpcHRzLgoKMjAxMC0wNS0yNyAwNToxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjcgMDU6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIHNubXBsaWIva2V5dG9vbHMuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgbW9yZSBjb25zdCBjb3JyZWN0bmVzcwoKMjAxMC0wNS0yNyAwNDoxOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0cyBmb3IgYWdlbnQtbm90LWtub3duLXVzZXItY2VydGlmaWNhdGVzCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVmZXJlbmNlIHRoZSBpdG5lcm5hbCBzdXBwb3J0IGFuZCByZWxhdGVkIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbC9PUEVOU1NMLUxJQ0VOU0UsIHNubXBsaWIvb3BlbnNzbC9SRUFETUU6CgogICBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE5FV1M6IGxpYm5ldHNubXA6IFN1cHBvcnQgZm9yIGEgc3RyZWFtLWxpbmUgc3RyaXBwZWQgZG93biB2ZXJzaW9uCiAgIG9mIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCB1c2luZyAtLXdpdGgtb3BlbnNzbD1pbnRlcm5hbAoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgCiAgICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIG1vcmUgZGVwZW5kZW5jaWVzIGZvciBleHRlcm5hbCBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL29wZW5zc2wsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NvcmUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kMzJfY29tbW9uLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDVfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGEuaCwgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGFfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIG1vdmUgb3BlbnNzbCBjb2RlIGludG8gYSBzdWJkaXJlY3RvcnkKCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkOgoKICAgZml4IHRlc3Rpbmcgc28gaXQgdXNlcyBtdWx0aXBsZSB0eXBlcyBvZiBjcnlwdG8KCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5pdGlvbnMgYW5kIGZpbGVzIGZvciBkb2luZyBpbnRlcm5hbCBjcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgaW5jbHVkZSBpbnRlcm5hbCBhZXMvZGVzIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oOgoKICAgaW5pdGFsIGNvcGllcyBvZiBjZmIxMjggbW9kZXMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oOgoKICAgaW5pdGlhbCB2ZXJzaW9ucyBvZiBhZXNfY29yZS5jIGFuZCBhZXNfbG9jbC5oCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBhZXMuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmM6CgogICBpbml0aWFsIGNvcHkgb2YgdGhlIG9wZW5zc2wgYWVzX2NmYi5jIGZpbGUKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBpbmNsdWRlIGxvY2FsaXplZCBjb3BpZXMgb2YgdGhlIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICB1c2UgaW50ZXJuYWwgREVTCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jOgoKICAgbG9jYWxpemVkIGNvcHkgb2YgdGhlIGNiY19lbmMuYyBmaWxlIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgZGVzL3Nwci5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGFkZGVkIGRlc19lbmMuYyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX3NoYS5oOgoKICAgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIG9wZW5zc2wncyBkZXMuaAoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBsb2NhbGl6ZWQgaGVhZGVyIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGluaXRhbCBjb3BpZXMgb2Ygc29tZSBvZiB0aGUgb3BlbnNzbCBERVMgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgZmluaXNoaW5nIHBvcnRpbmcgb2YgaW50ZXJuYWwgYXV0aCBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGludGVybmFsIGNyeXB0byBmaWxlcyB0byB0aGUgY2hlY2svdXNlIGxpc3QKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGxvY2FsaXplZCBmaWxlIG5hbWVzIHdpdGggb3BlbnNzbCBwcmVmaXhlcwoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1LmM6CgogICBsb2NhbGl6ZSB0aGUgbWQ1IGltcGxlbWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBjb21wbGV0ZWx5IGxvY2FsaXplIHRoZSBvcGVuc3NsIFNIQSBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc2hhLmg6CgogICBpbml0aWFsIHZlcmlzb24gb2Ygc2hhLmggY29weQoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGFkZGVkIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBjcnlwdG8gZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBtYWtlIHVzZSBvZiBpbnRlcm5hbCBjcnlwdG8gaGFzaCBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDMgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY29uZmlndXJlIGNoZWNrcyBmb3IgaW50ZXJuYWwtY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjYgMjI6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBwcm9wZXJseSB2ZXJpZnkgZXhwZWN0ZWQgc2VydmVyIGNlcnRpZmljYXRlcyB1bmRlciBEVExTOyBhZGQgYQogICBuZXcgZmxhZyBpbiB0bHNiYXNlIHRvIGluZGljYXRlIHZlcmlmaWNhdGlvbiBoYXMgb2NjdXJyZWQKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIGNvbXBpbGVyIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIGFkZCBjb25zdCBxdWFsaWZpZXJzIHRvIGEgZmV3IHBsYWNlcwoKMjAxMC0wNS0yNiAxOTo0NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wbWlicywgbGlibmV0c25tcGhlbHBlcnMgYW5kCiAgIGxpYm5ldHNubXBhZ2VudCBkbyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbiBjb25maWd1cmVkIHdpdGgKICAgLS1lbmFibGUtc2hhcmVkLgoKMjAxMC0wNS0yNiAxNzo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBORVdTOiBtb3ZlZCBhbGwgZnVuY3Rpb25zIGRlZmluZWQgaW4gbGlibmV0c25tcGhlbHBlcnMgdG8KICAgbGlibmV0c25tcGFnZW50LiBsaWJuZXRzbm1waGVscGVycyBpcyBub3cgYW4gZW1wdHkgbGlicmFyeS4KCjIwMTAtMDUtMjYgMTc6MjAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBSZXZlcnRlZCByMTg4MjkgaW4gb3JkZXIgdG8gbWluaW1pemUgZGlmZnMgd2l0aCBvbGRlciBicmFuY2hlcy4KCjIwMTAtMDUtMjUgMDc6MjMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIFRlbGwgbmV0LXNubXAtY2VydCB3aGVyZSBuZXQtc25tcC1jb25maWcgaXMgbG9jYXRlZAoKMjAxMC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ29ycmVjdCB0aGUgc2lnbmF0dXJlIG9mIG1haW4uIFVzZSAjaW5jbHVkZSBpbnN0ZWFkIG9mIHNvdXJjaW5nCiAgIHRvIGdldCB0aGUgY29kZSB1bmRlciB0ZXN0IGluIG9yZGVyIHRvIGdldCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKCjIwMTAtMDUtMjUgMDc6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBBZGQgYXJndW1lbnRzIHRvIHNwcmludGYgc3RhdGVtZW50cyB0byBtYWtlIHRoZSB0ZXN0IHdvcmsKCjIwMTAtMDUtMjUgMDc6MDcgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCBkaXNhYmxlZCBjb2RlCgoyMDEwLTA1LTI1IDA1OjIwICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFNwbGl0IHNubXBJUEJhc2VEb21haW4gYW5kIG1vdmUgdGhlIElQdjQgcGFydHMKICAgdG8gSVB2NEJhc2UgYW5kIHRoZSBzb2NrZXQgZ2VuZXJpYyBwYXJ0cyB0byBTb2NrZXRCYXNlLgoKMjAxMC0wNS0yNCAyMDoyNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpbmlzaCB0bHN0bVBhcmFtc1RhYmxlIGxhc3RDaGFuZ2VkIHNjYWxhcgoKMjAxMC0wNS0yNCAxOToyOCAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQWRkIC0tZXh0ZXJuYWwtbGlicyBpbiBvcmRlciB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0ZXN0cyBvbgogICBzb2xhcmlzCgoyMDEwLTA1LTI0IDEzOjMzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhcmdoLi4gZml4IGZhbGxvdXQgZnJvbSBtYW51YWxseSAobWlzKWFwcGx5aW5nIHBhdGNoCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGZpcnN0IHBhc3MgYXQgdGxzdG1QYXJhbXNUYWJsZQoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBkZWZpbmVzIHRvIG1hdGNoIE1JQiBuYW1lcywgcGVyIGdyYW5kLXBvb2JhaAoKMjAxMC0wNS0yNCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYzoKCiAgIHVwZGF0ZSBPSUQgdG8gbWF0Y2ggdXBjb21pbmcgUkZDCgoyMDEwLTA1LTI0IDExOjQ4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlibmV0c25tcGFnZW50LCBsaWJuZXRzbm1waGVscGVyczogbW92ZWQgdGhlIGZ1bmN0aW9ucwogICBuZXRzbm1wX2J1bGtfdG9fbmV4dF9maXhfcmVxdWVzdHMoKSwKICAgbmV0c25tcF9nZXRfYnVsa190b19uZXh0X2hhbmRsZXIoKSwgbmV0c25tcF9yZWdpc3Rlcl9udWxsKCksCiAgIG5ldHNubXBfcmVnaXN0ZXJfbnVsbF9jb250ZXh0KCkgYW5kIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCiAgIGZyb20gbGlibmV0c25tcGhlbHBlcnMgdG8gbGlibmV0c25tcGFnZW50LgogICBOb3RlczoKICAgLSBUaGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgYXBwbGljYXRpb25zCiAgIHRoYXQgbGluayB3aXRoICQobmV0LXNubXAtY29uZmlnIC0tYWdlbnQtbGlicykgc2luY2UgdGhpcwogICBpbnZvbHZlcyBsaW5raW5nIHdpdGggYm90aCBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50LgogICAtIEZ1bmN0aW9ucyBoYXZlIGJlZW4gbW92ZWQgYmV0d2VlbiBsaWJyYXJpZXMgYnkgbW92aW5nIGVudGlyZQogICBzb3VyY2UgZmlsZXMuCgoyMDEwLTA1LTI0IDEwOjEwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFVzZSBwcm9wZXIgc3RyaW5nIHNpemVzIGFuZCBtYWtlIHN1cmUgc3RyaW5ncyBhcmUKICAgemVyby10ZXJtaW5hdGVkLgoKMjAxMC0wNS0yNCAwODowMSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXAgZG9lcyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbgogICBjb25maWd1cmVkIHdpdGggLS1lbmFibGUtc2hhcmVkLgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmwgbW9kdWxlcyBkbyBub3cgYnVpbGQgKC0td2l0aC1wZXJsLW1vZHVsZXMpLgogICBOb3RlOiB0aGUgVDA2MHRyYXBkcGVybF9vbGR1Y2QsIFQwNjFhZ2VudHBlcmxfb2xkdWNkIGFuZAogICBUMTE1YWdlbnR4cGVybF9vbGR1Y2QgdGVzdHMgc3RpbGwgZmFpbC4KCjIwMTAtMDUtMjMgMjM6MDYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgdXBkYXRlIGZpbGVuYW1lcy9wYXRzaCBmb3IgcmVjZW50IGZpbGUgcmVuYW1lczsgZml4IHR5cG9zCgoyMDEwLTA1LTIzIDIyOjA4ICBtYWdmcgoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgdGhlIHNhbWUgY29tcGlsZXIgY29tbWFuZCBhbmQgZmxhZ3MgZm9yCiAgIGJ1aWxkaW5nIG9mIHRlc3RzIGFzIGZvciBidWlsZGluZyBvZiB0aGUgY29kZSwgdGh1cyBlbmFibGluZyB0ZXN0CiAgIG9mIGUuZy4gMzItYml0IGNvZGUgY29tcGlsZWQgb24gYSA2NC1iaXQgcGxhdGZvcm0uCgoyMDEwLTA1LTIzIDIxOjQxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGluY2x1ZGUvY29uZmlnIGZpbGUvcGF0aHMgZm9yIHJlY2VudCByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjMxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICByZW5hbWUgZmlsZXMgZm9yIE1JQiByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZToKCiAgIHJlbmFtZSBkaXJlY3RvcmllcyB0byBtYXRjaCByZW5hbWVzIGluIE1JQgoKMjAxMC0wNS0yMCAwODo0OCAgYnZhc3NjaGUKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3dhcHBlZCBsaW5rIG9yZGVyIG9mIC1sbmV0c25tcGhlbHBlcnMgLWxuZXRzbm1wbWliczogbmV0c25tcG1pYnMKICAgZGVwZW5kcyBvbiBuZXRzbm1waGVscGVycyBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgoKMjAxMC0wNS0yMCAwODo0MiAgYnZhc3NjaGUKCiAgICogIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE5IDE4OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaGluZwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIG91dHB1dCBmaWxlbmFtZXMgb2YgZmFpbGVkIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHdpcGUgdHJhaWxpbmcgY29tbWVudCBDIG1hcmtlciBpZiBpdCBleGlzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgdGl0bGUgdGhlIFNOTVB2MyB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGVzdGluZyBvZiBidWlsdCB0aXRsZXMKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgb25seSBwcmludCBmYWlsdXJlIGhlYWRlciBpZiB0aGVyZSB3YXMgYXQgbGVhc3Qgb25lCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZDoKCiAgIG1ha2UgZGVzY3JpcHRpdmUgdGl0bGVzIHdvcmsgYWdhaW4KCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIHJlbmFtZSBmaWxlcyBzbyBwcmVmaXhpbmcgaXMgYmFzZWQgb24gdGhlIHN1aXRlIG5hbWUsIG5vdCBmaWxlCiAgIHR5cGUKCjIwMTAtMDUtMTkgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5zdWJzLnBsLCAgIAogICAgICBwZXJsL09JRC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybDogYnVpbGRpbmcgdGhlIFBlcmwgbW9kdWxlcyB3aXRoIHRoZSBDeWd3aW4KICAgUGVybCBwYWNrYWdlIGlzIG5vdyBwb3NzaWJsZS4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4OCBmcm9tIHRoZSBWNS41IGJyYW5jaC4pCgoyMDEwLTA1LTE5IDE3OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xOSAxMjowNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRmlyc3QtZHJhZnQgc3VwcG9ydCBmb3IgQUlYIGZpbGVzeXN0ZW0gSEFMIG1vZHVsZSAodW50ZXN0ZWQpCgoyMDEwLTA1LTE5IDExOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBTdXBwb3J0IGZvciBTb2xhcmlzLXN0eWxlICdnZXRtbnRlbnQnIEFQSS4KCjIwMTAtMDUtMTkgMDk6NTcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIFNpbXBsaWZ5IHRoZSBoYW5kbGluZyBvZiB1bmtub3duL3Vud2FudGVkIGZpbGUgc3lzdGVtcy4KCjIwMTAtMDUtMTkgMDk6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBGaXggbWlzc2luZy9icm9rZW4gQVBJIGRlY2xhcmF0aW9ucy4KCjIwMTAtMDUtMTkgMDg6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIE1hZGUgZXJyb3IgbWVzc2FnZXMgbW9yZSBjbGVhciBpbiBjYXNlIG9mIGZhaWx1cmUgb3Igd3JvbmcKICAgaW52b2NhdGlvbi4KCjIwMTAtMDUtMTkgMDA6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdCBmb3IgdXNpbmcgYSBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkgYSBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wNS0xOCAyMzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIHdlIGNhbGwgdGhlIHJpZ2h0IFBlcmwKCjIwMTAtMDUtMTggMjA6MzkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBpbmNsdWRlIGxvY2FsIHBvcnQgbnVtYmVyIGluIHBhY2tldCBkdW1wcy4gQW4KICAgZXhhbXBsZToKICAgCiAgIFJlY2VpdmVkIDM2IGJ5dGUgcGFja2V0IGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCAyMiAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMSAxNSAwMgogICAwIi4uLi4ucHVibGljLi4uCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDA3IDMwIDA1IDA2CiAgIC43Li4uLi4uLi4uMC4wLi4KICAgMDAzMjogMDEgMDEgMDUgMDAgLi4uLgogICAKICAgUmVjZWl2ZWQgU05NUCBwYWNrZXQocykgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIEdFVE5FWFQgbWVzc2FnZQogICAtLSBjY2l0dC4xCiAgIAogICBTZW5kaW5nIDExOCBieXRlcyB0byBVRFA6IFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDc0IDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEEyIDY3IDAyCiAgIDB0Li4uLi5wdWJsaWMuZy4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgNTkgMzAgNTcgMDYKICAgLjcuLi4uLi4uLi4wWTBXLgogICAwMDMyOiAwOCAyQiAwNiAwMSAwMiAwMSAwMSAwMSAwMCAwNCA0QiA0QyA2OSA2RSA3NSA3OAogICAuKy4uLi4uLi4uS0xpbnV4CiAgIDAwNDg6IDIwIDYxIDczIDc1IDczIDIwIDMyIDJFIDM2IDJFIDMzIDMzIDJFIDMyIDJEIDczIGFzdXMKICAgMi42LjMzLjItcwogICAwMDY0OiA2MyA3MyA3NCAyMCAyMyAzMSAyMCA1MyA0RCA1MCAyMCA1MCA1MiA0NSA0NSA0RCBjc3QgIzEgU01QCiAgIFBSRUVNCiAgIDAwODA6IDUwIDU0IDIwIDUzIDYxIDc0IDIwIDQxIDcwIDcyIDIwIDMzIDIwIDMyIDMxIDNBIFBUIFNhdCBBcHIKICAgMyAyMToKICAgMDA5NjogMzEgMzAgM0EgMzUgMzggMjAgNDMgNDUgNTMgNTQgMjAgMzIgMzAgMzEgMzAgMjAgMTA6NTggQ0VTVAogICAyMDEwCiAgIDAxMTI6IDc4IDM4IDM2IDVGIDM2IDM0IHg4Nl82NAoKMjAxMC0wNS0xOCAxOTo0MiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUFkZHJUYWJsZQogICAtIGRlYWwgd2l0aCBoYXNoIHR5cGUgcHJvcGVybHkgZm9yIGdldC9zZXQgYW5kIHBlcnNpc3RlbmNlCiAgIC0gYWRkIGNvdW50IGFuZCBsYXN0IGNoYW5nZWQgc2NhbGFycwoKMjAxMC0wNS0xOCAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljYWwgT0lEIGZyb20gdXBjb21pbmcgcmZjCgoyMDEwLTA1LTE4IDE2OjE2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNpYWwgT0lEcyBmcm9tIHVwY29taW5nIFJGQzsgYWRkIGNvdW50L2xhc3QgY2hhbmdlZAogICBzY2FsYXJzCgoyMDEwLTA1LTE4IDE0OjU2ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjAwMTY1NjogSGFuZGxlIG51bGwtdGVybWluYXRpb24gb2YKICAgc3RyaW5nIHZhbHVlcyBwcm9wZXJseS4KICAgQmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgdGhlIHBhdGNoIGZyb20gVG9tbXkgQmVhZGxlLgoKMjAxMC0wNS0xOCAxNDozOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgV29ya2luZyg/KSBIQUwtYmFzZWQgdmVyc2lvbiBvZiBockZTVGFibGUuCgoyMDEwLTA1LTE4IDE0OjEyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE3IDIxOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIHVzZSBwcm9wZXIgVFNNIHNlY3VyaXR5IGNvZGUgKDQpIG5vdyB0aGF0IGl0J3Mgb2ZmaWNpYWwKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgYmVnaW5uaW5nIG9mIGEgY29udGFpbmVyIHVuaXQgdGVzdAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rlc3RpbmcuaDoKCiAgIGEgYmFzaWMgQy1jb2RlIGJhc2VkIHRlc3QgcmVwb3J0aW5nIG1lY2hhbmlzbQoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBiYXNpYyBkZWZhdWx0X3N0b3JlIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWI6CgogICBhIGJ1aWxkIHN5c3RlbSBmb3IgYmFzaWMgbGlibmV0c25tcCB0ZXN0cwoKMjAxMC0wNS0xNyAxODoxNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGZpeCBmaW5nZXJwcmludCBiaW4vaGV4IGNvbnZlcnNpb247IGFkZC9yZW1vdmUgY2VydCBzZWMgbWFwcyB2aWEKICAgbWliIG5vdyB3b3JrcwoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gbmV0c25tcF9iaW5hcnlfdG9faGV4CgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmcHJpbnRmKHN0ZGVyciAtPiBERUJVR01TR1RMKCgKCjIwMTAtMDUtMTcgMTg6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBjaGVjayBmb3IgaGFzaCB0eXBlCgoyMDEwLTA1LTE3IDE2OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFrZSBSVU5URVNUUyB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZWRpcgoKMjAxMC0wNS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5URVNUUzoKCiAgIG1hZGUgYSBsaW1pdGVkIHJ1biB0ZXN0IHBvc3NpYmxlIGFnYWluIHdpdGhvdXQgcGVybAoKMjAxMC0wNS0xNyAxNTozMiAgZHRzMTIKCiAgICogIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVXNlIG5ld2VyIERpc01hbiBFdmVudCBNSUIgY29kZSBmb3IgTVNWQy1iYXNlZCBidWlsZHMKICAgKGluIGxpbmUgd2l0aCBhbGwgY29uZmlndXJlLWJhc2VkIGJ1aWxkcykKCjIwMTAtMDUtMTcgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0aGUgcmV0dXJuIG91dHNpZGUgdGhlIGlmIHN0YXRlbWVudAoKMjAxMC0wNS0xNyAxNToxOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFByb3ZpZGUgbWlzc2luZyBwdWJsaWMgaW50ZXJmYWNlIHRvIEhBTC1iYXNlZCBmaWxlc3RvcmUgbW9kdWxlLgoKMjAxMC0wNS0xNyAxMDo0MSAgYnZhc3NjaGUKCiAgICogd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgRm9sbG93LXVwIGZvciByMTg3NTQgKHJldmVydCByMTg3MzgpOiByMTg3NTQgb25seSBwYXJ0aWFsbHkKICAgcmV2ZXJ0ZWQgcjE4NzM4CiAgIGFuZCBoZW5jZSBicm9rZSB0aGUgV2luMzItYnVpbGQuIEZpbmlzaGVkIHJldmVyc2FsIG9mIHIxODczOCBieQogICByZXN0b3JpbmcKICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgoKMjAxMC0wNS0xNiAxODoxNyAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgRm9sbG93LXVwIGZvciByMTg3MjY6IG9ubHkgcGFzcyAtZnN0YWNrLXByb3RlY3RvciogZmxhZ3MgdG8gdGhlCiAgIGxpbmtlciBpbnN0ZWFkIG9mIGFsbCAtZiogZmxhZ3Mgc3VjaCB0aGF0IGl0IGJlY29tZXMgbGVzcyBsaWtlbHkKICAgdGhhdCB0aGlzIG1vZGlmaWNhdGlvbiBjYXVzZXMgdHJvdWJsZSB3aXRoIG5vbi1HTlUgdG9vbGNoYWlucy4KCjIwMTAtMDUtMTYgMTg6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHNoZWxsIGNvZGUgZm9yIGNvbnZlcnRpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIGFuIGFic29sdXRlCiAgIHBhdGggbW9yZQogICByb2J1c3QgYW5kIGNvbnZlcnRlZCAiJHsuLi4jLi4ufSIgY29uc3RydWN0IGludG8gZWNobyArIGN1dC4KCjIwMTAtMDUtMTYgMTg6MTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTW9yZSBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSB0bwogICBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUgc3Vic3RpdHV0aW9ucywgbmVjZXNzYXJ5IHRvIG1ha2UKICAgdGVzdCAwNTkgYW5kIDA2NSBwYXNzLgoKMjAxMC0wNS0xNiAxNzozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGZpeCB0ZXN0cyBmb3IgY2hlY2tpbmcgc2h1dGRvd24gb2YgYXBwbGljYXRpb25zIHRvIG5vdCByZXBvcnQKICAgZmFsc2UgbmVnYXRpdmVzCgoyMDEwLTA1LTE2IDEyOjE1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSB0ZXN0IFQwNTkgcGFzcyBhZ2Fpbi4gVGhpcyB0ZXN0IHdhcyByZWNlbnRseSBicm9rZW4gYnkKICAgcGFzc2luZyBhcmd1bWVudHMgdG8gaXQgd2l0aCBhYnNvbHV0ZSBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCiAgIHBhdGhzLgoKMjAxMC0wNS0xNiAxMjoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkOgoKICAgQWRkZWQgJ1NLSVBJRk5PVCBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUnLgoKMjAxMC0wNS0xNiAxMTo0MiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE2IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFwcHMvc3NodG9zbm1wLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIG9sZCBjb2RlLgoKMjAxMC0wNS0xNiAwOTo1OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBkb24ndCB0cmlnZ2VyIGEgbmV0c25tcF9hc3NlcnQoKSB3aGVuCiAgIG5vIGV4dGVuc2lvbiBETExzIGhhdmUgYmVlbiBsb2FkZWQuCgoyMDEwLTA1LTE1IDE3OjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3RvcC1nYXAgZml4IHRvIHVuYnJlYWsgIm1ha2UgdGVzdCIgZm9yIHRoZSBuaWdodGx5IGJ1aWxkcwoKMjAxMC0wNS0xNSAxMDo1OSAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgUmV2ZXJ0ZWQgcjE4NzI3IGJlY2F1c2UgaXQgY2F1c2VkIGJ1aWxkIGVycm9ycyBvbiBTb2xhcmlzLCBBSVgKICAgYW5kIEhQLVVYLgoKMjAxMC0wNS0xNSAwMDo0MiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGw6CgogICByZXZlcnQgcjE4NzM4IHNpbmNlIG5ldyB0cmFuc3BvcnQgcmVxdWlyZSBkeW5hbWljbHkgYnVpbHQgaGVhZGVyCiAgIGZpbGVzCgoyMDEwLTA1LTE1IDAwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbG9nIGVudiB2YXJpYWJsZXMgdXNlZCB0byB0aGUgaW52b2tlZCBmaWxlCgoyMDEwLTA1LTE0IDIxOjI5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBmaXggc2NyaXB0IHNvIGl0IGNhbiBiZSBpbnZva2VkIG91dHNpZGUgdGhlIHRlc3QgZW52aXJvbm1lbnQKICAgYWdhaW4KCjIwMTAtMDUtMTQgMjE6MjggIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRMUy1UTS1NSUIgd2l0aCBmaW5hbCBJQU5BIGFzc2lnbm1lbnQgc2xvdHMKCjIwMTAtMDUtMTQgMjE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgVFNNIHByZWZpeGVzCgoyMDEwLTA1LTE0IDIxOjI2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBEb21haW4gbnVtYmVycwoKMjAxMC0wNS0xNCAyMToyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldCBkZWZhdWx0IHZlcnNpb24gYW5kIHNlY2xldmVsIGlmIHRscy9kdGxzCgoyMDEwLTA1LTE0IDE1OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGVjayByYyBmcm9tIHNlY25hbWUgbWFwcGluZzsgY2xhcmlmeSBjb21tZW50CgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IHVzZSB1bnNvcnRlZCBjb250YWluZXI7IGRvbid0IGZyZWUgY2FsbGVyJ3MgY29udGFpbmVyCgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbGluZWFyX3NlYXJjaCBmb3IgdW5zb3J0ZWQgY29udGFpbmVycwoKMjAxMC0wNS0xNCAxMTo1NiAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJ5IHJlbW92aW5nIHRoZSBnZW5lcmF0ZWQgZmlsZQogICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KICAgQ29tbWVudGVkIG91dCB0aGUgY29kZSBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZwogICB0aGlzIGhlYWRlciBmaWxlLgogICBBZGRlZCBjb25maWd1cmUtdGltZSBjb2RlIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBjb25zdHJ1Y3RvcnMKICAgZm9yIGFsbCBjb25maWd1cmVkCiAgIHRyYW5zcG9ydHMgYXJlIGludm9rZWQgZnJvbSBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMuCgoyMDEwLTA1LTE0IDExOjAwICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uOiB1cGRhdGVkIEN5Z3dpbiBidWlsZCBpbnN0cnVjdGlvbnMuCgoyMDEwLTA1LTE0IDA5OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCAgCiAgICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTQgMDg6NTAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIC1uby11bmRlZmluZWQgZmxhZyB0byBsaWJyYXJ5IGxpbmsgY29tbWFuZHMgc3VjaCB0aGF0CiAgIGxpYnRvb2wgY2FuIGJ1aWxkIERMTHMgb24gV2luMzIuCiAgIE5vdGU6IGJ1aWxkaW5nIERMTHMgb24gV2luMzIgZG9lcyBub3QgeWV0IHdvcmsgYmVjYXVzZSBvZiB0aGUKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuCiAgIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQKICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3dpa2kvaW5kZXgucGhwL0xpYnJhcnlfbGF5ZXJpbmcpLgoKMjAxMC0wNS0xNCAwODo0MiAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgbGlidG9vbCBidWcgZml4OiBhbHNvIHBhc3MgZmxhZ3Mgc3RhcnRpbmcgd2l0aCAtZiB0byB0aGUgbGlua2VyCiAgIHNpbmNlIHRoZXNlIGNhbiBhZmZlY3QgbGlua2luZy4gVGhlIGZsYWcgLWZzdGFjay1wcm90ZWN0b3IgZS5nLgogICB0cmlnZ2VycyBpbmNsdXNpb24gb2YgbGlic3NwLgoKMjAxMC0wNS0xNCAwODo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWJvcnQgaWYgdGhlIGZpbGUgcHJvZ3JhbSBjb3VsZCBub3QgYmUgZm91bmQsCiAgIHNpbmNlIHRoaXMgaXMgZXNzZW50aWFsIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGxpYnRvb2wuCiAgIENIQU5HRVM6IEN5Z3dpbjogbmVpdGhlciBjb21waWxlIG5vciBsaW5rIHdpbnBpcGUuYy4KCjIwMTAtMDUtMTMgMDg6NTggIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJhbiBhdXRvcmVjb25mLgoKMjAxMC0wNS0xMiAyMDoxNiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IExpbnV4OiBidWlsZHMgYWdhaW4gd2l0aCBlbWJlZGRlZCBQZXJsIGRpc2FibGVkIChidWcKICAgMjk4NTkxNSkuCgoyMDEwLTA1LTEyIDE5OjQ3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBGb2xsb3ctdXAgZm9yIHIxODY4NDogdW4tYnJlYWsgdGhlIFdpbjMyIE1TVkMgYnVpbGQuCgoyMDEwLTA1LTEyIDE5OjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBXaW4zMjogZml4ZWQgYSB0eXBvIGFuZCBtYWRlIGluZGVudGF0aW9uIGNvbnNpc3RlbnQuCgoyMDEwLTA1LTEyIDE5OjExICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNvbnN0cnVjdCB0ZW1wIGJ1aWxkIGZpbGVzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5CgoyMDEwLTA1LTEyIDE5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCByZWNlbnRseSBicm9rZW4gb2xkIHBlcmwgZnVuY3Rpb25hbGl0eQoKMjAxMC0wNS0xMiAxODowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIGEgLS1zaG9ydCBvcHRpb24gdG8gc2hvcnRlbiB0aGUgc2hvdyBvdXRwdXQgdG8gbWluaW1hbGlzdGljCgoyMDEwLTA1LTEyIDE0OjE0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gVENQLU1JQi4KCjIwMTAtMDUtMTIgMTM6MDIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG1lbW9yeSBsZWFrIHdoZW4gcmVhZGluZyBzZW5zb3JzIGZvcgogICBMTS1TRU5TT1JTLU1JQi4KCjIwMTAtMDUtMTIgMTI6NTcgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZXZlcnQgcmV2aXNpb24gMTg2ODkKICAgTGF0ZXN0IFdpbjMyIGJ1aWxkcyBpbmNsdWRlIHN1cHBvcnQgZm9yIHN0cnRvdWxsLgoKMjAxMC0wNS0xMiAxMjowNSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWRkZWQgZGV0ZWN0aW9uIG9mIGxtX3NlbnNvcnMgdmVyc2lvbi4KICAgSSBhbSBub3QgQXV0b2NvbmYgZ3VydSwgc28gSSBob3BlIEkgZ290IGl0IHJpZ2h0LiBUaGUgZ29hbCBpcyB0bwogICBkZWZpbmUgTkVUU05NUF9VU0VfU0VOU09SU19WMyAqYmVmb3JlKiBjb25maWdfbW9kdWxlc19hZ2VudAogICBwcm9jZXNzZXMgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLgoKMjAxMC0wNS0xMiAwNzowMyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLgoKMjAxMC0wNS0xMiAwMzowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGl0bGUgZ2VuZXJhdGlvbiBhZnRlciBjaGFuZ2UgdG8gd2hhdCBzcmNkaXIgbWVhbnQKCjIwMTAtMDUtMTIgMDI6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICB1bmRvIGxhc3QgY2hhbmdlIHdoaWNoIHR1cm5lZCBvdXQgdG8gb25seSBjYXVzZSBlcnJvcnMgaWYgeW91IGhhZAogICBhIG9sZCAuY29uZiBmaWxlIGFyb3VuZAoKMjAxMC0wNS0xMiAwMjoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCB2M19jYSBjcmVhdGlvbiBleHRlbnNpb24gbmFtZQoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBrZWVwIGZvcm1hdCB2ZXJzaW9uICMgaW4gY2VydCBpbmRleGVzOyBkb24ndCBzdG9yZSBoYXNoIHR5cGUKICAgc3RyaW5nIGluIGluZGV4OwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggaW52ZXJ0ZWQgY29udmVyc2lvbiBjYWxsOyBsZXNzIHZlcmJvc2UgZGVmYXVsdCBkZWJ1ZwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggcGFyc2luZyBvZiAtVCBuYW1lL3ZhbHVlIHBhaXJzCgoyMDEwLTA1LTExIDIzOjMzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYnVnIGZpeGluZyBhbmQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciAibWFrZSB0ZXN0IiB3aXRoCiAgIFRlc3Q6Okhhcm5lc3MKICAgKHN0aWxsIGRvZXNuJ3Qgd29yayBmb3IgbWUsIHRob3VnaCkKCjIwMTAtMDUtMTEgMjI6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBEbyBOT1QgaGFyZGNvZGUgL3Vzci9iaW4vcGVybCBhcyB0aGUgUGVybCBwYXRoCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaCBmaWxlIGhhbmRsaW5nCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGxvbmcgb3B0aW9ucyBzdWNrIDstKS4gcHJlZmVyIGRvdWJsZSBkYXNoZXMgZm9yIGxvbmcgb3B0aW9ucyB0bwogICBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgTmV0LVNOTVAgY29kZSBiYXNlCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFkZGVkIGFiaWxpdHkgdG8gcnVuIG9ubHkgdGhlIGZhaWxlZCB0ZXN0cyBmcm9tIHRoZSBsYXN0IHJ1bgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb24ndCBmb3JjZSBjb2xvcgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjbGVhbnVwIG9mIG9sZGVyCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIE1pbmltYWxseSBzdXBwb3J0IHRoZSBvbGRlciBUZXN0OjpIYXJuZXNzIHBlcmwgbW9kdWxlIGZvciBydW5uaW5nCiAgIHRoZSBvbGRlciB0ZXN0cyBhdCBsZWFzdAoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgYSBkZWZhdWx0IHNlY3VyaXR5TmFtZSBhbmQgc2VjdXJpdHlNb2RlbCBpZiBUTFMgb3IgRFRMUyBpcyBpbgogICB1c2Ugb24gdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICBhbGxvdyBzZWN1cml0eSBtb2RlbHMgdG8gcGVyZm9ybSBtb3JlIG9mIHRoZSBzZXNzaW9uIHNldHVwOyBtb3ZlZAogICBtb3JlIFVTTSBzcGVjaWZpYyBzZXR1cCBpbnRvIGl0J3Mgc2V0dXAgcm91dGluZQoKMjAxMC0wNS0xMSAxODowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHBhcmFtIHRvIGxvb2t1cCBwZWVyIGNlcnQKCjIwMTAtMDUtMTEgMTY6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhbGxvdyAnLScgaW4gZnFkbjsgYWRkIGRlYnVnIG91dHB1dCBmb3IgaG9zdCBzcGVjaWZpYyBjb25maWcKCjIwMTAtMDUtMTEgMTU6NDYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRW5zdXJlICduZXRzbm1wX3JlYWRfbW9kdWxlJyBpcyBhdmFpbGFibGUgZm9yIHBlcmwgYnVpbGQuCgoyMDEwLTA1LTExIDE1OjQ0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4IHBlcmwgYnVpbGQgdW5kZXIgV2luZG93cyAoc3RydG91bGwgbm90IGF2YWlsYWJsZSkKCjIwMTAtMDUtMTAgMDc6MDcgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3Npbmcgc3ltYm9sIG5ldHNubXBfc25tcFNTSERvbWFpbl9sZW4sCiAgIG1ha2UgbmV0c25tcF9zbm1wU1NIRG9tYWluIGNvbnN0LgoKMjAxMC0wNS0wOSAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgRG8gbm90IHJlcXVpcmUgcXVvdGVzIGFyb3VuZCB0aGUgQ1BVIHN0cmluZyBhcyB0aGF0IGRlcGVuZHMgb24KICAgaG93IHRoZSBhZ2VudCBpcyBjb25maWd1cmVkLgoKMjAxMC0wNS0wOSAyMTo0MyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogRXh0cmFjdCB0aGUgRXhpdCBhbmQgcmVzdGFydCogc3Vicm91dGluZXMgZnJvbQogICB1dGlsX2Z1bmMgaW4gb3JkZXIgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBsZXNzIGNvZGUgZm9yIHRoZQogICBtaW5pbWFsIGNhc2UuCgoyMDEwLTA1LTA5IDE2OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBmdW5jdGlvbgogICBnZXRfZXhlY19vdXRwdXQoKSByZXR1cm5zIGEgdmFsdWUgd2hlbiB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDUtMDkgMTY6NDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGJ1aWxkcyBub3cgYWxzbyB3aGVuIHRoZSBzb3VyY2UgZmlsZXMgYXJlCiAgIGxvY2F0ZWQgb24gYSBTYW1iYSBmaWxlc3lzdGVtIGluc3RlYWQgb2YgYSBsb2NhbCBmaWxlc3lzdGVtLgoKMjAxMC0wNS0wOSAxMzowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENvcnJlY3QgdGhlIGlmIHRoYXQgdHJpZXMgdG8gZmlndXJlIG91dCBpZiBhIHN1ZmZpY2llbnRseSBuZXcgZ2NjCiAgIGlzIGluIHVzZS4KCjIwMTAtMDUtMDkgMTI6NTAgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDaGVjayBmb3IgdGhlIG5lZWRlZCBtb2R1bGUgYW5kIG5vdCBzb21lIG90aGVyIG9uZS4KICAgTG9nIHRoZSBjb3JyZWN0IG1pc3Npbmcgc3ltYm9sLgoKMjAxMC0wNS0wOSAwOToyMSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogdXRpbGl0aWVzL2V4ZWN1dGUgZG8gbm90IG5lZWQgYW55dGhpbmcgZnJvbQogICB1dGlsX2Z1bmNzLCBzbyBzdG9wIGRlcGVuZGluZyBvbiBpdC4KCjIwMTAtMDUtMDkgMDk6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBORVdTOiBzbm1wZDogUmVtb3ZlZCB0aGUgdW51c2VkIGZ1bmN0aW9uIHh4X3Rva2VuaXplX2V4ZWNfY29tbWFuZAogICBmcm9tIHV0aWxpdGllcy9leGVjdXRlLgoKMjAxMC0wNS0wOSAwOTowMSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZXBsYWNlIHRoZSBkZWJ1Z2dpbmcgZnVuY3Rpb25zIHdpdGggZHVtbWllcwogICB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZC4KCjIwMTAtMDUtMDkgMDg6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2Q6CgogICBDaGVjayB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGVuYWJsZWQKCjIwMTAtMDUtMDkgMDg6MDEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBGYWN0b3Igb3V0IGNoZWNrIGZvciBtaWJJSS9zeXN0ZW1fbWliCgoyMDEwLTA1LTA5IDA3OjU5ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMKCjIwMTAtMDUtMDggMjM6MTYgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgQWRkaXRpb25hbGx5IGZpeCBtYWtlIHRlc3QgZm9yIHRoZSB1bmNvbW1vbiBjYXNlIHdoZXJlIGJ1aWxkZGlyCiAgID09IHNyY2RpcgoKMjAxMC0wNS0wOCAyMjo1NSAgbWFnZnIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biB0aGUgdGVzdCBzdWl0ZSBmcm9tCiAgIGFueXdoZXJlLgogICBDaGFuZ2UgdGhlIC1EIG9wdGlvbiB0byBleHBlY3QgdGhlIHBhdGggb2YgdGhlIHRvcCBzb3VyY2UKICAgZGlyZWN0b3J5LgogICBBZGQgYW4gLXNyY2RpciBvcHRpb24gdGhhdCBpcyBhbiBhbGlhcyBmb3IgLUQuCiAgIEFkZCBhbiAtYnVpbGRkaXIgb3B0aW9uIHRvIGRlc2lnbmF0ZSB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB0ZXN0CiAgIG9iamVjdCBpcy4KICAgUHV0IHNyY2RpciBhbmQgYnVpbGRkaXIgaW4gdGhlIGVudmlyb25tZW50IGZvciB0aGUgdGVzdCBzY3JpcHRzCiAgIEZhY3RvciBvdXQgdGhlIGdyZXAgcGFydCBvZiBTS0lQSUYgYW5kIFNLSVBJRk5PVCB0byBJU0RFRklORUQKICAgVXNlIG1vcmUgcmVhZGFibGUga2V5cyBpbiB0aGUgb3B0cyBoYXNoIGluIFJVTkZVTExURVNUUwogICBBZGp1c3QgZXZlcnl0aGluZyB0byB1c2Ugc3JjZGlyIGFuZCBidWlsZGRpcgoKMjAxMC0wNS0wOCAyMjo0MiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjA3ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENvbnNvbGlkYXRlIHRoZSB0ZXN0IGFuZCB0ZXN0LW1pYnMgdGFyZ2V0cy4KICAgRXhwb3NlIHRoZSB0ZXN0YWxsIHRhcmdldCBpbiB0aGUgdG9wIG1ha2VmaWxlLgoKMjAxMC0wNS0wOCAyMjowNSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG8gbm90IGFib3J0IHdoZW4gc3RyIGlzIE5VTEwgYXMgdGhhdCBpcyBhIHBlcmZlY3RseSB2YWxpZCBpbnB1dC4KCjIwMTAtMDUtMDggMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBuZXdsaW5lCgoyMDEwLTA1LTA3IDIxOjExICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmFjCgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgZml4IGhhbmRsaW5nIG9mIGNlcnQgYWxnb3JpdGhtIGluIGZpbmdlcnByaW50czsgY29udmVydCBpbi9vdXQKICAgZmluZ2VycGludHMKICAgZnJvbS90byBoZXgKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvbnQgc3BlY2lmeSBoYXNoIHR5cGUgZm9yIGZpbmdlcnByaW50CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaGFuZGxlIGZpbmdlcnByaW50IHR5cGVzOyBkcm9wIHNhbiBmaWVsZHMgZnJvbSBjZXJ0IHN0cnVjdDsKICAgY29uc2lkZXIgZGlyZWN0b3J5CiAgIHdoZW4gcGFydG5lcmluZyBrZXlzL2NlcnRzCgoyMDEwLTA1LTA3IDE5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgbW92ZSBkZWZhdWx0IHByb21wdHMgZWFybGllcgoKMjAxMC0wNS0wNiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBiZXR0ZXIgU0FOIGV4dHJhY3Rpb247IHR3ZWFrIGR1Ymd1cyBtZXNzYWdlczsgcXVpZXQgY29tcGlsZXIKICAgd2FybmluZ3MKCjIwMTAtMDUtMDYgMTU6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgcmVkdWNlIGNlcnQgZGVidWcgb3V0cHV0OyBkZWJ1ZyBpbnN0ZWFkIG9mIGxvZ19pbmZvIGluIGR1bXBzCgoyMDEwLTA1LTA2IDE0OjQ5ICBkdHMxMgoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgRG9uJ3QgYXNzdW1lIHRoZSBwcmVzZW5jZSBvZiA8c3RyaW5nLmg+CiAgIChicmluZyBpbnRvIGxpbmUgd2l0aCBhbGwgb3RoZXIgb2NjdXJhbmNlcykKCjIwMTAtMDUtMDYgMTQ6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBDSEFOR0VTOiBXaW5kb3dzOiBGaXggYnVpbGQgdW5kZXIgTWluR1cKICAgYmFjay9mb3J3YXJkIHBvcnQgb2YgcmV2aXNpb24gMTg2MzEKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHR5cGUgaW4gbG9nIG1zZwoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgaW1wb3J0IGZvciB1bnVzZWQgZnVuY3Rpb24KCjIwMTAtMDUtMDQgMDc6MTIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBOZWdhdGUgcmVhc29uIGdpdmVuIGZyb20gU0tJUElGCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBsZW4gaW4gZW1haWwgY21wOyBtb3JlIGV4dHJhY3QgZGVidWdnaW5nCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNvcHkgb2NlcnQgdG8gYWRkaW9uYWwgbWFwcwoKMjAxMC0wNS0wMyAxNDoyMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGRlcGVuZGVuY3kgb24gcGVybCBtb2R1bGUgbm90IHByZXNlbnQgaW4gQ2VudE9TCgoyMDEwLTA1LTAzIDAzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IGFjY2VzcyBzdHJ1Y3QgaW50ZXJuYWxzIGRpcmVjdGx5CgoyMDEwLTA1LTAzIDAzOjQ4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggY29tcGlsaW5nIHdpdGgtb3V0LW1pYm1vZHVsZXM9dXRpbGl0aWVzL2V4ZWN1dGUKCjIwMTAtMDUtMDEgMTk6MDggIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIENvcnJlY3QgdGhlIHNvdWdodCBzdHJpbmcgdG8gbWFrZSB0aGUgdGVzdCBwYXNzIHdoZW4gb2suCgoyMDEwLTA1LTAxIDE3OjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3JlIGNvbnNpc3RlbnQgdHJlYXRtZW50IG9mIGtleVVzYWdlLCBiYXNpY0NvbnN0cmFpbnRzLCBvdGhlcgogICB4NTA5djMgb3B0aW9ucwoKMjAxMC0wNC0zMCAyMzozNyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGw6CgogICBsYW1lIHRlc3Qgc2NyaXB0IGJ1dCBjb3ZlcnMgYSBjaHVuayBvZiB0aGUgY29kZQoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBta2luc3RhbGxkaXJzIGluc3RlYWQgaW5zdGVhZCBvZiBGaWxlOjpQYXRoCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGVuc3VyZSBuZXQtc25tcC1jb25maWcgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSB0aGUgYnVpbGQgZGlyCgoyMDEwLTA0LTMwIDIxOjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgZ2VuY2VydCAtLWNhCgoyMDEwLTA0LTMwIDIxOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBoZWxwIGZvciBjZXJ0U2VjTmFtZTsgY29udGludWUgYnVpbGRpbmcgY2VydCBpbmRleGVzIGV2ZW4gaWYKICAgd2UgY2FudCBzYXZlCiAgIHRvIHBlcnNpc3RlbnQgZGlyCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBjaGVjayBjb3VudCBmb3IgODIyIG5hbWVzIGluIHRoZSBzbm1wZC5sb2cKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IG1hbGxvYyB1bm5kZXJsZW5ndGggYnkgMSBlcnJvcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjb21tZW50IG91dCB0aGUgODIyIHRlc3RzOyB0aGV5J3JlIGJyb2tlbiBhdCB0aGUgbW9tZW50CgoyMDEwLTA0LTMwIDE5OjM2ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBkb24ndCBsb3NlIFNBTiB3aGVuIHNpZ25pbmcgdy8gQ0EKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIG5hbWUgY2hhbmdlIHRvIHJmYzgyMiBmcm9tIHR5cG9lZCA4MjIwCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3RzIHRvIGRvIG90aGVyIHN1YmplY3RBbHROYW1lIG1hcHBpbmcKCjIwMTAtMDQtMzAgMTc6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBpc3N1ZXMgMSwyLDQgYW5kIC1DIGhhbmRsaW5nCgoyMDEwLTA0LTI5IDAzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQ2VydFRvVFNOVGFibGUgdG8gdXNlIGNhY2hlICsgY2VydF91dGlsIG1hcHMKICAgY29udGFpbmVyCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgaW5zZXJ0IHJldHVybgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIHJlbW92ZSBmdW5jdGlvbiB0byBjb250YWluZXIgaXRlcmF0b3I7CiAgIGltcGxlbWVudCBpdCBmb3IKICAgYmluYXJ5X2FycmF5CgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBtYWtlIHN1cmUgY29udGFpbmVyIHN5bmMgaW5jcmVtZW50ZWQgb24gc29ydCwgaW5zZXJ0IGFuZCByZW1vdmUKCjIwMTAtMDQtMjggMDc6MjAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2VmaWxlIGZvciB0ZXN0IHRhcmdldAoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBtYWtlIHRoZSB0ZXN0IHN1aXRlIHJ1biBvdXRzaWRlIHRoZSBzb3VyY2UgZGlyZWN0b3J5IGFnYWluLgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgZGVhbCB3aXRoIG91dC1vZi1zb3VyY2UgdHJlZSBidWlsZGluZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0aW5nIHRvIGNoZWNrIGNlcnRpZmljYXRlIHRvIHNlY3VyaXR5bmFtZSBtYXBwaW5ncyBhbmQgZGVuaWFscwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY3JlYXRlZCBhIG1hcHBlZCB1c2VyCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBnZW5lcmF0ZSBvYmplY3QgY29kZSB3aXRoIC1nIGRlYnVnZ2luZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgbW9yZSBhY2N1cmF0ZSBjdXJyZW50IEFQSSB1c2FnZSBmb3Igc2NhcGkgY29kZQoKMjAxMC0wNC0yNyAyMToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY2VydCBpbml0IGR1cGxpY2F0ZSBjYWxsIGNoZWNrCgoyMDEwLTA0LTI3IDIwOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY29udmVydCB1c2VyIGZpbmdlcnByaW50IHRvIGxvd2VyIGFuZCBzdHJpcCBjb2xvbnM7IGFkZCBleHRlcm4KICAgcHJvdG90eXBlCiAgIGZvciBjZXJ0IGluaXQgc28gd2UgZG9uJ3QgbmVlZCBoZWFkZXIKCjIwMTAtMDQtMjcgMjA6MTUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNlcGFyYXRlIGNlcnQgaW5pdCBhbmQgY2VydCBsb2FkaW5nOyBhZGQgY2VydFNlY05hbWUgY29uZmlnIHRva2VuCgoyMDEwLTA0LTI3IDAzOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtZXJnZSBORVRTTk1QX0ZVTkNUSU9OIGFuZCAhTkVUU05NUF9GVU5DVElPTiBhc3NlcnQgY2FzZXMKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvdHMgb2YgbmV3IGNlcnQgZnVuY3Rpb25hbGl0eQogICAtIGFkZCBzc2wgZnVuY3MgZm9yIGNlcnQgZXh0ZW5zaW9ucyBhbmQgc3NsIGNlcnQgY2hhaW5zCiAgIC0gZnVuY3Rpb25zIGFuZCBuZXcgbmV0c21wX2NlcnRfbWFwIHN0cnVjdCBmb3IgbG9va2luZyB1cCBjZXJ0CiAgIG1hcHBpbmdzCiAgIC0gYWRkIGNlcnRpZmljYXRlIG1hcHBpbmcgZm9yIHNlY25hbWUKICAgLSBhZGQgY29kZSB0byBidWlsZCBjZXJ0IGNoYWlucwogICAtIGFkZCBzdWJqZWN0IHRvIGNlcnQgaW5kZXggY2FjaGUKICAgLSByZWJ1aWxkIGluZGV4ZXMgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXgKICAgLSByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnQgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgY2VydCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIG1vdmUgaXB2NiBzcGVjaWZpYyB2YXIgZGVjbCBpbnNpZGUgaWZkZWYKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBDSEFOR0VTOiBhZ2VudDogdGRhdGEgaGVscGVyIG5vdyBzYXZlcyBmbGFncyBwYXNzZWQgZHVyaW5nCiAgIGNyZWF0aW9uOyBhZGQgdGRhdGEKICAgZmxhZyB0byBOT1QgY3JlYXRlIHRoZSB0YWJsZSBjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBpbnRlcmZhY2UgZm9yIGR1cGxpY2F0aW5nIGEgY29udGFpbmVyCiAgIENIQU5HRVM6IHNubXBsaWI6IGNvbnRhaW5lciBjaGFuZ2VzOiBhZGQgZmxhZ3MgZmllbGQgdG8gY29udGFpbmVyCiAgIG1ldGEtZGF0YTsKICAgY2hnIGJpbmFyeV9hcnJheSBjb250YWluZXIgdG8gdXNlIGNvbnRhaW5lciBtZXRhLWRhdGEgZmxhZ3MKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBjb25maWd1cmVkIHdpdGgKICAgYSByZW1vdGUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQgdGhlIGNvbm5lY3Rpb24gaXMgZGVuaWVkCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBhZGRlZCB0ZXN0cyBmb3IgLVQgZmxhZyB1c2FnZSBhbmQgaW52YWxpZCB1c2VyIHVzYWdlCgoyMDEwLTA0LTI2IDIwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2Q6CgogICBoYXZlIHRoZSBhbGlhcyB0cmFuc3BvcnQgc291cmNlIHRoZSByaWdodCBTdjNjb25maWcgZmlsZQoKMjAxMC0wNC0yNiAyMDo1MCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgd29ya2luZyBzdXBwb3J0IG9mIFRMUy9EVExTIHRlc3RpbmcgaW5jbHVkaW5nIGNlcnQgZ2VuZXJhdGlvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhvbm9yIHRoZSBjb25maWcgZGlyIGlmIHNwZWNpZmllZCB2aWEgLUMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IHJlYWxsb2MgY2FsbCBmb3IgYnVmZmVyZWQgcGFja2V0cwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHByb3BlciBza2lwIG91dHB1dCBmb3IgcmVwb3J0aW5nIHJlYXNvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgYmFja3NsYXNoIGluIG1hY3JvCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5wcml2OgoKICAgdGVzdHMgZm9yIG1pbmltYWxseSB0ZXN0aW5nIGFsbCB0aGUgdHJhbnNwb3J0cwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBtaW5pbWFsbHkgZG9jdW1lbnQgbmV3IFJVTkZVTExURVNUUyBzY3JpcHQKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcywgICAKICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9taXNjdGVzdC5jLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZGVsZXRlZCBvbGQgZmlsZXMgbm90IHdvcnRoIHJlc3RvcmluZwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgcmVtb3ZlIG9ic29sdXRlIHRlc3QgbGlzdAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jOgoKICAgYSBoYXNoLXRlc3RpbmcgLmMgZmlsZSBJIGhhZCBsYXlpbmcgYXJvdW5kCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSB0ZXN0YWxsIHRhcmdldAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgbW92ZSBvbGQgQy1jb2RlIHRlc3RzIGluIHBsYWNlCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2Q6CgogICBza2lwIHNvbGFyaXMgY29tbWVudHMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggaW52b2NhdGlvbiBvZiBSVU5GVUxMVEVTVFMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjJjY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdhZ2VudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ3RyYXBkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudCwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXgsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBORVdTOiB0ZXN0aW5nOiBCcmFuZCBuZXcgdGVzdCBzdWl0ZSBkZXNpZ2VuZWQgdG8gZXZlbnR1YWxseSB0ZXN0CiAgIG1vcmUgZnVuY3Rpb25hbGl0eSwgcHJvdmlkZSBmb3Igc3VwcG9ydCBvZiB1bml0LXRlc3RzIGFuZCBzdXBwb3J0CiAgIG9mIEFQSSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHJlbW92ZWQgYSBkZWJ1Z2dpbmcgZWNobwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1vcmUgYnVnIGZpeGVzIGZvciBzdHJpbmcgc2VhcmNoZXMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBhZGRlZCBhIG5ldyBtYWNybyB0byBjaGVjayBhIHRyYXBkIGNvdW50CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGluZGl2aWR1YWwgb3V0cHV0IGZpbGVzIGFuZCBmaXggc29tZSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbWFkZSBleGlzdGluZyB0ZXN0IHN1aXRlIHB1dCBvdXQgVEFQIG91dHB1dAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLCB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy9mdWxsdGVzdHMsICAKICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBiZWdpbm5pbmcgb2YgbW92aW5nIFVDRCB0ZXN0IHN1aXRlIGludG8gYSBsYXJnZXIgc3ViZGlyZWN0b3J5CgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFsbG93IHJ1bm5pbmcgdGVzdHMgdGhhdCBtYXRjaCBhIHJlZ2V4cAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdW1tYXJpemUgdGVzdHMgdGhhdCBmYWlsZWQKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIHJ1bl8gc2NyaXB0cyBmb3IgZXhlY3V0aW5nIGNlcnRhaW4KICAgdHlwZXMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWFkZSB0aGUgYnVpbGQtc2NyaXB0LWNoZWNrIHJvdXRpbmUgZ2VuZXJpYwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IGZvciBidWlsZCBzY3JpcHRzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHByb3ZpZGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIGJ1aWxkaW5nIGFuZCByZW5hbWluZyB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtb3JlIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2V0dXAKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCB0aGUga2V5d29yZCAnYWxsJwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgZ3JvdXAgZ2F0aGVyaW5nCgoyMDEwLTA0LTI2IDIwOjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0aW5vIG9mIGEgbmV3IHRlc3RpbmcgaGFybmVzcwoKMjAxMC0wNC0yNSAxNzozNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbiB1cGRhdGUuCgoyMDEwLTA0LTI1IDE1OjIxICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IHJldmVydGVkIGEgcmVjZW50IHVubmVjZXNzYXJ5IG1vZGlmaWNhdGlvbi4KCjIwMTAtMDQtMjUgMTU6MDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBtdWx0aXBsZSAtLXNhbiBhcmdzLCBjaGVjayBlcnJvciBjb2RlcyBvbiBvcGVuc3NsIGNtZHMgYW5kCiAgIGRpZSBvbiBmYWlsdXJlCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogcmVzdG9yZWQgY29uc2lzdGVuY3kgYmV0d2VlbiB3b3Jrc3BhY2UtYnVpbGQgYW5kIGJhdGNoCiAgIGJ1aWxkIC0tIG1hZGUgc3VyZSB0aGF0IG5vdGlmaWNhdGlvbl9sb2cuYyBpcyBvbmx5IGluY2x1ZGVkIGluCiAgIHRoZSBuZXRzbm1wbWlicyBwcm9qZWN0LgoKMjAxMC0wNC0yNSAxMzo1OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGZpeGVzIGZvciByZWNlbnRseSBpbnRyb2R1Y2VkIGJ1aWxkIGJyZWFrYWdlLgoKMjAxMC0wNC0yNSAxMzo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDEzOjQ4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL2Nsb3NlZGlyLmMsIHNubXBsaWIvb3BlbmRpci5jLCAgCiAgICAgICBzbm1wbGliL3JlYWRkaXIuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgV2luMzIgTVNWQyA2IG5vbi1TREsgYnVpbGQgd29ya3MgYWdhaW4uCgoyMDEwLTA0LTI1IDEzOjQyICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIHRyYW5zZm9ybWF0aW9uIHJ1bGUuCgoyMDEwLTA0LTI1IDEyOjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1hZGUgaXQgYWdhaW4gcG9zc2libGUgdG8gZGlzYWJsZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESyB3aGVuCiAgIGJ1aWxkaW5nIHZpYSB3aW4zMi9idWlsZC5iYXQuCgoyMDEwLTA0LTIzIDEzOjE0ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCAtLXNhbiBETlM6YS5iLmMgaGFuZGxpbmcsIGhlbHAgdGV4dCBmaXhlcywgb3RoZXIgYnVnIGZpeGVzLgogICBOb3RlIG11bHRpcGxlIC0tc2FuIG5vdCBzdXBwb3J0ZWQgeWV0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIHRoZSAubWFkZSB2ZXJzaW9uIG9mIG5ldC1zbm1wLWNlcnQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZCBhZnRlciBtb3ZpbmcgYWxsIHRoZSBmaWxlcyBhcm91bmQKCjIwMTAtMDQtMjEgMjA6MTYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYnVpbGQgdHJ1c3QgY2hhaW4gZm9yIGNsaWVudCBjZXJ0OyBhZGQgc3ViamVjdCB0byBpbmRleCBjYWNoZTsKICAgcmVidWlsZCBpbmRleGVzCiAgIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4OyByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnRUb1RTTl9lbnRyeSB0byBjZXJ0X3V0aWwgaGVhZGVyCiAgIC0gbW92ZSBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCiAgIC0gYWRkIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2R1bXBfZXh0ZW5zaW9ucywKICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfaXNzdWVkX2J5CgoyMDEwLTA0LTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSBzaW5nbGUtZGFzaCAvIHNubXAuY29uZiAvIGRvdWJsZS1kYXNoIHByZWNpZGVuY2UKCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdGhhdCB0aGUgdG9rZW5zIGNhbiBiZSB1c2VkIGZvcgogICBjb21tYW5kIGxpbmUgYXBwbGljYXRpb25zIHRvbwoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBmaWxlIGxvYWRpbmcgb3JkZXIgYW5kIGhvdyB0byB0dXJuIG9mZiBob3N0LXNwZWNpZmljCiAgIGNvbmZpZwoKMjAxMC0wNC0yMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IEdlbmVyaWMgaG9zdC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIHNubXAuY29uZiBmaWxlcwogICBhcmUgbm93IHJlYWQuIFNlZSB0aGUgSE9TVC1TUEVDSUZJQyBGSUxFUyBzZWN0aW9uIG9mIHRoZQogICBzbm1wLmNvbmYgbWFudWFsIHBhZ2UuCgoyMDEwLTA0LTIwIDEyOjQ0ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjk3MTI3MDogcmVmdXNlIHRvIHBhcnNlIEFTTi4xIHRva2VucwogICB3aXRoIHdyb25nIHR5cGUgZmllbGQuCiAgIFRoaXMgbWF5IHlpZWxkIHRvIHByb2JsZW1zIHdpdGggdGhpcmQtcGFydHkgYXBwbGljYXRpb25zIHdoaWNoCiAgIG1heSBkZXBlbmQgb24gcGFyc2luZyB1Z2x5IEFTTi4xIGRhdGEgLSB3ZSdsbCBzZWUuLi4KCjIwMTAtMDQtMjAgMDA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tYmluZSByZW1vdGUgZmluZ2VycHJpbnQgY2hlY2tpbmcgYW5kIGNoZWNrIGJvdGggc2lkZXMKCjIwMTAtMDQtMjAgMDA6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgaWYgdGhlIHJlbW90ZSBmaW5nZXJwcmludCBpcyBzcGVjaWZpZWQsIHJlcXVpcmUgYW4gZXhhY3QgbWF0Y2gKCjIwMTAtMDQtMTkgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB2YXJpb3VzIG1pbm9yIGJ1Z3MsIGVzcGVjaWFsbHkgaW4gb3V0cHV0IG1lc3NhZ2VzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBkb2N1bWVudGF0aW9uIGFuZCBwcm90b3R5cGluZyBvZiBuZWVkZWQgUkZDIHN0ZXBzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY29udmVydCBpZiBlcnJvciBjaGVjayB0byByZXR1cm4gaW1tZWRpYXRlbHkgc28gb3RoZXIgY29kZSBjYW4gYmUKICAgb3V0ZGVudGVkCgoyMDEwLTA0LTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBSRkMgdGV4dAoKMjAxMC0wNC0xOCAxNToyNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvdHJhbnNwb3J0cywgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjcmVhdGVkIGEgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgc2VjdXJpdHlOYW1lIGZyb20gdGhlIGNlcnQKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBkb24ndCBuZWVkIHRvIHNldCB0aGUgYWNjZXB0IHN0YXRlIGZvciBUTFMgKGp1c3QgRFRMUykKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIFRMUyBjb21tZW50IGRvY3VtZW50YXRpb24gYW5kIHN0ZXBzIHRha2VuIGZyb20gdGhlIFJGQwoKMjAxMC0wNC0xNiAxMzo1NSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbnVtZXJvdXMgZml4ZXMsIG1vcmUgdmVyYm9zZSBkZWZhdWx0IG91dHB1dCwgYWRkaXRpdmUgc2hvdyBmbGFncywKICAgYXJiaXRyYXJ5IGNvbmZpZyBwYXJhbSBoYW5kbGluZywgYmV0dGVyIGhlbHAgdGV4dAoKMjAxMC0wNC0xNiAxMzowOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBkb24ndCBkb3VibGUgZGVjbGFyZSBhIHN0cnVjdAoKMjAxMC0wNC0xNiAwMzozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0IHV0aWwgZml4ZXMKICAgLSByZW1vdmUgdW51c2VkIHZhcnMgYW5kIGR1cGxpY2F0ZSBjb2RlCiAgIC0gY2hlY2sgcHJ0IGJlZm9yZSBmcmVlCiAgIC0gbmV3IGZ1bmMgZm9yIHR5cGUgZnJvbSBmaWxlbmFtZQogICAtIG5ldyBmdW5jdGlvbnMgZm9yIGZpbmRpbmcgc3Vic2V0cyBmcm9tIGZpbGVuYW1lCiAgIC0gZml4IHR5cGVzIGluIGtleSBzZWFyY2ggZnVuY3Rpb24gYnV0IHRoZW4gaWZkZWYgaWYgKHVudXNlZAogICBmdW5jdGlvbikKCjIwMTAtMDQtMTUgMjI6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdXNlIGEgc3RydWN0dXJlIHJlZmVyZW5jZSB0byBwcmVkZWNsYXJlIHRoZSBzdHJ1Y3R1cmUKCjIwMTAtMDQtMTUgMjE6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgY29ycmVjdCBkZWNsYXJhdGlvbiBvZiB0aGUgZl9vcGVuIGNvbW1hbmQgbm93IHJlcXVpcmluZyByZXR1cm5pbmcKICAgYSB0cmFuc3BvcnQKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW5uZWVkZWQgY29uZmlnIGNvbnRhaW5lcgoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGZpbmdlcnByaW50IHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbnRvIG5ldyB0bHMgc3RydWN0dXJlCiAgIHdpdGhpbiBEVExTVURQIHNvIHBlci10cmFuc3BvcnQgZmluZ2VycHJpbnRzIGNhbiBiZSBzcGVjaWZpZWQKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVybHkgY2hlY2sgZm9yIHRsc2Jhc2UgcG9pbnRlcnMgaW4gZHRsc3VkcF9zZW5kKCkKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgZ3JlcCB0aGUgdHJhbnNwb3J0IGxpc3QgZm9yIFRMUyBub3QganVzdCBEVExTIGZvciBjaGVja2luZyBmb3IKICAgLWxzc2wKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBidWcgZml4ZXMgYW5kIG1hZGUgVExTVENQIHdvcmsgd2l0aCB0aGUgLVQgZmxhZwoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWFrZSB0aGUgZl9vcGVuIGNhbGwgYXNzaWduIHRoZSBuZXcgdHJhbnNwb3J0IHBvaW50ZXIgdG8gdXNlIChhbmQKICAgY2hlY2sgaWYgTlVMTCBhcyBhIGZhaWx1cmUgY29uZGl0aW9uCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW4gd29yayBtb3ZpbmcgRFRMUyBjb25maWcgcm91dGluZSBpbiBwbGFjZQoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHBhc3MgdGhlIGVudGlyZSB0bHNiYXNlIHRvIHRoZSBjbGllbnRfc2V0dXAKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCBzbm1wbGliL3NubXBfYXBpLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3RhcnRpbmcgdGhlIHN0b3Jpbmcgb2YgY29uZmlnIGRhdGEgaW50byB0aGUgdGxzYmFzZQoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgY2xpZW50IHNzbCBzZXR1cCB0byBhbGxvdyBmb3IgZGlyZWN0IGZpbmdlcnByaW50CiAgIHNwZWNpZmljYXRpb24gb2YgbXkvdGhlaXIgY2VydHMKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzcGxpdCBUTFMgaW50byBjcmVhdGlvbi9jbG9zZSBmdW5jdGlvbnMgZm9yIGV2ZW50dWFsIGNvbmZpZwogICBwYXNzaW5nIHN1cHBvcnQKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXNzIHRyYW5zcG9ydCBjb25maWcgZGF0YSB0byB0aGUgdHJhbnNwb3J0IGZfY29uZmlnKCkgZnVuY3Rpb24KCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldHVybiBOVUxMIG9uIHRyYW5zcG9ydCBjb25maWcgZXJyb3IKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogLVQgY29tbWFuZCBsaW5lIGZsYWcgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlCiAgIHRyYW5zcG9ydHMKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNoZWNrIHRyYW5zcG9ydCBOVUxMbmVzcyBiZWZvcmUgdXNpbmcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYmVnaW5uaW5nIG9mIHdvcmsgdG8gbWFrZSB0cmFuc3BvcnRzIGNvbmZpZ3VyYWJsZSB3aXRoCiAgIHN1cHBsaW1lbnRhbCBjb25maWd1cmF0aW9uIGRhdGEgYW5kIG5ldyBjYWxscyBmb3IgZl9vcGVuL2ZfY29uZmlnCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgdGV4dCBpbiBjb21tZW50cyBmcm9tIGZ1dHVyZSBSRkMgdG8gZG9jdW1lbnQgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTA0LTE1IDE4OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1hcmsgcGVtIHcva2V5IGFzIGlkZW50aXR5OyB0d2VhayBwYXJ0bmVyIGRlYnVnOyBjb21wYXJlIGZpbGUKICAgY3RpbWUgYWdhaW5zdCBpbmRleCB0b28KCjIwMTAtMDQtMTUgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGxvY2FsIHNwYWNlIHRvIHJlZm9ybWF0IGNlcnQgZm9yIHNlYXJjaAoKMjAxMC0wNC0xNSAxNjo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFBhcnRpYWxseSByZXZlcnRlZCByMTg0OTY6CiAgIC0gQ29tbWVudGVkIG91dCAjZGVmaW5lIE5FVFNOTVBfVVNFX0RMTCBhZ2FpbiBpbiBmaWxlCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIG9uIHRoZSA1LjQgYnJhbmNoLiBUaGlzIGNoYW5nZQogICBoYWQgYmVlbiBjb21taXR0ZWQgdW5pbnRlbnRpb25hbGx5LgogICAtIFJlLWVuYWJsZWQgI2RlZmluZQogICBVU0lOR19OT1RJRklDQVRJT05fTE9HX01JQl9OT1RJRklDQVRJT05fTE9HX01PRFVMRSBpbgogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oIG9uIHRoZSB0cnVuayBhbmQgdGhlCiAgIFY1LjUgYnJhbmNoLiBXaGlsZSBidWlsZC5iYXQgcmVwb3J0cyBhbiBlcnJvciBvbiBlYXJsaWVyIGJyYW5jaGVzCiAgIHdpdGggdGhpcyBzeW1ib2wgZW5hYmxlZCwgdGhlcmUgaXMgbm8gc3VjaCBwcm9ibGVtIG9uIHRoZSB0cnVuawogICBvciBWNS41IGJyYW5jaGVzIGFuZCBoZW5jZSB0aGVyZSB3YXMgbm8gcmVhc29uIHRvIGRpc2FibGUgdGhpcwogICBwcmVwcm9jZXNzb3Igc3ltYm9sLgoKMjAxMC0wNC0xNSAxNTowOCAgbWFyegoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXQtc25tcC1jZXJ0IHRvIG1ha2UvaW5zdGFsbAoKMjAxMC0wNC0xNSAxMDo1MiAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldDoKCiAgIFRlc3RzIG5vdCB3b3JraW5nIGZvciBUQ1Agc2hvdWxkIGJlIHNraXBwZWQgYWxzbyBmb3IgVENQNi4KCjIwMTAtMDQtMTQgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IHZhcnMvdGV4dCBmcm9tIGN1dC1uLXBhc3RlCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBjb21tZW50cwoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBsb3RzIG9mIGNlcnQgdXBkYXRlcwogICAtIGNoYW5nZSBjZXJ0IHN1YmRpciBzZWFyY2hpbmcgdG8gbWF0Y2ggbmV0LXNubXAtY2VydAogICAtIHVwZGF0ZSBrZXkgdHlwZSBoYW5kbGluZwogICAtIGlnbm9yZSB3b3JsZCByZWFkYWJsZSBrZXlzCiAgIC0ga2VlcCB0eXBlIGluIGluZGV4ZXMKICAgLSB0d2VhayBjZXJ0L2tleSBwcmludCBmb3JtYXQKCjIwMTAtMDQtMTQgMTc6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFrZSBuZXQtc25tcC1jZXJ0IGV4ZWN1dGFibGUKCjIwMTAtMDQtMTQgMTM6MTIgIGpzYWZyYW5lawoKICAgKiAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBGaXhlZCB0ZXN0cyAnUHJveHkgR0VUL1NFVCBzdXBwb3J0JyBhbmQgJ1NOTVB2MiB2YWNtIGRlbmlhbAogICBzdXBwb3J0JyB3aXRoIHVkcDYgdHJhbnNwb3J0LgoKMjAxMC0wNC0xNCAwOTo0NyAgZHRzMTIKCiAgICogIHdpbjMyLCB3aW4zMi9iaW4sIHdpbjMyL2Rpc3QsIHdpbjMyL2Rpc3QvaHRtbGhlbHAsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLCB3aW4zMi9kaXN0L3NjcmlwdHMsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsIAogICAgICAgIHdpbjMyL2xpYiwgd2luMzIvbGliYWdlbnQsIHdpbjMyL2xpYmhlbHBlcnMsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgd2luMzIvbGlic25tcCwgd2luMzIvbGlic25tcF9kbGwsICAgCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMsIHdpbjMyL2xvY2FsLCB3aW4zMi9uZXQtc25tcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQsIHdpbjMyL25ldC1zbm1wL2xpYnJhcnksIHdpbjMyL25ldHNubXBtaWJzLCAgCiAgICAgICB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBnZXQsIHdpbjMyL3NubXBnZXRuZXh0LCAgCiAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKICAgICAgd2luMzIvc25tcHRhYmxlLCB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYXAsIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHVzbSwgd2luMzIvc25tcHZhY20sICAgCiAgICAgIHdpbjMyL3NubXB3YWxrOgoKICAgRG9uJ3QgdHJ5IHRvIFNWTi1tYW5hZ2UgdGhlIFdpbmRvd3MgYmF0Y2ggYnVpbGQgaW5mcmFzdHJ1Y3R1cmUKICAgKGFkZCByZWxlYXNlLCBkZWJ1ZywgTWFrZWZpbGUgdG8gdGhlIHByZXZpb3VzIGlnbm9yZSBsaXN0KQoKMjAxMC0wNC0xNCAwODoxNiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggV2luZG93cyBiYXRjaCBidWlsZCB1c2luZyBWaXN1YWwgU3R1ZGlvIHdpdGggZHluYW1pYyBsaW5raW5nLgogICBVbnJlZmVyZW5jZWQgc3ltYm9sIGludHJvZHVjZWQgYnkgU1ZOIHJldmlzaW9uIDE4MzkzCgoyMDEwLTA0LTE0IDA4OjA4ICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IEZpeCBiYXRjaCBidWlsZCB1c2luZyByZWNlbnQgdmVyc2lvbnMgb2YgVmlzdWFsCiAgIFN0dWRpby4KICAgUGFydGlhbCBiYWNrIHBvcnQgb2YgU1ZOIHJldmlzaW9ucyAxNzU3MyBhbmQgMTc2OTYuCgoyMDEwLTA0LTE0IDAxOjQ3ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggcGVybXMgb24gY3JlYXRlZCBmaWxlcyAtcnctLS0tLS0tLCB1bWFzaygwNzcpCgoyMDEwLTA0LTEzIDIyOjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQsIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGZpeCBwZXJtcywgYWRkIC0tY24vLWMsIGJldHRlciBkYXRlcyBkZWZhdWx0cywgc25tcC10bHMgb3JnX3VuaXQsCiAgIGFkZGVkIGluaXRpYWwgZHVtbXkgY29uZmlnIGZpbGUKCjIwMTAtMDQtMTMgMTQ6MjEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeGVzIGZvciBzaG93IGNtZHMsIGNtZGxpbmUsIGhlbHAKCjIwMTAtMDQtMTMgMDI6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIGtleStjZXJ0IGluIC5wZW0gZmlsZXM7IG1pc2MgdHdlYWtzCgoyMDEwLTA0LTEwIDIzOjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiBvbiBIUC1VWCAxMC4yMCkKCjIwMTAtMDQtMTAgMjI6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGluaXRpYWwgY3V0IGF0IHRsc3RtQ2VydFRvVFNOVGFibGUKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBhZGQgZGVmaW5lIG9mIG1heCBoYXNoIGNvbnN0YW50CgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1c2UgY2VydCB1dGlsIGNoZWNrIGZvciBmaW5nZXJwcmludCBsZW4vYWxnb3JpdGhtCgoyMDEwLTA0LTEwIDEyOjU5ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBzaG93IGNtZCBmaXhlcwoKMjAxMC0wNC0wOSAyMTozMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZmFpcmx5IGZ1bmN0aW9uYWwgKG5vbi1pbnRlcmFjdGl2ZSkgLSBiZSBpdCBrbm93bjogdGhlcmUgYXJlIGJ1Z3MKCjIwMTAtMDQtMDkgMjA6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaDoKCiAgIG1lcmdlIHNvbWUgdGFibGVfZGF0YS5jb25mIGNoYW5nZXM7IHJlbW92ZSB1bnVzZWQgY29kZSBhbmQgYQogICBidW5jaCBvZiB2ZXJib3NlIGNvbW1lbnRzCgoyMDEwLTA0LTA4IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdXNlIGZ1bGwgcGF0aAoKMjAxMC0wNC0wOCAxMDo1NSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ2hlY2sgcmVzdWx0cyBvZiBjYWxscyB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUgYW5kIGxvZwogICBhbiBlcnJvci4KICAgVGhpcyBhbGxvd3MgdXNlcnMgdG8gcmVsYXRlIHZhcmlvdXMgJ2M2NCAzMiBiaXQgY2hlY2sgZmFpbGVkJwogICBlcnJvcnMgd2l0aCBzcGVjaWZpYyBjb3VudGVyLgoKMjAxMC0wNC0wOCAwMTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldyBmdW5jdGlvbgoKMjAxMC0wNC0wOCAwMTowNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiB0cmFuc2xhdGUgTk9TVUNIKi9FTkRPRk1JQiBlcnJvcnMgZHVyaW5nIFJFU0VSVkUxCiAgIHRvIE5PQ1JFQVRJT04KCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBORVdTOiBzbm1wZDogdGFibGVfZGF0YS90ZGF0YSBuZXh0IGhhbmRsZXIgd2lsbCBub3QgYmUgY2FsbGVkCiAgIGR1cmluZyBnZXQKICAgcHJvY2Vzc2luZyBpZiBubyB2YWxpZCByb3dzIGFyZSBmb3VuZCBmb3IgdGhlIGhhbmRsZXIKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogYWdlbnQgd2lsbCBubyBsb25nZXIgY2FsbCB0YWJsZSBoYW5kbGVycyBpZiBhIHNldAogICByZXF1ZXN0IGZvcgogICB0aGUgaGFuZGxlciBoYXMgaW52YWxpZCBpbmRleGVzCiAgIENIQU5HRVM6IHNubXBkOiBkb24ndCBjYWxsIGNsZWFudXAgb24gZmlyc3QgcmVxdWVzdCBvbiBiYWQKICAgaW5kZXhlcy4gaW5zdGVhZCwKICAgc2V0IGFjdHVhbCBlcnJvciBsYXRlciwgYW5kIGZyZWUgcmVxdWVzdCBkYXRhIHNldHMgb24gZmlyc3QKICAgcmVxdWVzdCBmb3Igc2V0cwoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBmaW5nZXJwcmludCB2YXJiaW5kCgoyMDEwLTA0LTA3IDIyOjU2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIFNvbGFyaXMgdHIgZG9lc24ndCBzdXBwb3J0IGNoYXJhY3RlciByYW5nZXMgcmVsaWFibHkgKHNlZSB0aGUKICAgYXV0b2NvbmYgbWFudWFsKSwgY2hhbmdlIHRoZSBleHByZXNzaW9uIHRvIG9uZSB0aGF0IGlzIHNpbXBsZQogICBlbm91Z2ggdG8gYiBzdXBwb3J0ZWQuCgoyMDEwLTA0LTA3IDE0OjA1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbnNlcnQgdGhlIGNhY2hlIGhlbHBlciBjb3JyZWN0bHkuCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb25zIHRvIHJlbW92ZSBsaXN0L3JvdyBkYXRhIGZyb20KICAgcmVxdWVzdCBsaXN0CgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWZkZWYgdmFyIGRlY2wgZm9yIHZhcnMgb25seSB1c2VkIGluIGxhdGVyIGlmZGVmIGJsb2NrCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBSb3dTdGF0dXMgYW5kCiAgIFN0b3JhZ2VUeXBlIHZhcmJpbmRzCiAgIC0gYWxzbyByZW1vdmUgc29tZSBkdXBsaWNhdGUgY29kZSBhbmQgZml4IGNvbW1lbnRzIGluZGVudCBtYW5nbGVkCgoyMDEwLTA0LTA3IDEwOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlLCBtYW4vbWliMmMtdXBkYXRlLjEuZGVmOgoKICAgdXBkYXRlIG1hbiBwYWdlOyBmaXggc2hlbGwgcmVkaXJlY3Q7IGNyZWF0ZSBleGFtcGxlIHJjZmlsZSBpZgogICBtaXNzaW5nCgoyMDEwLTA0LTA3IDA3OjE1ICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFVzZSBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcgaW5zdGVhZCBvZiBESVNBQkxFX01JQl9MT0FESU5HCgoyMDEwLTA0LTA3IDAwOjM4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE9ubHkgZW5hYmxlIGhvc3RTd0luc3QgcnBtIHN1cHBvcnQgb24gbGludXggaG9zdHMKICAgd2l0aCBsaWJycG0uIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gbm9uLXJwbSBsaW51eAogICBkaXN0cmlidXRpb25zLgoKMjAxMC0wNC0wNyAwMDoxNCAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZSB0aGUgdGVzdCBzdWl0ZSB0byB3b3JrIGV2ZW4gaWYgbWliCiAgIGxvb2t1cCBpcyBkaXNhYmxlZC4KCjIwMTAtMDQtMDcgMDA6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2OgoKICAgQ2hlY2sgZm9yIGNvbTJzZWM2LCBub3QgY29tMnNlYy4KCjIwMTAtMDQtMDYgMjI6NTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgTW92ZSBkaXJlY3RvcnkgY3JlYXRpb24gYmVmb3JlIHRoZSBkaXJlY3RvcmllcyBhcmUgdXNlZC4KCjIwMTAtMDQtMDYgMTE6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIFB5dGhvbiBpcyBhcHBhcmVudGx5IGNsaWVudC1zaWRlIG9ubHkuCgoyMDEwLTA0LTA2IDEwOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIGJlZm9yZSBjaGFuZ2luZyBVSUQKICAgKHdoaWNoIHByb2JhYmx5IGludm9sdmVzIGdpdmluZyB1cCBwcml2aWxlZ2VzKQoKMjAxMC0wNC0wNiAwODo1NyAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgRG9jdW1lbnQgbGFyZ2UtZGlzayBzdGF0aXN0aWNzIGFzIGxhdGNoaW5nIGF0IDJUYiAocmF0aGVyIHRoYW4KICAgd3JhcHBpbmcpLgoKMjAxMC0wNC0wNiAwMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLCBtYW4vbWliMmMuMS5kZWY6CgogICBORVdTOiBtaWIyYzogbWliMmMgY2FuIG5vdyBvcHRpb25hbGx5IHJ1biBzZWQgb24gZ2VuZXJhdGVkIGNvZGUKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbnZlcnQgQysrIGNvbW1lbnRzIHRvIEMgY29tbWVudHMKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgcHRyIGNoZWNrIGJlZm9yZSBwcnQgdXNlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBvbiBuZXcgY2VydHM7IG1ha2Ugc3RhdGljIGZ1bmMgdG8gcmV0dXJuCiAgIG1vZGUgbmFtZXMKCjIwMTAtMDQtMDYgMDA6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWxsb3cgYSBmb3VuZCBmaW5nZXJwcmludCBzZWxmLXNpZ25lZCBjZXJ0IGZvciBub3c7IGV2ZW50dWFsbHkKICAgbmVlZCB0byByZXNwZWN0IHRoZSBNSUIgY29uZmlnIHRhYmxlCgoyMDEwLTA0LTA2IDAwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1rZGlyIHNubXBsaWIvdHJhbnNwb3J0cyB3aGVuIERORSBmb3IgYnVpbGRpbmcgb3V0c2lkZSB0aGUgc291cmNlCiAgIGRpcgoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGVycm9yIGNvZGUgY2xlYW51cCBmb3IgdGxzYmFzZV93cmFwdXBfcmVjdgoKMjAxMC0wNC0wNSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vcmUgYmV0dGVyIGVycm9yL2RlYnVnIGNvZGVzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgZnV0dXJlLVJGQyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb247IHVzZQogICBmbGFncyBmb3Igc2VydmVyL2NsaWVudCBzcGVjaWZpY2F0aW9uIGZvciBleHBhbnNpb24KCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIHVzYWdlIGNvbnN0cmFpbnRzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBmdW5jdGlvbiBwcm90ZWN0aW9uIGxvZ2ljIGluIGEgdG9wLWxldmVsIGNoZWNrCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBpbml0IG9yZGVyaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbXYgdGxzYmFzZSBpbml0IGZ1bmN0aW9uIHRvIGEgcHJvcGVyIGN0b3IgZm9yIGF1dG8tY2FsbGluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBnZW5lcmF0ZSB0aGUgdHJhbnNwb3J0IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGxpc3QKICAgZHluYW1pY2FsbHkgYW5kIHVzZSBpdAoKMjAxMC0wNC0wMiAxNjozNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IG1vdmVkIHRyYW5zcG9ydCBjb2RlIGludG8gYSBzZXBhcmF0ZSBzdWJkaXJlY3RvcnkgaW4KICAgc25tcGxpYgoKMjAxMC0wNC0wMiAwOTowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBEbyBub3QgYXR0ZW1wdCB0byBjaGVjayBzaXplb2Ygdm9pZCB0byBvYnRhaW4gdGhlIGFtb3VudCBvZgogICBtZW1vcnkgdG8gY29weS4KCjIwMTAtMDQtMDEgMTc6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluc3RlYWQgb2YgZndkIGRlY2xhcmVzLCByZXF1aXJlIG90aGVyIGhlYWRlcgoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb3V0ZGF0ZWQgZGVidWcgbXNnCgoyMDEwLTA0LTAxIDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNlcnRhcGkgdG8gZmluZCBjZXJ0cy9rZXlzCgoyMDEwLTA0LTAxIDE0OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVnaXN0ZXIgZXh0cmFYNTA5U3ViRGlyIHRva2VuCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxMzoxMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIGFkZCBwZXJzaXN0ZW50IHN0b3JhZ2U7IHRva2VuIGZvciBjcmVhdGluZyBlbnRyaWVzIGluIHNubXBkLmNvbmY7CiAgIGZpeCBpbmRleAoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBjZXJ0aWZpY2F0ZSBhcGkgdG8gc3VwcG9ydCB0bHMvZHRscwoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IGFkZCBmdW5jdGlvbnMgdG8gZ2V0IGZpbmdlcnByaW50IGZyb20gY2VydCBhbmQgbG9nCiAgIG9wZW5zc2wgZXJycwoKMjAxMC0wNC0wMSAxMjo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggdHlwbwoKMjAxMC0wNC0wMSAxMDozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTA0LTAxIDEwOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IHRhYmxlX2RhdGEgdGVtcGxhdGUgZW5oYW5jZW1lbnRzCiAgIC0gYWRkIGVycm9yIGNoZWNrcyBkdXJpbmcgdGFibGUgaW5pdAogICAtIGNyZWF0ZSBjYWNoZSBlYXJsaWVyIHNvIHdlIGNhbiBiYWlsIG9uIGZhaWx1cmUKICAgLSBhZGQgb3B0aW9uIHRvIGNyZWF0ZS9kZWxldGUgcm93IHcvb3V0IGFkZGluZy9yZW1vdmluZyBmcm9tCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIGFkZCBoZWxwZnVsIHBhcmFtIG5hbWVzIGFzIGhpbnRzIGluIHByb3RvdHlwZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHNlYXJjaCBmb3IgY29udGFpbmVyIHNwZWNpZmljIGNvbnRhaW5lciBiZWZvcmUgZ2VuZXJpYwoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgTkVXUzogc25tcGxpYjogZW5oYW5jZSBmaWxlIHV0aWxzIGFuZCBkaXIgdXRpbHMKICAgLSBhZGQgb3B0aW9uYWwgc3RhdHMgc3RydWN0IHRvIG5ldHNubXBfZmlsZQogICAtIGdlbmVyYWxpemUgZGlyIGNvbnRhaW5lciBmaWx0ZXIsIGFkZCBjb250ZXh0IHRvIGNhbGxiYWNrCiAgIC0gYWRkIG9wdGlvbiB0byBzdG9yZSBuZXRzbm1wX2ZpbGVzICh3L3N0YXRzKSBpbiBjb250YWluZXIKICAgaW5zdGVhZCBvZiBqdXN0IG5hbWUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBwcm90b3R5cGUgdG8gaGVhZGVyOyBjaGVjayBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKCjIwMTAtMDMtMzEgMTU6MzQgIGpzYWZyYW5lawoKICAgKiAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtYnJpZGdlLW1pYiwgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1pYnMvQlJJREdFLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDI5NTI3MDg6IGZyb20gSmVucyBPc3RlcmthbXA6IEFkZGVkIFBlcmwKICAgaW1wbGVtZW50YXRpb24gb2YgQlJJREdFLU1JQgoKMjAxMC0wMy0zMSAwMjoxMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXIgcGFja2V0IGxhYmVsaW5nIGZvciBEVExTVURQCgoyMDEwLTAzLTMxIDAyOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjb21tb24gY29udGV4dCBjcmVhdGlvbiBjb2RlCgoyMDEwLTAzLTMwIDIzOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBUTFMgbWV0aG9kIHRvIFRMU3YxIGZyb20gU1NMdjIzCgoyMDEwLTAzLTMwIDIzOjIzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgbW9yZSBjb21tb24gZGF0YSBhbmQgZnVuY3Rpb25hbGl0eSBpbnRvIHRoZSBUTFMgYmFzZQoKMjAxMC0wMy0zMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtaW5vciBUTFMgY29kZSBjbGVhbnVwCgoyMDEwLTAzLTMwIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZXdvcmsgaWYoKSB3cmFwcGluZyBmb3IgbGVzcyBjb25mdXNpb24gaW4gZXJyb3IgaGFuZGxpbmcKCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvZGUgY29uc29saWRhdGlvbiBpbiBzdGFydF9uZXdfY2FjaGVkX2Nvbm5lY3RpbwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1lIGdlbmVyaWMgJ2JpbycgcG9pbnRlciB0byAncmVhZF9iaW8nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKCjIwMTAtMDMtMzAgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgYnVmZmVyZWQgZGF0YSBjcmVhdGlvbiB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZQoKMjAxMC0wMy0zMCAxNzo1MiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IGdlbiB3cmFwcGVyIHNjcmlwdCAtIG5vdCB3b3JraW5nCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGVhbiB1cCBlcnJvciBvdXRwdXQgc28gaXQgZG9lc24ndCByZXBvcnQgd2FudF9yZWFkIGFuZAogICB3YW50X3dyaXRlIGVycm9ycwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1pbmcgb2Ygc2VuZGluZyBmdW5jdGlvbiBmb3IgY2xhcml0eSBhbmQgY2hlY2sgb25lIG1vcmUKICAgbG9jYXRpb24gZm9yIG5lZWRlZCBvdXRnb2luZyBwYWNrZXRzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBkdGxzdWRwIHRyYWNpbmcgdG9rZW5zCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ0hBTkdFUzogYWRkZWQgYSBuZXcgREVCVUdUUkFDRVRPSygpIG1hY3JvCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZXR0ZXIgY29tbWVudHMgYW5kIG1vcmUgd29yayBvbiBzZW5kaW5nIGJ1ZmZlcmVkIGRhdGEgaW4gdGhlCiAgIHJpZ2h0IHNwb3RzCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcmd1bWVudHMgdG8gZ2V0X2NvbW1vbk5hbWUKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2lubmluZyBvZiBjYWNoaW5nIG9mIHBhY2tldHMgYmVmb3JlIHRoZXkgY2FuIGJlIHNlbnQgdmlhIERUTFMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGhhbmRsZSBTU0xfV0FOVF9SRUFEL1dSSVRFIGJldHRlcjsgc3RpbGwgbmVlZCB0byBidWZmZXIgb3V0Z29pbmcKICAgd3JpdGUgZGF0YQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbWlub3IgY2hhbmdlIHRvIG91dHB1dCBlcnJvciBwcmludGluZwoKMjAxMC0wMy0yOSAxNToyMCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBzbm1wZDogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG1hdGNoaW5nIFZBQ00gZW50cmllcy4KICAgKFVzZSB0aGUgImJlc3QiIG1hdGNoLCByYXRoZXIgdGhhbiB0aGUgZmlyc3Qgb25lKS4KICAgUmVwb3J0ZWQgYnkgQWRhbSBMZXdpcy4KICAgTm90ZSB0aGF0IHRoaXMgY291bGQgcG90ZW50aWFsbHkgYWZmZWN0IHRoZSBiZWhhdmlvdXIgb2YKICAgZXhpc3RpbmcgYWNjZXNzIGNvbnRyb2wgY29uZmlndXJhdGlvbnMuCgoyMDEwLTAzLTI5IDE1OjE2ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpnZXRWYWx1ZSgpOiBkb24ndCByZXR1cm4KICAgYSBwb2ludGVyIHRvIGEgYnVmZmVyIG9uIHRoZSBzdGFjay4gSG93IGNhbiB0aGlzIGhhdmUgd29ya2VkCiAgIHJlbGlhYmx5ID8/CiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6c2V0VmFsdWUoKSwKICAgQVNOX0NPVU5URVI2NDogZml4ZWQgYnVnIHRoYXQgY291bGQgY2F1c2UgdGhpcyBtZXRob2QgdG8gZmFpbAogICBldmVuIHdoZW4gYSB2YWxpZCBudW1iZXIgd2FzIHByb3ZpZGVkLgoKMjAxMC0wMy0yOSAxNToxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYWdlbnQgY3Jhc2ggd2hlbiBzZW5kaW5nIGVuY3J5cHRlZCBTTk1QdjMKICAgdHJhcHMuCiAgIFJlcG9ydGVkIGJ5IFNyaWthcGlsYW4gR2FuZGhpCgoyMDEwLTAzLTI5IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2F0Y2ggc3RkZXJyIG9uIFdpbmRvd3MgdG9vLgoKMjAxMC0wMy0yOSAxMTo0OCAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wMy0yOSAxMToxOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZGVzdHJveWluZyBhCiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZmFpbHVyZSBvZgogICBjcmVhdGluZyBhIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZQogICBOZXRTTk1QOjpPSUQ6OmdldHRhYmxlKCkgc3Vicm91dGluZS4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgdHJpZ2dlcmVkIGJ5CiAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBhIFBEVSBwcm9jZXNzaW5nCiAgIGVycm9yIGluIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIG1lbW9yeSBsZWFrcyB0cmlnZ2VyZWQgYnkgY3JlYXRpbmcgYW4gU05NUHYzCiAgIHNlc3Npb24gdmlhIE5ldFNOTVA6OlNOTVAuCiAgIAogICBBbHNvIGZpeGVkIHRoZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGFjY2Vzc2VzIHRyaWdnZXJlZCBieQogICBhZGRpbmcgYSB2YXJiaW5kIHRvIGEgUERVIHZpYSBOZXRTTk1QOjpTTk1QIGludHJvZHVjZWQgYSBmZXcgZGF5cwogICBhZ28uCiAgIAogICBUaGUgYnVncyBtZW50aW9uZWQgYWJvdmUgaGF2ZSBiZWVuIGZvdW5kIGJ5IGluc3BlY3RpbmcgdGhlIG91dHB1dAogICBvZiB0aGUgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmQ6CiAgIGNkIHBlcmwgJiYgdmFsZ3JpbmQgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS1sZWFrLWNoZWNrPWZ1bGwgbWFrZQogICB0ZXN0CgoyMDEwLTAzLTI5IDEwOjU5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU3dpdGNoZWQgYmFjayB0byB0aGUgcHJldmlvdXMgd2F5IG9mIHN0YXJ0aW5nIHByb2Nlc3NlcwogICBhc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IGlzIG1vcmUgcmVsaWFibGUuCgoyMDEwLTAzLTI5IDA5OjI3ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgRG8gbm90IG9ubHkgc2F2ZSBzbm1wZCAvIHNubXB0cmFwZCBsb2dzIGJ1dCBhbHNvIHRoZSBzdGRvdXQgLwogICBzdGRlcnIgb3V0cHV0IGdlbmVyYXRlZCBieSB0aGVzZSBwcm9jZXNzZXMuCgoyMDEwLTAzLTI4IDE2OjA5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2hhbmdlcyBpbiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgogICAtIEFkZGVkIGNvbW1hbmQtbGluZSBvcHRpb24gLWQgZm9yIHNubXBkIGFuZCBzbm1wdHJhcGQuCiAgIC0gc25tcGQgYW5kIHNubXB0cmFwZCBvdXRwdXQgaXMgbm93IHNhdmVkIHRvIGEgbG9nIGZpbGUgKG9uZSBwZXIKICAgdGVzdCkuCiAgIC0gUmV3cm90ZSBQZXJsIGNvZGUgZm9yIHN0YXJ0aW5nIHRoZSBzbm1wZC9zbm1wdHJhcGQgcHJvY2Vzc2VzCiAgIHN1Y2ggdGhhdCB0aGUgc2FtZSBjb2RlIHdvcmtzIG9uIFVuaXggYW5kIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI4IDEzOjM3ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX21hbGxvYygpLAogICBuZXRzbm1wX2NhbGxvYygpLCBuZXRzbm1wX3JlYWxsb2MoKSwgbmV0c25tcF9zdHJkdXAoKSBhbmQKICAgbmV0c25tcF9mcmVlKCkuCiAgIENIQU5HRVM6IFdpbjMyOiBzbm1wbGliOiByZW1vdmVkIHRoZSB0cm91Ymxlc29tZSAjZGVmaW5lIG1hbGxvYwogICBuZXRzbm1wX21hbGxvYyBldGMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGNhbGxpbmcgZnVuY3Rpb25zIGZyb20KICAgdGhlIE5ldC1TTk1QIERMTCBmcm9tIEMgb3IgQysrIGNvZGUgdGhhdCBpcyBiZWluZyBsaW5rZWQgYWdhaW5zdAogICBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMgcnVudGltZSBETEwgdGhhbiB0aGUgTmV0LVNOTVAgRExMLAogICBhbmQgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeSB0aGF0IHdpbGwgYmUgZnJlZWQgYnkgdGhlIE5ldC1TTk1QCiAgIERMTCwgeW91IHdpbGwgZWl0aGVyIGhhdmUgdG8gY2FsbCB0aGUgTmV0LVNOTVAgbWVtb3J5IGFsbG9jYXRpb24KICAgZnVuY3Rpb25zIGV4cGxpY2l0bHkgb3IgcmVkZWZpbmUgbWFsbG9jKCkgZXRjLiB5b3Vyc2VsZi4KCjIwMTAtMDMtMjggMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4ZWQgYSByZWNlbnRseSByZWludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDMtMjcgMTg6NDIgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjaGVjayBmb3IgaW52b2NhdGlvbiBvZiBjYWxsb2MoKSBmcm9tIFhTVUJzLgoKMjAxMC0wMy0yNiAxOToxNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBGb2xsb3ctdXAgZm9yIHIxODM2OCBhbmQgcjE4MzY5OiBtYWRlIHN1cmUgdGhhdCB0aGUgTmV0LVNOTVAgUGVybAogICBleHRlbnNpb25zIGNvbXBpbGUgd2l0aG91dCB0cmlnZ2VyaW5nIHByZXByb2Nlc3NvciB3YXJuaW5ncyBhYm91dAogICByZWRlZmluaW5nIG1hbGxvYyBldGMuIG5vciB0cmlnZ2VyICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycyBvbgogICBXaW5kb3dzLgoKMjAxMC0wMy0yNiAxNDo0NCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUmVmYWN0b3Jpbmc6IGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb246CiAgIG5ldHNubXBfc2V0X25vbl9ibG9ja2luZ19tb2RlKCkuCgoyMDEwLTAzLTI2IDExOjU4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHVzaW5nIHZhcmlhYmxlcyBvZiB0eXBlIGNoYXIgYXMgYW4KICAgYXJyYXkgc3Vic2NyaXB0LiBOb3RlOiBhcyBmYXIgYXMgSSBrbm93IHRoZXNlIHdhcm5pbmdzIGFyZSBvbmx5CiAgIHJlcG9ydGVkIHdoZW4gdXNpbmcgdGhlIEN5Z3dpbiBnbGliYyBoZWFkZXJzLgoKMjAxMC0wMy0yNiAxMDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmUgKG9uIFdpbmRvd3MgTVNWQyB3YXMgY29tcGxhaW5pbmcKICAgYWJvdXQgc2l6ZV90IHdoaWxlIHByb2Nlc3NpbmcgPG5ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg+KS4KCjIwMTAtMDMtMjUgMjA6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBhZ2VudHg6IGNoYW5nZWQgZGVmYXVsdCBUQ1AgdGFyZ2V0IGZyb20gMC4wLjAuMDo3MDUgdG8KICAgbG9jYWxob3N0OjcwNS4gVGhpcyBpcyBub3Qgb25seSBhIG1vcmUgc2VjdXJlIGNob2ljZSBidXQgaXQgYWxzbwogICBtYWtlcyBpdCBwb3NzaWJsZSBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gbGV0IGFuIEFnZW50WCBzdWJhZ2VudAogICBjb25uZWN0IHRvIGFuIEFnZW50WCBtYXN0ZXIgYWdlbnQgcnVubmluZyBvbiB0aGUgc2FtZSBzeXN0ZW0KICAgd2l0aG91dCBoYXZpbmcgdG8gc2V0IHRoZSB2YXJpYWJsZSBORVRTTk1QX0RTX0FHRU5UX1hfU09DS0VULgoKMjAxMC0wMy0yNSAxNjoxMSAgYnZhc3NjaGUKCiAgICogIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBwZXJsOiBmaXhlZCBzZXZlcmFsICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycy4KICAgTm90ZTogc2luY2UgY2FsbG9jKCkgaXMgbm90IHJlZGVmaW5lZCBpbiA8Q09SRS9YU1VCLmg+IHVzaW5nCiAgIGNhbGxvYygpIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgbGVhZHMgdG8gIkZyZWUgdG8gd3JvbmcgcG9vbCIKICAgZXJyb3JzLCBhdCBsZWFzdCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxNjowNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBtb3JlIHNpbGVudCBieSBub3QKICAgcmVkZWZpbmluZyBtYWxsb2MoKSBvciBmcmVlKCkgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIFBlcmwKICAgZXh0ZW5zaW9ucyAocmVzdWx0ZWQgaW4gd2FybmluZ3MgYWJvdXQgbWFsbG9jKCkgLyBmcmVlKCkKICAgcmVkZWZpbml0aW9uIGluIHRoZSBQZXJsIGhlYWRlciBDT1JFL1hTVUIuaCkuCgoyMDEwLTAzLTI1IDE1OjA2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IEJVRzogMjk2OTg3MjogbWFkZSBzdXJlIHRoYXQgU09DS19TVEFSVFVQIGlzIGludm9rZWQKICAgYmVmb3JlIGluaXRfYWdlbnQoKSBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxMzozOSAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSBtYWNyb3MgaW5zdGVhZCBvZiBtYWdpYyBudW1iZXJzIGFzIG5ldHNubXBfcGFyc2VfYXJncyByZXR1cm4KICAgY29kZXMuCgoyMDEwLTAzLTI1IDEzOjMwICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIGJ1aWxkIHByb2Nlc3MgYnkKICAgcmVtb3ZpbmcgdGhlIGZpbGUgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4uIFdoaWNoIElQdjYKICAgZnVuY3Rpb25zIGFyZSBleHBvcnRlZCBmcm9tIG5ldHNubXAuZGxsIGlzIG5vdyBkZXRlcm1pbmVkIGJ5CiAgIHdoaWNoIG9mIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBETEwgaGF2ZSBiZWVuIGRlY2xhcmVkIGFzCiAgIE5FVFNOTVBfSU1QT1JULgoKMjAxMC0wMy0yNCAyMDoxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBkb24ndCB1c2UgcGFzc2VkIHB0ciBhcyB0ZW1wIHZhcjsgdXNlIHNubXBfZW51bV9saXN0cyBpbiBpbml0CiAgIHRlc3QKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgYWRkIE5FVFNOTVBfRFNfTElCX0NFUlRfRVhUUkFfU1VCRElSCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCBlYXJsaWVyIChoYXZlIHRsc19ib290c3RyYXAgY2FsbCBpdCkKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3M7IGFkZCBjZXJ0IGRlYnVnIG1zZ3MgaW4gc2VydmVyIHNldHVwOyBmcmVlCiAgIHNzbCBsb2cgZGF0YQoKMjAxMC0wMy0yNCAxMDo0NyAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IGFwcHM6IHJldHVybiBub3plcm8gZXhpdCBjb2RlIHdoZW4gcGFyc2luZyBvZiBjZXJ0YWluCiAgIHBhcmFtZXRlciBmYWlscy4KICAgRS5nLiAnLUEnIHBhcmFtZXRlciB3aXRoIHRvbyBzaG9ydCBwYXNzcGhyYXNlIG9yIEt1IGtleQogICBnZW5lcmF0aW9uIGluIGdlbmVyYWwuCgoyMDEwLTAzLTI0IDA3OjExICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIENvcnJlY3QgdGhlIHR5cGUgb2YgdGhlIGlkL2Rlc2NyaXB0aW9uIG9mIHRoZSBPcGVuLVBEVS4KCjIwMTAtMDMtMjIgMTg6MjkgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgVXBkYXRlcyBmb3IgIm1ha2UgY2hlY2tzIjoKICAgLSBNYWRlIHN1cmUgdGhhdCBleGl0IGNvZGUgMCBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgaXMKICAgc3VjY2Vzc2Z1bCBhbmQgdGhhdAogICBleGl0IGNvZGUgMSBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgZmFpbGVkLgogICAtIE1hZGUgIm1ha2VmaWxlY2hlY2siIHNraXAgU3VidmVyc2lvbiBib29ra2VlcGluZyBmaWxlcyBhbmQgYWxzbwogICB0aGUgbWFrZWZpbGUKICAgdGhhdCBjb250YWlucyAibWFrZWZpbGVjaGVjayIuCgoyMDEwLTAzLTIyIDE2OjEwICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIEZpeCB0eXBvIGluIGRlZmF1bHQgSXBBZGRyZXNzIHZhbHVlCiAgIChTZWUgQnVnICMyOTcyMTQxKQoKMjAxMC0wMy0yMiAxNTo0NCAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9jYWxsYmFjay5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgY2hhbmdlIGFsbCBhc3NlcnQoKSB0byBuZXRzbm1wX2Fzc2VydCgpOyBhZGQgYXNzZXJ0Y2hlY2sgdG8gdG9wCiAgIGxldmVsIG1ha2VmaWxlCgoyMDEwLTAzLTIyIDE1OjI0ICBidmFzc2NoZQoKICAgKiBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzQ5OiBhZGRlZCBtaXNzaW5nIGNvbW1hIHN1Y2ggdGhhdCBpdCBpcyBhZ2FpbgogICBwb3NzaWJsZSB0byBjb21waWxlIFVDRC1ESVNLSU8tTUlCLgoKMjAxMC0wMy0yMiAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEZpeCBidWlsZCB3aGVuIE1JQiBsb2FkaW5nIGlzIGRpc2FibGVkIChicm9rZW4gYnkgU1ZOIHJldmlzaW9uCiAgIDE4MzQxKQogICBSZXBvcnQgZGVmYXVsdCBNSUIgcGF0aCBmb3IgY2xpZW50IGFwcHMgdG9vLgoKMjAxMC0wMy0yMiAxMzo1OSAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIENIQU5HRVM6IG1hbjogQlVHOiAyOTcyODYwOiBVcGRhdGUgYnJva2VuIHJlZmVyZW5jZXMKCjIwMTAtMDMtMjIgMTM6NDkgIGR0czEyCgogICAqICBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwgICAKICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogQlVHOiAyOTczODkwOiBGaXggaW1wb3J0cywgRGlza0lPRW50cnkgbGlzdCBhbmQKICAgcmV2aXNpb24gaGlzdG9yaWVzCgoyMDEwLTAzLTIyIDExOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBXaW4zMiwgd2luRXh0RExMOiBzb2x2ZWQgdGhlIG15c3Rlcnkgb2YgIkFTTiB0eXBlIHplcm8iLiBUaGUKICAgd2luRXh0RExMIGNvZGUgZG9lcyBub3cgbm8gbG9uZ2VyIHRyaWdnZXIgY29udmVyc2lvbnMgb2YgV2luZG93cwogICBBU04gdmFyYmluZHMgd2l0aCBBU04gdHlwZSB6ZXJvLiBOb3RlOiB0aGlzIGNvZGUgY2hhbmdlIGRvZXMgbm90CiAgIGNoYW5nZSB0aGUgYWdlbnQgYmVoYXZpb3IuCgoyMDEwLTAzLTIwIDIwOjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaDoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCgoyMDEwLTAzLTIwIDIwOjIwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBBZGRlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCAoc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBpbiB0aGUKICAgcHJldmlvdXMgY29tbWl0KS4KCjIwMTAtMDMtMjAgMTk6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAKICAgICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoCiAgIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbgogICBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdAogICBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICoKICAgbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KCjIwMTAtMDMtMjAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IGdjYyAoTWluR1cpLgoKMjAxMC0wMy0yMCAxOTowNSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzaWdwcm9jbWFzay4KCjIwMTAtMDMtMjAgMDk6MTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgUmVmYWN0b3Jpbmc6IG1vdmVkIGR1cGxpY2F0ZWQgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uLgoKMjAxMC0wMy0xOSAyMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBNSUIgYW5kIGNvbmZpZyBkaXJlY3RvcmllcyBzZWFyY2ggcGF0aHMgb24gZXJyb3JzCiAgIChhbmQgaW4gdGhlIGhlbHAgbWVzc2FnZSkKCjIwMTAtMDMtMTkgMTM6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IGlzIGxvZ2dlZCB3aGVuCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaXMgYXR0ZW1wdGVkIG1vcmUgZGV0YWlsZWQuCiAgIAogICBBbiBleGFtcGxlOgogICAoYmVmb3JlKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIChtaWJJSS9zbm1wLAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsKQogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCiAgIChhZnRlcikKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbjogTUlCIG1vZHVsZXMgbWliSUkvc25tcCBhbmQKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCAob2lkIC4xLjMuNi4xLjIuMS4xMSkuCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KCjIwMTAtMDMtMTkgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbXVsdGlwbGUgdmFyYmluZCBzZXQgcmVxdWVzdHMgYXJlIG5vdwogICBwcm9jZXNzZWQgY29ycmVjdGx5LgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtYWRlIGVycm9yIGNvZGVzIGluIFNOTVAgcmVzcG9uc2UgUERVcwogICBhcyBSRkMtY29tcGxpYW50IGFzIHBvc3NpYmxlLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBpZiBsb2FkaW5nIGFuIGV4dGVuc2lvbiBETEwgZmFpbHMsIHRoZQogICByZWFzb24gd2h5IGxvYWRpbmcgZmFpbGVkIGlzIG5vdyBsb2dnZWQuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdGhhdCBvY2N1cnJlZCB3aGVuCiAgIFNubXBFeHRlbnNpb25RdWVyeShFeCkgZmFpbGVkLiBUaGlzIG1lbW9yeSBsZWFrIGhhcyBiZWVuIGZvdW5kCiAgIHZpYSBzb3VyY2UgcmVhZGluZy4gTm90ZTogaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgaXQgd2FzIHBvc3NpYmxlCiAgIHRvIHRyaWdnZXIgdGhpcyBtZW1vcnkgbGVhay4gVGhpcyBsZWFrIGlzIGNlcnRhaW5seSBub3QgdHJpZ2dlcmVkCiAgIGJ5IGV2ZXJ5IHJlcXVlc3QgZm9yIHdoaWNoIGEgcmVzcG9uc2Ugd2l0aCBub24temVybyBlcnJvciBzdGF0dXMKICAgaXMgc2VudCBiYWNrLgoKMjAxMC0wMy0xOCAxNjoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAga2VlcCBjb3VudCBvZiBlbmFibGVkIGxvZ3M7IHVzZSB0aGlzIGNvdW50IHRvIGRldGVybWluZSB3aGVuIHRvCiAgIGxvZyB0byBzdGRlcnIKCjIwMTAtMDMtMTggMTY6MjggIHJzdG9yeQoKICAgKiAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgc25tcCB0b2tlbiBsb2dPcHRpb24gYWxsb3dzIHNwZWNpZnlpbmcgbG9nCiAgIGRlc3RpbmF0aW9ucyB2aSBjb25mIGZpbGVzCiAgIC0gaWYgc3RkZXJyIGxvZyBlbmFibGVkIGJlY2F1c2Ugb2Ygbm8gbG9nIGRlc3RpbmF0aW9uLCB0dXJuIGl0CiAgIG9mZiB3aGVuIGEKICAgbG9nIGRlc3RpbmF0aW9uIGlzIGVuYWJsZWQKICAgLSBkb24ndCBjYWxsIG5ldHNubXBfZW5hYmxlX3N0ZGVycmxvZygpIGZyb20gYXBwcyBhbnltb3JlCgoyMDEwLTAzLTE4IDE1OjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICB1ZHAgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHR3ZWFrcwogICAtIG1vdmUgYmFzaWMgdWRwIHJlY3Zmcm9tL3NlbmR0byBjb2RlIGZyb20gVURQRG9tYWluIHRvCiAgIFVEUEJhc2VEb21haW4KICAgLSB0d2VhayB1cGQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzdGlvbgogICAtIHR3ZWFrIHVkcGlwdjQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzaW9uCiAgIC0gYWxzbyBmaXhlZCBuZXRzbm1wX2lwdjRfKiAtPiBuZXRzbm1wX3VkcGlwdjRfKgogICAtIHR3ZWFrIERUTFNVRFBEb21haW4gb3QgdXNlIHVkcGJhc2VfKiBpbnN0ZWFkIG9mIHVkcF8qCgoyMDEwLTAzLTE4IDE1OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm90ZWN0IGNlcnQgaGVhZGVyIGFuZCBpbml0IGNhbGwgd2l0aCBpZmRlZnMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgdXNlIG5ldyB1dGlsaXR5IHJvdXRpbmUgZm9yIGNlcnQgbmFtZXMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wX29wZW5zc2wgaGVhZGVyIGFmdGVyIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGFkZCByb3V0aW5lcyB0byBwdWxsL2R1bXAgbmFtZXMgZnJvbSBYNTA5IGNlcnRzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBlbnVtIGxpc3RzIHRvIG1hbmFnZSBkaXJlY3RvcnkgaW5kZXhlcwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBpbml0aWFsaXplIHN0YXRpYyBzdG9yYWdlIGJlZm9yZSB1c2U7IHByb3RlY3QgZW51bSBpbml0IGZyb20KICAgbXVsdGlwbGUgY2FsbHMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCBpbmZvIGFib3V0IG5ldyB0c20vdGxzIG1pYnMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IHRvIHNubXAgaW5pdAoKMjAxMC0wMy0xNyAxMzozNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgVXBkYXRlZCBNSUIgcmV2aXNpb24gaGlzdG9yeS4KCjIwMTAtMDMtMTcgMTM6MjkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBvbmUgbGVhay1hdC1leGl0LgoKMjAxMC0wMy0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBCVUc6IDI5NzEyNTc6IEZpeGVkIHdpbkV4dERMTCBoYW5kbGluZyBvZiBtdWx0aS12YXJiaW5kCiAgIGdldE5leHQgcmVxdWVzdHMgd2l0aCBPSURzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgoKMjAxMC0wMy0xNyAxMDoyNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNb3JlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgdHVuaW5nLgoKMjAxMC0wMy0xNiAxOTozMSAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQ29tcGlsZXMgbm93IHdpdGggTUlCIGNvbXBpbGVycyB0aGF0IGRvIG5vdCByZWNvZ25pemUgYSBkb3VibGUKICAgZGFzaCBhcyB0aGUgZW5kIG9mIGEgTUlCIGNvbW1lbnQuCgoyMDEwLTAzLTE2IDE5OjI3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4ZWQgdHdvIHN5bnRheCBlcnJvcnMuCgoyMDEwLTAzLTE2IDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgYnVnIGluIGdldE5leHQgaGFuZGxpbmcgdGhhdAogICBjb3VsZCBjYXVzZSB0aGUgTUlCIG91dHB1dCB0byBiZSB0cnVuY2F0ZWQuCgoyMDEwLTAzLTE2IDE4OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1hZGUgd2luRXh0RExMIGRlYnVnIG91dHB1dCBtb3JlIGRldGFpbGVkLgoKMjAxMC0wMy0xNiAxNToyNCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaDoKCiAgIE1hZGUgc3VyZSB0aGF0IEMrKyBwcm9ncmFtcyB0aGF0IGluY2x1ZGUgTmV0LVNOTVAgaGVhZGVyIGZpbGVzCiAgIGNvbXBpbGUgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjIwICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCAtLWRpc2FibGUtZGVwcmVjYXRlZCBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MTkgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgRGlzYWJsZSBhbGwgdGhlIHByaW50aW5nIGlmIGRlYnVnIG91dHB1dCBpcyBvZmYuCgoyMDEwLTAzLTE1IDAwOjE3ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNSAwMDowNyAgdGFuZGVycwoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgbWFrZSBzdXJlIGhlYWRlciBpZmRlZiBuYW1lIGlzIHVuaXF1ZQoKMjAxMC0wMy0xNCAyMTowNCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBhZGQgbWlzc2luZyBpbml0L3NodXRkb3duIHByb3RvdHlwZXMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTAzLTE0IDIxOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIG1vdmUgZGVidWcgbWVzc2FnZSBlYXJsaWVyCgoyMDEwLTAzLTE0IDIxOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX2luaXRfY29udGFpbmVyOyBmaXggY29tcGxlciB3YXJuaW5nCgoyMDEwLTAzLTE0IDIwOjUxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENvcnJlY3QgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuIGFuZCBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KICAgZm9yIHRoZSBORVRTTk1QX05PX0RFQlVHR0lORyBjYXNlCgoyMDEwLTAzLTE0IDE5OjEwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVuYW1lIGNlcnQgaW5pdC9zaHV0ZG93biBmdW5jczsgb25seSBjb21waWxlIGNlcnRfdXRpbHMgaWYKICAgdXNpbmcvaGF2ZSBTU0w7IGluaXQgY2VydHMgZnJvbSB0bHMgYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjYWxsIG5ldHNubXBfaW5pdF9vcGVuc3NsIGluc3RlYWQgb2YgbmV0c25tcF9pbml0X3Rsc2Jhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBvYmplY3RzIGluIHZlcnNpb24gMDggb2YgdGhlIGR0bHMgZHJhZnQKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLCBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24sICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIsIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGltcG9ydCBpbml0aWFsIGNvZGUgZm9yIGR0bHMgbWlicwoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqIG1pYnMvVExTVE0tTUlCLnR4dDoKCiAgIFRMU1RNLU1JQiBmcm9tIGRyYWZ0LWlldGYtaXNtcy1kdGxzLXRtLTA5LnR4dAoKMjAxMC0wMy0xNCAxNzoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBmZXcgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgRm9sbG93LXVwIGZvciByMTczODQ6IGNoYW5nZWQgTkVUU05NUF9EU19NQVhfU1VCSURTIGZyb20gNDAgdG8KICAgNDguCgoyMDEwLTAzLTE0IDEzOjUzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENoYW5nZXM6CiAgIC0gUmVtb3ZlZCAtV25vLWNoYXItc3Vic2NyaXB0cyBmcm9tIERFVkZMQUdTLiBVc2luZyBhIHZhcmlhYmxlIG9yCiAgIGV4cHJlc3Npb24gb2YKICAgdHlwZSBjaGFyIGFzIGFuIGFycmF5IGluZGV4IGlzIGFsbW9zdCBhbHdheXMgYW4gZXJyb3IuCiAgIEZ1cnRoZXJtb3JlLAogICAtV2NoYXItc3Vic2NyaXB0IGRvZXMgbm90IHRyaWdnZXIgYW55IHdhcm5pbmdzIG9uIHRoZSBOZXQtU05NUAogICBjb2RlIGJhc2UuCiAgIC0gUmVtb3ZlZCAtV2lubGluZSBmcm9tIERFVkZMQUdTLiBOb3Qgb25seSB3YXMgbm9ib2R5IHBheWluZwogICBhdHRlbnRpb24gdG8gdGhlCiAgIG1lc3NhZ2VzIHRyaWdnZXJlZCBieSAtV2lubGluZSwgYnV0IHJlY2VudCB2ZXJzaW9ucyBvZiB0aGUgZ2NjCiAgIGNvbXBpbGVyIGFyZQogICBiZXR0ZXIgdGhhbiBodW1hbnMgYXQgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBpbmxpbmVkCiAgIGFuZCB3aGljaAogICBvbmVzIG5vdC4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZXJhbiBhdXRvcmVjb25mLgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxMzozNiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZW1vdmVkIHRoZSAnMHgnIHByZWZpeCBhZ2FpbiBmcm9tIGEgZGVidWcgc3RhdGVtZW50IHRoYXQgd2FzCiAgIGludHJvZHVjZWQgaW4gcjE4MjgyLgoKMjAxMC0wMy0xMyAxOTowNyAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9wcHBvcnQuaCwgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUKICAgcGVybCBzdWJkaXJlY3RvcnkuCiAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4KCjIwMTAtMDMtMTMgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZSB0aGUgVExTVENQIERPTUFJTgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IGlmZGVmIHR5cG8KCjIwMTAtMDMtMTIgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBkZWJ1Z2dpbmcgc3ltYm9sIG5hbWVzIHRvIGEgZ2VuZXJpYyB0bHMgc3RyaW5nCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGluaXRpYWwgd29ya2luZyBTTk1QIG92ZXIgVExTIG92ZXIgVENQIGNvbm5lY3Rpb24KCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHByaW50IGEgbW9yZSBjb21wbGV0ZSBPcGVuU1NMIHN0YWNrCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCBhc3NlcnQgc3RhdGVtZW50cwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBhZGRlZCBhbiBhY2NlcHRlZF9iaW8gcG9pbnRlciBmb3IgdGhlIGJpbyBhZnRlciBTU0xfYWNjZXB0CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgdGhlIGFiaWxpdHkgZm9yIGZfY29weSBhbmQgZl9jb25maWcKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgbWlzc2luZyA7CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZCBhIGZfY29weSBwb2ludGVyCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHJldHVybiBpbnQgbm90IGludCAqIG9uIGVycm9yCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGEgZl9jb25maWcgZnVuY3Rpb24gZm9yIHRyYW5zcG9ydHMKCjIwMTAtMDMtMTIgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IFBBVENIOiAyODUwMDY3OiBTdXBwcmVzcyBleHRyYW5lb3VzICJpbmRleCIKICAgaGVhZGVyIHRva2VuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IERhbiBOZWxzb24KCjIwMTAtMDMtMTIgMTE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YKICAgZ2V0dWxvbmdmcm9tc3lzY2xhc3NuZXRzdGF0aXN0aWNzKCkKCjIwMTAtMDMtMTEgMTY6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGZvcm1hdCBvZiB0aGUgLWUvLUUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgoyMDEwLTAzLTExIDE2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAoYWJhbmRvbmVkKSAnZGF0YXNldDInIGhlbHBlci4KCjIwMTAtMDMtMTEgMTU6NTkgIGR0czEyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBEb24ndCBpbml0aWFsaXNlIHRoZSBUTFMgdHJhbnNwb3J0IHVubGVzcyBpdCdzIGFjdHVhbGx5IGJlZW4KICAgY29uZmlndXJlZCBpbi4KCjIwMTAtMDMtMTEgMTU6NDcgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICB1c2UgU05NUF9UTVBESVIgaW5zdGVhZCBvZiBUTVBESVIKCjIwMTAtMDMtMTEgMTU6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHF1ZXJ5IHJpZ2h0IGJvb2wgKHRzbSBwcmVmaXggaXMgbGliIGJvb2wsIG5vdCBhcHApCgoyMDEwLTAzLTExIDE1OjA4ICBkdHMxMgoKICAgKiAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjk1MjAzNDogUmV0dXJuIG9mIHRoZSBHcmVhdCBTdVNFICdzcHJpbnRmJwogICBIdW50Li4uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxNDo1NSAgZHRzMTIKCiAgICogbG9jYWwvdHJhcHRvZW1haWw6CgogICBDSEFOR0VTOiBQQVRDSDogMjkzNzk5NjogQWRkIERhdGU6IGhlYWRlciB0byBlbWFpbCBzZW5kIGJ5CiAgIHRyYXB0b2VtYWlsCgoyMDEwLTAzLTExIDE0OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY3NDAwOiBSZXRyaWV2ZSBlcnJvciBjb3VudGVycyBmb3IgdGhlCiAgIEV0aGVyTGlrZS1NSUIKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMuCgoyMDEwLTAzLTExIDE0OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njg2NDI6IENhdGNoIG92ZXJmbG93IG9mIHBhc3MtdGhyb3VnaAogICBjb21tYW5kIGJ1ZmZlci4KICAgUGF0Y2ggZnJvbSBBbmRyZWFzIEphZWdlci9MZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTI6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTU2NjU3OiBIYW5kbGUgb3Zlci1sZW5ndGggQWdlbnRYIE9JRHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYiBXZXN0CgoyMDEwLTAzLTExIDEyOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBkZWJ1ZyBwYXJhbWV0ZXIuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBQcm92aWRlIG1pc3NpbmcgKGR1bW15KSByZXR1cm4gdmFsdWUsIHRvIHN1cHByZXNzIGNvbXBpbGVyCiAgIHdhcm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3Mgb2YgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93LgogICBUaGlzIGRvZXNuJ3QgX2FjdHVhbGx5XyBwcm90ZWN0IGFnYWluc3Qgc3VjaCBhbiBvdmVyZmxvdywKICAgc2luY2UgdGhlIHRhcmdldCBidWZmZXIgaXMgbm9uLWVtcHR5LCBzbyBzdHJuY2F0IGNhbid0CiAgIHVzZSBpdCBhbGwgYW55d2F5LiBCdXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgbWlzbGVhZCB0aGUKICAgY29tcGlsZXIgc3VmZmljaWVudGx5IHRvIHNodXQgaXQgdXAhCiAgIAogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTE6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgUmVwbGFjZSBiYWNrcXVvdGUgd2l0aCBzaW5nbGUgcXVvdGUgaW4gY29uZmlndXJlIG91dHB1dCBtZXNzYWdlLgogICBXaGlsZSB0aGlzIGNoYW5nZSBpcyBwcm9iYWJseSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBpdCBmZWVscwogICBzZW5zaWJsZSB0byBhdm9pZCB0aGlzIHBhcnRpY3VsYXIgdXNlIG9mIGJhY2txdW90ZXMsIEp1c3QgSW4KICAgQ2FzZS4KICAgU2VlIGRpc2N1c3Npb24gaW4gUGF0Y2ggIzI5NTIxNjkKCjIwMTAtMDMtMTEgMTE6NDMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjk1MjE0MDogT3ZlcmZsb3cgY291bnRlcjMyIGFuZCBnYXVnZTMyCiAgIG9uIDY0Yml0IHN5c3RlbXMgY29ycmVjdGx5CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMTozNiAgZHRzMTIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyOTUyMDIwOiBFeHBsaWNpdGx5IHNldCBwZXJtaXNzaW9uIG9uCiAgIHRlbXBvcmFyeSB0ZXN0aW5nIG91dHB1dCBkaXJlY3Rvcmllcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvLgoKMjAxMC0wMy0xMSAxMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTA4NDU6IEZpeCBpZkhpZ2hTcGVlZCBjYWxjdWxhdGlvbgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMDg6MjYgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL09JRC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBNYWRlIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIG1vZHVsZSBOZXRTTk1QLnBtIG9uIFdpbmRvd3MgbW9yZQogICBzaWxlbnQ6IGFkZGVkIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MgYW5kIG1hZGUgc3VyZSB0aGF0ICNpbmNsdWRlCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gb2NjdXJzIGJlZm9yZSBhbnkgb3RoZXIgaW5jbHVkZSBmaWxlCiAgIHRoYXQgZGVmaW5lcyBfV0lOMzJfV0lOTlQuCgoyMDEwLTAzLTEwIDIzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNyZWF0ZSBpbmRleGVzIGZvciBjZXJ0aWZpY2F0ZXMgaW4gY29uZmlnIHBhdGgKCjIwMTAtMDMtMTAgMTg6NDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIEFkZGVkICIjaW5jbHVkZSA8dW5pc3RkLmg+IiBzdWNoIHRoYXQgb24gVW5peCBzeXN0ZW1zIHRoZQogICBjb21waWxlciBkb2VzIG5vdCBwcmludCBhIHdhcm5pbmcgYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvcgogICB0aGUgZnVuY3Rpb24gY2xvc2UoKS4KCjIwMTAtMDMtMTAgMTg6MzAgIHJzdG9yeQoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS42LmRldgoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBDSEFOR0VTOiBidWlsZGluZzogdXBkYXRlIFZlcnNpb24tTXVuZ2UgZm9yIHJlbmFtZWQgY29uZmlndXJlLmFjCgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHNhdmUgY29uZmlndXJlIGNhY2hlIGV2ZXJ5IG9uY2UgaW4gd2hpbGUKCjIwMTAtMDMtMTAgMTY6MTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBSZW9yZGVyZWQgc29tZSBvZiB0aGUgTWFrZWZpbGUgcnVsZXMgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhlCiAgIGRpZmZzIHdpdGggbGlic25tcF9kbGwvTWFrZWZpbGUuaW4uCgoyMDEwLTAzLTEwIDE2OjEwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyLCBiYXRjaCBidWlsZGluZzogRExMIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMTAgMTY6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcgYnkgYWRkaW5nIGEgZm9yd2FyZAogICBkZWNsYXJhdGlvbiBmb3IgdGhlIGZ1bmN0aW9uIF9jYWNoZV9mcmVlKCkuCgoyMDEwLTAzLTEwIDE2OjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFdpbjMyLgoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBtaXNzaW5nIGNvbnRyaWJ1dG9ycwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBwb3RlbnRpYWwgZG91YmxlIGZyZWUgaW4gQ09OVEFJTkVSX0ZSRUUKICAgLSBhbHNvIGFkZGVkIHNldmVyYWwgY29tcGFyZSByb3V0aW5lcwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGZyZWVpbmcgYSBjYWNoZSwgc3RvcCB0aW1lciBhbmQgY2FsbCBjYWNoZQogICBmcmVlIGZ1bmMKICAgLSBhbHNvIGFkZCBuZXRzbm1wX2NhY2hlX3JlbW92ZQoKMjAxMC0wMy0xMCAwMzo1MiAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1bmRvIGNvbW1pdCAxODIzNAoKMjAxMC0wMy0xMCAwMzo0MSAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBNZXJnZSBicmFuY2ggJ3B1bGxtZScgb2YgLi4vdHJ1bmstc3RhZ2luZwoKMjAxMC0wMy0wOSAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9yZWFkX21vZHVsZSgpIGZyb20gbmV0c25tcC5kbGwKICAgc3VjaCB0aGF0IE5ldFNOTVAucG0gYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0wOSAxNzo0NyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgU2ltcGxpZmllZCB0d28gbWFrZWZpbGVzIHVzZWQgYnkgYnVpbGQuYmF0IChXaW4zMikuCgoyMDEwLTAzLTA5IDE3OjI0ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogYnVpbGRpbmcgTmV0U05NUC5wbSBkb2VzIG5vIGxvbmdlcgogICB0cmlnZ2VyIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHJlZGVmaW5pbmcgX1dJTjMyX1dJTk5UIG5vcgogICBOVERESV9WRVJTSU9OLgoKMjAxMC0wMy0wOSAxNzoyMiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIE5ldFNOTVAucG0gbW9yZSBzaWxlbnQgYnkKICAgYWRkaW5nIHRoZSBNU1ZDIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MuCgoyMDEwLTAzLTA5IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVtb3ZlIGRlYnVnIG1zZyB1c2VkIGR1cmluZyBkZWJ1Z2dpbmcKCjIwMTAtMDMtMDkgMTc6MDIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCB3cmFwcGVyIC0gdGVzdGluZyByZXBvIHdyaXRlIHByaXZzCgoyMDEwLTAzLTA5IDEwOjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgZHVwbGljYXRlIGJ1aWxkIHJ1bGVzLiBUaGVzZSBkdXBsaWNhdGUgcnVsZXMgd2VyZQogICBoYXJtbGVzcyBidXQgdHJpZ2dlcmVkIGEgd2FybmluZy4KCjIwMTAtMDMtMDkgMDI6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkaXJlY3RvcnkgY29udGFpbmVyIGVuaGFuY2VtZW50cwogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKICAgLSBhZGQgZmlsdGVyIGNhbGxiYWNrIHRvIGZpbHRlciBmaWxlcyByZXR1cm5lZAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIHJlbGF0aXZlIGFuZCBub3QgZnVsbCBwYXRocwogICAtIGFkZCBvcHRpb24gdG8gc29ydCByZXR1cm5lZCBsaXN0CiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gZW1wdHkgY29udGFpbmVyIGluc3RlYWQgb2YgTlVMTCBpZiBubwogICBmaWxlcyBmb3VuZAogICAtIGNoYW5nZSBkZWZhdWx0IGNvbnRhaW5lciBuYW1lIHRvIGRpcmVjdG9yeSB0aGF0IHdhcyBzY2FubmVkCiAgIC0gdHdlYWsgZGVidWcvbG9nIG1lc3NhZ2VzCgoyMDEwLTAzLTA4IDIzOjA3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IGRlZmluZSBhbmQgdXNlIG5ldyBORVRTTk1QX0xPR09OQ0UgbWFjcm8KCjIwMTAtMDMtMDggMjI6NDQgIHJzdG9yeQoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNvbmYgZmlsZXMgY2FuIG5vdyBpbmNsdWRlIG90aGVyIGNvbmYgZmlsZXMKICAgLSBhbHNvIHR3ZWFrZWQgZGVidWcgdG9rZW5zIGhlcmUgYW5kIHRoZXJlCgoyMDEwLTAzLTA4IDIyOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IHR5cG8gKGNhdXNlZCBleHRlcm5hbCByZWZlcmVuY2Ugd2hlbiBEVExTVURQIGNvbmZpZ3VyZWQKICAgd2l0aG91dCBkdGxzdGNwKQoKMjAxMC0wMy0wNiAwMjoyNyAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldHNubXBfY29udGFpbmVyIGVuaGFuY2VtZW50czoKICAgLSBhZGQgZnJlZV9pdGVtIGZ1bmN0aW9uOyBkZWZhdWx0cyB0bwogICBuZXRzbm1wX2NvbnRhaW5lcl9zaW1wbGVfZnJlZQogICAtIGFkZCBDT05UQUlORVJfRlJFRV9BTEwgbWFjcm8vZnVuY3Rpb24gKGxpa2UgQ09OVEFJTkVSX0NMRUFSIGJ1dAogICBjYWxscyBjb250YWluZXIgZnJlZV9pdGVtIGZvciBlYWNoIGl0ZW0gaW4gcHJpbWFyeSBjb250YWluZXIpCiAgIC0gYWRkIGFiaWxpdHkgdG8gc2V0IG9wdGlvbnMgb24gYmluYXJ5X2FycmF5IGNvbnRhaW5lcnMKCjIwMTAtMDMtMDIgMTc6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBNYWRlIHN1cmUgdGhhdCB3aW4zMi9idWlsZC5iYXQgd29ya3MgYWdhaW4gYnkgYWRkaW5nIG1pc3NpbmcKICAgc291cmNlIGZpbGUgbmFtZXMuIFNvcnRlZCBzb3VyY2UgZmlsZSBuYW1lcyBhbHBoYWJldGljYWxseSB0b28uCgoyMDEwLTAzLTAyIDE2OjU0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IHRoZSBiYXRjaCBmaWxlIHdpbjMyL2J1aWxkLmJhdAogICB3b3JrcyBhZ2FpbiB3aXRoIHRoZSBQbGF0Zm9ybSBTREsgZW5hYmxlZC4KCjIwMTAtMDMtMDIgMTY6NTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL01ha2VmaWxlLWFwcHMuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODIxNSAocmVwbGFjZWQgdGhlIG9ic29sZXRlIGNsLmV4ZSBvcHRpb24gL0dYIGJ5CiAgIHRoZSBlcXVpdmFsZW50IC9FSHNjOyBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiLCBhZGRlZAogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiBhbmQgcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWCkuCgoyMDEwLTAyLTI4IDE1OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFdpbjMyOiBmaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgcmVkZWZpbml0aW9uIG9mCiAgIF9XSU4zMl9XSU5OVCBieSBtYWtpbmcgc3VyZSB0aGF0IDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gaXMKICAgaW5jbHVkZWQgYmVmb3JlIDx3aW5kb3dzLmg+LgoKMjAxMC0wMi0yOCAxNToyNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSAvR1ggYnkgdGhlCiAgIGVxdWl2YWxlbnQgL0VIc2MuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIgogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiB0byBtYWtlIGJ1aWxkaW5nIHdpdGggTVNWQyAyMDA4CiAgIG1vcmUgc2lsZW50LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVguIFRoZXNlCiAgIG9wdGlvbnMgaW5mbHVlbmNlIGhvdyBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMgYXJlIGdlbmVyYXRlZCwKICAgd2hpY2ggYXJlIG5vdCB1c2VkIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdC4gL1lYIGlzIG5vdAogICBzdXBwb3J0ZWQgYnkgTVNWQyAyMDA4LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgYSBkdXBsaWNhdGUgb2NjdXJyZW5jZSBvZgogICBzdHJ0b3VsbC5vYmouCgoyMDEwLTAyLTI4IDE0OjExICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiBhcHBsaWVkIHRoZSBuZWNlc3NhcnkgY2hhbmdlcyB0bwogICB0aGUgd2luMzIvQ29uZmlndXJlIHNjcmlwdCBhbmQgd2luMzIvTWFrZWZpbGUuaW4uCgoyMDEwLTAyLTI3IDEzOjExICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsICAgCiAgICAgIHNubXBsaWIvZ2V0b3B0LmMsIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3dpbnBpcGUuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGRlY2xhcmVkIGFsbCBmdW5jdGlvbnMgdGhhdCBhcmUgZXhwb3J0ZWQgZnJvbSB0aGUKICAgTmV0LVNOTVAgRExMIGFzIE5FVFNOTVBfSU1QT1JULiBUaGUgcmVzdWx0IGlzIGEgbWlub3IKICAgb3B0aW1pemF0aW9uOiBjb2RlIHRoYXQgdXNlcyB0aGUgTmV0LVNOTVAgRExMIHdpbGwgbm93IGNhbGwgdGhlCiAgIERMTC1leHBvcnRlZCBmdW5jdGlvbnMgZGlyZWN0bHkgaW5zdGVhZCBvZiBpbmRpcmVjdGx5IHZpYSB0aGUKICAgc3R1YiBpbiB0aGUgaW1wb3J0IGxpYnJhcnkuCgoyMDEwLTAyLTI3IDExOjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBSZW1vdmVkIGEgcmVkdW5kYW50IHN0cm5jYXNlY21wKCkgZGVjbGFyYXRpb24uCgoyMDEwLTAyLTI3IDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRva19yLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wMi0yNyAwOTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODkgKHJzdG9yeSk6IGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzLgoKMjAxMC0wMi0yNSAxNzo1MyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgUmV2ZXJ0ZWQgcjE4MjA3IChkc3AvZHN3IHRvIHZjcHJvai9zbG4gY29udmVyc2lvbikgZXhjZXB0IHRoZQogICBzdXBwcmVzc2lvbgogICBsaXN0IGNoYW5nZXMuIFRoZSBnb2FsIG9mIHRoaXMgY29udmVyc2lvbiB3YXMgdHdvZm9sZDogbm90IG9ubHkKICAgdG8gYmUgYWJsZQogICB0byBsb2FkIHRoZSBwcm9qZWN0IGZpbGVzIGluIE1TVkMgMjAwMiAtIDIwMDggYnV0IGFsc28gdG8gYmUgYWJsZQogICB0byBjb21taXQKICAgY2hhbmdlcyBtYWRlIGZyb20gaW5zaWRlIHRoZSBNU1ZDIDIwMDggSURFLiBVbmZvcnR1bmF0ZWx5CiAgIGNvbnZlcnRpbmcgZHNwL2RzdwogICBmaWxlcyB0byB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggTVNWQyAyMDA4IG1ha2VzIGl0IGltcG9zc2libGUgdG8KICAgbG9hZCB0aGUKICAgdmNwcm9qL3NsbiBmaWxlcyB3aXRoIGVhcmxpZXIgTVNWQyB2ZXJzaW9ucy4gV2h5IG9uIGVhcnRoIGRpZAogICBNaWNyb3NvZnQKICAgZGVjaWRlIHRvIHB1dCBhIHZlcnNpb24gbnVtYmVyIGluIFhNTCBmaWxlcyA/CgoyMDEwLTAyLTI0IDE5OjQxICBidmFzc2NoZQoKICAgKiAgd2luMzIsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIHdpbjMyL2xpYmFnZW50LCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycywgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgd2luMzIvbGlibmV0c25tcHRyYXBkLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIHdpbjMyL2xpYnNubXAsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgd2luMzIvbmV0c25tcG1pYnMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCB3aW4zMi9zbm1wYnVsa2dldCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIHdpbjMyL3NubXBidWxrd2FsaywgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YSwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLAogICAgICAgICB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQsIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCB3aW4zMi9zbm1wbmV0c3RhdCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQsICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIHdpbjMyL3NubXB0YWJsZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIHdpbjMyL3NubXB0cmFwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIHdpbjMyL3NubXB1c20sICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgd2luMzIvc25tcHdhbGssICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICAocmV2ZXJ0ZWQpIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogY29udmVydGVkIC5kc3AvLmRzdyBmaWxlcyB0bwogICAudmNwcm9qLy5zbG4gZmlsZXMuIFRoaXMgaW1wbGllcyB0aGF0IHN1cHBvcnQgZm9yIE1TVkMgNi4wIGhhcwogICBiZWVuIGRyb3BwZWQgYW5kIHRoZSBtaW5pbXVtIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHZlcnNpb24KICAgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGlzIE1pY3Jvc29mdCBWaXN1YWwKICAgU3R1ZGlvIC5ORVQgKDIwMDIpLgoKMjAxMC0wMi0yMyAxOTowMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogd2hlbiBnZW5lcmF0aW5nIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHN5c3RlbQogICBsb2NhdGlvbiBhbmQgbm8gZG9tYWluIG5hbWUgaXMgZm91bmQgaW4gL2V0Yy9yZXNvbHYuY29uZiwgdXNlCiAgICJAbm8ud2hlcmUiIGluc3RlYWQgb2YgIiIuCgoyMDEwLTAyLTIzIDE4OjUwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIG00L2FjX3Byb21wdF91c2VyLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIzIDE4OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBSZW1vdmVkIGFsbCB0cmFuc3BvcnQgdGVzdHMgc2luY2UgaXQncyBpbXBvc3NpYmxlIHRvIGRldGVybWluZQogICB3aGVyZSB0aGV5IGNhbiBzYWZlbHkgb3BlcmF0ZSAod2FzIHN0b3BwaW5nIHRhbmRlcnMnIG5pZ2h0bHkKICAgdGVzdHMgZnJvbSBzdWNjZWVkaW5nKQoKMjAxMC0wMi0yMyAxODo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGVycm9yIGFuZCBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdGhlIHNlcnZlciBjb250ZXh0IGdlbmVyYXRvciB0byBhY3R1YWxseSwgdW0sIHJldHVybiB0aGUKICAgY29udGV4dC4KCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGluaXRpYWxpemUgdGhlICdyZXMnIHZhcmlhYmxlIHNpbmNlIGl0J3MgY2hlY2tlZAoKMjAxMC0wMi0yMyAxODozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIHByb2dyZXNzIHRvd2FyZCBhIHJlYWwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHRsc3RjcCBjdG9yIGludm9jYXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICByZXF1aXJlIFRMU0Jhc2UKCjIwMTAtMDItMjMgMTg6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgaG9zdCBpZGVudGlmaWVyIGFzIG91dHB1dAoKMjAxMC0wMi0yMyAxODozNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNpZ25pZmljYW50IG1vcmUgd29yayBvbiB0aGUgVExTIFRDUCBkb21haW4KCjIwMTAtMDItMjMgMTc6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTkzIChqc2FmcmFuZWspOiByZXJhbiBhdXRvcmVjb25mIGZvciB0aGUgdHJ1bmsKICAgYW5kIHRoZSA1LjUgYnJhbmNoLgoKMjAxMC0wMi0yMyAxNDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBORVRTTk1QX1BSSXogaW5zdGVhZCBvZiAlegoKMjAxMC0wMi0yMyAxMjoyNyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEZpeGVkIGNvbXBpbGF0aW9uIHdpdGggcnBtLTQuNi4KICAgVHVybiBvbiB0aGUgbGVnYWN5IEFQSSB3aGVuIHJwbS00LjYgaXMgZGV0ZWN0ZWQuCgoyMDEwLTAyLTIzIDA3OjM4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4MDAwIChkaXNhYmxpbmcgU0lHQUxSTSBzdXBwb3J0KSBiZWNhdXNlIHRoaXMgaW52b2x2ZXMKICAgYSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZS4KCjIwMTAtMDItMjMgMDA6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDItMjMgMDA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWJ1ZyBtc2cgdHdlYWtzOyB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucwogICAtIGFkZCBkZWJ1ZyBoZWFkZXIgZm9yIHNubXAgdmVyc2lvbgogICAtIGFkZCBsZW5ndGggdG8gZGVidWcgc2VuZC9yZWNlaXZlIG1lc3NhZ2VzCiAgIC0gdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMgZm9yIHNlbmQvcmVjdi9maW5kaW5nIHBlZXIgYWRkcmVzcwoKMjAxMC0wMi0yMyAwMDoyNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nLCBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kICYKICAgbmV0c25tcF90cmFuc3BvcnRfcmVjdgogICAtIG1vdmVzIHRyYW5zcG9ydCBtYW5pcHVsYXRpb24gaW50byB0cmFuc3BvcnQgY29kZQogICAtIGNlbnRyYWwgcGxhY2UgZm9yIGxvZ2dpbmcvZGVidWdnaW5nIHNlbnQvcmVjZWl2ZWQgZGF0YQoKMjAxMC0wMi0yMiAxOTozMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMiAxOToyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg2LiBSZWdyZXNzaW9uIHRlc3QgMzQgKHdoZXRoZXIgYXV0aGVudGljYXRpb24KICAgZmFpbHVyZSB0cmFwcyBhcmUgc2VudCBieSBzbm1wZCkgcGFzc2VzIG5vdyBhZ2Fpbi4KCjIwMTAtMDItMjIgMDk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSBzdXJlIHRoYXQgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHVyZSBkb2VzCiAgIG5vdCBjcmVhdGUgZGFuZ2xpbmcgcG9pbnRlcnMgaW4gdGhlIE1JQiBzdWJ0cmVlIHJlZ2lzdHJ5LgoKMjAxMC0wMi0yMiAwOToxMSAgYnZhc3NjaGUKCiAgICogYWdlbnQsIGFwcHMsIGFwcHMvc25tcG5ldHN0YXQ6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTIyIDA4OjQyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmU6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjEzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1pbkdXIHdoZW4gSVB2NiBzdXBwb3J0IGlzIGVuYWJsZWQuCgoyMDEwLTAyLTIxIDE4OjU4ICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi93aW4zMmRsbC5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHJlbmFtZWQgbGlic2RsbC5kc3cgaW50byB3aW4zMmRsbC5kc3cuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCBsaW5raW5nIHRoZSBOZXQtU05NUAogICBhcHBsaWNhdGlvbnMgd2l0aCBuZXRzbm1wLmRsbCBieSBhZGRpbmcgYWxsIGFwcGxpY2F0aW9uIHByb2plY3RzCiAgIHRvIHRoZSBzYW1lIHdvcmtzcGFjZSB0aGF0IGlzIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBETEwuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBuZXRzbm1wLmRsbCBsZXNzIGVycm9yCiAgIHByb25lIGJ5IGxldHRpbmcgdGhlIGNvbXBpbGVyIHByaW50IGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlCiAgIHByZXByb2Nlc3NvciBzeW1ib2wgTkVUU05NUF9VU0VfRExMIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wMi0yMSAxODo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBBZGRlZCBsaWJzbm1wLmRlZiB0byB0aGUgbGlzdCBvZgogICBsaWJzbm1wX2RsbC5kc3Agc291cmNlIGZpbGVzIHN1Y2ggdGhhdCB0aGUgRExMIGlzIHJlYnVpbHQgd2hlbgogICB0aGUgLmRlZiBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkLgoKMjAxMC0wMi0yMSAxODo0NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfc2V0X2xpbmVfYnVmZmVyaW5nKCkgZnJvbQogICBuZXRzbm1wLmRsbC4KCjIwMTAtMDItMjEgMTc6MzkgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vcmUgV2luMzIgSVB2NiBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudHM6CiAgIC0gTW92ZWQgI3VuZGVmIEhBVkVfSUZfTkFNRVRPSU5ERVggZnJvbSBzbm1wbGliLyouYyB0bwogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC4KICAgLSBDaGFuZ2VkIHRoZSBnbG9iYWwgaW42YWRkcl9hbnkgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBzdWNoIHRoYXQKICAgbXVsdGlwbGUgZGVmaW5pdGlvbnMgZG8gbm90IHRyaWdnZXIgYSBsaW5rZXIgZXJyb3IuCiAgIC0gQWRkZWQgdHlwZWRlZnMgZm9yIHVpbnQ4X3QsIGludDhfdCwgdWludDE2X3QgYW5kIGludDE2X3QuCiAgIC0gUmVwbGFjZWQgJyNpZiBORVRTTk1QX0VOQUJMRV9JUFY2JyBieSAnI2lmZGVmCiAgIE5FVFNOTVBfRU5BQkxFX0lQVjYnLgoKMjAxMC0wMi0yMSAwODozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYzoKCiAgIG1ha2Ugc3VyZSB0aGF0IElOQUREUl9OT05FIGlzIGRlZmluZWQgKGZpeGVzIGJ1aWxkIGVycm9yIG9uCiAgIFNvbGFyaXMpCgoyMDEwLTAyLTE5IDE5OjM5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFN5bmNocm9uaXplZCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBhbmQKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTAyLTE5IDE0OjE4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBXaW4zMjogbGlic25tcCBidWlsZHMgYWdhaW4gYXMgYSBETEwgd2hlbiBJUHY2IGlzCiAgIGVuYWJsZWQuCgoyMDEwLTAyLTE5IDEzOjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MTY0OiBzeW5jaHJvbml6ZWQgbGlic25tcC5kZWYuaW4gd2l0aAogICBsaWJzbm1wLmRlZgoKMjAxMC0wMi0xOSAwOTowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYWRkZWQgI2luY2x1ZGUgPG1hbGxvYy5oPiBpbgogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQgdGhlIE1TVkMgY29tcGlsZXIKICAgZG9lc24ndCBnZXQgY29uZnVzZWQgYnkgdGhlIG1hbGxvYyByZWRlZmluaXRpb24gd2hlbiBidWlsZGluZwogICBsaWJzbm1wIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnRlZCBuZXRzbm1wX3BhcnNlX2FyZ3MoKSBzdWNoIHRoYXQgdGhlIE5ldC1TTk1QIGFwcGxpY2F0aW9ucwogICBidWlsZCBhZ2FpbiB3aGVuIGxpYnNubXAgaXMgYnVpbHQgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtb3ZlZCBNU1ZDIE9wZW5TU0wgbGlua2VyIHNldHRpbmdzIGZyb20KICAgc25tcGxpYi9rZXl0b29scy5jIHRvIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdAogICB0aGVzZSBzZXR0aW5ncyBhcmUgbm90IG9ubHkgZWZmZWN0aXZlIHdoZW4gYnVpbGRpbmcgc25tcGxpYiBhcyBhCiAgIHN0YXRpYyBsaWJyYXJ5IGJ1dCBhbHNvIHdoZW4gYW55IE5ldC1TTk1QIGFwcGxpY2F0aW9uIGlzIGJ1aWx0CiAgIHRoYXQgbGlua3Mgd2l0aCBzbm1wbGliIGFzIGEgc3RhdGljIGxpYnJhcnkgb3IgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjMyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBXaW4zMiBjbGVhbnVwOiBNU1ZDIC8gRExMIHRlc3RzIG5vdyB1c2UgdGhlIG9mZmljaWFsbHkgZW5kb3JzZWQKICAgbWFjcm8gbmFtZXMuCgoyMDEwLTAyLTE5IDA3OjUwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBCdWlsZHMgYWdhaW4uCgoyMDEwLTAyLTE5IDA2OjQ3ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSDogMjk0Mjk0MDogZnJvbSAiQmlsbCBGZW5uZXIiOiBBZGQgYSBuZXcKICAgZnVuY3Rpb24sIG5ldHNubXBfcGFyc2VfYXJncywgdGhhdCBpcyBsaWtlIHNubXBfcGFyc2VfYXJncyBidXQKICAgdGFrZXMgYW4gYWRkaXRpb25hbCBiaXRtYXNrLCBmbGFncywgdG8gYWZmZWN0IHRoZSBiZWhhdmlvdXIuIEFsc28KICAgcmVtb3ZlIHRoZSBtYWdpYyBoYW5kbGluZyBvZiBzb21lIGFwcGxpY2F0aW9uIG5hbWVzLgoKMjAxMC0wMi0xOCAxNDoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvYmluOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0xOCAxNDoyMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBTb3J0ZWQgbmFtZXMgb2Ygc291cmNlIGZpbGVzIGFscGhhYmV0aWNhbGx5LgoKMjAxMC0wMi0xOCAxMzowMyAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHdpbjMyL25ldHNubXBtaWJzc2RrLCAgIAogICAgICB3aW4zMi9zbm1wZHNkaywgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBkcm9wcGVkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIE5ldC1TTk1QIHdpdGgKICAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wIHdpdGhvdXQgcGxhdGZvcm0gU0RLLiBCdWlsZGluZwogICBOZXQtU05NUCB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCArIFBTREsgb3IgYW55IGxhdGVyCiAgIHZlcnNpb24gb2YgTVNWQyBpcyBzdGlsbCBwb3NzaWJsZSBob3dldmVyLgogICAKICAgTm90ZTogaWYgaW4gdGhlIGZ1dHVyZSBmb3Igd2hhdGV2ZXIgcmVhc29uIGl0IHNob3VsZCBiZWNvbWUKICAgbmVjZXNzYXJ5IGFnYWluIHRvIGJlIGFibGUgdG8gYnVpbGQgTmV0LVNOTVAgd2l0aCBNU1ZDIHdpdGhvdXQKICAgcmVseWluZyBvbiB0aGUgcGxhdGZvcm0gU0RLIGhlYWRlcnMsIHBsZWFzZSAjaWZkZWYgb3V0IHRoZSBNSUIKICAgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgUFNESyBoZWFkZXJzIGluc3RlYWQgb2Ygc3BsaXR0aW5nIHRoZQogICB3b3Jrc3BhY2UgZmlsZXMgYWdhaW4uCgoyMDEwLTAyLTE4IDEyOjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgZG9zMnVuaXguCgoyMDEwLTAyLTE4IDA5OjQ1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIFNvdXJjZSBjb2RlIGNsZWFudXA6CiAgIC0gTW92ZWQgZG9jdW1lbnRhdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldCBtZW1iZXJzIHRvIHRoZQogICBjb21tZW50CiAgIGJsb2NrIGp1c3QgYWJvdmUgdGhlIGRlZmluaXRpb24gb2YgdGhpcyB0eXBlLgogICAtIFJlbW92ZWQgc3VwZXJmbHVvdXMgJ2V4dGVybiAiQyInIHNwZWNpZmllcjogdGhpcyBsaW5rYWdlCiAgIHNwZWNpZmllcgogICBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gZGVjbGFyYXRpb25zIG9mIHZhcmlhYmxlcyBvZiBmdW5jdGlvbnMgYW5kCiAgIG5vdAogICBvbiB0eXBlZGVmcyBvciBzdHJ1Y3QgZGVmaW5pdGlvbnMuCiAgIC0gUmFuIHRoaXMgaGVhZGVyIGZpbGUgdGhyb3VnaCBpbmRlbnQuCgoyMDEwLTAyLTE4IDA5OjI2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIENoYW5nZXM6CiAgIC0gQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KICAgLSBGaXhlZCBhIGZldyBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBNU1ZDIChwYXNzaW5nIGludAogICBpbnN0ZWFkIG9mIHVfc2hvcnQgdG8gaHRvbnMoKSAvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0aGF0IHdlcmUKICAgbWlzc2luZyBiZWNhdXNlIG9mIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlcykuCgoyMDEwLTAyLTE2IDE3OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBXaW4zMjogVGhlIGhlYWRlciBmaWxlIDxzeXMvdGltZWIuaD4gaXMgbm8gbG9uZ2VyCiAgIGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LiBPcjogdGhlIGhlYWRlciBmaWxlCiAgIDxzeXMvdGltZWIuaD4gd2lsbCBoYXZlIHRvIGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkgaW4gc291cmNlIGZpbGVzCiAgIHRoYXQgbmVlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIGZ0aW1lKCkuCiAgIAogICBOb3RlOiBjb21wYXJlZCB0byByMTgwMjQgYW5kIGJlZm9yZSwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgYWZmZWN0CiAgIEJTRCBzeXN0ZW1zIC0tIDxzeXMvdGltZWIuaD4gd2FzIG9ubHkgaW5jbHVkZWQgZnJvbQogICA8bmV0LXNubXAvdHlwZXMuaD4gb24gQlNEIHN5c3RlbXMgaW4gcmV2aXNpb25zIHIxODAyNS4ucjE4MTUyLgoKMjAxMC0wMi0xNCAxOToyOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKCiAgIEJ1aWxkcyBub3cgb24gRnJlZUJTRCB2ZXJzaW9uIDguMC4KCjIwMTAtMDItMTMgMjA6NTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgQWRqdXN0IHRoZSBwbGFjZW1lbnQgb2YgOydzIGluIG9yZGVyIHRvCiAgIGEpIEF2b2lkIHdhcm5pbmdzIGFib3V0IHNwdXJpb3VzIHNlbWljb2xvbnMKICAgYikgTm90IGhhdmUgdW50ZXJtaW5hdGVkIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzCgoyMDEwLTAyLTEyIDAyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogdXBkYXRlIGlubGluZSBkb2N1bWVudGF0aW9uOyBhZGQgc3RvcmFnZXR5cGUgdGVzdAogICBmb3IgY29sdW1ucwoKMjAxMC0wMi0xMiAwMTo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHR5cG8gaW4gZGVmaW5lCgoyMDEwLTAyLTEyIDAxOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBzZWQgcHJvY2Vzc2luZyBvbiB3aGl0ZS1zcGFjZSBhZGRpbmcgc29sYXJpcyBtYWNoaW5lcwoKMjAxMC0wMi0xMCAyMzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBhZGQgdG9wIHNyY2RpciB0byBjcHAgc2VhcmNoIHBhdGgKCjIwMTAtMDItMTAgMjM6NTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGZyZWVic2QgbmVlZHMgdGltZS5oIGFib3ZlIHRpbWViLmgKCjIwMTAtMDItMTAgMjM6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgdXNlIHNlZCB3aXRoIG11bHRpcmVwbGFjZSBvbiBhIGxpbmUgdG8gZml4IHBvc3NpYmxlIHdoaXRlc3BhY2UKICAgaXNzdWUgb24gc29sYXJpcwoKMjAxMC0wMi0xMCAyMzoyMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgd29yayBmb3IgVExTIHNlcGFyYXRpb24gaW50byBzZXBhcmF0ZSBmaWxlcyB3aXRoIGEgYmFzZQogICBmaWxlCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6CgogICBtb3ZlIGJhc2UgdHJhbnNwb3J0IGNyZWF0aW9uIGZ1bmN0aW9uIG91dCBvZiBsaW51eCBpZmRlZnMKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBhbm90aGVyIGVycm9yIGxvZ2dpbmcgZnVuY3Rpb24KCjIwMTAtMDItMTAgMjM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkZWQgVExTIG92ZXIgVENQCgoyMDEwLTAyLTEwIDE2OjM5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogTGludXg6IEltcHJvdmVkIEV0aGVyTGlrZS1NSUIgc3VwcG9ydAogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycwoKMjAxMC0wMi0xMCAxMDowNCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogU3VwcG9ydCBudWxsLWJ5dGVzIGluIG9jdGV0IHN0cmluZ3MKICAgUGF0Y2ggc3VwcGxpZWQgYnkgVG9tbXkgQmVhZGxlCgoyMDEwLTAyLTEwIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIFRMUyBpbmZyYXN0cnVjdHVyZSBpbnRvIGEgYmFzZSBkb21haW4gZmlsZQoKMjAxMC0wMi0xMCAwMDowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldDYgZnVuY3Rpb25zIHRvIHRoZSBpcHY2IGJhc2UKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdoaXRlIHNwYWNlIGZvcm1hdHRpbmcKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHVkcF9zZW5kL3JlY3YgdG8gdWRwYmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZSBuZXRzbm1wX3NvY2tfYnVmZmVyX3NldCBpbnRvIHNvY2tldGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBtb3ZlIGlwdjQgc3BlY2lmaWMgVURQIHRyYW5zcG9ydCBjcmVhdGlvbiB0byB1ZHBpcHY0IGJhc2UKCjIwMTAtMDItMTAgMDA6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbWFkZSBjb21tb24gZnVuY3Rpb25zIGJlIHJlZmVyZW5jZWQgZGlyZWN0bHkgYnkgdGhlIHRyYW5zcG9ydHMKICAgYW5kIHJlbW92ZWQgb3JpZ2luYWwgZnVuY3Rpb25hbGl0eTsgdGhleSB3ZXJlIHN0YXRpYyBzbyB0aGVyZSBpcwogICBubyBiYWNrd2FyZHMgY29tcGF0IGlzc3VlcwoKMjAxMC0wMi0xMCAwMDowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldCBiYXNlZCBjbG9zZSB0byBhIHNvY2tldCBiYXNlZCBkb21haW4gY29tbW9uIHRvIG1hbnkKICAgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBtb3ZlIFRDUCBjb21tb24gZnVuY3Rpb25zIHRvIGEgVENQQmFzZSBkb21haW4gaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMDkgMjM6NTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB0bVN0YXRlUmVmZXJlbmNlIHNob3VsZCBiZSB1c2luZyB0aGUgaW5kZXhlZCBhZGRyX3BhaXIKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1ha2UgbmV0c25tcF9kdGxzdWRwX2Nsb3NlIG1ha2UgdXNlIG9mIG5ldHNubXBfYmFzZXVkcF9jbG9zZQoKMjAxMC0wMi0wOSAyMzo1NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBiYXNlIFVEUCBzb2NrZXQgY3JlYXRpb24gaW50byBhIGNvbW1vbiBiYXNlIGZ1bmN0aW9uIGFuZAogICBtYWRlIHVzZSBvZiBpdAoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaDoKCiAgIHByb3BlciBfSCBpZmRlZiBjaGVja3MKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIGFkZGVkIGEgcmF3IFVEUCBiYXNlIGRvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY3JlYXRlZCBhIFVEUCBJUHY0IGJhc2U7IG1vdmVkIGFuZCByZXVzZWQgbW9yZSBpbmZyYXN0cnVjdHVyZQoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgaXB2NCBhZGRyZXNzIGZvcm1hdHRpbmcgaW50byBzbm1wSVB2NEJhc2VEb21haW4KCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MCAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBOZXcgSVB2NCBhbmQgSVAgYmFzZSB0cmFuc3BvcnQgZmlsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGRvbid0IGRvdWJsZSBpbmNsdWRlIHRyYW5zcG9ydCBtb2R1bGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBhbmQgcmVwb3J0IGNvbmZpZ19lcnJvcnMgaW4gdHJhbnNwb3J0IGhlYWRlcnMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgYWxsb3cgYSBORVRTTk1QX1FVSUNLX0NIRUNLIGVudiB2YXJpYWJsZSB0byBieXBhc3MgaGVhZGVyIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYmV0dGVyIGNvbW1lbnRzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGluIHRyYW5zcG9ydCBoZWFkZXJzIGZvcgogICBmb3JjZS1pbmNsdWRpbmcgb2Ygb3RoZXIgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjQxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZGVmaW5lIGEgc3RhbmRhcmRpemVkIGluZGV4ZWQgYWRkcl9wYWlyIGluc3RlYWQgb2YgdXNpbmcgb25lCiAgIGxhYmVsZWQgb25seSBmb3IgVURQIGV2ZXJ5d2hlcmUKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHRyYW5zcG9ydCBwcmVmaXggbGlzdCBmb3IgaW5jb21pbmcgbWVzc2FnZXMKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcmVtb3ZlIHRoZSBzZWN1cml0eSBsZXZlbCBmcm9tIHRoZSBUU00gY2FjaGU7IHByZXZpb3VzIGV4aXN0ZW5jZQogICBmcm9tIGZyb20gYSBkcmFmdCBjb3B5IG9mIHRoZSBUU00gUkZDIGFuZCBpcyBub3cgc3RvcmVkIGVudGlyZWx5CiAgIGluIHRoZSB0bSByZWZlcmVuY2UKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IGluY29taW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgb3V0Z29pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIGNyZWF0ZSBkZWZpbmVkIHNpemVkIGFycmF5IGFuZCBsZW5ndGggdmFyaWFibGUKCjIwMTAtMDItMDUgMDk6NTIgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgZmlsZWRlc2NyaXB0aW9yIGxlYWsgaW4gRXRoZXJsaWtlLU1JQiBhbmQKICAgUk1PTi1NSUIKCjIwMTAtMDItMDQgMTU6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcmVwb3J0IHJlYWwgaWZTcGVlZCBvZiBuZXR3b3JrIGludGVyZmFjZSBldmVuIGl0CiAgIGlzIGRvd24uCiAgIFNvbWUgaW50ZXJmYWNlcyBjYW4gcmVwb3J0IHRoZWlyIHJlYWwgc3BlZWQsIGV2ZW4gdGhleSBhcmUgZG93bi4KICAgQW5kIGlmIHRoZXkgY2FuJ3QsIHRoZSBmYWxsYmFjayB0byAxME1icHMgaXMgc3RpbGwgdGhlcmUuCgoyMDEwLTAyLTAxIDE0OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgZmlsZQogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMuCgoyMDEwLTAyLTAxIDE0OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgcHJvY2VkdXJlIGZvciBidWlsZGluZwogICB3aXRoIFNOTVB2MyBzdXBwb3J0IGVuYWJsZWQgKE9wZW5TU0wpLgoKMjAxMC0wMi0wMSAxNDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFsbCBjYWxscyB0byBmcmVlKCkgYXJlIGludGVyY2VwdGVkIHdoZW4gYnVpbGRpbmcKICAgd2l0aCBkbWFsbG9jCiAgIHN1cHBvcnQgZW5hYmxlZC4gSW5jbHVkZWQgPGRtYWxsb2MuaD4gaW4gdGhvc2Ugc291cmNlIGZpbGVzIHdoZXJlCiAgIGl0IHdhcyBub3QKICAgeWV0IGluY2x1ZGVkLCBhbmQgcHJvdmlkZWQgYSB3cmFwcGVyIGZ1bmN0aW9uIGZvciBmcmVlKCkgd2hlcmUKICAgdGhlIGFkZHJlc3Mgb2YKICAgdGhpcyBmdW5jdGlvbiB3YXMgdGFrZW4gKERtYWxsb2MgY2FuIG9ubHkgaW50ZXJjZXB0IGZyZWUoKSB3aGVuCiAgIGl0IGlzIGNhbGxlZAogICBkaXJlY3RseSBidXQgbm90IHdoZW4gaXQgaXMgY2FsbGVkIHRocm91Z2ggYSBmdW5jdGlvbiBwb2ludGVyKS4KCjIwMTAtMDItMDEgMTA6NDkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBCdWlsZGluZyBOZXQtU05NUCB3aXRoIGRtYWxsb2Mgc3VwcG9ydCBlbmFibGVkIGlzCiAgIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wMi0wMSAwMTowNSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItUCB0Y3AiJyB3b3JrcyBmaW5lIG5vdwoKMjAxMC0wMS0zMSAwODowMiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzI6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgYW4gc2ggc3ludGF4IGVycm9yIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0CiAgIHRoYXQgd2FzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdpdGhvdXQgbGliY3J5cHRvIGFuZCB3aXRob3V0CiAgIGxpYmVheTMyLgogICBUaGUgZm9sbG93aW5nIGVycm9yIHdhcyByZXBvcnRlZDoKICAgY29uZmlndXJlWzMzMTM2XTogeDogdW5rbm93biB0ZXN0IG9wZXJhdG9yCgoyMDEwLTAxLTI5IDIwOjA3ICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRWxhYm9yYXRlIG9uIHJldi4gMTgwODkgYW5kIGFkanVzdCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byB0aGUKICAgKiAgICAqcmVhbGx5IHdvcmtpbmcgb25lKi4gIDIwMTAtMDEtMjkgMTk6MTEgIGpzYWZyYW5lawoKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRml4IHRlc3QgMzUgd2hlbiBjb25maWd1cmUgb3B0aW9uICctLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4nIHdhcwogICB1c2VkIGFuZCB0aGUgZGlyZWN0b3J5IGZvciB0ZW1wLiBmaWxlcyBkb2VzIG5vdCBleGlzdCB5ZXQuCgoyMDEwLTAxLTI5IDE1OjA3ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvY2xvc2VkaXIuYywgICAKICAgICAgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9vcGVuZGlyLmMsIHNubXBsaWIvcmVhZGRpci5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgTW92ZWQgdGhlIHNvdXJjZSBjb2RlIG9mIHRoZSBvcGVuZGlyKCksIHJlYWRkaXIoKSwgY2xvc2VkaXIoKSBhbmQKICAgZ2V0dGltZW9mZGF5KCkgcmVwbGFjZW1lbnRzIGZvciBNU1ZDIGZyb20gc25tcGxpYi9zeXN0ZW0uYyB0bwogICBzZXBhcmF0ZSBzb3VyY2UgZmlsZXMgaW4gc25tcGxpYi4KCjIwMTAtMDEtMjkgMDg6NTcgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDb25maWd1cmUgc2NyaXB0IGNvbnNpc3RlbmN5IGltcHJvdmVtZW50OiByZW5hbWVkIHRoZSB2YXJpYWJsZQogICAic2F2ZWRfTElCUyIgaW50byAibmV0c25tcF9zYXZlX0xJQlMiLgoKMjAxMC0wMS0yOSAwNjozOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIHRoZSBzaXplIG9mIHN1bl9wYXRoIGFuZCB1c2UgdGhhdCB0bwogICBnZW5lcmF0ZSB0aGUgbWF4aW1hbCBzaXplIHN0cmluZ3MgZm9yIHN0cmVzc2luZyBjb20yc2VjdW5peC4KCjIwMTAtMDEtMjcgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIE5FV1M6IE1pbkdXOiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3Qgc3VpdGUgaXMgYWdhaW4gcG9zc2libGUKICAgKCdtYWtlIHRlc3QnKS4KCjIwMTAtMDEtMjcgMTQ6NDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBDeWd3aW46IGJ1aWxkaW5nIHdpdGggYW5vdGhlciBPcGVuU1NMIHBhY2thZ2UgdGhhbiB0aGUKICAgQ3lnd2luLXByb3ZpZGVkIHBhY2thZ2VzIG9wZW5zc2wgYW5kIG9wZW5zc2wtZGV2ZWwgaXMgYWdhaW4KICAgcG9zc2libGUuCiAgIE5FV1M6IE1pbkdXOiBidWlsZGluZyB3aXRoIE9wZW5TU0wgd29ya3MgYWdhaW4uCgoyMDEwLTAxLTI2IDIxOjI3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgY29udGV4dCBhcmd1bWVudCBvZiBzZW5kX3YzdHJhcCwKICAgc2VuZF90cmFwX3ZhcnNfd2l0aF9jb250ZXh0IGFuZCBuZXRzbm1wX3NlbmRfdHJhcHMgcmVmZXIgdG8gYQogICBjb25zdCBjaGFyKi4KCjIwMTAtMDEtMjYgMjE6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzoKCiAgIENvcnJlY3QgbWlzc3BlbGxpbmcgLSAjZWxzaWYgdG8gI2VsaWYKCjIwMTAtMDEtMjYgMjE6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQXBwYXJlbnRseSBub3QgYWxsIHN5c3RlbXMgZGVmaW5lIElORVRfQUREUlNUUkxFTiBzbyBhZGQgaXQgaWYgaXQKICAgaXMgbWlzc2luZy4KCjIwMTAtMDEtMjYgMTU6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBZGRlZCBuZXRzdGF0IHBhdGggZm9yIE1pbkdXLgoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggc3RhdCBuYW1lcwoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1cGRhdGUgY29tbWVudHMgdG8gcmVmbGVjdCBSRkM1NTkxIGFzIHRoZSBkb2N1bWVudCBkZXNjcmliaW5nIHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMS0yNiAxMTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmg6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogYnl0ZSBvcmRlciBvZiB1ZHBMb2NhbFBvcnQgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDEwLTAxLTI2IDEwOjQ2ICBidmFzc2NoZQoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogZml4ZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSAoIm1ha2UKICAgdGVzdCIpLiBUaGlzIGhhcyBiZWVuIGZpeGVkIGJ5IHVzaW5nIHRoZSBwcm9wZXIgZW52aXJvbm1lbnQKICAgc2VwYXJhdG9yIGNoYXJhY3RlciBhbmQgYnkgYWRkaW5nIHRoZSBwYXRoIG9mIHRoZSBuZXRzdGF0CiAgIGV4ZWN1dGFibGUgZm9yIEN5Z3dpbiBpbiB0ZXN0aW5nL1RFU1RDT05GLnNoLgoKMjAxMC0wMS0yNiAwOToyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiByZWFkaW5nIFJQTQogICBkYXRhYmFzZS4KICAgT2xkIHJwbSB2ZXJzaW9ucyByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEhlYWRlciB3aGVuIGFub3RoZXIgUlBNCiAgIGluc3RhbmNlIGhvbGRzCiAgIGRhdGFiYXNlIGxvY2tzLiBJLmUuIHNubXBkIHNvbWV0aW1lcyBjcmFzaGVzIHdoZW4gcmVhZGluZwogICBocl9zd0luc3QgYW5kIHJwbSBpcwogICBpbnN0YWxsaW5nL3VwZGF0aW5nL3JlbW92aW5nIGFub3RoZXIgcGFja2FnZS4gQXMgYSBzb2x1dGlvbiwKICAgd2hvbGUgUlBNIGNhY2hlCiAgIGlzIHRocm93biBhd2F5IGFuZCByZS1yZWFkIHdoZW4gd2UgZ290IGFuIGVycm9yIGZyb20gbGlicnBtLiBUaGUKICAgd2hvbGUgcHJvY2VzcwogICBpcyByZXN0YXJ0ZWQgb25seSB0aHJlZSB0aW1lcywgdG8gcHJldmVudCBlbmRsZXNzIGxvb3AuCgoyMDEwLTAxLTI1IDIyOjE2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogRG8gbm90IGNoZWNrIGlmIHZhbHVlcyBvZiB0eXBlIHNpemVfdAogICBhcmUgbGVzcyB0aGFuIDAuCgoyMDEwLTAxLTI1IDIyOjExICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBDaGVjayB0aGUgcmFuZ2Ugb2Ygb2lkIHZhbHVlcyB0b3dhcmRzIHRoZSBtYXhpbXVtCiAgIG9pZCB2YWx1ZSwgbm90VUxPTkdfTUFYCgoyMDEwLTAxLTI1IDIwOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIG9ubHkgYmFpbCBvbiBtaXNzaW5nIGxpYmlwaGxwYXBpIGZvciB4d2luc29jazIKCjIwMTAtMDEtMjUgMTk6NTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVuYW1lIE1BWF9TVEFUUyB0byBORVRTTk1QX1NUQVRfTUFYX1NUQVRTCgoyMDEwLTAxLTI1IDE5OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYzoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljczsgY2hlY2sgZm9yIGluZGV4CiAgIG92ZXJmbG93CgoyMDEwLTAxLTI1IDE5OjQ0ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuaDoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljcwoKMjAxMC0wMS0yNSAxNjowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1c2UgKmN1cnJlbnQqIGNvcHkgb2YgdGhlIE1JQiB3aGVuIGdlbmVyYXRpbmcgc3RhdHMKCjIwMTAtMDEtMjUgMTY6MDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaDoKCiAgIG1vdmUgc25tcF9nZXRfc3RhdGlzdGljIGhlbHBlciB0byBoZWxwZXJzIGRpcjsgdXBkYXRlIGFsbF9oZWxwZXJzCiAgIGhlYWRlcgoKMjAxMC0wMS0yNSAxNDozNCAgYnZhc3NjaGUKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBSZXBsYWNlZCBleHBsaWNpdCBkZWNsYXJhdGlvbnMgb2Ygb3B0aW5kLCBvcHRvcHQgYW5kIG9wdGFyZyBieQogICAjaW5jbHVkZSA8dW5pc3RkLmg+IGJlY2F1c2UgZXhwbGljaXRseSBkZWNsYXJpbmcgdGhlc2UgdmFyaWFibGVzCiAgIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQ3lnd2luLgoKMjAxMC0wMS0yNSAxNDoyNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBORVdTOiBDeWd3aW46IElQdjYgaXMgb25seSBzdXBwb3J0ZWQgdW5kZXIgQ3lnd2luIDEuNyBvciBsYXRlci4KICAgVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQgaW4gTmV0LVNOTVAgdW5kZXIgQ3lnd2luCiAgIGludm9sdmVkIGEgc3RyYW5nZSBtaXh0dXJlIG9mIEN5Z3dpbiBhbmQgV2luc29jazIgc29ja2V0IGNhbGxzLAogICB3aGljaCB3YXMgdG9vIGhhcmQgdG8gbWFpbnRhaW4uCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRzIGFnYWluIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQKICAgKC0tZW5hYmxlLWlwdjYpLiBBdCBsZWFzdCBOZXQtU05NUCA1LjUgZG9lc24ndCBidWlsZCB1bmRlciBDeWd3aW4KICAgd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZC4gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgcmVwb3J0ZWQKICAgImNoZWNraW5nIGlwdjYgc3RhY2sgdHlwZSAuLi4gcmVzdWx0OiAidW5rbm93biwgbm8iIC4uLiBlcnJvcjoKICAgSVB2NiB0cmFuc3BvcnRzIG5vdCBhdmFpbGFibGUgaWYgSVB2NiBzdXBwb3J0IGlzIG5vdCBlbmFibGVkIi4KCjIwMTAtMDEtMjUgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIDxzdHJpbmcuaD4uCgoyMDEwLTAxLTI1IDE0OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgdGhlIElQdjYgc3RhY2sgaW5jbHVkZWQgaW4gQ3lnd2luCiAgIHZlcnNpb24gMS43LgogICBJUHY2IHN1cHBvcnQgaXMgb25lIG9mIHRoZSBuZXcgZmVhdHVyZXMgb2YgQ3lnd2luIDEuNy4gRm9yIG1vcmUKICAgaW5mb3JtYXRpb24sCiAgIHNlZSBhbHNvIGh0dHA6Ly9jeWd3aW4uY29tL2N5Z3dpbi11Zy1uZXQvb3YtbmV3MS43Lmh0bWwuCgoyMDEwLTAxLTI1IDEyOjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBDeWd3aW46IHRoZSBtZXNzYWdlICJjb25maWd1cmU6IFdBUk5JTkc6IHdpbnNvY2suaDoKICAgcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiBkb2VzIG5vIGxvbmdlciBhcHBlYXIgd2hlbgogICBydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0LgogICBGb2xsb3ctdXAgZm9yIHIxODA1MDogcmUtZW5hYmxlZCBsaWJpcGhscGFwaSBhbmQgaXBobHBhcGkuaCB0ZXN0cwogICBmb3Igbm9uLU1pbkdXIHBsYXRmb3JtcyBzaW5jZSB0aGUgQ3lnd2luIGJ1aWxkIG5lZWRzIHRoZXNlLgoKMjAxMC0wMS0yNSAwNzoyOCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgc25tcGxpYi9pbmV0X250b3AuYywgIAogICAgICAgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgYXV0b2NvbmYgdG8gZGVjaWRlIGlmIGluZXRfbnRvcC5jIGFuZAogICBpbmV0X3B0b24uYyBhcmUgdG8gYmUgY29tcGlsZWQuCgoyMDEwLTAxLTI1IDA3OjA5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIENIQU5HRVM6IE1pbkdXOiBzdHJ1Y3Qgc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY29uZmlndXJlIHRlc3QKICAgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjUgMDU6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgVExTVE0gY291bnRlciBzdGF0cwoKMjAxMC0wMS0yNSAwNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgaW4gVFNNIG5lZWRlZCBjb3VudGVyIGRlZmluaXRpb25zCgoyMDEwLTAxLTI1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVFNNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRTTS1NSUIKCjIwMTAtMDEtMjQgMTQ6NDMgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIE5FV1M6IHNubXBkOiBNYWRlIHN1YnRyZWVfY29udGV4dF9jYWNoZTo6Y29udGV4dF9uYW1lIGEgY29uc3QKICAgY2hhciouCgoyMDEwLTAxLTI0IDE0OjI3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvcgogICBORVRTTk1QX1JFTU9WRV9DT05TVAoKMjAxMC0wMS0yNCAxMzoyNyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBQcmVmZXIgdG8gdXNlIGEgdmFyaWFibGUgb2YgdGhlIHJpZ2h0IHR5cGUgb3ZlcgogICBhbiB1Z2x5IGNhc3QuIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIGFzIHdlbGwuCgoyMDEwLTAxLTI0IDEyOjU5ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbnRyb2R1Y2VkIHRoZSB2YXJpYWJsZSAnd2l0aF9zb2NrbGliJyBpbiB0aGUKICAgY29uZmlndXJlIHNjcmlwdC4gVGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiBmb3IgTWluR1cKICAgYW5kIHRvICJkZWZhdWx0IiBmb3IgYWxsIG90aGVyIHN5c3RlbXMuIFdpbnNvY2syIHRlc3RzIGFyZSBvbmx5CiAgIHJ1biBpZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIChNaW5HVykuCgoyMDEwLTAxLTI0IDEyOjUzICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgZGVidWcgbG9ncy4KCjIwMTAtMDEtMjQgMTI6NDUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXhlczogZml4ZWQgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8KICAgdW5zaWduZWQgY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWtlIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKQogICBkZWNsYXJhdGlvbnMKICAgYXZhaWxhYmxlIHRvIHRoZSBjb21waWxlci4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFkZSBzdXJlIHRoYXQgPHdzMnRjcGlwLmg+IHdpbGwKICAgYmUgaW5jbHVkZWQKICAgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluCiAgIGFib3V0IHN0cnVjdAogICBzb2NrYWRkcl9pbjYgYmVpbmcgdXNlZCBiZWZvcmUgYmVpbmcgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTE6NDIgIGJ2YXNzY2hlCgogICAqIG1hbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDEtMjQgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa2dldC5jLCAgIAogICAgICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCAgIAogICAgICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgICAKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBDbGVhbnVwIChXaW5kb3dzKTogcmVtb3ZlZCBzdXBlcmZsdW91cyAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAgIGRpcmVjdGl2ZXMuIFRoaXMgaGVhZGVyIGZpbGUKICAgaGFzIG9ubHkgdG8gYmUgaW5jbHVkZWQgZnJvbSBzbm1wbGliL3N5c3RlbS5jIGJlY2F1c2Ugb2YgdGhlCiAgIF9mdGltZSgpIGNhbGwgaW4gdGhhdCBmaWxlLgoKMjAxMC0wMS0yNCAxMDo0MyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBUaGUgbWFjcm8gJ0MoKScgbm93IGNhc3RzIGl0cyByZXN1bHQgZnJvbSB1bnNpZ25lZCBsb25nIHRvCiAgIHVuc2lnbmVkIGludC4KICAgVGhpcyBjaGFuZ2UgZml4ZXMgYSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBmb3JtYXQgc3BlY2lmaWNhdGlvbgogICBtaXNtYXRjaGVzCiAgIGFuZCBmaXhlcyBhIGJ1ZyAoaW5jb3JyZWN0IHNubXBuZXRzdGF0IG91dHB1dCkgb24gYmlnIGVuZGlhbgogICBzeXN0ZW1zLgoKMjAxMC0wMS0yNCAxMDozMyAgYnZhc3NjaGUKCiAgICogbWFuL2NvbmZpZ19hcGkuMzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTQ2OiByZW1vdmVkIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbQogICByZXBvc2l0b3J5LgoKMjAxMC0wMS0yNCAxMDozMSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNb3ZlZCB0d28gZGVjbGFyYXRpb25zIG9mIHN0YXRpYyBmdW5jdGlvbnMgZnJvbSAuaCB0byAuYy4KCjIwMTAtMDEtMjQgMTA6MjEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cy4KCjIwMTAtMDEtMjQgMTA6MTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGJ1aWxkcyBhZ2FpbiB3aGVuIEhBVkVfR0VUQUREUklORk8gaXMgbm90CiAgIGRlZmluZWQuCgoyMDEwLTAxLTI0IDEwOjAzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgIAogICAgICBzbm1wbGliL2luZXRfbnRvcC5oLCBzbm1wbGliL2luZXRfcHRvbi5jLCBzbm1wbGliL2luZXRfcHRvbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0cyBmb3IgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpLgogICAtIEFkZGVkIGhlYWRlciBmaWxlcyBzbm1wbGliL2luZXRfbnRvcC5oIGFuZCBzbm1wbGliL2luZXRfcHRvbi5oLgogICAtIFJlcGxhY2VkICJleHRlcm4gaW5ldF9udG9wKC4uLik7IiBhbmQgImV4dGVybiBpbmV0X3B0b24oLi4uKTsiCiAgIGJ5ICNpbmNsdWRlICJpbmV0X250b3AvcHRvbi5oIi4KICAgLSBDb252ZXJ0ZWQgc25tcGxpYi9pbmV0X250b3AuYyBhbmQgc25tcGxpYi9pbmV0X3B0b24uYyBmcm9tIEsmUgogICBDIHRvIEFOU0kgQy4KICAgLSBSZXBsYWNlZCB0aGUgaW5ldF9hdG9uKCkgY2FsbHMgdGhhdCB3ZXJlIGludHJvZHVjZWQgaW4gcjE4MDMzCiAgIGluIHNubXBsaWIvc25tcFVEUERvbWFpbi5jIGJ5IGluZXRfcHRvbigpIGNhbGxzIHN1Y2ggdGhhdCBpdCBpcwogICBhZ2FpbiBwb3NzaWJsZSB0byBidWlsZCBOZXQtU05NUCBvbiBXaW5kb3dzLgoKMjAxMC0wMS0yNCAwNjowOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucyB0aGF0IGRvbid0CiAgIGV4aXN0IG9yIGFyZSBkZWNsYXJlZCBlbHNld2hlcmUuCgoyMDEwLTAxLTI0IDA1OjQ4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmVkIHRoZSB1bnVzZWQgdmFyaWFibGVzIHdhcm1fc3RhcnRfb2lkLAogICBsaW5rX2Rvd25fb2lkLCBsaW5rX3VwX29pZCwgYXV0aF9mYWlsX29pZCBhbmQgZWdwX3h4eF9vaWQuCgoyMDEwLTAxLTIzIDIyOjA2ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmV0dGVyIHNldCBvZiBTS0lQSUYvU0tJUElGTk9UUwoKMjAxMC0wMS0yMyAyMDozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmUgY29ycmVjdCBpbiB3aGF0IGl0IGlzIHRoYXQgaXMgdGVzdGVkIGluIHRoZSBoZWFkZXIuCgoyMDEwLTAxLTIzIDIwOjI3ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgY29tMnNlYyBkaXJlY3RpdmVzIHRvIGZhaWwgaWYgdGhlcmUKICAgYXJlIHRvbyBmZXcgYXJndW1lbnRzLiBBZGRpdGlvbmFsbHkgY2hhbmdlZCB0aGUgc3RvcmFnZSBzdHJ1Y3R1cmUKICAgdG8gbm90IGFsbG9jYXRlIG1vcmUgc3BhY2UgdGhhbiBuZWNlc3NhcnkuCgoyMDEwLTAxLTIzIDIwOjIyICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgbmV3IHRlc3RzIGNoZWNraW5nIHRoZSBlcnJvciBoYW5kbGluZyBvZiB0aGUgY29tMnNlYyogZGlyZWN0aXZlcwoKMjAxMC0wMS0yMyAxOToxNyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDI1OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjMgMTc6NTEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IE9TIGhlYWRlciBkZXRlY3Rpb24gY2hlY2sgaXMgbm93IHJ1biBiZWZvcmUKICAgSVB2NiBzdGFjayBkZXRlY3Rpb24uCiAgIENIQU5HRVM6IFNvbGFyaXM6IHNvY2thZGRyX2luNi5zaW42X2FkZHIgY29uZmlndXJlIHRlc3QgZG9lcyBub3cKICAgd29yay4KCjIwMTAtMDEtMjMgMTc6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBGaXhlZCBhIFNvbGFyaXMtc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDEtMjMgMTc6MDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIE1pbkdXOiBhZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgPHN5cy90aW1lYi5oPiBhbmQgYWxzbyBmb3Igc3RydWN0CiAgIHRpbWV6b25lLgoKMjAxMC0wMS0yMyAxNjozMiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTWluR1c6IG1hZGUgc3VyZSB0aGF0IHRoZSBJUHY2LXJlbGF0ZWQgZGF0YXR5cGVzIGFyZSBhdmFpbGFibGUKICAgYmVmb3JlIGJlaW5nIHVzZWQuCgoyMDEwLTAxLTIzIDE2OjMwICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgI3VuZGVmIEhBVkVfV0lORE9XU19ILgoKMjAxMC0wMS0yMyAxNjoyOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nCiAgIHByb3RvdHlwZSBmb3IgaXNkaWdpdCgpLgoKMjAxMC0wMS0yMyAxNjoyNCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIE1pbkdXOiBpcGhscGFwaS5oIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTIzIDE1OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBSZW5hbWVkIHRoZSBXaW5zb2NrMiBJUHY2IHN0YWNrIGZyb20gJ21pbmd3JyBpbnRvICd3aW5zb2NrMicuCgoyMDEwLTAxLTIzIDE1OjA3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBiZXR3ZWVuIHRoZSBzdXBwb3J0ZWQgV2luMzIgY29tcGlsYXRpb24KICAgZW52aXJvbm1lbnRzIGFzIGZvbGxvd3M6CiAgIC0gTWFkZSBzdXJlIHRoYXQgdGhlIDx3aW5zb2NrMi5oPiBhbmQgPHdzMnRjcGlwLmg+IGhlYWRlciBmaWxlcwogICBhcmUgb25seSBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBjb25maWd1cmUgY2hlY2sgZm9yIDxpcGhscGFwaS5oPi4KICAgLSBSZXBsYWNlZCBzZXZlcmFsIFdJTjMyIC8gY3lnd2luIHRlc3RzIGJ5IGEgSEFWRV9JUEhMUEFQSV9ICiAgIHRlc3QuCiAgIC0gRG9jdW1lbnRlZCB0aGF0IHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGlzIG9ubHkgdXNlZAogICBmb3IgdGhlIE1TVkMgYnVpbGQuCgoyMDEwLTAxLTIyIDE2OjQ2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxMDogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KICAgNi4KCjIwMTAtMDEtMjIgMTY6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oOgoKICAgRm9sbG93IHVwIGZvciByMTgwMTY6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMiAxNDoxMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDE2OiBtYWRlIE1pbkdXIGxpYmlwaGxwYXBpIGNoZWNrIG1vcmUgcm9idXN0LgoKMjAxMC0wMS0yMiAxMzozMiAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgYWNsb2NhbC5tNCwgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCAgIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAKICAgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBNaW5HVzogd2luRXh0RExMIGNvbXBpbGVzIG5vdyB1bmRlciBNaW5HVy4KICAgQ0hBTkdFUzogTWluR1c6IGJ1aWxkaW5nIE5ldC1TTk1QIHdvcmtzIGFnYWluLgogICAKICAgRGV0YWlsZWQgb3ZlcnZpZXc6CiAgICogQ2hhbmdlcyBpbiB0aGUgY29uZmlndXJlIHNjcmlwdDoKCiAgIC0gc29ja2V0KCkgbGlicmFyeSBjaGVjayBwYXNzZXMgYWdhaW4gb24gTWluR1cuCiAgIC0gQWRkZWQgbGlicmFyeSBjaGVja3MgZm9yIGxpYndzMl8zMiwgbGlicmVnZXggYW5kIGxpYnNubXBhcGkuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSB3aW5zb2NrMi5oIGFuZCB3czJ0Y3BpcC5oIGhlYWRlciBmaWxlcy4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIGNob3duKCkgYW5kIGxvY2FsdGltZV9yKCkgZnVuY3Rpb25zLgogICAtIHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNoZWNrIGRvZXMgbm93IHdvcmsgb24gTWluR1cuCiAgIC0gQWRkZWQgSVB2NiBzdGFjayB0eXBlIGNhbGxlZCAibWluZ3ciLgogICAqIFNvdXJjZSBjb2RlIGNoYW5nZXM6CgogICAtIEluY2x1ZGUgPHdpbnNvY2syLmg+IGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IGluc3RlYWQgb2YKICAgPHdpbnNvY2suaD4KICAgdW5kZXIgTWluR1cgc3VjaCB0aGF0IElQdjYgc3VwcG9ydCBpcyBhdmFpbGFibGUuCiAgIC0gTW92ZWQgI2luY2x1ZGUgPHdpbnNvY2suaD4gZnJvbSAuYyBmaWxlcyB0byA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgYSBjb3B5IG9mIHRoZSBNaW5HVyBoZWFkZXIgZmlsZSA8c25tcC5oPiAod2hpY2ggaXMgbm90CiAgIGNvcHlyaWdodGVkKQogICBhcyB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLgogICAtIGFnZW50OiBvbmx5IGNhbGwgY2hvd24oKSB3aGVuIGF2YWlsYWJsZSAoSEFWRV9DSE9XTikuCiAgICogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzOiB1cGRhdGVkIFJFQURNRS53aW4zMi4KCgoyMDEwLTAxLTIyIDA4OjM0ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY2FzdCBmcm9tIGNoYXIqIHRvIGNoYXIqCgoyMDEwLTAxLTIyIDAwOjM5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IGZpbGUgdXBkYXRlIGZvciBTUEFSVEEsIEluYy4KCjIwMTAtMDEtMjIgMDA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgYWRkIHByb3BlciBwcmVmaXhlcyBpbiBUU00gZm9yIFNTSCwgRFRMUywgZXRjLCBiYXNlZCBvbiB0aGUKICAgZG9tYWluCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYWRkZWQgNS41IGJyYW5jaAoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtaW5vciBlY2hvIG91dHB1dCBjaGFuZ2UKCjIwMTAtMDEtMjEgMjA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNvbW1lbnQgbmV4dCB0byBjb2RlIGl0IGlzIHRhbGtpbmcgYWJvdXQ7IE5vIGNvZGUgY2hhbmdlCgoyMDEwLTAxLTIxIDE0OjU1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5MjYzNzQ6IGZyb20gRWQgU3dpZXJrOiBmaXhlZCByZWFkaW5nIG9mCiAgIGlwQWRkcmVzc1RhYmxlIGZyb20gL3Byb2MvbmV0L2lmX2luZXQ2IG9uIExpbnV4CiAgIAogICBUaGUga2VybmVsIG1pZ2h0IHByb3ZpZGUgbG9uZ2VyIGZpZWxkcywgZXNwZWNpYWxseSBvbiA2NC1iaXQKICAgc3lzdGVtcy4KCjIwMTAtMDEtMjAgMTI6NDIgIGJ2YXNzY2hlCgogICAqIFBPUlRJTkcsIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGaXhlZCB0eXBvOiByZXBsYWNlZCAnbmVjaXNzYXJ5JyBieSAnbmVjZXNzYXJ5Jy4KCjIwMTAtMDEtMjAgMDg6NTMgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBGaXggbWlub3IgdHlwbyBpbiBtYW4gcGFnZSwgaXQncyBzbm1wbmV0c3RhdCAtQ3AsIG5vdCAtQ1AuCgoyMDEwLTAxLTE0IDEyOjM0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogZml4ZWQgbWVtb3J5IGxlYWsgaW4gUk1PTi1NSUIgYW5kIEVUSEVSTElLRS1NSUIgd2hlbgogICB0aGVyZSBhcmUgbXVsdGlwbGUgYWxpYXNlcyBvZiBhbiBuZXR3b3JrIGludGVyZmFjZQogICBSYXRpb25hbGU6IHRoZSBhbGlhc2VkIGludGVyZmFjZXMgaGF2ZSB0aGUgc2FtZSBpZkluZGV4IC0+CiAgIENPTlRBSU5FUl9JTlNFUlQgZmFpbHMsIGJ1dCB0aGUgcmVqZWN0ZWQgZW50cnkgd2FzIG5vdCBmcmVlZC4KCjIwMTAtMDEtMTMgMTE6MjEgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIGluIGlwQWRkcmVzc1ByZWZpeFRhYmxlCiAgIC0gbmV0X3NubXBfc2VhcmNoX3VwZGF0ZV9wcmVmaXhfaW5mbyByZXR1cm5zIGRpZmZlcmVudCBjb2RlLCB3aGVuCiAgIHRoZSBlbnRyeSB3YXMgbm90IGluc2VydGVkIHRvIGxpc3QgYW5kIGNhbiBiZSBmcmVlZC4KCjIwMTAtMDEtMTIgMDA6NTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkOiBydW4gcnBtIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGhyX3N3aW5zdCByZXdyaXRlCiAgIChycG0KICAgdmVyc2lvbiBvbmx5KQoKMjAxMC0wMS0xMSAyMzo1OCAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIFBFUkxMRE9QVFNfRk9SX0FQUFMgdG8gYWdlbnR4dHJhcCBsaW5rIGxpbmUgKGZpeGVzCiAgICJsaWJwZXJsLnNvIG5vdAogICBmb3VuZCIgZXJyb3JzKQoKMjAxMC0wMS0xMSAwMDoxMSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIGdldCByaWQgb2YgdXNpbmcgZGVwcmVjYXRlZCBzeW50YXggZm9yIHRyYXAvaW5mb3JtIHNpbmtzCgoyMDEwLTAxLTA4IDA4OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogb2Jzb2xldGVkIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRy4KICAgRnJvbSBub3cgb24gdXNpbmcgU0lHQUxSTSB0byB0cmlnZ2VyIE5ldC1TTk1QIGFsYXJtIGhhbmRsZXJzIGlzCiAgIG5vIGxvbmdlciBzdXBwb3J0ZWQuCiAgIAogICBNb3RpdmF0aW9uOiBhcyBrbm93biBsaWJuZXRzbm1wIHN1cHBvcnRzIHRpbWUtYmFzZWQgYWxhcm1zIHZpYQogICB0aGUgZnVuY3Rpb25zCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSwgcnVuX2FsYXJtcygpIGFuZCBvdGhlciBmdW5jdGlvbnMuIFR3bwogICBkaWZmZXJlbnQgd2F5cyB0bwogICB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkgYXJlIHN1cHBvcnRlZCBpbnNpZGUKICAgbGlibmV0c25tcDoKICAgMS4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUgdGltZW91dCBhcmd1bWVudCBvZiBzZWxlY3QoKSBpcyBzbWFsbAogICBlbm91Z2ggc3VjaAogICB0aGF0IHNlbGVjdCgpIHJldHVybnMgYmVmb3JlIHRoZSBuZXh0IGFsYXJtIG11c3QgYmUgaGFuZGxlZCAod2hlbgogICB0aGUKICAgdmFyaWFibGUgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldCB0byBvbmUsIHdoaWNoCiAgIGlzIHRoZQogICBkZWZhdWx0KS4KICAgMi4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUga2VybmVsIGZpcmVzIFNJR0FMUk0gYXQgdGhlIHRpbWUgd2hlbgogICBydW5fYWxhcm1zKCkKICAgc2hvdWxkIGJlIGNhbGxlZCAod2hlbiB0aGUgdmFyaWFibGUKICAgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldAogICB0byB6ZXJvLCB3aGljaCBoYXMgdG8gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5KS4KICAgCiAgIFRoZSBmb2xsb3dpbmcgaXNzdWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlY29uZCBhcHByb2FjaDoKICAgMS4gQWxhcm0gZnVuY3Rpb25zIGFyZSB1c2VkIGluc2lkZSBOZXQtU05NUCB0byBlLmcuIHJlZnJlc2gKICAgY2FjaGVkIHRhYmxlCiAgIGNvbnRlbnRzLiBBcyBmYXIgYXMgSSBjYW4gc2VlIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIE5ldC1TTk1QCiAgIHNvdXJjZSBjb2RlCiAgIHRoYXQgcHJldmVudHMgdGhlIGZvbGxvd2luZyBmcm9tIGhhcHBlbmluZzogYSB0YWJsZSByZWZyZXNoCiAgIHRyaWdnZXJlZCB2aWEKICAgU0lHQUxSTSB3aGlsZSBhIHJvdyBpcyBiZWluZyByZW1vdmVkIGZyb20gYSBjYWNoZWQgdGFibGUuIFRoaXMKICAgY2FuIHJlc3VsdAogICBpbiBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgZXZlbiBhIGNyYXNoLgogICAyLiBQT1NJWCByZXN0cmljdHMgc2lnbmFsIGhhbmRsZXJzIHRvIGNhbGxpbmcgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIGVpdGhlciByZWVudHJhbnQKICAgb3Igbm9uLWludGVycnVwdGlibGUKICAgKGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMveHNoX2NoYXAwMl8wNC5odG1sI3RhZ18wMl8wNCkuCiAgIFN0YW5kYXJkIEkvTyBmdW5jdGlvbnMgbGlrZSBwcmludGYoKSBhbmQgZnByaW50ZigpIGFyZSBuZWl0aGVyCiAgIHJlZW50cmFudCBub3IKICAgbm9uLWludGVycnVwdGlibGUuIHJ1bl9hbGFybXMoKSBpcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwKICAgaGFuZGxlciwgd2hpY2gKICAgbWVhbnMgdGhhdCB0aGlzIHJlc3RyaWN0aW9uIGFwcGxpZXMgdG8gdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKQogICBpdHNlbGYgYW5kCiAgIGFsbCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGl0ICh3aGljaCBpbmNsdWRlcyB0aGUgYWxhcm0gY2FsbGJhY2sKICAgZnVuY3Rpb25zKS4KICAgT3I6IGUuZy4gc25tcF9sb2coKSBhbmQgaXRzIGNhbGxlcnMgbXVzdCBub3QgYmUgY2FsbGVkIGZyb20KICAgaW5zaWRlIHJ1bl9hbGFybXMoKQogICB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBmcm9tIGluc2lkZSBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzCiAgIGlzIGEgc2V2ZXJlCiAgIHJlc3RyaWN0aW9uLCBhbmQgb25lIHRoYXQgaXMgaGFyZCB0byB3b3JrIHdpdGguCiAgIDMuIE5vdCBhbGwgc29mdHdhcmUgZGV2ZWxvcGVycyBrbm93IGhvdyB0byBtYWtlIHN1cmUgdGhhdCBzaWduYWwKICAgZGVsaXZlcnkgd29ya3MKICAgY29ycmVjdGx5IGluIGEgbXVsdGl0aHJlYWRlZCBjb250ZXh0LiBQT1NJWCBkb2VzIG5vdCBndWFyYW50ZWUgdG8KICAgd2hpY2ggdGhyZWFkCiAgIGEgc2lnbmFsIGxpa2UgU0lHQUxSTSB3aWxsIGJlIGRlbGl2ZXJlZCwgdW5sZXNzIHRoYXQgc2lnbmFsIGhhcwogICBiZWVuIGJsb2NrZWQKICAgYmVmb3JlIHRocmVhZCBjcmVhdGlvbiBhbmQgaXMgdW5ibG9ja2VkIGFmdGVyIHRocmVhZCBjcmVhdGlvbgogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9wdGhyZWFkX3NpZ21hc2suaHRtbCkuCiAgIFRoaXMgaXMgcmVsZXZhbnQgZm9yIHRoZSBOZXQtU05NUCBwcm9qZWN0IG5vdCBvbmx5IGJlY2F1c2UgYQogICB3b3JrZXIgdGhyZWFkIGlzCiAgIGNyZWF0ZWQgaW5zaWRlCiAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYyBidXQgYWxzbwogICBiZWNhdXNlIGxpYm5ldHNubXAgaXMgb2Z0ZW4gdXNlZCBpbnNpZGUgbXVsdGl0aHJlYWRlZCBzb2Z0d2FyZS4KICAgQ3VycmVudGx5IG5vCiAgIGF0dGVtcHQgaXMgbWFkZSB0byBtYWtlIHN1cmUgdGhhdCBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSB0aGUKICAgTmV0LVNOTVAgZXZlbnQKICAgcHJvY2Vzc2luZyBsb29wIHRocmVhZC4gSWYgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgYW5vdGhlcgogICB0aHJlYWQsIHRoaXMgd2lsbAogICByZXN1bHQgaW4gb25lIG9yIG1vcmUgZGF0YSByYWNlcy4KICAgCiAgIEJlY2F1c2UgYWxsIHRoZSBkaWZmaWN1bHRpZXMgYXNzb2NpYXRlZCB3aXRoIHByb2Nlc3NpbmcgYWxhcm1zCiAgIGZyb20gaW5zaWRlIGEKICAgc2lnbmFsIGhhbmRsZXIgZnVuY3Rpb24sIGFuZCBiZWNhdXNlIGZpeGluZyB0aGVzZSB3b3VsZCByZXF1aXJlCiAgIG1vcmUgZWZmb3J0IHRoYW4KICAgaXQgaXMgd29ydGgsIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBoYXMgYmVlbgogICBkZXByZWNhdGVkIGFuZCBmcm9tIG5vdwogICBvbiBhcHByb2FjaCAoMSkgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGFwcHJvYWNoIHRvIHRyaWdnZXIgYWxhcm0KICAgaGFuZGxlcnMuCgoyMDEwLTAxLTA3IDE5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUGF0Y2ggZnJvbSBTdGVwaGVuIEhlbW1pbmdlciB0byBmaXggYSBtaW5vciBtZW1sZWFrIGluIGNwdQogICBzeXNjdHJsIGZldGNoaW5nCgoyMDEwLTAxLTA3IDE2OjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgUmVtb3ZlZCByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCBhbmQgbWFkZSBzdXJlIHRoYXQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAnXDAnLXRlcm1pbmF0ZXMgdGhlIG91dHB1dCBidWZmZXIKICAgaW4gYWxsIGNhc2VzLgogICBVcGRhdGVkIGRvY3VtZW50YXRpb24gYW5kIHVuaXQgdGVzdHMuCgoyMDEwLTAxLTA3IDE0OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFJlbW92ZWQgdGhyZWUgc3VwZXJmbHVvdXMgY2FzdHMgYmVjYXVzZSB0aGVzZSB0cmlnZ2VyZWQgYQogICBjb21waWxlciB3YXJuaW5nCiAgIHdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDLgoKMjAxMC0wMS0wNyAxMzoyOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgdGhlIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgY2hhbmdlcyBmcm9tIHIxNzk5MgogICBiZWNhdXNlIHRoZXNlCiAgIGNhdXNlZCB0aGUgZm9sbG93aW5nIFZhbGdyaW5kIGNvbXBsYWludCBkdXJpbmcgc25tcGQgc3RhcnR1cDoKICAgCiAgID09MjUyMDE9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkCiAgIHZhbHVlKHMpCiAgID09MjUyMDE9PSBhdCAweDQwNDdCMTQ6IG5ldHNubXBfc2VuZF90cmFwcyAoYWdlbnRfdHJhcC5jOjc5OCkKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODEyODogc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycwogICAoYWdlbnRfdHJhcC5jOjg1MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODE5RDogc2VuZF90cmFwX3ZhcnMgKGFnZW50X3RyYXAuYzo5NjMpCiAgID09MjUyMDE9PSBieSAweDQwNDgyNUI6IHNlbmRfZWFzeV90cmFwIChhZ2VudF90cmFwLmM6MTAxMSkKICAgPT0yNTIwMT09IGJ5IDB4ODA0QjVEMjogbWFpbiAoc25tcGQuYzozOTQpCgoyMDEwLTAxLTA3IDEyOjMwICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA3IDEyOjE5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaDoKCiAgIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYXNzaWduaW5nIGEgY2hhciAqIHBvaW50ZXIgdG8KICAgc3lzT1JUYWJsZTo6T1JfZGVzY3IgZG9lcyBvciBkb2VzIG5vdCB0cmFuc2ZlcgogICBvd25lcnNoaXAuIFNvIHdoZXRoZXIgT1JfZGVzY3IgaXMgZGVjbGFyZWQgYXMgY2hhciAqIG9yIGFzIGNvbnN0CiAgIGNoYXIgKiwgdGhlcmUgd2lsbCBhbHdheXMgYmUgYXQKICAgbGVhc3Qgb25lIHN0YXRlbWVudCBvbiB3aGljaCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgY2hhcgogICAqICAvIGNvbnN0IGNoYXIgKiBtaXNtYXRjaC4gVGhlIG9ubHkgICAgc29sdXRpb24gaXMgdG8gY2FzdCBhd2F5CiAgICAgIGNvbnN0IHdoZXJlIGFwcHJvcHJpYXRlIHRvIG1ha2Ugc3VyZSAgICB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICAgICBjb21wbGFpbiwgICAgYXMgaW1wbGVtZW50ZWQgaW4gdGhpcyBwYXRjaC4gIDIwMTAtMDEtMDcgMTE6NDYgCiAgICAgIGJ2YXNzY2hlCgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVzbV9zYXZlX3VzZXIoKTogd2hlbiB3cml0aW5nIHVzZXItPm5hbWUgYW5kIHVzZXItPnNlY05hbWUsIG9ubHkKICAgd3JpdGUgdGhlIEFTQ0lJIGRhdGEgYW5kIG5vdCB0aGUKICAgdGVybWluYXRpbmcgJ1wwJy4gU2luY2UgYm90aCBpdGVtcyBhcmUgcmVhZCBieSBjYWxsaW5nCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIHdyaXRpbmcKICAgdGhlIHRlcm1pbmF0aW5nICdcMCcgaXMgbm90IG5lY2Vzc2FyeSB0byBndWFyYW50ZWUgdGhhdCB0aGUgZGF0YQogICByZWFkIGJhY2sgaXMgdGVybWluYXRlZCBwcm9wZXJseS4KCjIwMTAtMDEtMDcgMDk6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCk6IHVudGlsCiAgIG5vdyB0aGlzCiAgIGZ1bmN0aW9uIHRlcm1pbmF0ZWQgdGhlIG91dHB1dCBidWZmZXIgaW4gc29tZSBjYXNlcyB3aXRoICdcMCcKICAgKHdoZW4gdGhlCiAgIGlucHV0IHdhcyBpbiB0aGUgZm9ybWF0IDB4Li4uIGFuZCBhIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCBhbmQKICAgYWxzbwogICB3aGVuIHRoZSBpbnB1dCB3YXMgaW4gQVNDSUkgZm9ybWF0LCBidXQgbm90IHdoZW4gdGhlIGlucHV0IHdhcyBpbgogICBmb3JtYXQKICAgMHguLi4gYW5kIG5vIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCkuIENoYW5nZWQgdGhpcyBzdWNoIHRoYXQKICAgdGhpcwogICBmdW5jdGlvbiBkb2VzIG5vIGxvbmdlciB0ZXJtaW5hdGUgdGhlIGlucHV0IGJ1ZmZlciB3aXRoICdcMCcuCiAgIFRoaXMKICAgY2hhbmdlIHdhcyBwb3NzaWJsZSBiZWNhdXNlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbGwKICAgY2FsbGVycyB0aGF0CiAgIG5lZWRlZCBhICdcMCcgdGVybWluYXRlZCBzdHJpbmcgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byB1c2UKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBpbnN0ZWFkLgoKMjAxMC0wMS0wNiAxNzo1MiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTY4IGFuZCByMTc5NzIuCgoyMDEwLTAxLTA2IDE1OjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzIHJlbGF0ZWQgdG8gdGhlIHVzZSBvZiB0aGUgY29uc3QKICAga2V5d29yZC4KCjIwMTAtMDEtMDYgMTU6MzggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNiAxNTozNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiBpbnRvIGNvbnN0IGNoYXIgKi4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZCBpbiByMTc5NzUuCgoyMDEwLTAxLTA2IDE1OjMzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTU6MzEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB0aGUgZnVuY3Rpb25zIHJlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCkgYW5kCiAgIHNubXBkX3JlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCksIHdoaWNoCiAgIGFjY2VwdCBhIHBhcnNlciBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgc3RyaW5nIHRoYXQgaXQKICAgcGFyc2VzLiBVc2luZyB0aGVzZSBmdW5jdGlvbnMgcmVzdWx0cwogICBpbiBlYXNpZXIgdG8gcmVhZCBjb2RlIHRoYW4gdXNpbmcgdGhlIG5vbi1jb25zdCBoYW5kbGVyCiAgIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgYW5kIGNhc3RpbmcgdGhlIHBhcnNlcgogICBmdW5jdGlvbiBleHBsaWNpdGx5IGZyb20gKHZvaWQoKikoY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKSkgdG8KICAgKHZvaWQoKikoY29uc3QgY2hhciosIGNoYXIqKSkuCgoyMDEwLTAxLTA2IDE1OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgcmVhZF9jb25maWdfcmVhZF9vYmppZF9jb25zdCgpLgoKMjAxMC0wMS0wNiAxNDo0MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDozNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBGb3IgdGhvc2UgVkFDTSBmdW5jdGlvbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSBzdHJpbmdzIHBhc3NlZCBhcwogICBhcmd1bWVudHMsCiAgIGNoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogdG8gY29uc3QgY2hhciAqLgoKMjAxMC0wMS0wNiAxNDoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYzoKCiAgIFJlbW92ZWQgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAxMC0wMS0wNiAxNDoxNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmg6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0CiAgIHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE0OjA0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBuZXcgZnVuY3Rpb25zIHNraXBfd2hpdGVfY29uc3QoKSwgc2tpcF9ub3Rfd2hpdGVfY29uc3QoKSwKICAgc2tpcF90b2tlbl9jb25zdCgpLCBjb3B5X253b3JkX2NvbnN0KCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkuCiAgIC0gQ2hhbmdlZCByZXR1cm4gdHlwZSBvZiByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGZyb20KICAgY2hhciAqIHRvCiAgIGNvbnN0IGNoYXIgKi4gTm90ZTogdGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgc2luY2UgdGhpcwogICBmdW5jdGlvbiBoYXMgbm90IHlldCBiZWVuIGluY2x1ZGVkIGluIGFueSByZWxlYXNlLgogICAtIEZpeGVkIGRvY3VtZW50YXRpb24gb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KICAgLSBSZWR1Y2VkIG51bWJlciBvZiBjYXN0LWF3YXktY29uc3QgY29uc3RydWN0cyBpbiByZWFkX2NvbmZpZy5jLgoKMjAxMC0wMS0wNiAxMzozNSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBSZWZpbmVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKToKICAgd2hlbiB1c2luZwogICB0aGUgZ2NjIGNvbXBpbGVyLCBpdCBpcyBub3cgdmVyaWZpZWQgd2hldGhlciB0aGUgdHlwZXMgKGNvbnN0IHQpCiAgIGFuZCB0eXBlb2YoZSkKICAgYXJlIGNvbXBhdGlibGUsIHdoZXJlIHQgaXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCBlIHRoZSBzZWNvbmQKICAgYXJndW1lbnQgb2YKICAgdGhpcyBtYWNyby4KCjIwMTAtMDEtMDYgMTM6MzMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oOgoKICAgQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcyBiaWdnZXIgdGhhbiA2CiAgIGJ5dGVzIHRvIGF0VGFibGUuIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMKICAgd2l0aCA5IGFuZCBtb3JlIGJ5dGVzLgoKMjAxMC0wMS0wNiAxMjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MjQxNDA6IEZpeCB0ZXJtaW5hdGlvbiBvZiBDUFUvRlBVIHR5cGVzCgoyMDEwLTAxLTA2IDEyOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTIyMzkwOiBGaXggdGVzdCBmb3IgbWlzc2luZyBjb250ZXh0TmFtZQogICBwYXJhbWV0ZXIKCjIwMTAtMDEtMDYgMTE6NTcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9zbm1wX3BlcmwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgQ2hhbmdlczoKICAgLSBJbnRyb2R1Y2VkIGEgbmV3IG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgdGhhdCBhbGxvd3MgdG8KICAgY2FzdAogICBhd2F5IGNvbnN0bmVzcyB3aXRob3V0IHRoYXQgZ2NjIC1XY2FzdC1xdWFsIHJlcG9ydHMgYSB3YXJuaW5nLgogICAtIE1hZGUgY2FzdGluZyBhd2F5IGNvbnN0bmVzcyBleHBsaWNpdCBieSBpbnRyb2R1Y2luZyB0aGUKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBtYWNyby4gVGhpcyBzdXBwcmVzc2VzIHRoZSB3YXJuaW5nCiAgIGdjYyAtV2Nhc3QtcXVhbCBwcmludGVkIGZvciB0aGVzZSBzdGF0ZW1lbnRzLgoKMjAxMC0wMS0wNiAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDA5OjE0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBub3QgdXNlIDAgd2hlbiByZWZlcnJpbmcgdG8gTlVMTC4KCjIwMTAtMDEtMDYgMDg6MjYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZXMgb2YgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZAogICBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKICAgZnJvbSBzdHJ1Y3QgdGltZXZhbCAqIHRvIGNvbnN0IHN0cnVjdCB0aW1ldmFsICouIE5vdGU6IHRoaXMgZG9lcwogICBub3QgYWZmZWN0CiAgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAxMC0wMS0wNiAwODoyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDaGFuZ2VzIChubyBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vZGlmaWVkKToKICAgLSBSZW1vdmVkIGRpc2tpb19wYXJzZV9jb25maWcoKSBkZWNsYXJhdGlvbiBiZWNhdXNlIHRoYXQgZnVuY3Rpb24KICAgaXMgbmVpdGhlciBjYWxsZWQgbm9yIGRlZmluZWQgaW4gdGhlIHNvdXJjZSBmaWxlIGRpc2tpby5jLgogICAtIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBnZXRzdGF0cygpIHN1Y2ggdGhhdCBnY2MgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uLgogICAtIExpbnV4OiBjaGFuZ2VkIHZpc2liaWxpdHkgb2YgZ2V0c3RhdHMoKSBmcm9tIGdsb2JhbCB0byBzdGF0aWMKICAgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIEJTRCBhbmQgRGFyd2luIGltcGxlbWVudGF0aW9ucyBvZgogICBnZXRzdGF0cygpLgoKMjAxMC0wMS0wNiAwODowMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDAyOjE4ICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgbWFuL01ha2VmaWxlLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYXBwczogT25seSBidWlsZCBhZ2VudHh0cmFwIGlmIHRoZSBhZ2VudHggbGlicmFyaWVzIGFyZQogICBidWlsdC4gQWRkIGEgdGVzdCBjYXNlIGZvciBhZ2VudHh0cmFwLgogICAKICAgVGhlIGVuYWJsZW1lbnQvZGlzYWJsZW1lbnQgaXMgaW5zcGllcmVkIGJ5IGF1dG9tYWtlIGNvbmRpdGlvbmFscwoKMjAxMC0wMS0wNiAwMTo1OSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdGFydHRpbWUuCgoyMDEwLTAxLTA1IDIyOjU0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaDoKCiAgIENIQU5HRVM6IEhpZGUgbW9zdCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBpbiB0aGUgbG9nbWF0Y2gKICAgbW9kdWxlLiBDbGVhbmVkIHVwIHRoZSBoZWFkZXIgYWNjb3JkaW5nbHkuIFJlbW92ZSB0aGUgbmVlZCBmb3IKICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMgYnkgcmVvcmRlcmluZyB0aGUgZnVuY3Rpb25zLgoKMjAxMC0wMS0wNSAyMjozMyAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHUzogMjkxOTM3OTogSW5pdGlhbGlzZSBTTk1QIHNlc3Npb25zIHByb3Blcmx5CiAgIFByb3ZpZGVkIGJ5IERpZWdvIEJpbGxpCgoyMDEwLTAxLTA1IDIyOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkxOTMyMDogQXZvaWQgYWNjZXNzaW5nIGZyZWVkIG1lbW9yeQogICBSZXBvcnRlZCBieSBUb21hc3ogTGlzCgoyMDEwLTAxLTA1IDE4OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkxNDQxMDogRml4IGNyYXNoIG9uIGVtcHR5IGNvbW1hbmQgbGluZXMKCjIwMTAtMDEtMDUgMTU6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTEyNTg0OiBGaXggbnVsbCBPSUQgaGFuZGxpbmcgaW4gQWdlbnR4CiAgIG9uIDY0Yml0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEx1dHogSmFlbmlja2UKCjIwMTAtMDEtMDUgMTA6MTEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogaHB1eDogZml4IGJ1aWxkIGVycm9yIG9uIEhQLVVYIDEwLjIwCgoyMDEwLTAxLTA1IDA4OjQyICBqc2FmcmFuZWsKCiAgICogbWFuLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBSZW1vdmUgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTA0IDE2OjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkIHRoYXQgb2NjdXJyZWQgd2hlbiBhbiBBU0NJSQogICBzdHJpbmcgd2FzCiAgIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAvCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgYW5kIHRoZSB0aGlyZCBhcmd1bWVudCAoKmxlbikKICAgZXF1YWxzIDAuCgoyMDEwLTAxLTA0IDE2OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgJ2NvbnN0Jy4KCjIwMTAtMDEtMDQgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KCjIwMTAtMDEtMDQgMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGNvcnJlY3Qgb2lkIGxlbmd0aCBpbiB0YWJsZSBpbmRleGVzLgoKMjAxMC0wMS0wNCAwODoxMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBNYWRlIHN1cmUgdGhhdCBzbm1wX2FsYXJtLmMgY2FuIGJlIGNvbXBpbGVkIGFnYWluIHdpdGggQzg5CiAgIGNvbXBpbGVyczogZm9yIEM4OQogICBpdCBpcyByZXF1aXJlZCB0aGF0IGluaXRpYWxpemVycyBhcmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuCgoyMDEwLTAxLTAzIDE2OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmM6CgogICBSZW5hbWUgbmV0c25tcF9hcmNoX3RjcGNvbm5fZGVsZXRlIHRvCiAgIG5ldHNubXBfYXJjaF90Y3Bjb25uX2VudHJ5X2RlbGV0ZSBpbiBvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGgKICAgdGhlIGhlYWRlciBmaWxlIGFuZCBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlLgoKMjAxMC0wMS0wMyAxNjoyNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIEFkZCBtaXNzaW5nIGRlY2xhcmF0aW9ucy4KCjIwMDktMTItMzAgMTI6NDkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkzMzogZml4ZWQgdGhlIGlzc3VlIHRoYXQgaW5jbHVkaW5nIHRoZSBoZWFkZXIKICAgZmlsZQogICA8bmV0LXNubXAvbGlicmFyeS90eXBlcy5oPiBmcm9tIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAgIHRyaWdnZXJzCiAgIGNvbXBpbGVyIGVycm9ycyBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBwcm9jZXNzIChjb21wbGFpbnRzIGFib3V0CiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBub3QgYmVpbmcgaW5jbHVkZWQgYmVmb3JlCiAgIDxuZXQtc25tcC90eXBlcy5oPikuCiAgIE5vdGU6IHRoaXMgZG9lcyBub3Qgc29sdmUgdGhlIHVuZGVybHlpbmcgcHJvYmxlbSB0aGF0IE1JQiBjb2RlCiAgIG11c3Qgbm90CiAgIGluY2x1ZGUgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC90eXBlcy5oPiBiZWNhdXNlIGRvaW5nIHNvIHdvdWxkCiAgIHRyaWdnZXIgYQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGR1cmluZyB0aGUgY29uZmlndXJlIHN0ZXAgKE1JQiBjb2RlIGlzCiAgIGNvbXBpbGVkIGR1cmluZwogICB0aGUgY29uZmlndXJlIHN0ZXAsIHdoaWxlIHRoZSBjb25maWd1cmUgc3RlcCBnZW5lcmF0ZXMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IGFuZCA8bmV0LXNubXAvdHlwZXMuaD4gbmVlZHMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KCjIwMDktMTItMzAgMTE6NDggIGJ2YXNzY2hlCgogICAqIGFwcHMsIG1hbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE5OiB1cGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAwOS0xMi0yOCAxODowMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQuIEZvdW5kIHRoaXMgYnkgYW5hbHl6aW5nIGNvbXBpbGVyCiAgIHdhcm5pbmdzLgogICBOb3RlOiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb24sIHJlZ2lzdGVyX3N0cmluZ19pbmRleCgpLCBpc24ndAogICBjYWxsZWQgZnJvbQogICBhbnl3aGVyZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgaXRzZWxmLgoKMjAwOS0xMi0yMyAwOTo0OSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgRml4IGludmFsaWQgcmVhZCByZXBvcnRlZCBieSB2YWxncmluZDoKICAgSW52YWxpZCByZWFkIG9mIHNpemUgMQogICBtZW1jcHkgKG1jX3JlcGxhY2Vfc3RybWVtLmM6NDAyKQogICBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWRfdjQKICAgKGlwYWRkcmVzc19pb2N0bC5jOjI0MCkKICAgbmV0c25tcF9hcmNoX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2xpbnV4LmM6MTU4KQogICBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19jb21tb24uYzoxMTIpCiAgIAogICBSZXR1cm5pbmcgc3RydWN0dXJlIHdpdGggcG9pbnRlcnMgaW5zaWRlIGlzIG5vdCB0aGUgYmVzdCB0aGluZyB0bwogICBkby4KCjIwMDktMTItMjIgMTY6MDUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBGaXhlZCBzZXZlcmFsIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KCjIwMDktMTItMjIgMTI6MDIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAogICAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgUmV2ZXJ0ZWQgdGhlIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlcyBvZiByMTc5MTM6CiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8uCiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb25zIG9mIHRoZSBmdW5jdGlvbnMKICAgY2FsY3VsYXRlX3RpbWVfZGlmZigpLAogICB1YXRpbWVfcmVhZHkoKSwgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgogICAtIHN0YXJ0dGltZSBpcyBhZ2FpbiBhIGdsb2JhbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgc3RhdGljIG9uZS4KICAgQWxzbyBpbXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gTW92ZWQgdGhlIG1hcmtlcl90IHR5cGVkZWYgZnJvbSBuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggdG8KICAgbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLgogICAtIEFkZGVkIGEgbmV3IHR5cGVkZWYsIGNvbnN0X21hcmtlcl90LgogICAtIEZvciB0aG9zZSBhdGltZV8qKCkgLyB1YXRpbWVfKigpIC8gKl90dGlja3MoKSBmdW5jdGlvbnMgdGhhdCBkbwogICBub3QgY2hhbmdlCiAgIHRoZWlyIGFyZ3VtZW50cywgZGVjbGFyZWQgdGhlc2UgYXJndW1lbnRzIGNvbnN0X21hcmtlcl90IGluc3RlYWQKICAgb2YgbWFya2VyX3QuCiAgIC0gUmVuYW1lZCBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgdG8KICAgbmV0c25tcF9nZXRfYWdlbnRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X2FnZW50X3N0YXJ0dGltZSgpCiAgIHJlc3BlY3RpdmVseS4gTW92ZWQgdGhlc2UgZnVuY3Rpb25zIGZyb20gdG9vbHMuYyB0byBzeXN0ZW0uYy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbiBhdGltZV9oc3VidHJhY3QoKSAod2FzIGludHJvZHVjZWQgaW4KICAgcjE3OTEzKSBhbmQKICAgaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbiwgbmV0c25tcF9zZXRfYWdlbnRfdXB0aW1lKCkuCgoyMDA5LTEyLTIyIDA3OjU5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCByMTc5MjYsIHdoaWNoIG1hZGUgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlZC4gQSBuZXcgcGF0Y2ggd2lsbAogICBmb2xsb3cKICAgdGhhdCBmaXhlcyB0aGUgY2FsbGVycyBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHRoYXQKICAgd2VyZQogICBhc3N1bWluZyB0aGF0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVzIHRoZQogICBzdHJpbmcKICAgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0yMSAxNDoyOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggY3Jhc2ggaW4gSUYtTUlCIGFuZCBJUC1NSUIgd2hlbiB0aGVyZSBhcmUKICAgc29tZSBpbnRlcmZhY2VzIHdpdGggYnJvYWRjYXN0IElQIGFkZHJlc3MgYW5kIHNvbWUgd2l0aG91dC4KICAgCiAgIFJlc2V0IHRoZSBiY2FzdGVudHJ5IGluIHRoZSBsb29wLCBzbyBpdCBjYW5ub3QgYmUgaW5zZXJ0ZWQgdG8gdGhlCiAgIGNvbnRhaW5lcgogICB0d2ljZS4KICAgCiAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aG91dCBicm9hZGNhc3QgYWRkcmVzcwogICBpcyBwcm9jZXNzZWQsCiAgIHRoZSBiY2FzdGFkZHJlc3MgZnJvbSBwcmV2aW91cyBsb29wIGlzIGluc2VydGVkIGludG8gdGhlCiAgIGNvbnRhaW5lci4gVGhpcwogICBvYnZpb3VzbHkgZmFpbHMgYW5kIHRoZSBiY2FzdGVudHJ5IGlzIGZyZWVkLCBidXQgdGhlIGNvbnRhaW5lcgogICBzdGlsbCBjb250YWlucwogICByZWZlcmVuY2UgdG8gaXQgLT4gU0lHU0VHVi4KCjIwMDktMTItMjEgMTM6NTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI4OiB3aGlsZSByMTc5MjggZml4ZWQgYSBkYW5nbGluZyBwb2ludGVyCiAgIGRlcmVmZXJlbmNlCiAgIGRldGVjdGVkIGJ5IHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHNvZnR3YXJlIG9uIFdpbmRvd3MsIHRoYXQgcGF0Y2gKICAgaW50cm9kdWNlZAogICBhIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2UgYWJvdXQgd2hpY2ggb25seSBWYWxncmluZCBvbiBMaW51eAogICBjb21wbGFpbmVkLgogICBUaGlzIGZvbGxvdy11cCBwYXRjaCBmaXhlcyBib3RoIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzCiAgIHRyaWdnZXJlZCBieQogICBwYXJzaW5nIHRoZSBwZXJzaXN0ZW50RGlyIGtleXdvcmQuCgoyMDA5LTEyLTIxIDEzOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTAxMTIyLiBDaGFuZ2VzOgogICAtIE5ldyBmZWF0dXJlOiBzcGVjaWZ5aW5nIEFTTiB0eXBlIFNOTVBfTk9TVUNISU5TVEFOQ0UgYXMgdGhlCiAgIHRoaXJkIGFyZ3VtZW50CiAgIG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSB3aWxsIGNhdXNlIGFuIFNOTVAgR2V0UmVxdWVzdCAvCiAgIEdldE5leHRSZXF1ZXN0IHRvCiAgIHJldHVybiB0aGUgZXJyb3IgY29kZSBub1N1Y2hJbnN0YW5jZSAoU05NUHYyKSBvciBub1N1Y2hOYW1lCiAgIChTTk1QdjEpLiBUaGlzCiAgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgYSBjYWNoZWQgdGFibGUgd2l0aCBvbmUgb3IgbW9yZQogICAiaG9sZXMiLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4KICAgbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBpZiB0aGUgc2l6ZSBvZiB0aGUgY2FjaGVkIHZhbHVlCiAgIHNocnVuaywgdXNlCiAgIHJlYWxsb2MoKSBpbnN0ZWFkIG9mIGZyZWUoKSBhbmQgbWFsbG9jKCkuCgoyMDA5LTEyLTIxIDEyOjIzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkxMjA1NTogbWFrZSBzdXJlCiAgIHRoYXQKICAgcGFyc2luZyB0aGUgInBlcnNpc3RlbnREaXIiIGtleXdvcmQgaW4gc25tcC5jb25mIGRvZXMgbm90IHRyaWdnZXIKICAgYQogICBkYW5nbGluZyBwb2ludGVyLiBUbyBteSBzdXJwcmlzZSBCb3VuZHNDaGVja2VyIGNvbXBsYWluZWQgYWJvdXQKICAgdGhpcwogICAob24gV2luZG93cyksIGJ1dCBWYWxncmluZCBkaWQgbm90IHJlcG9ydCB0aGlzIGlzc3VlIChvbiBMaW51eCkuCgoyMDA5LTEyLTIxIDEyOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyNSAoZml4IG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwKTogd2hpbGUKICAgcjE3OTI1IGZpeGVkCiAgIG9ubHkgdGhlIGxlYWsgdHJpZ2dlcmVkIGZyb20gaW5zaWRlIHRoZSBmb3ItbG9vcCwgdGhpcyBwYXRjaCBkb2VzCiAgIG5vdyBhbHNvCiAgIGZpeCB0aGUgbGVhayB0cmlnZ2VyZWQgYnkgdGhlIG5ldHNubXBfdGFibGVfZGF0YXNldF9hZGRfcm93KCkKICAgY2FsbCBuZWFyCiAgIHRoZSBlbmQgb2YgbG9nX25vdGlmaWNhdGlvbigpLgoKMjAwOS0xMi0yMSAxMjowMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2MjogbWFrZSBzdXJlIHRoYXQgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGlzIHByb3Blcmx5IHRlcm1pbmF0ZWQsIHN1Y2ggdGhhdAogICB0aGUKICAgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIGRvIG5vdCB0cmlnZ2VyIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KICAgRm91bmQKICAgdGhpcyBpc3N1ZSB2aWEgQm91bmRzQ2hlY2tlci4KCjIwMDktMTItMjEgMTE6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjgsIHdoaWNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXAuCiAgIFRoZQogICBmdW5jdGlvbiBsb2dfbm90aWZpY2F0aW9uKCkgYWRkcyBhIHJvdyB0byB0aGUgdGFibGUKICAgbmxtTG9nVmFyVGFibGUsIGJ1dAogICB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoYXQgdGFibGUgaGFzIGJlZW4KICAgaW5pdGlhbGl6ZWQuIElmCiAgIHRoYXQgaGFwcGVucywgbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3IgYSByb3cgYnV0IHRoYXQgbWVtb3J5IGlzCiAgIG5ldmVyCiAgIGFkZGVkIHRvIHRoZSBjYWNoZWQgdGFibGUgZGF0YS4gVGhlIEJvdW5kc0NoZWNrZXIgdG9vbCByZXBvcnRlZAogICB0aGlzIGFzCiAgIGEgIm1lbW9yeSBsZWFrIGxlYXZpbmcgc2NvcGUiLgoKMjAwOS0xMi0yMSAxMDo1NCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgdGhlIGZvbGxvd2luZyB0ZXh0IHRvIHRoZSAiTGltaXRhdGlvbnMiIHNlY3Rpb24gb2YKICAgUkVBRE1FLndpbjMyOgogICAiV2hlbiB1c2luZyB3aW5FeHRETEwsIHRoZXJlIGlzIGFuIG9mZnNldCBvZiB1cCB0byBvbmUgc2Vjb25kCiAgIGJldHdlZW4gdGhlCiAgIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUgdmFyYmluZCBpbmNsdWRlZCBpbiB0aGUgdHJhcHMgZ2VuZXJhdGVkIGJ5CiAgIFNOTVAKICAgZXh0ZW5zaW9uIERMTHMgKGUuZy4gbGlua1VwIGFuZCBsaW5rRG93bikgYW5kIHRoZSB2YWx1ZSBvZiB0aGUKICAgc3lzVXBUaW1lCiAgIHZhcmJpbmQgaW5jbHVkZWQgaW4gdHJhcHMgZ2VuZXJhdGVkIGJ5IE5ldC1TTk1QIGl0c2VsZiAoZS5nLgogICBjb2xkU3RhcnQpLiIKCjIwMDktMTItMjEgMTA6MDkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBTcGVsbGluZyBmaXg6IHJlcGxhY2VkIGFsbCBvY2N1cnJlbmNlcyBvZiAnc3BlY2lmYycgYnkKICAgJ3NwZWNpZmljJy4KCjIwMDktMTItMjEgMTA6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUmVmYWN0b3Jpbmc6IGVsaW1pbmF0ZWQgZHVwbGljYXRlZCBjb2RlIGJ5IHJlaW1wbGVtZW50aW5nCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSB1c2luZyBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyKCkuIE5laXRoZXIgdGhlCiAgIE5ldC1TTk1QIEFQSSBub3IgdGhlIGJlaGF2aW9yIG9mIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSBoYXMgYmVlbgogICBjaGFuZ2VkLgoKMjAwOS0xMi0yMCAxMToxMCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvYWdlbnR4dHJhcC5jLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9hZ2VudHh0cmFwLjEuZGVmOgoKICAgTkVXUzogYXBwczogQWRkIGNvbW1hbmQgdG8gc2VuZCBBZ2VudFggbm90aWZ5IHJlcXVlc3RzIHRvIGEKICAgbWFzdGVyIGFnZW50LgoKMjAwOS0xMi0xNyAxNjo0NCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTcgLS0gYnVpbGRzIGFnYWluIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMTcgMTY6MDMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkwMyAvIHBhdGNoIDI5MTEzMjMgIkZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nCiAgIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24iIChzdWJtaXR0ZWQgYnkgbXlzZWxmKS4gVGhhdCBwYXRjaAogICBkaWQgbm90IG9ubHkKICAgZml4IHRoZSBsb2NrdXAgYnV0IGFsc28gbWFkZSBzbm1wZCBwcmludCBhIHdhcm5pbmcgZHVyaW5nIHN0YXJ0dXAKICAgd2hlbgogICBpcXVlcnlTZWNOYW1lIHdhcyBub3QgY29uZmlndXJlZC4gVGhpcyB3YXJuaW5nIHdhcyBwcmludGVkIGV2ZW4KICAgd2hlbiBubwogICBpbnRlcm5hbCBxdWVyaWVzIHdlcmUgcGVyZm9ybWVkLiBUaGlzIHdhcm5pbmcgaXMgbm93IG9ubHkgcHJpbnRlZAogICBqdXN0IGJlZm9yZQogICB0aGUgZmlyc3QgaW50ZXJuYWwgcXVlcnkgaXMgbWFkZSAoZHVyaW5nIHRoZSBmaXJzdCBjYWxsIG9mCiAgIG5ldHNubXBfcXVlcnlfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpIGluc3RlYWQgb2YgZHVyaW5nIGNyZWF0aW9uIG9mCiAgIHRoZSBpbnRlcm5hbAogICBzZXNzaW9uKS4KCjIwMDktMTItMTcgMTM6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmM6CgogICBSTU9OIE1JQiBzb3VyY2UgY29kZSBjb21waWxlcyBhZ2FpbiAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpIGFuZAogICBBR1VUSUxfc3lzX3VwX3RpbWUoKSBzdWNoIHRoYXQgdGhlc2UgZnVuY3Rpb25zIG5vcm1hbGl6ZSB0aGUKICAgdHZfdXNlYyBmaWVsZCBvZgogICBzdHJ1Y3QgdGltZXZhbCBwcm9wZXJseS4gTm90ZTogdGhpcyBzb3VyY2UgY29kZSBtb2RpZmljYXRpb24gZG9lcwogICBub3QgYWZmZWN0CiAgIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHR3byBmdW5jdGlvbnMuCgoyMDA5LTEyLTE3IDEzOjExICBidmFzc2NoZQoKICAgKiBtYW4vbmV0c25tcF91dGlsLjM6CgogICBSZW1vdmVkIGRvY3VtZW50YXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8gLS0gc2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjA1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ29udmVydGVkIHN0YXJ0dGltZSBmcm9tIGEgZ2xvYmFsIHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgYW5kIGFwcGxpZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIEFkZGVkIHR3byBuZXcgbWFjcm9zOiBORVRTTk1QX1RJTUVSQUREKCkgYW5kCiAgIE5FVFNOTVBfVElNRVJTVUIoKS4KICAgLSBBZGRlZCB0aHJlZSBuZXcgZnVuY3Rpb25zOiBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSwKICAgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgYW5kIGF0aW1lX2hzdWJ0cmFjdCgpLgogICAtIFJlcGxhY2VkIGdldHRpbWVvZmRheSgpICsgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGNhbGxzIGJ5IGEgY2FsbAogICB0byBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKS4KICAgLSBSZW1vdmVkIHRoZSBtYWNybyBESUZGVElNRVZBTCgpIGJlY2F1c2UgaXQgd2FzIG5vdCB1c2VkIGluc2lkZQogICB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbmQgYmVjYXVzZSBpdCBjb250YWluZWQgYSBidWcuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb25zIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwgdWF0aW1lX3JlYWR5KCksCiAgIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KCjIwMDktMTItMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEJ1ZyBmaXg6IGFjY29yZGluZyB0byBSRkMgMjU3MSB0aGUgdW5pdCBvZiBzbm1wRW5naW5lVGltZSBpcyBvbmUKICAgc2Vjb25kLAogICBub3Qgb25lIGh1bmRyZWR0aCBvZiBhIHNlY29uZC4KCjIwMDktMTItMTcgMTA6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wdGVzdC4xLmRlZjoKCiAgIEZpeCB0eXBvLgoKMjAwOS0xMi0xNiAxMjozMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cy1vbmx5IGJ1ZyBmaXhlczoKICAgLSBGaXhlZCB0aGUgc3RyYW5nZSBidWlsZCBlcnJvcnMgdGhhdCBvY2N1cnJlZCB3aGVuIGNvbXBpbGluZwogICBsaWJuZXRzbm1wIGFzIGEgRExMIGFuZCB3aGVuIGVpdGhlciA8c3RkbGliLmg+IG9yIDxzdHJpbmcuaD4gd2FzCiAgIGluY2x1ZGVkIGFmdGVyIDxuZXQtc25tcC1jb25maWcuaD4gaW5zdGVhZCBvZiBiZWZvcmUuCiAgIC0gRm9yIGRlYnVnIGJ1aWxkcyB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLCBmaXhlZCB0aGUKICAgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBfbWFsbG9jX2RiZygpIGNhbGwgaW52b2tlZCBieSBzdHJkdXAoKSBhbmQKICAgZnJlZSgpLWluZyBzdHJkdXAoKS1lZCBtZW1vcnkgYnkgaW5jbHVkaW5nIHRoZSA8Y3J0ZGJnLmg+IGhlYWRlcgogICBpbiB0b29scy5jIGFuZCBieSBkZWZpbmluZyB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBfQ1JUREJHX01BUF9BTExPQy4gRGV0ZWN0ZWQgdmlhIHRoZSBtZW1vcnkgY2hlY2tlciBpbmNsdWRlZCBpbgogICBJbnRlbCBQYXJhbGxlbCBTdHVkaW8uCgoyMDA5LTEyLTE0IDE3OjIzICB0YW5kZXJzCgogICAqICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBzeW5jIGRlZmluaXRpb24gb2YgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIFBlcmwgd2l0aCB0aGUgY2hhbmdlcwogICBpbgogICByMTc4NTUgYW5kIHIxNzkwOAoKMjAwOS0xMi0xNCAxMzo1NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgRml4IFRDUCB0cmFuc3BvcnQgYnJva2VuIGJ5IHJldi4gMTc4NTUgLSBjb3BpZXMgb2YKICAgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIHNubXBUQ1BEb21haW4uYyBhbmQgc25tcFVEUERvbWFpbi5jIG11c3QKICAgYmUgdGhlIHNhbWUuCgoyMDA5LTEyLTExIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBwYXRjaCBmcm9tIE1hcnRpbiBCam9ya2x1bmQgdG8gYWRkIGEgLUN3IG9wdGlvbgogICB0byB1c2UgY3JlYXRlQW5kV2FpdCBmb3IgYWdlbnRzIHRoYXQgYXJlIHN0cmljdCBhYm91dCBub3QKICAgYWxsb3dpbmcgYSByb3cgdG8gYmUgc2V0IHRvIGFjdGl2ZSB1bnRpbCB0aGUgYXV0aGVudGljYXRpb24KICAgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZDsgcGx1cyB3aGl0ZS1zcGFjZSBjbGVhbiB1cCwgbWFudWFsCiAgIGFkZGl0aW9ucyBhbmQgaGVscCBvdXRwdXQgbW9kaWZpY2F0aW9ucyBieSBoYXJkYWtlcgoKMjAwOS0xMi0xMSAxNDozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGEgZm9ybWF0IHNwZWNpZmllciBtaXNtYXRjaC4KCjIwMDktMTItMTEgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICB3aW5FeHRETEwgYnVncyBmaXhlZDoKICAgLSBzeXNVcFRpbWUuMCBkb2VzIG5vdyByZXBvcnQgdGhlIGNvcnJlY3QgdmFsdWUuCiAgIC0gYSBsaW5rVXAgb3IgbGlua0Rvd24gdHJhcCBpcyBub3cgc2VudCBhZnRlciB0aGUgc3RhdHVzIG9mIGEKICAgbmV0d29yayBpbnRlcmZhY2UKICAgaGFzIGNoYW5nZWQuCiAgIC0gdGhlIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUuMCB2YXJiaW5kIGluIGxpbmtVcCBhbmQgbGlua0Rvd24KICAgdHJhcHMgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDA5LTEyLTEwIDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSEVTOiAyOTExOTcwOiBQcm9wZXJseSB0ZXJtaW5hdGUgbGlua2VkIGxpc3QKICAgb2YgcmVnaXN0cmF0aW9ucy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWlya28gRGVja2VydC4KCjIwMDktMTItMTAgMTU6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTExMzIzOiBGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZyBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uCgoyMDA5LTEyLTEwIDEzOjU5ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IE1pY3Jvc29mdCdzIGltcGxlbWVudGF0aW9uIG9mCiAgIGhyU3lzdGVtVXB0aW1lLjAuCiAgIC0gRml4ZWQgYSBmZXcgdHlwb3MuCgoyMDA5LTEyLTEwIDEzOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQWRkZWQgbWlzc2luZyBuZXdsaW5lIGluIGEgbG9nZ2luZyBzdGF0ZW1lbnQuCgoyMDA5LTEyLTEwIDEyOjU0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgd2luRXh0RExMIGJ1Z3M6CiAgIC0gRml4ZWQgYnVnIGluIHRyYXAgZm9yd2FyZGluZzogbGlua0Rvd24gdHJhcHMgd2VyZSBzZW50IGFzCiAgIHdhcm1TdGFydCB0cmFwcwogICBhbmQgbGlua1VwIHRyYXBzIHdlcmUgc2VudCBhcyBsaW5rRG93biB0cmFwcy4KICAgLSBGaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBleHRlbnNpb24gRExMIGxvYWRpbmcuCiAgIC0gQSBkZWJ1ZyB0cmFjZSBzdGF0ZW1lbnQgaXMgbm93IGludm9rZWQgd2hlbmV2ZXIgYSBzZXJpb3VzIGVycm9yCiAgIGhhcyBiZWVuCiAgIGRldGVjdGVkLgoKMjAwOS0xMi0xMCAxMjozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPSURzIGluIGRlYnVnIG1lc3NhZ2VzIGdlbmVyYXRlZCBieSB0aGUgd2luRXh0RExMIG1vZHVsZSBhcmUgbm93CiAgIHByaW50ZWQgaW4KICAgc3ltYm9saWMgZm9ybSBpbnN0ZWFkIG9mIG51bWVyaWMgZm9ybS4KCjIwMDktMTItMTAgMDg6NTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIFByb2plY3QgZGVwZW5kZW5jaWVzIHNob3VsZCBub3cgcmVhbGx5IGJlIGNvcnJlY3QuIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3ODczLgoKMjAwOS0xMi0xMCAwODo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDaGFuZ2VzIChvbmx5IHNvdXJjZSBjb2RlIGNvbW1lbnRzIGhhdmUgYmVlbiBjaGFuZ2VkKToKICAgLSBSZW1vdmVkIGEgbm90ZSB0aGF0IGNvbnRyYWRpY3RlZCB0aGUgaW5zdHJ1Y3Rpb25zIGluCiAgIFJFQURNRS53aW4zMi4KICAgLSBVcGRhdGVkIGJ1aWxkIGluc3RydWN0aW9ucyBhZnRlciB0aGUgYWRkaXRpb24gb2YgdGhlIGZpbGUKICAgd2luMzIvU25tcC13aW5FeHRETEwuaCBpbiByMTc4MzAuCgoyMDA5LTEyLTEwIDA4OjE3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIE1hZGUgZmlsZSBoZWFkZXIgY29tbWVudHMgY29uc2lzdGVudCB3aXRoIHRoZSBkZXNjcmlwdGlvbnMgaW4gdGhlCiAgIHJlc3BlY3RpdmUgbWFuIHBhZ2VzLgoKMjAwOS0xMi0xMCAwMzowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudF9zeXNPUl9jYWxsYmFjayB3b24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuCiAgIHJlZ2lzdGVyZWQgYXMgYSBjYWxsYmFjay4gQ2hhbmdlIGFnZW50eF9yZW9wZW5fc3lzT1JUYWJsZSBpbgogICBvcmRlciB0byBhdm9pZCB3YXJuaW5ncyBvZiBjb25zdCByZW1vdmFsLgoKMjAwOS0xMi0wOSAxNTowNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gTW92ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScgaW5zaWRlIHRoZQogICBmdW5jdGlvbgogICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBiZWNhdXNlIHRoaXMgdmFyaWFibGUgaXMgb25seSB1c2VkIGJ5CiAgIHRoYXQgZnVuY3Rpb24uCiAgIC0gRG9jdW1lbnRlZCB0aGUgcHVycG9zZSBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnLgogICAtIEJ1ZyBmaXg6IG1hZGUgc3VyZSB0aGF0IHRoZSBjYWxsIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGRvZXMKICAgbm90IHRyaWdnZXIgYW4KICAgaW52YWxpZCBtZW1vcnkgYWNjZXNzIChzdHJbLTFdKSB3aGVuIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgdG8KICAgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMDkgMTQ6MzcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MKICAgYmlnZ2VyIHRoYW4gNiBieXRlcyB0byBpcE5ldFRvTWVkaWFUYWJsZSBhbmQKICAgaXBOZXRUb1BoeXNpY2FsVGFibGUuCiAgIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMgd2l0aCA5IGFuZCBtb3JlCiAgIGJ5dGVzLiBTbm1wZCBvbiBMaW51eCB3YXMgbm90IGFibGUgdG8gcGFyc2UgL3Byb2MvbmV0L2FycCB0aGVuCiAgIGFuZCBwcm9kdWNlZCB1Z2x5ICdpb2N0bCAzNTEyMyByZXR1cm5lZCAtMScgdG8gbG9nLgoKMjAwOS0xMi0wOSAxMjoyNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgbWlzc2luZyAtTG8gaW4gYSBjb21tYW5kIGxpbmUgZXhhbXBsZS4KCjIwMDktMTItMDkgMTI6MTYgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIEFkZGVkIHNubXBhcGkubGliIHRvIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBzbm1wZC5leGUuCiAgIEFwcGFyZW50bHkgVmlzdWFsCiAgIFN0dWRpbyAyMDA1IGFuZCAyMDA4IG5lZWQgdGhpcyBsaWJyYXJ5IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdAogICB3aGVuIGxpbmtpbmcKICAgdGhlIGV4ZSwgd2hpbGUgZm9yIFZpc3VhbCBTdHVkaW8gNiBpdCBpcyBzdWZmaWNpZW50IHdoZW4gdGhpcwogICBsaWJyYXJ5IGlzCiAgIHByZXNlbnQgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIG5ldHNubXBtaWJzLmxpYi4KCjIwMDktMTItMDkgMDg6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NCBhbmQgcjE3ODczLCB0aGUgYnVpbGQKICAgcHJvY2VzcyBiZWNhbWUgc2ltcGxlci4KCjIwMDktMTItMDkgMDg6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRXhwb3J0IHN0cnRvdWxsIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE3ODg2LgoKMjAwOS0xMi0wOSAwODoyMSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUmV2ZXJ0ZWQgcjE3NzAwIGZvciBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg2LCBtb2RpZnlpbmcKICAgdGhlCiAgIHN0cnRvdWxsIGxpbmUgaW4gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgaXMgbm8gbG9uZ2VyCiAgIG5lY2Vzc2FyeS4KCjIwMDktMTItMDkgMDg6MTIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93czogc3dpdGNoZWQgZnJvbSBfc3RydG91aTY0KCkgdG8gc3RydG91bGwoKSBmb3IgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8KICAgMjAwMiBhbmQgbGF0ZXIgYmVjYXVzZSB0aGUgZm9ybWVyIGlzIG5vdCBmdWxseSBQT1NJWCBjb21wbGlhbnQuCiAgIFRoZSBzdHJ0b3VsbCgpCiAgIHVuaXQgdGVzdCBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCBmb3IgX3N0cnRvdWk2NCgpIHdpdGgKICAgTVNWQyAyMDA4OgogICB0ZXN0IDE0IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKICAgdGVzdCAxNiBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCgoyMDA5LTEyLTA4IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogTWFrZSBzdXJlIHRoYXQgYSBtYXNrIGlzIGdpdmVuIHRvIG9wZW4KICAgd2hlbiBPX0NSRUFUIGlzIHNwZWNpZmllZAoKMjAwOS0xMi0wOCAxNjoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgdGhpcyBvdXQuCgoyMDA5LTEyLTA4IDE1OjQ3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFVuaXggc3lzdGVtcyAoZml4ZWQgYSB0eXBvIGludHJvZHVjZWQgaW4gcjE3ODgxKS4KCjIwMDktMTItMDggMTU6MzcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4gV2l0aG91dCB0aGlzCiAgIGRlZmluZSB0aGUgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgYmVuaWduIHJlZGVmaW5pdGlvbiBvZgogICB0eXBlIHNvY2tsZW5fdC4KCjIwMDktMTItMDggMTU6MjggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW5lZCB1cCB0aGUgY29kZSBmb3Igc2V0dGluZyBsaW5lIGJ1ZmZlcmluZzoKICAgLSBJbnN0ZWFkIG9mIGhhdmluZyBjYWxscyB0byBzZXR2YnVmKCkgaW4gbXVsdGlwbGUgZmlsZXMsIHRoZXJlCiAgIGlzIG5vdyBvbmUgY2FsbAogICB0byBzZXR2YnVmKCkgZnJvbSB0aGUgbmV3IGZ1bmN0aW9uIG5ldHNubXBfc2V0X2ZpbGVsb2cuIFRoZXNlCiAgIHNvdXJjZSBmaWxlcwogICBhcmU6IHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMKICAgYW5kIGFnZW50XG1pYmdyb3VwXGRpc21hblx0cmFjZXJvdXRlXHRyYWNlUm91dGVDdGxUYWJsZS5jLgogICAtIFVzaW5nIC1MbyAvIC1MZSBkb2VzIG5vdyBlbmFibGUgbGluZSBidWZmZXJpbmcgZm9yIHN0ZG91dCAvCiAgIHN0ZGVyciByZXNwZWN0aXZlbHkuCiAgIC0gUmVtb3ZlZCBjb2RlIGluIHNubXBkLmMgYW5kIHNubXB0cmFwZC5jIGZvciBzZXR0aW5nIGxpbmUKICAgYnVmZmVyaW5nIG9uIHN0ZG91dAogICBzaW5jZSBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nIG9uIHN0ZG91dCBpcyBub3cgdHJpZ2dlcmVkIGJ5IHRoZQogICBjb21tYW5kLWxpbmUKICAgb3B0aW9uIC1Mby4KICAgQnVncyBmaXhlZDoKICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBhbHNvIHNldCBmb3Igc3RkZXJyIHdoZW4gdGhlCiAgIGNvbW1hbmQtbGluZSBvcHRpb24KICAgLUxlIGhhcyBiZWVuIHNwZWNpZmllZC4KICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBzZXQgY29ycmVjdGx5IGZvciBzdGRvdXQgb24gV2luZG93cwogICBzeXN0ZW1zCiAgIChjb21tYW5kLWxpbmUgb3B0aW9uIC1MbykuCgoyMDA5LTEyLTA4IDEyOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgbG9jYWwgdmFyaWFibGVzIHRoYXQgd2VyZSBkZWZpbmVkCiAgIGJ1dAogICBub3QgdXNlZCBieSBvbmx5IGVuYWJsaW5nIHRoZSBsb2NhbCB2YXJpYWJsZSBkZWZpbml0aW9ucyBvbiB0aGUKICAgcGxhdGZvcm0gdGhhdCB1c2VzIHRoZXNlIHZhcmlhYmxlcyAoTGludXgpLgoKMjAwOS0xMi0wOCAxMjoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQWRkZWQgI2luY2x1ZGUgIm1pYmdyb3VwL3V0aWxfZnVuY3MuaCIuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDktMTItMDggMTI6MjUgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgSW5jbHVkZSB0aGUgZ2V0aG9zdGVudCgpIC8gc2V0aG9zdGVudCgpIGRlY2xhcmF0aW9ucyBiZWZvcmUgdXNpbmcKICAgdGhlc2UKICAgZnVuY3Rpb25zLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0wOCAxMjoxMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeGVkIGFuIGluY29uc2lzdGVuY3kgKHdoaWNoIGlzIGFsbG93ZWQgYnkgdGhlIEFOU0kgQyBzdGFuZGFyZCkKICAgYmV0d2VlbgogICBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbiBvZgogICBuZXRzbm1wX2FkZF9nbG9iYWxfdHJhcGhhbmRsZXIgYW5kCiAgIG5ldHNubXBfYWRkX2RlZmF1bHRfdHJhcGhhbmRsZXIgc3VjaAogICB0aGF0IHRoZSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBjb21waWxlciBkb2VzIG5vIGxvbmdlciBjb21wbGFpbgogICBhYm91dAogICB0aGlzLgoKMjAwOS0xMi0wOCAxMjowOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGltcGxpY2l0bHkgY2FzdGluZyBhd2F5IGNvbnN0bmVzcy4KCjIwMDktMTItMDggMTI6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT25seSBjb21waWxlIHRoZSB3aW5FeHRETEwgc291cmNlIGNvZGUgaWYgdGhlIHByZXByb2Nlc3NvciBtYWNybwogICBVU0lOR19XSU5FWFRETExfTU9EVUxFIGhhcyBiZWVuIGRlZmluZWQuCgoyMDA5LTEyLTA4IDEyOjAzICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLgoKMjAwOS0xMi0wOCAxMjowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgb3V0IHRoZSBidWlsZCBvcmRlci4KCjIwMDktMTItMDggMDk6NDYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzIC8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW86IGRpc2FibGVkIHRoZSBjb21waWxlciB3YXJuaW5nCiAgIGFib3V0CiAgIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzICg0MDE4KSBiZWNhdXNlIHRoaXMgd2FybmluZyBkb2VzIG5vdAogICB5aWVsZAogICBhbnkgdXNlZnVsIGluZm9ybWF0aW9uLgoKMjAwOS0xMi0wOCAwOToxNyAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzYzOSAocGF0Y2ggMjc4MDQxMSAtLSBmaXggY29tcGlsZXIgd2FybmluZ3MpOgogICBhcHBsaWVkCiAgIHRoaXMgcGF0Y2ggdG8gbmV0LXNubXAtY29uZmlnLmguaW4gdG9vIHN1Y2ggdGhhdAogICBuZXQtc25tcC1jb25maWcuaCBhbmQKICAgbmV0LXNubXAtY29uZmlnLmguaW4gbWF0Y2ggYWdhaW4uCgoyMDA5LTEyLTA4IDA4OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50eF9zeXNPUl9jYWxsYmFjaygpIGRvZXMgbm90IHRyaWdnZXIgYQogICBjb21waWxlcgogICB3YXJuaW5nIHdoZW4gdGhlIHRoaXJkIGFyZ3VtZW50IHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGhhcyBiZWVuCiAgIGRlY2xhcmVkIGNvbnN0LgoKMjAwOS0xMi0wOCAwODoxNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ2hhbmdlZCB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RydG91bGwoKSBmcm9tICd1bnNpZ25lZCBsb25nIGxvbmcnCiAgICh3aGljaAogICBpcyBub3QgdmFsaWQgQzg5KSB0byAndWludDY0X3QnIChkZWNsYXJlZCBpbgogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KICAgVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGNvbXBpbGUgYWdhaW4gd2l0aAogICBNU1ZDIDYuMC4KCjIwMDktMTItMDcgMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBUd2VhayBtaXNzaW5nIHN1YmlkZW50aWZpZXIgcHJvY2Vzc2luZyB0byBiZSBtb3JlIHR5cGUtYXdhcmUuCiAgIChBbiBpc3N1ZSB3aXRoIEFJWCwgYXQgbGVhc3QpCgoyMDA5LTEyLTA2IDE4OjM4ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogTWFrZSB0aGUgbGlzdHMgb2YgY29tMlNlYypFbnRyaWVzIHN0YXRpYwoKMjAwOS0xMi0wNiAxODozNCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGl0ZXJhdG9yIHZhcmlhYmxlIGluIG5ldHNubXBfKl9nZXRTZWNOYW1lIGNvbnN0CgoyMDA5LTEyLTA2IDE4OjI5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogQ2hhbmdlIHRoZSB0eXBlcyBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogICBuZXRzbm1wXypfZ2V0U2VjTmFtZSBmcm9tIGNoYXIqIHRvIGNvbnN0IGNoYXIqIHNpbmNlIHRoZXkgcG9pbnQKICAgaW50byBpbnRlcm5hbCBzdHJ1Y3R1cmVzLgoKMjAwOS0xMi0wNSAyMDoxOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBmaXggZGVjbGFyYXRpb24gb2Ygc3RydG91bGwKCjIwMDktMTItMDUgMTc6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjYWxsIG5ldHNubXBfcmVhZF9tb2R1bGUgaW5zdGVhZCBvZiByZWFkX21vZHVsZSB0byBtYWtlIGl0CiAgIGNvbXBpbGUgd2l0aAogICBORVRTTk1QX0NMRUFOX05BTUVTUEFDRQoKMjAwOS0xMi0wMiAxNTozOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgaW52YWxpZCBhY2Nlc3MgdG8gbWVtb3J5IGluIFRDUC1NSUIKICAgVGhpcyBwYXJ0bHkgcmV2ZXJ0cyBwYXRjaCAxNzcxOSAtIHRoZSBlbnRyaWVzICphcmUqIHVzZWQgYWZ0ZXIKICAgcmF3X2RhdGEgY29udGFpbmVyIGlzIGZyZWVkLiBUaGVzZSBlbnRyaWVzIHNob3VsZCBiZSBmcmVlZCB3aGVuCiAgIGFzc29jaWF0ZWQgcm93cmVxX2N0eCBpcyBmcmVlZC4KCjIwMDktMTItMDIgMDg6MzAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHVkcFRhYmxlIGluZGV4ZXMgb24gYmlnLWVuZGlhbiA2NGJpdCBMaW51eC4KICAgVGhlIGluZGV4IHdhcyBhbHdheXMgJzAuMC4wLjAnIGluc3RlYWQgb2YgcmVhbCBsb2NhbCBJUCBhZGRyZXNzLgoKMjAwOS0xMi0wMSAxMjozNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgVXBkYXRlIGEgcmVkdW5kYW50IChhbmQgcHJvYmFibHkgaW5hY2N1cmF0ZSkgY29tbWVudC4KCjIwMDktMTItMDEgMTI6MzEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODIyMzYwOiBGaXggbWVtb3J5IGxlYWsgd2hlbiBidWlsZGluZwogICB0YWJsZSBPSURzCgoyMDA5LTEyLTAxIDEyOjA4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBCVUdTOiAyODM3OTk4OiBIYW5kbGUgbWlzc2luZyBpbnN0YW5jZQogICBzdWJpZGVudGlmaWVycyBpbiByZXN1bHRzCgoyMDA5LTEyLTAxIDExOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg0MTAwODogUHJvdGVjdCBhZ2FpbnN0IGNyYXNoIGZvbGxvd2luZwogICBmYWlsZWQgQWdlbnRYIHJlc3BvbnNlCgoyMDA5LTEyLTAxIDA3OjM0ICBqc2FmcmFuZWsKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggcmVzcG9uZGluZyB0byBicm9hZGNhc3QgcmVxdWVzdHMuCiAgIFVEUCByZXNwb25zZXMgYXJlIHNlbnQgd2l0aCBzb3VyY2UgSVAgYWRkcmVzcyB3aGljaCB3YXMKICAgZGVzdGluYXRpb24gb2YKICAgYXBwcm9wcmlhdGUgcmVxdWVzdHMgKGltcGxlbWVudGVkIGluIFNWTiByZXYuIDE1MjE1KS4gQnV0IGlmIHRoZQogICBkZXN0aW5hdGlvbgogICBvZiBhIHJlcXVlc3QgaXMgYnJvYWRjYXN0IElQIGFkZHJlc3MsIHRoZSByZXF1ZXN0IHdhcyBzZW50IHdpdGgKICAgdGhlIGJyb2FkY2FzdAogICBhZGRyZXNzIGFzIHNvdXJjZS4gc2VuZG1zZygpIG9uIExpbnV4IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBhbmQKICAgcmV0dXJucyBlcnJvcgogICAtPiByZXNwb25zZSBpcyBub3Qgc2VudC4gSW4gb3JkZXIgdG8gc2VuZCByZXNwb25zZXMgZnJvbSB0aGUgc2FtZQogICBpbnRlcmZhY2UsCiAgIGludGVyZmFjZSBpbmRleCBvZiB0aGUgYXBwcm9wcmlhdGUgaW50ZXJmYWNlIG11c3QgYmUgdXNlZC4KCjIwMDktMTItMDEgMDA6MjkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg1Mi4KCjIwMDktMTItMDEgMDA6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg0Mi4KCjIwMDktMTEtMzAgMTY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODczODU4OiBGaXggaGFuZGxpbmcgb2Ygc2NoZWRPd25lciBpbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFNjaHViZXJ0LgoKMjAwOS0xMS0zMCAxNjo0NiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVR1M6IDI4ODg1Njk6IEZpeCBnZW5lcmF0aW9uIG9mIHRhYmxlIGNvbHVtbnMKICAgYXJyYXkKCjIwMDktMTEtMzAgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODk0MDU5OiBIYW5kbGUgZXJyb3JzIHdoZW4gY291bnRpbmcKICAgaW50ZXJmYWNlcwoKMjAwOS0xMS0zMCAxNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyODk3MDAwOiBTdXBwcmVzcyAzMi1iaXQgY291bnRlciB0cnVuY2F0aW9uCiAgIHdhcm5pbmdzLgoKMjAwOS0xMS0zMCAxNTozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAzMDkyOiBGaXggYnJva2VuIGhhbmRsaW5nIG9mIGJyb2FkY2FzdAogICBlbnRyaWVzLgoKMjAwOS0xMS0zMCAxNToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDEwMjk6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uCiAgIENsb3NlSGFuZGxlKCkKICAgRW5kaWFuIHByb2JsZW1zIGFscmVhZHkgYWRkcmVzc2VkIGJ5IHBhdGNoICMyODM1NTc2CgoyMDA5LTExLTMwIDE1OjEzICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI4OTA5MzE6IEJldHRlciBoYW5kbGluZyBvZiBDb3VudGVyNjQKICAgdmFsdWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggUm9tYW5vdi4KCjIwMDktMTEtMzAgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODg3ODE2OiBQcm90ZWN0IGFnYWluc3QgZGl2aXNpb24tYnktemVybwogICBjcmFzaAoKMjAwOS0xMS0zMCAxNTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMjIwOiBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbgogICBpZlhUYWJsZSBpcyBub3QgaW5jbHVkZWQuCgoyMDA5LTExLTMwIDE0OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMTU1OiBGaXggbWVtb3J5IGxlYWsgaW4gcHJveHkKICAgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEdvd3RoYW0gVGhvbW1hbmRyYS4KCjIwMDktMTEtMzAgMTQ6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMwOTI6IFN1cHBvcnQgbW9uaXRvcmluZyBwcm9jZXNzZXMgdGhhdAogICBzaG91bGQgbm90IGJlIHJ1bm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IENocmlzdGlhbiAoY2c3NSkuCiAgIAogICBRbjogU2hvdWxkIHRoaXMgZnVuY3Rpb25hbGl0eSBiZSBiYWNrLXBvcnRlZCB0byBlYXJsaWVyIGxpbmVzPwoKMjAwOS0xMS0zMCAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4Nzc1MTg6IEZpeCBoYW5kbGluZyBvZiBzY29wZWQgQWdlbnRYCiAgIHZhcmlhYmxlcwoKMjAwOS0xMS0zMCAxNDowMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4MzU1NzY6IEZpeCBlbmRpYW5uZXNzIGlzc3VlcyBpbgogICBwYXNzL3Bhc3NfcGVyc2lzdAoKMjAwOS0xMS0yNyAwODo1NCAganNhZnJhbmVrCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmM6CgogICBSZW1vdmUgZXhlY3V0YWJsZSBhdHRyaWJ1dGUgZnJvbSBzb3VyY2UgZmlsZXMuCgoyMDA5LTExLTI1IDIwOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgYWxsIHRoZSBvaWRzIGFuZCBvaWQgbGVuZ3RocyBpbiBhZ2VudF90cmFwLmMKICAgY29uc3QgYW5kIHVzZSB0aGVtIGZyb20gZXZlcnl3aGVyZS4KCjIwMDktMTEtMjUgMjA6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBJbnN0YWxsIGxpYnJhcnkvb2lkLmguIFRoYW5rcyB0byAiVG9tYXN6IExpcyIKICAgd2hvIHNwb3R0ZWQgdGhlIGJ1Zy4KCjIwMDktMTEtMjUgMDk6NDcgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIENvbW1lbnQtb25seSBjaGFuZ2U6IGNoYW5nZWQgdGhlIG5hbWUgaW4gdGhlIGZpbGUgaGVhZGVyIGZyb20KICAgdGVzdGhhbmRsZXIuaAogICB0byBpbnN0YW5jZS5oIHN1Y2ggdGhhdCBpdCBub3cgbWF0Y2hlcyB0aGUgZmlsZW5hbWUuCgoyMDA5LTExLTI0IDA3OjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdAoKMjAwOS0xMS0yMyAwNzowNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBlbnRlcnByaXNlIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2VuZF90cmFwcyBhbmQgc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBjb25zdAoKMjAwOS0xMS0yMyAwNzowMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIG5hbWUgYXJndW1lbnQgdG8gZmluZF92YXJiaW5kX2luX2xpc3QKICAgY29uc3QKCjIwMDktMTEtMjIgMjM6MjUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBSZW1vdmUgc29tZSBsb2NhbCByZWRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMKCjIwMDktMTEtMjIgMDE6MDMgIG1hZ2ZyCgogICAqICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZywgV2luMzI6IFJlbW92ZSBhIGZldyB1bnVzZWQgY29uZmlndXJlIHN5bWJvbHMKCjIwMDktMTEtMjEgMDg6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBSZXBsYWNlZCBhbiBhY2NpZGVudGFsbHkgY29tbWl0dGVkIGZpbGUgYnkgdGhlIHByb3BlciBjb250ZW50cy4KCjIwMDktMTEtMjAgMTY6MjkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUmV2ZXJ0ZWQgYWNjaWRlbnRhbGx5IG1lcmdlZCBjaGFuZ2VzLgoKMjAwOS0xMS0yMCAxNjoyNiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDA5LTExLTIwIDE2OjE4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNwZWxsaW5nIGZpeCBpbiBDIHNvdXJjZSBjb2RlIGNvbW1lbnRzOiByZXBsYWNlZCAncmV0cml2YWwnIGJ5CiAgICdyZXRyaWV2YWwnLgoKMjAwOS0xMS0yMCAxNjoxNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCBhIG5hbWluZyBpbmNvbnNpc3RlbmN5OiByZXBsYWNlZCB0d28gb2NjdXJyZW5jZXMgd2luRXh0RGxsCiAgIGJ5IHdpbkV4dERMTCBpbiBzb3VyY2UgY29kZSBjb21tZW50cy4KCjIwMDktMTEtMTkgMjI6NTIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5MDAwNzg6IEFkZCBzdXBwb3J0IGZvciBPSUQgdmFyaWFibGVzIHdpdGgKICAgc2l6ZSBpbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGJ5dGVzLCBjb3JyZWN0IHN5c09iamVjdElEIHRvIHVzZQogICB0aGlzLgoKMjAwOS0xMS0xMyAxMjo1OSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGxvZ2dpbmcgb2YgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyCiAgIGJpdHMnIGluIElQLU1JQiBhbmQgVENQLU1JQgogICBUaGUgY291bnRlcnMsIHdoaWNoIGdyb3cgZmFzdCBhcmUgbm93IGN1dCB0byAzMmJpdHMuCgoyMDA5LTExLTEyIDA4OjI2ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgVXNlIGJpZyBwcmludGYncyBpbnN0ZWFkIG9mIG1hbnkgc21hbGwgb25lcyB0byBzYXZlIGEgZmV3IGh1bmRyZWQKICAgYnl0ZXMgb24gdGhlIGZpbmFsIGV4ZWN1dGFibGUgc2l6ZS4KCjIwMDktMTEtMTIgMDI6MjQgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG9sLmMsICAgCiAgICAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX1JFUExBQ0VfRlVOQ1MgdG8gaGFuZGxlIGNvZGUgdGhhdCBpcwogICBtaXNzaW5nIG9uIHNvbWUgcGxhdGZvcm1zLgoKMjAwOS0xMS0xMSAwOTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggY2FjaGUgZnJlZSByb3V0aW5lIHRvIG1hdGNoIGhlYWRlciBkZWNsYXJhdGlvbi4KICAgUmV0dXJuIHN1Y2Nlc3MvZmFpbHVyZSB2YWx1ZXMgZnJvbSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIFByb2JsZW0gaWRlbnRpZmllZCBieSBYdWFuLgoKMjAwOS0xMC0zMCAwOTo1MSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTkVXUzogc25tcGxpYjogUmV2ZXJ0IDE3ODA4LCBpbnN0ZWFkIGZhY3RvciBvdXQgdGhlIGRlY2xhcmF0aW9uCiAgIG9mIG9pZCB0byBpdCdzIG93biBmaWxlIGFuZCBpbmNsdWRlIHRoYXQgZmlsZSBmcm9tIGJvdGggdHlwZXMuaAogICBhbmQgYXNuMS5oCgoyMDA5LTEwLTMwIDA4OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHNubXBuZXRzdGF0OiBBZGQgY29ycmVjdCBzaXplIHByZWZpeGVzCiAgIHdoZW4gcHJpbnRpbmcgdmFyaWFibGVzIG9mIHR5cGUgb2lkLgoKMjAwOS0xMC0zMCAwODowNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIG9pZCB0byBiZSBhIDMyLWJpdCB0eXBlIG9uIElMUDY0IGFuZAogICBMUDY0IHBsYXRmb3Jtcy4KCjIwMDktMTAtMzAgMDg6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIG9pZCB0eXBlZGVmIGZyb20KICAgPG5ldC1zbm1wL2xpYnJhcnkvYXNuMS5oPi4gSXQgaXMgc3RpbGwgcHJlc2VudCBpbgogICA8bmV0LXNubXAvdHlwZXMuaD4sIHVzZSB0aGF0IGZpbGUuCgoyMDA5LTEwLTI4IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGRvbid0IHJlcXVpcmUgc3ViYWdlbnRfaW5pdCgpIGlmIG5vdCBvbmx5IGJ1aWxkaW5nIG1hc3RlciBhZ2VudAogICBjb2RlCgoyMDA5LTEwLTI3IDA2OjQ0ICBtYWdmcgoKICAgKiAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cyB0byB1X2NoYXIqCgoyMDA5LTEwLTE0IDIzOjEyICBtYWdmcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuCiAgIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgoKMjAwOS0xMC0xMiAyMDoyOCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgcnAgdmFyaWFibGUgdG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIG9uZS4KCjIwMDktMTAtMDkgMTI6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoyODcxNzQ3OiBwbHVnIG1lbW9yeSBsZWFrIGluIE9JRAogICBwcm9jZXNzaW5nLgogICBUaGUgbWVtb3J5IGxlYWtlZCB3aGVuIHNtYWxsIE9JRCwgd2hpY2ggY291bGQgZml0IHByZS1hbGxvY2F0ZWQKICAgdnAtPm5hbWVfbG9jLCB3YXMgcGxhY2VkIGluIGRpZmZlcmVudCAoYWxsb2NhdGVkKSBvbmUuCgoyMDA5LTEwLTA5IDA1OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBCVUc6IDI4MzgyNDM6IENvcnJlY3QgdGhlIG91dHB1dCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKYWNrIEh1YW5nIG9mIFF1YWxjb21tIHdobyBwb2ludGVkIG91dCB0aGlzIGJ1Zy4KCjIwMDktMTAtMDkgMDU6MDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgcGFyc2luZyBvZiByYW5nZXMgdG8gYWNjZXB0IGFsbAogICB2YWxpZCB2YWx1ZXMuCgoyMDA5LTEwLTA3IDIyOjI0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogbWlzYzogUEFUQ0g6IDI4MzYxMTI6IFVzZSB0aGUgcmlnaHQgbW9kaWZpZXIgd2hlbgogICBwcmludGluZyBzaXplX3QgYW5kIHNzaXplX3QgdmFyaWFibGVzLgoKMjAwOS0xMC0wNyAxMjo1MCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGNyZWF0aW9uIG9mIHZpZXdzIHVzaW5nIHNubXB1c20sIE9JRHMgd2l0aAogICBpbmRleGVzID4gMjU1IGFyZSBhbGxvd2VkIG5vdy4KICAgVGhpcyByZXZlcnRzIFNWTiBjb21taXQgIzc0OTIuCgoyMDA5LTEwLTA1IDE5OjE5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgc3BlbGxpbmcgb2YgX19jcGx1c3BsdXMgd2hlbgogICBjaGVja2luZyBpZiB0aGUgZmlsZSBzaG91bGQgYmUgd3JhcHBlZCBpbiBleHRlcm4gIkMiLgoKMjAwOS0xMC0wNSAwNjoxMyAgbWFnZnIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZSBlbmQgb2lkIGlzIGxvbmdlcgogICB0aGFuIHRoZSBjdXJyZW50IG9pZCBjb3JyZWN0bHkKCjIwMDktMDktMzAgMTA6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYWNrYWdlIHZlcnNpb24KICAgaW5mb3JtYXRpb24gY3Jhc2hpbmcgdGhlIGFnZW50LgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IElueWF2ZW4gU2FrYXJhaS4KCjIwMDktMDktMjcgMTQ6NTkgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzI6IEJpbmFyeSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIHNjcmlwdCB1cGRhdGVzLgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5yYzMgLT4gVjUuNQoKMjAwOS0wOS0yMyAyMzo0MiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcmVtb3ZlIFNWTiBicmFuY2ggd29yZGluZwoKMjAwOS0wOS0yMyAyMzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcHJvcGVyIHByb2plY3QgY2FwaXRhbGl6YXRpb24KCjIwMDktMDktMjMgMjM6MzUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjIgMjE6NTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggdHlwb3MKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5yYzIgLT4gVjUuNS5yYzMKCQoyMDA5LTA5LTE0IDIyOjM5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFpeCwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFBhdGNoIGZyb20gbWFnZnIgZm9yIDUuNSBzcGVjaWZpYyBhaXggYnVpbGQgZml4ZXMKCjIwMDktMDktMDIgMDc6MTIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZW5hbWUgTUlCIG1hY3JvIHRvIE5FVFNOTVBfTUlCMl9PSUQsIE1JQiBpcwogICB0b28gZ2VuZXJpYyBhbmQgbWF5IGNvbmZsaWN0IHdpdGggYXBwbGljYXRpb25zLgogICAKICAgVGhlIG9sZCBNSUIgbWFjcm8gaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdW5sZXNzCiAgIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TIGlzIGRlZmluZWQuCgoyMDA5LTA4LTMxIDE5OjM4ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkaXRpb25hbCBSRkMgbWlicwoKMjAwOS0wOC0zMSAxOTozNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgSUFOQSBmaXhlZCBhIGJ1ZwoKMjAwOS0wOC0yOSAwNzoyOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOS0wOC0yOSAwNzoyOCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogcmV0IGlzIG9ubHkgdXNlZCBpbiBzZXR0YWJsZSB0YWJsZXMgc28gb25seSBkZWNsYXJlIGl0CiAgIHRoZW4uCgoyMDA5LTA4LTI5IDA3OjI0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZXBsYWNlIHRoZSBfb2lkX2xlbiB2YXJpYWJsZSB3aXRoIGFuIGV4cGxpY2l0IGNhbGwgb2YKICAgT0lEX0xFTkdUSC4KCjIwMDktMDgtMjkgMDc6MjEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IE1ha2UgZXZlcnkgZnVuY3Rpb24gdGhhdCBjYW4gYmUgc3RhdGljIHN0YXRpYy4gUmVtb3ZlIHRoZQogICBkZWNsYXJhdGlvbnMgb2YgdGhlIHN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoZSBwcml2YXRlIGRlZmluZXMgZnJvbQogICB0aGUgaGVhZGVyLgoKMjAwOS0wOC0yOSAwNzoxOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVvcmRlciB0aGUgZnVuY3Rpb25zIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KCjIwMDktMDgtMjkgMDc6MTYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IG5ldHNubXBfdGFibGVfcmVnaXN0ZXIgc2hvdWxkIGJlIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUKICAgYW5kIHRha2Ugb25seSB0d28gYXJnbWVudHMuCgoyMDA5LTA4LTI5IDA3OjE0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBidWlsZF9vaWQgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYWxsb2NhdGVkIG9pZC4gQ2hhbmdlIHRvCiAgIHVzZSBidWlsZF9vaWRfbm9hbGxvYyBhbmQgcmVtb3ZlIG9uZSBjb3B5IG9mIHRoZSBpbmRpY2VzLgoKMjAwOS0wOC0yOSAwNzoxMCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogVGhlcmUgaXMgbm8gaW5kZXhfb2lkX2xlbiBtZW1iZXIgaW4gc3RydWN0IGVudHJ5LiBVc2UgdGhlCiAgIGludGVuZGVkIGxvY2FsIHZhcmlhYmxlIGluZGV4X29pZF9sZW4uCgoyMDA5LTA4LTI5IDA3OjA2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBDb3JyZWN0IHRoZSByZXR1cm4gdHlwZSBvZiAke2l9X2dldCplbnRyeSB0byBtYXRjaCB0aGUKICAgcmV0dXJuZWQgdHlwZS4KCjIwMDktMDgtMjYgMjI6MzcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHdod29vcHM7IGJsZXcgdGhlIGNoYW5nZWxvZyBmb3IgcmMyCgoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucmMxIC0+IFY1LjUucmMyCgkKMjAwOS0wOC0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHVwZGF0ZWQgYmFzZWQgb24gbmV3IFNGIHVwbG9hZCBtZXRob2RzOyBubyBsb25nZXIgYXMgYXV0b21hdGFibGUKCjIwMDktMDgtMjYgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggZnJvbSBKYW4gdG8gZW5kbGVzcyBsb29wIGluIGRlZmF1bHQgcm91dGVzCiAgIG9uIGxpbnV4CgoyMDA5LTA4LTI2IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gSmFuIHRvIGZpeCBDKysgd3JhcHBlcgoKMjAwOS0wOC0yNiAxNDo1MyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgSW5pdGlhbCBzdGFiIGF0IGEgbWluaW1hbC1oZWxwZXIgKHJhdykgdGFibGUgdGVtcGxhdGUsCiAgIGxlYXZpbmcgbW9zdCBvZiB0aGUgd29yayB0byB0aGUgdXNlci1wcm92aWRlZCBNSUIgaGFuZGxlci4KCjIwMDktMDgtMjYgMTQ6NTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBib2d1cyBmYWlsdXJlcyAocmV0dXJuaW5nIDApIGFuZCBzdWJzZXF1ZW50CiAgIGRvdWJsZS1mcmVlcywKICAgZHVlIHRvIDE1LS8zMS1iaXQgbWFza2luZyB3aGVuIHNlbGVjdGluZyByZXF1ZXN0IElEcy4gSWRlbnRpZmllZAogICBieSBrcm9tZXNreS4KCjIwMDktMDgtMjAgMTM6MzAgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwbHVnIGxlYWtzIGluIGlwSWZTdGF0c1RhYmxlLAogICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZS4KICAgCiAgIEl0IHNlZW1zIHRvIG1lIHRoZSB0YWJsZXMgd2VyZSB3cm9uZ2x5IGdlbmVyYXRlZCB3aXRoCiAgIG0yY19kYXRhX2FsbG9jYXRlIG9yCiAgIHNvbWVvbmUgZm9yZ290IHRvIHJlbGVhc2UgdGhlIHVzZXIgcHJvdmlkZWQgZGF0YS4KCjIwMDktMDgtMTIgMTU6MDAgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGZpeCBsaWJ0b29sIHZlcnNpb24gaW4gTkVXUwoKMjAwOS0wOC0xMSAwMDo0MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgQ2hhbmdlTG9nOgoKICAgd2hvb3BzOyBhZGQgcmVhbCBjaGFuZ2Vsb2cgZW50ZXJpZXMgZm9yIC5yYzEKCjIwMDktMDgtMTAgMjM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZml4IHR5cG8gaW4gc3ZuMmNsIGxpbmUKCjIwMDktMDgtMTAgMjM6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDgtMTAgMjE6MzIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucHJlMyAtPiBWNS41LnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0xMCAyMToyMSAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMDcgMTA6MzIgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBDb3JyZWN0LCBjb25zb2xpZGF0ZSwgY2xhcmlmeSBhbmQgY2xlYW51cCB0aGUgY2F0YWxvZyBvZiBjdXJyZW50CiAgIGNoYW5nZXMuCgoyMDA5LTA4LTA2IDA3OjU3ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgb24gZXhlYyB2cyBleHRlbmQuCgoyMDA5LTA4LTA1IDIwOjA3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyODIyMzU1OiBGaXggbWVtb3J5IGxlYWtzIG9uCiAgIHVkcEVuZHBvaW50VGFibGUgKGxpbnV4KQogICBQYXRjaCBzdXBwbGllZCBieSBGcmFuayBMaWNodGVuaGVsZAoKMjAwOS0wOC0wNSAxOTowNSAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI4MjIzMzc6IEZpeCBtZW1vcnkgbGVhayBpbgogICBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAwOS0wOC0wNSAxNToxNiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFdoZW4gZGVsZXRpbmcgcm93IGNvbnRleHQsIGRlbGV0ZSBhbHNvIGFzc29jaWF0ZWQgZGF0YS4KCjIwMDktMDgtMDUgMTU6MTUgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgVGhlIGNvbnRhaW5lciB1c2VkIHRvIHRyYWNrIGVudHJpZXMgdG8gZGVsZXRlIGZyb20gY2FjaGUgc2hvdWxkCiAgIGJlIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgbmVlZGVkLgoKMjAwOS0wOC0wNSAxNToxMiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBVRFAtIGFuZCBUQ1AtTUlCLgogICBUaGUgZGF0YSBmcm9tIHJhd19kYXRhIGFyZSBjb3BpZWQgdG8gY2FjaGUsIHNvIGl0IHNob3VsZCBiZQogICBmcmVlZC4KCjIwMDktMDgtMDUgMTA6MTYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDI4MTE1Nzc6IEZpeCBidWcgaW4gR2V0QnVsayBoYW5kbGluZy4KICAgRG9uJ3QgZ2V0IGNvbmZ1c2VkIGJ5IGluZGV4IHZhbHVlcyB0aGF0IGNvbnRhaW4gYSAnOicgY2hhcmFjdGVyLgoKMjAwOS0wOC0wNCAyMTo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAyODI3MjY5OiBTdXBwcmVzcyBub24tb3JkZXJlZCBUT0RPIGNvbW1lbnRzLgoKMjAwOS0wOC0wNCAyMTozNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgY29kZSBmb3IgYSBzaW5nbGUgdGFibGUsCiAgIGFzIHdlbGwgYXMgYSBsYXJnZXIgZ3JvdXAuCiAgIEFsc28gYWRkcmVzc2VzIGJ1ZyAyMTUwMjg1CgoyMDA5LTA4LTA0IDIxOjE2ICBtYWdmcgoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBzbm1wbGliOiBmcm9tICJCYXJ0IHZhbiBBc3NjaGUgJiBNYWdudXMgRnJvbXJlaWRlIjogTW9yZSB1cGRhdGVzCiAgIHRvIHN0cnRvdWxsLmMKCjIwMDktMDgtMDQgMTA6NTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFLDvGNrZXJ0IjogZml4IHBvc3NpYmxlIGNyYXNoIHdoZW4KICAgNjQtYml0IGNvdW50ZXJzIGluIGlwU3lzdGVtU3RhdHNUYWJsZSBnZXQgYmlnZ2VyIHRoYW4gMl4zMgoKMjAwOS0wOC0wMyAxOToyNyAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyODI3NzIyOiBmcm9tICJCYXJ0IFZhbiBBc3NjaGUiOiBJbXByb3ZlCiAgIHN0cnRvdWxsIHRvIGJlIGxlc3MgTVNWQy1zcGVjaWZpYwoKMjAwOS0wOC0wMyAxODozOCAgbWFnZnIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlIGZyb20gdGhlIHNldCBvZiBmaWxlcyB0aGF0IHNob3VsZAogICBiZSBpbnN0YWxsZWQKCjIwMDktMDctMjcgMTI6NDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wNy0yNyAxMjoxMSAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjM6CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UKCjIwMDktMDctMjcgMTI6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBmcmVlYnNkOiBwYXRjaCBmcm9tIENlemFyeSBNb3JnYSB0byBmaXggYSBtYWtlIHRlc3Qgb24KICAgZnJlZWJzZAoKMjAwOS0wNy0yNyAxMjowMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNy0yNyAxMTo1MiAgaGFyZGFrZXIKCiAgICogIEZBUSwgTkVXUywgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA3LTI3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcmV2ZXJ0IGFjY2lkZW50aWFsbHkgYXBwbGllZCBwYXRjaAoKMjAwOS0wNy0yNyAwODozNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIHVkcC9kdGxzCgoyMDA5LTA3LTI3IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCByZXF1aXJlIGEgc2Vzc2lvbiB0byBjYXJyeSBhIHNlY05hbWUKCjIwMDktMDctMjYgMjE6MzQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyBmb3IgV29ya3NwYWNlIGJ1aWxkLgoKMjAwOS0wNy0yNiAxODoyMCAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC1BZGRlZCBzdHJ0b3VsbCBmdW5jdGlvbiBhbmQgY29uZmlndXJlIGNoZWNrIGZvciBzeXN0ZW1zIHdpdGhvdXQKICAgaXQgc3VjaCBhcyBXaW4zMiBNU1ZDIDYKICAgLVdpbjMyOiBNU1ZDIDYgY29tcGlsZSBmaXhlcyAtIHJlcXVpcmVzIG5ldyBzdHJ0b3VsbC5jIGZpbGUKICAgLVdpbjMyOiBOZXcgYnVpbGQtYmluYXJ5IHNjcmlwdCB0byBzaW1wbGlmeSBidWlsZGluZyB0aGUgV2luZG93cwogICBiaW5hcnkgcGFja2FnZS4KCjIwMDktMDctMjUgMDU6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgTWFrZSBzdXJlIGEgbWVzc2FnZSBpcyB3cml0dGVuIGlmIHRoZSByZWxldmFudCB0YWJsZSBpcyBtaXNzaW5nLgoKMjAwOS0wNy0yMyAyMToyOSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCBhZGRyZXNzIGluIFJFQURNRS4KCjIwMDktMDctMjMgMDE6MDcgIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDgrIGZpeGVzLgoKMjAwOS0wNy0yMyAwMDo1NSAgYWxleF9iCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIDIwMDUrIGJ1aWxkIGZpeGVzLiBUaGFua3MgdG8gQmFydCBWYW4gQXNzY2hlLgoKMjAwOS0wNy0yMSAxMjoyMiAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLnJvdy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBBZGQgc2ltcGxlIGRlYnVnIG91dHB1dCB0byBtaWIyYyB0ZW1wbGF0ZXMuCgoyMDA5LTA3LTIxIDEyOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggbWlzc2luZyBzZW1pY29sb24gdHlwb3MuCgoyMDA5LTA3LTIxIDA5OjE1ICBkdHMxMgoKICAgKiBGQVE6CgogICBOZXcgc3VnZ2VzdGVkIGVudHJpZXMuCgoyMDA5LTA3LTIwIDE5OjI0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPRElORyBzZWN0aW9uLgoKMjAwOS0wNy0yMCAxMTowOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIuaDoKCiAgIEFkZCBtaXNzaW5nIGhlYWRlciBmaWxlIGZyb20gcGF0Y2ggIzIwNTMyNzMuCgoyMDA5LTA3LTE5IDE1OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPTVBJTElORyBzZWN0aW9uLgoKMjAwOS0wNy0xNiAxMjozOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgQWRkIElQdjYgb2N0ZXQgY291bnRlcnMuCiAgIE5ldyBMaW51eCBrZXJuZWxzIChlLmcuIDIuNi4zMS1yYzIsIG1heWJlIHNvbWUgZWFybGllcikgcHJvdmlkZQogICBjb3VudGVycyBmb3IKICAgaW5jb21pbmcvb3V0Z29pbmcgSVB2NiB0cmFmZmljIGZvciBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwSWZTdGF0c1RhYmxlLgoKMjAwOS0wNy0xNSAyMjo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgcHV0IHRlbXBvcmFyeSBkYXRhIHRvIHdoZXJlIHRoZXkgYmVsb25nCgoyMDA5LTA3LTExIDIxOjUwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlZ2VuZXJhdGUgY29uZmlndXJlCgoyMDA5LTA3LTExIDIxOjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgYnVpbGQgZml4IChlLmcuIGZvciBGcmVlQlNEKTogYWRqdXN0IGt2bSBjb25maWd1cmUgdGVzdHMKCjIwMDktMDctMTAgMTI6MzUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGVjayBJUHY2IHBvcnQgcmFuZ2VzIGluIHRoZSBzYW1lIHdheSBhcyBJUHY0IHBvcnRzIGFyZSBjaGVja2VkLgoKMjAwOS0wNy0xMCAwNzo0NiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjOgoKICAgRml4IGFub3RoZXIgSVB2NCBhZGRyZXNzIHNpemUgLSBsb25nIGhhcyA4IGJ5dGVzIG9uIDY0Yml0IExpbnV4LgogICBBbHNvIGZpeCB0aGUgZGVmYXVsdCB0eXBlIGZvXkNBU05fSVBBRERSRVNTIGluIG1pYjJjLCBzbyB0aGUKICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYyBjYW4gYmUgc2FmZWx5IHJlZ2VuZXJhdGVkLgoKMjAwOS0wNy0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBjbGVhbnVwIG9mIHRlc3RpbmcgY2FzZXMgdG8gcmVtb3ZlIGRvdWJsZSBpbmNsdWRlIGFuZCBkb3VibGUKICAgZXhwb3J0cwoKMjAwOS0wNy0wOSAyMzowNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHA6CgogICBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFRDUC9JUHY0IHRlc3QKCjIwMDktMDctMDkgMjI6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgbmV3IHRlc3RzIGZvciB0ZXN0aW5nIGRlZmluZWQgdHJhbnNwb3J0cwoKMjAwOS0wNy0wOSAyMjoxNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYSBDT05GSUdBUFAgbWFjcm8gZm9yIGFkZGluZyBzdHVmZiB0byBzbm1wLmNvbmYKCjIwMDktMDctMDggMTU6MTIgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBnZXRob3N0YnlhZGRyIHBhcmFtZXRlciwgbmV0c25tcF91ZHBfZm10YWRkciBuZXZlciByZXR1cm5lZCBhCiAgIGhvc3RuYW1lLgoKMjAwOS0wNy0wNyAxNTo0NiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRml4IElQIGFkZHJlc3MgbGVuZ3RoIG9uIDY0IGJpdCBzeXN0ZW1zIGluIG1pYklJLCBwYXNzIGFuZAogICBwYXNzX3BlcnNpc3QgbW9kdWxlcy4KCjIwMDktMDctMDcgMTU6MjQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgVXNlIGNvcnJlY3RseSBzaXplZCBJUCBhZGRyZXNzZXMgaW4gYWRkcmVzcyB0cmFuc2xhdGlvbiB0YWJsZQogICBwcm9jZXNzaW5nIC0gdV9sb25nIGNhbiBtYWtlIHByb2JsZW1zIG9uIGJpbiBlbmRpYW4gNjQgYml0CiAgIHN5c3RlbXMKCjIwMDktMDYtMjkgMTM6NTIgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICByZW1vdmUgZW50cnkgZm9yIGEgcGF0Y2ggdGhhdCBnb3QgcmV2ZXJ0ZWQKCjIwMDktMDYtMjUgMTU6MjQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBNb3ZlIG5vbi1jb3JlIGRhdGEgdHlwZXMgaW50byBhIHNlcGFyYXRlIChsaWJyYXJ5IGludGVybmFscykKICAgaGVhZGVyIGZpbGUuCiAgIE1vdmUgdGhlIGxhcmdlX2ZkX3NldCBkYXRhIHN0cnVjdHVyZSBpbnRvIHRoaXMgaGVhZGVyIGZpbGUuCgoyMDA5LTA2LTE4IDIyOjI5ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFsbG93IGJ1aWxkaW5nIHdpdGggUGVybCB2ZXJzaW9ucyB0aGF0IGxhY2sKICAgUEVSTF9FWElUX0RFU1RSVUNUX0VORAoKMjAwOS0wNi0xOCAyMjoxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBDSEFOR0VTOiBidWlsZDogYnVpbGQgZml4IGZvciBUcnU2NCBVbml4IGFuZCBJUklYOiBtb3ZlIF9YT1BFTioKICAgZGVmaW5pdGlvbnMgdG8gd2hlcmUgdGhleSBhcmUgaW4gNS40LnggYW5kIGVhcmxpZXIKCjIwMDktMDYtMTggMDY6MDIgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENsZWFuIHVwIC0td2l0aC1ubCBjb25maWd1cmF0aW9uCiAgICogIE1vdmUgdGhlIF9BUkdfV0lUSCB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSAgMjAwOS0wNi0xNiAxNToxNwogICAgICAgcnN0b3J5CgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2hlY2sgZm9yIG51bGwgcG9pbnRlciBiZWZvcmUgZGVyZWYKCjIwMDktMDYtMTUgMjM6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBhZGQgY29tbWVudCBleHBsYWluaW5nIG5vdCBxdWl0ZSBvYnZpb3VzIGxhY2sgb2YgbWVtbW92ZQoKMjAwOS0wNi0xNSAxOTozMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgUmVtb3ZlICNpZiAwIGNvbW1lbnRlZCBjb2RlCgoyMDA5LTA2LTE1IDE1OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEFHRU5UIHNlY3Rpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnByZTIgLT4gVjUuNS5wcmUzCgoyMDA5LTA2LTEzIDAxOjEyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjU2NDU1MjogZnJvbSBhaG1ha2U6IHByb3ZpZGUgbGlibmV0bGluawogICBzdXBwb3J0IGZvciBsb2FkaW5nIHRoZSB0Y3AgdGFibGUKCjIwMDktMDYtMTIgMTk6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNDAwMTAxOiByZW1vdmUgZGVsZXRlZCBpbnRlcmZhY2VzIGZyb20KICAgaWZUYWJsZQoKMjAwOS0wNi0xMSAyMzowOSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvd2lucGlwZS5jLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgQ0hBTkdFUzogd2luMzI6IFBBVENIOiAyNjkzNzQ2OiBmcm9tIGJ2YXNzY2hlOiBpbXByb3ZlZCBzb2NrZXQKICAgc3RhcnR1cCBzdXBwb3J0CgoyMDA5LTA2LTExIDIyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTI0MDI6IGRvbid0IGZhaWwgb24gZmFpbHVyZSB0byBsb29rIHVwCiAgIGludGVyZmFjZSBlcnJvciBjb3VudGVycy4KCjIwMDktMDYtMTEgMjI6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHJldmVydCBwcmV2aW91cyBjb21taXQgdG8gbWFrZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYmFjayB0bwogICB0aGVpciByZWd1bGFyIGluc2FuZSBvcmRlcmluZzsgSSBkb24ndCBsaWtlIHRoaXMgc2l0dWF0aW9uIGF0IGFsbAoKMjAwOS0wNi0xMSAyMTo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBsYXJnZV9mZF9zZXQuaCBiZWZvcmUgdHlwZWRlZmluZyBzb21ldGhpbmcgYmFzZWQgb24gdGhlCiAgIHN0cnVjdHVyZQoKMjAwOS0wNi0wMyAxMjozNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSEVTOiAyNzkzODU3OiBSZXBvcnQgZmFpbGVkIGFzeW5jaHJvbm91cwogICByZXF1ZXN0cy4KCjIwMDktMDYtMDMgMTE6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIFJlbW92ZSBwYXRjaCAjMjE4MjU5MiAtIHJldmVydCB0byBTVk4gcmV2aXNpb24gMTc2NDYKICAgVGhlIGNsZWFudXAgcm91dGluZXMgZG9uJ3QgYXBwZWFyIHRvIGV4aXN0LgoKMjAwOS0wNi0wMyAxMDoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMTgyNTkyOiBDbGVhbiB1cCB2YWNtQ29udGV4dFRhYmxlIGFmdGVyCiAgIHVucmVnaXN0cmF0aW9ucwogICBQYXRjaCBzdXBwbGllZCBieSBKb2huIEZvcnN5dGgKCjIwMDktMDYtMDMgMTA6MTIgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyNzk3MjUxOiBTdXBwb3J0IG11bHRpcGxlIGluaXRpYWxpc2F0aW9uIGFuZAogICBzaHV0ZG93biwgZml4IG1lbW9yeSBsZWFrcwogICBQYXRjaCBzdXBwbGllZCBieSBJdm9zaAoKMjAwOS0wNi0wMSAxNTo1MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFORUdTOiBkb2NzOiBQQVRDSEVTOiAyNzg4MDcyOiBEb2N1bWVudCAnbG9nbWF0Y2gnCiAgIGZ1bmN0aW9uYWxpdHkuCgoyMDA5LTA2LTAxIDE1OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMjc4MDQxMTogRml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA5LTA2LTAxIDE1OjM3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BycHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYywgY29uZmlndXJlLCAgIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9tb25pdG9yLCBtNC9saWJ0b29sLm00LCAgIAogICAgICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgQ0hBTkdFUzogZG9jczogUEFUQ0g6IDI3OTU3Mzk6IEZpeCBpbmNvcnJlY3QgZGlzay9maWxlIHNpemUKICAgZGVzY3JpcHRpb25zICYgdW5pdCBzcGVjaWZpZXJzCgoyMDA5LTA2LTAxIDEzOjExICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgUmV3b3JrIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIG1hdGNoIGN1cnJlbnQgc25tcGQuY29uZig1KQogICBzdHJ1Y3R1cmUsCiAgIGFuZCBtb3JlIGNsZWFybHkgaWxsdXN0cmF0ZSBjdXJyZW50IGJlc3QgcHJhY3Rpc2UuCgoyMDA5LTA1LTMwIDA2OjU4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgUmVtb3ZlIHVudXNlZCBpbmNsdWRlLgoKMjAwOS0wNS0yOSAwOToxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oOgoKICAgQXV0b21hdGljYWxseSBsb2FkIHRoZSBleGFtcGxlIHBhc3N0ZXN0IE1JQgoKMjAwOS0wNS0yOSAwOTowOCAgZHRzMTIKCiAgICogIGxvY2FsL3Bhc3N0ZXN0LCBsb2NhbC9wYXNzdGVzdC5wbCwgbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQ6CgogICBSZXdvcmsgInBhc3N0ZXN0IiBleGFtcGxlcyB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzLAogICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBNSUIgc3RydWN0dXJlIGZvciBvdXRwdXQuCiAgIEFkZCBhbiBleGFtcGxlIE1JQiB0byBkZWZpbmUgdGhhdCBzdHJ1Y3R1cmUuCgoyMDA5LTA1LTI4IDEyOjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIE1JQnMgc2VjdGlvbgoKMjAwOS0wNS0yOCAxMTo1NiAgZHRzMTIKCiAgICogRkFROgoKICAgVHdlYWsgcGhyYXNpbmcgb2YgYW4gKG92ZXJsb25nKSBxdWVzdGlvbiBpbiB0aGUgUGVybCBzZWN0aW9uCgoyMDA5LTA1LTI4IDExOjMxICBkdHMxMgoKICAgKiBGQVE6CgogICBOZXcgZW50cnkgaW4gdGhlIEFwcGxpY2F0aW9ucyBzZWN0aW9uCgoyMDA5LTA1LTI4IDEwOjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEFwcGxpY2F0aW9ucyBzZWN0aW9uCgoyMDA5LTA1LTI3IDE1OjI2ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIEdFTkVSQUwgc2VjdGlvbi4KCjIwMDktMDUtMTkgMTc6NTAgIGFsZXhfYgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBVcGRhdGUgUGVybCBUcmFwUmVjZWl2ZXIgZXhhbXBsZSB0byBwcm9wZXJseSBvdXRwdXQgdGhlCiAgIHNlY3VyaXR5RW5naW5lSUQgYW5kIGNvbnRleHRFbmdpbmVJRC4KCjIwMDktMDUtMTggMTA6MDMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEF2b2lkIGRpdmlzaW9uIGJ5IHplcm8uCgoyMDA5LTA1LTE1IDE5OjIyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDI3ODI3MDA6IGJ1aWxkIGZhaWx1cmUgd2hlbiB1c2luZwogICAtLXdpdGgtcGtjcyBvbgogICBTb2xhcmlzCgoyMDA5LTA1LTE1IDE0OjU5ICBqc2FmcmFuZWsKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgRml4IGNvbXBpbGF0aW9uIG9mIHJwbSBwYWNrYWdlcyBvbiBGZWRvcmEgPj0gMTAgLSBpdCBoYXMgbmV3ZXIKICAgUlBNIGFuZCB0aGUgb2xkIEFQSSBuZWVkcyB0byBiZSBleHBsaWNpdGx5IGVuYWJsZWQgYnkgYSBtYWNyby4KCjIwMDktMDUtMTQgMTM6MzkgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgVGhlIHNubXBjbWQgbWFuIHBhZ2UgaXMgbm90IHNwZWNpZmljIGhvdyByYW5nZSBvZiBsb2cgcHJpb3JpdGllcwogICBzaG91bGQgYmUgc3BlY2lmaWVkIG9uIGNvbW1hbmQgbGluZSwKICAgaS5lLiBib3RoIC1MTyA0LTAgYW5kIC1MTyAwLTQgYXJlIHZhbGlkLiBBbGwgc25tcCBjb21tYW5kcyAoaW5jbC4KICAgc25tcGQpIHNob3VsZCByZWNvZ25pemUgdGhhdC4KCjIwMDktMDUtMTQgMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFsbG93ICJtb25pdG9yIiB0byBoYW5kbGUgbmVnYXRpdmUgdGhyZXNob2xkCiAgIHZhbHVlcy4KICAgUmVwb3J0ZWQgYnkgUmljaGFyZCBHaXBwcy4KCjIwMDktMDUtMTMgMjI6MzIgIHRhbmRlcnMKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI3OTE0MTc6IGZpeCBzbm1wZCBzZWdmYXVsdCB3aGVuIHJ1biB3aXRoCiAgIC1EQUxMCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFJvbiBSb3NrZW5zLgoKMjAwOS0wNS0xMyAwODowMiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBCcmluZyBkb2N1bWVudGF0aW9uIG9mIG5vdGlmaWNhdGlvbkV2ZW50IHN5bnRheCBpbnRvIGxpbmUgd2l0aAogICByZWFsaXR5LgogICAoVXNlcyAiLW0iIHJhdGhlciB0aGFuICItbiIgdG8gcmVnaXN0ZXIgc3RhbmRhcmQgTUlCIHBheWxvYWQKICAgb2JqZWN0cykKICAgSW5jb25zaXN0ZW5jeSByZXBvcnRlZCBieSBSaWNoYXJkIEdpcHBzLgoKMjAwOS0wNS0xMCAyMToxMiAgYWxleF9iCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBBZGRlZCBhdXRvbWF0aWMgbWFuaWZlc3QgbWVyZ2luZyB3aXRoIG10LmV4ZSBmb3IgTVNWQyAyMDA4CiAgIGV0Yy4KCjIwMDktMDUtMDggMTM6MTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENoYW5nZXM6IFdpbjMyOiBBZGQgc3VwcG9ydCBmb3IgV2luZG93cyA3LCBWaXN0YSBhbmQgMjAwOCBmb3IKICAgd2luRXh0RExMLgoKMjAwOS0wNS0wOCAwMjowNyAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgRExMLgoKMjAwOS0wNS0wNyAyMzowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYzoKCiAgIGJ1aWxkIGZpeCBmb3IgSFAtVVg6IGluY2x1ZGUgPHN5cy9wYXJhbS5oPiBmb3IgREVWX0JTSVpFCgoyMDA5LTA1LTA3IDA1OjExICBuYmEKCiAgICogYWdlbnQvc25tcF9wZXJsLmg6CgogICBVcHMsIG1pc3NlZCBhIG5ldyBwcm90b3R5cGUgaGVhZGVyCgoyMDA5LTA1LTA2IDIyOjI2ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBBIG1hbiBsaW5lIGNhbm5vdCBzdGFydCB3aXRoIGEgJwoKMjAwOS0wNS0wNiAyMjowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIElQdjYgYWRyZXNzZXMgYXJlIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQgdGhlbiAzMmJpdHMKCjIwMDktMDUtMDYgMjI6MDYgIG5iYQoKICAgKiAgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIFNwcmlua2xlIHNvbWUgY29uc3QtbmVzcyB3aGVyZSByZWxldmFudAoKMjAwOS0wNS0wNiAyMjowMiAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBUcml2aWFsIHdhcm5pbmcgZml4ZXMKCjIwMDktMDUtMDYgMjI6MDAgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIEhtbW0sIElBTkEgZml4ZWQgdGhlaXIgYnVnIHRvbwoKMjAwOS0wNS0wNiAyMTo1OSAgbmJhCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCB0byBjdXJyZW50CgoyMDA5LTA1LTA2IDIxOjU5ICBuYmEKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfdmFycy5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgCiAgICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIFRyaXZpYWwgd2FybmluZyBmaXhlcwoKMjAwOS0wNS0wNiAyMTo0OSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgY29udGV4dEVuZ2luZUlEIGlzIGEgaGV4c3RyaW5nLCBub3QgYW4gb2JqZWN0IGlkZW50aWZpZXIKCjIwMDktMDUtMDYgMjE6NDUgIG5iYQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCAgIAogICAgICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9pbnQ2NC5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggZm9ybWF0IHdhcm5pbmdzIGZyb20gZGVidWcgb3V0cHV0CgoyMDA5LTA1LTA2IDIwOjQ1ICBuYmEKCiAgICogbWlicy9zbWlzdHJpcDoKCiAgIFByb3Blcmx5IHJlY29nbml6ZSBtZXNzYWdlIHN5bnRheCBtb2R1bGVzICh0byBiZSBhYmxlIHRvIGlnbm9yZQogICB0aGVtKQoKMjAwOS0wNS0wNiAyMDozNiAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJGQyB1cGRhdGVzCgoyMDA5LTA1LTA2IDIwOjM1ICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBTeW50YXggZml4IGZvciBjdXJyZW50IElBTkEtUFJJTlRFUi1NSUIKCjIwMDktMDUtMDYgMjA6MzQgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEgdmVyc2lvbgoKMjAwOS0wNS0wNCAxMzo0NyAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgRExMLgoKMjAwOS0wNS0wMSAxNTo0MyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBORVdTOiBzbm1wbGliOiBTdG9wIHVzaW5nIGEgZml4ZWQgc3RyaW5nIGZvciBpbmRlbnRhdGlvbi4gUmVtb3ZlCiAgIHRoZSBERUJVR0lOREVOVCgpIG1hY3JvICh0aGF0IGRpZCBub3RoaW5nKS4gQ2hhbmdlIHRoZSBtZWFuaW5nIG9mCiAgIHRoZSBpbnRlcm5hbCBfX0RCR0lOREVOVCgpIG1hY3JvIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHNwYWNlcwogICB0byBpbmRlbnQgaW5zdGVhZCBvZiBhIHN0cmluZyB0aGF0IHJlcHJlc2VudCB0aGUgaW5kZW50YXRpb24KICAgbGV2ZWwuIERlcHJlY2F0ZSB0aGUgZGVidWdfaW5kZW50IGZ1bmN0aW9uLgoKMjAwOS0wNC0zMCAwNjo1NyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZjoKCiAgIENIQU5HRVM6IHNubXBkOiBVc2Ugc3RhdGljIHdhdGNoZXJfaW5mbyBmb3IgYWxsIHdhdGNoZWQgdmFyaWFibGVzCiAgIGFuZCBpbiBpbnRfd2F0Y2guCgoyMDA5LTA0LTMwIDA2OjQxICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBTZXBhcmF0ZSBpbml0aWFsaXphdGlvbiBmcm9tIGFsbG9jYXRpb24gZm9yCiAgIG5ldHNubXBfd2F0Y2hlcl9pbmZvIHN0cnVjdHVyZXMgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UKICAgc3RhdGljYWxseSBhbGxvY2F0ZWQgZGF0YS4KCjIwMDktMDQtMzAgMDY6MzQgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIEFkZCBtaXNzaW5nIHJldHVybiB2YWx1ZS4KCjIwMDktMDQtMzAgMDA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIERUTFMgc3VwcG9ydDsgc2VtaSBkb2N1bWVudCB0aGUgU1NIIHN1cHBvcnQgYW5kCiAgIGRvY3VtZW50IHRoZSAtcyBzd2l0Y2ggdG8gbWFueSBWQUNNIHNldHRpbmdzCgoyMDA5LTA0LTI5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm90ZWN0IGFnYWluc3QgY29ubmVjdGlvbiBvcGVuaW5nIGVycm9ycyBhbmQgZnJlZSBtZW1vcnkgb24KICAgZmFpbHVyZXMKCjIwMDktMDQtMjkgMTI6MTkgIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IFVwZGF0ZSBkZWZpbmVzIGZvciBfV0lOMzJfV0lOTlQgYW5kIE5URERJX1ZFUlNJT04gdG8KICAgc3VwcG9ydCBXaW5kb3dzIDIwMDAgYW5kIGhpZ2hlciBhbmQgYWRkIElQVjYgZGVmaW5lIHRvIGFsbG93IElQVjYKICAgY29kZSB0byBjb21waWxlLgoKMjAwOS0wNC0yOCAwNjozNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBzbm1wZCwgTGludXg6IFJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA5LTA0LTI4IDA2OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgc25tcGQ6IEFkZCBtaXNzaW5nIGFyZ3VtZW50IHRvIHByaW50Zi1saWtlIGNhbGwuCgoyMDA5LTA0LTI4IDA1OjUzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBzbm1wZDogTWFyayBtb3JlIG9pZHMgYXMgY29uc3QuCgoyMDA5LTA0LTI4IDA1OjUxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMKICAgbG9jYXRlZC4KCjIwMDktMDQtMjggMDE6MTIgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBNU1ZDOiBPbmx5IHVzZSBXaW5kb3dzIEFQSSBmdW5jdGlvbnMgYXZhaWxhYmxlIG9uIFdpblhQIG9yCiAgIGJlZm9yZSAoSVBWNikgb3IgMjAwMCBvciBiZWZvcmUgKG5vIElQVjYpLgoKMjAwOS0wNC0yNiAyMzozMCAgYWxleF9iCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IFJlbW92ZSBtYWNoaW5lIHR5cGUgb2YgSTM4NiBmcm9tIExJTkszMl9GTEFHUyB0byBhbGxvdwogICBjb21waWxpbmcgd2l0aCBNU1ZDIDIwMDggYXMgZWl0aGVyIDMyIG9yIDY0LWJpdC4KCjIwMDktMDQtMjYgMTc6MzggIGFsZXhfYgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIE1TVkMgMjAwOC4gQ29weSBhbmQgY2xlYW51cAogICBtYW5pZmVzdCBmaWxlcy4KCjIwMDktMDQtMjYgMTU6MjEgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IFJlLWVuYWJsZSBwYXNzIGFuZCBwYXNzX3BlcnNpc3QgQ291bnRlcjY0IGZvciBNU1ZDLgoKMjAwOS0wNC0yNiAxNDozNCAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIE1TVkMgMjAwOC4gSUZUWVBFIGlzIGRlZmluZWQgYnkKICAgTVNWQyAyMDA4LCBzbyBpbnRlcmZhY2VzLmMgdmFyaWFibGVzIHdlcmUgY2hhbmdlZCB0byBORVRTTk1QXy4KCjIwMDktMDQtMjYgMTM6MDYgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiBVcGRhdGUgYnVpbGQgaW5zdHJ1Y3Rpb25zIGluIGNvbW1lbnRzLgoKMjAwOS0wNC0yNCAxMzoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCB0aGUgQVNOX09QQVFVRSBwYXRjaCB0aGF0IHdhcyBjb21taXRlZCB3aXRob3V0IHByb3BlciBkaWZmCiAgIGNvbnRleHQKCjIwMDktMDQtMjQgMDc6MzEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBDSEFOR0VTOiBIUC1VWDogQlVHOiAyNzc5NDcyOiBGaWxlc3lzdGVtcyBtaXNzaW5nIGluIGhyU3RvcmFnZQogICB0YWJsZSBvbiBIUC1VWCAxMS4zMQogICAoYWxsb3cgZm9yIG1udHRhYiB0aGF0IGlzIGEgY2hhcmFjdGVyIHNwZWNpYWwgZGV2aWNlKQoKMjAwOS0wNC0yNCAwMTozNiAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogV2luMzI6IEJVRzogMjc3OTU0MSBGaXhlZCBoYW5kbGUgbGVhayBpbiBwYXNzX3BlcnNpc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnByZTEgLT4gVjUuNS5wcmUyCgoyMDA5LTA0LTIzIDIyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IEMrKyBzdHlsZSBjb21tZW50cwoKMjAwOS0wNC0yMyAyMjoyNSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNC0yMyAyMjoyMyAgaGFyZGFrZXIKCiAgICogIG1hbi9jb25maWdfYXBpLjMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIGluaXRpYWwgZG94eWdlbiBleHRyYWN0cyBmb3IgdGhlIG5ldyBoZWFkZXJzCgoyMDA5LTA0LTIzIDIyOjE5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDQtMjMgMjI6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBpbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBmYWlsaW5nIHRvIG9wZW4gbW50dGFiCgoyMDA5LTA0LTIzIDIyOjEwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ0hBTkdFUzogSFAtVVg6IEJVRzogMjc3OTQ3MjogRmlsZXN5c3RlbXMgbWlzc2luZyBpbiBoclN0b3JhZ2UKICAgdGFibGUgb24KICAgSFAtVVggMTEuMzEKCjIwMDktMDQtMjMgMjE6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDI3NTE1ODg6IEluY29uc2lzdGVudCBkYXRhIChlLmcuIFVEUC9UQ1AKICAgTUlCCiAgIHNjYWxhciB2YWx1ZXMgb2YgemVybykgY2FuIGJlIHJlcG9ydGVkIG9uIFNvbGFyaXMgMTBVNCsKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kZXJzIFBlcnNzb24KCjIwMDktMDQtMjMgMTc6MzAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTAxNzY0OiBmcm9tIGtyaXN6dG9mb3JvIGZvciBzdXBwb3J0aW5nCiAgIGxvZ3dhdGNoIGZpbGVzIHRoYXQgYXJlIGRhdGUgYmFzZWQKCjIwMDktMDQtMjMgMTc6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIE5FV1M6IHBlcmw6IFBBVENIIDE5NTYxOTM6IGZyb20gY2Fjb3lsZTogYmV0YSB0aHJlYWRhYmxlIHBlcmwKICAgbW9kdWxlIGNvZGUgZm9yIFNOTVB2MS9TTk1QdjJjIHVzYWdlLgoKMjAwOS0wNC0yMyAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogc29sYXJpczogUEFUQ0g6IDIwMTI0MDQ6IGRlYWwgd2l0aCBtb3JlIHRoYW4gMTAKICAgaW50ZXJmYWNlcy4gTmV3IGhhcmRjb2RlZCBsaW1pdCBpcyA1MC4gQSBiZXR0ZXIgc2NhbGluZyBwYXRjaAogICB3b3VsZCBiZSBhcHByZWNpYXRlZCA6LSkKCjIwMDktMDQtMjMgMTY6NDcgIGhhcmRha2VyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGRvY3VtZW50IHRoYXQgdGhlIGV0aGVybGlrZS1taWIgaGFzIGFuIGltcGxlbWVudGF0aW9uCgoyMDA5LTA0LTIzIDE2OjQwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2VzcywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9lbnVtcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX29pZHMuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDIwNTMyNzM6IGZyb20gbmFyZW5kcmFfa19kZWxsIHRvIGltbHBlbWVudAogICB0aGUgZXRoZXJsaWtlIG1pYiAoYXQgbGVhc3Qgb24gbGludXgpCgoyMDA5LTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMjEzNjQzNzogbWFrZSBGTEFHIGRlZmluZXMgbW9yZSA2NGJpdAogICBmcmllbmRseSB3aGVuIGh1Z2UgdGFibGVzIGFyZSBlbmNvdW50ZXJlZAoKMjAwOS0wNC0yMyAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmM6CgogICBDSEFOR0VTOiBocHV4OiBQQVRDSDogMjA4ODcyNjogZnJvbSByYXZpbmRyYTExMDMgdG8gZml4IGFuIGlzc3VlCiAgIHdpdGggaHB1eCByZXBvcnRpbmcgbWVtb3J5IGluIG5lZ2F0aXZlIHZhbHVlcy4KCjIwMDktMDQtMjMgMTY6MjEgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIwNzQ4MTc6IGZyb20gZmVubmVyIHRvIGZpeCByZWdleHAgZW5naW5lCiAgIENQVSBwZXJmb3JtYW5jZSBpc3N1ZXMKCjIwMDktMDQtMjMgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMTYyNjUyOiBwYXRjaCB0byBmaXggc2ltcGxlIGhyZnMgY2hlY2tzCiAgIHdoZW4gTkZTIGlzIGluIHVzZS4KCjIwMDktMDQtMjMgMTY6MTEgIGhhcmRha2VyCgogICAqICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL0Zvcm1hdC5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgcGVybC9tYW5hZ2VyL21hbmFnZXIucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjE4MjA3OTogYXBwbHkgcGF0Y2ggZnJvbSBpbnQzMiB0byBmaXggYQogICBudW1iZXIgb2YgcGVybCB3YXJuaW5ncyBhbmQgZml4IHRoZSBtb2R1bGVzIHNvIHRoYXQgdXNlIHN0cmljdCBpcwogICBwb3NzaWJsZQoKMjAwOS0wNC0yMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgCiAgICAgICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyMTg0MDM5OiBtaXNjIGZpeGVzIGZvciBmcmVlaW5nIG1lbW9yeQogICBkdXJpbmcgZXJyb3IgY29uZGl0aW9ucy4KCjIwMDktMDQtMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIzNjE3MTI6IGZyb20ga2JyaW50IHRvIGZpeCBnZXRidWxrCiAgIG9wdGltaXphdGlvbiBkdXJpbmcgd2Fsa3Mgd2hlcmUgZW5kIGNvbmRpdGlvbm5zIGFyZSBtZXQgb24gbWlkZGxlCiAgIE9JRHMgZmlyc3QuCgoyMDA5LTA0LTIzIDE1OjM1ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgUkVBRE1FIFRoYW5rcyB1cGRhdGUKCjIwMDktMDQtMjMgMTU6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIGZyb20gVHVzaGFyIEdvaGFkIHRvIGNsZWFuIHVwIG5vdGlmaWNhdGlvbgogICByZWdpc3RlcmF0aW9ucyBkdXJpbmcgZGlzbWFuIGV2ZW50IG1pYiBjbGVhbnVwIHByb2Nlc3NpbmcuCgoyMDA5LTA0LTIzIDE0OjU1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBTQ1RQIGNvbnRhaW5lcnMuCgoyMDA5LTA0LTIzIDA4OjI5ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXRzbm1wX2xhcmdlX2ZkX3NldCBpcyBwcm9iYWJseSBiZXN0IHJlZ2FyZGVkIGFzIGFuICJvcGFxdWUiCiAgIGRhdGEKICAgc3RydWN0dXJlLCBhbmQgaXNuJ3QgcmVhbGx5IGludGVuZGVkIGZvciBkaXJlY3QgbWFuaXB1bGF0aW9uLgogICBNb3ZlIGl0IGJhY2sgaW50byB0aGUgPGxpYnJhcnkvbGFyZ2VfZmRfc2V0Lmg+IGhlYWRlciBmaWxlLgogICAoTGlrZSBpdCB3YXMgYmVmb3JlIERhdmUgc3R1Y2sgaGlzIG9hciBpbi4uLi4pCgoyMDA5LTA0LTIzIDA4OjE5ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZ1ZXJ0aGVyIGltcHJvdmVtZW50cyB0byB0aGUgbGFyZ2UgRkQgc2V0IHN1cHBvcnQKICAgKFNlZSBwYXRjaCAjMjc3Mjc4NykKCjIwMDktMDQtMjMgMDY6NDUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaDoKCiAgIGJ1aWxkaW5nOiBVc2UgY29uZmlnX2Vycm9yKC4uLikgaW5zdGVhZCBvZgogICBjb25maWdfcmVxdWlyZShub24tZXhpc3RpbmcpIHRvIGdldCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCgoyMDA5LTA0LTIzIDA2OjQxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmg6CgogICBzbm1wbGliLCBMaW51eDogTW92ZSBnZXRfcGlkX2Zyb21faW5vZGUgdG8gaXQncyBvd24gZmlsZSBhbmQgb25seQogICBjb21waWxlIGl0IGlmIG5lZWRlZCwgYWxzbyByZW5hbWUgaXQgdG8KICAgbmV0c25tcF9nZXRfcGlkX2Zyb21faW5vZGUuCgoyMDA5LTA0LTIzIDA0OjMzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L3NubXBkLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzEzNTMgZnJvbSBobnJvc2UgdG8gbWFrZSBzb21lIEMrKwogICBjb21waWxlcnMgaGFwcGllcgoKMjAwOS0wNC0yMyAwMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjUwNTQ4ODogZnJvbSBkYWJva2V5IHRvIGZpeCBhbGFybXMgbm90CiAgIGJlaW5nIHRyaWdnZXJlZCBhdCB0aGUgcmlnaHQgdGltZXMgZHVlIHRvIGxhcmdlIGNsb2NrIHNrZXdzLgoKMjAwOS0wNC0yMyAwMDowMSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIE5FV1M6IHNubXBuZXRzdGF0OiBQQVRDSDogMjU2NDUzODogZnJvbSBhaG1ha2UgdG8gc3VwcG9ydCBHRVRCVUxLCiAgIGluIHYyYysgc25tcCB2ZXJzaW9ucwoKMjAwOS0wNC0yMiAyMzo0OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogcG9ydHM6IFBBVENIOiAyNjg4MzQyOiBmcm9tIGFobWFrZSB0byBmaXggdmFyaW91cwogICBjb21waWxlciB3YXJuaW5nCgoyMDA5LTA0LTIyIDIzOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI3NjM3MTogZnJvbSBmaGV3IHRvIGFsbG93IHBlcmwgdG8gdXNlCiAgIE9QQVFVRXMKCjIwMDktMDQtMjIgMjM6MTcgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNzc1ODAwOiBmcm9tIEFkYW0gUm9tYW5layB0byBhbGxvdwogICBweXRob24gdGhyZWFkaW5nIHRvIGNvbnRpbnVlIHdoZW4gYSByZXF1ZXN0IGlzIHNlbnQKCjIwMDktMDQtMjIgMjI6MTEgIGFsZXhfYgoKICAgKiBSRUFETUUsIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZSBUSEFOS1Mgc2VjdGlvbi4KCjIwMDktMDQtMjIgMjE6MjEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZvbGQgdGhlIGZ1bmN0aW9uIGV4dHJhY3RfaW5vZGUuIHdpdGggb25seSBvbmUgdXNlciwgaW50byBpdCdzCiAgIHVzZXIuCiAgIFJlbW92ZSB0aGUgI2RlZmluZSBGSUxFX0RJU1AsIHdpdGggb25seSBvbmUgdXNlciwgd2l0aCB0aGUgYWN0dWFsCiAgIHZhbHVlLgoKMjAwOS0wNC0yMiAyMTowMyAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aCBTTVVYIGVuYWJsZWQuCgoyMDA5LTA0LTIyIDEzOjQzICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBBZGQgYSBub3RlIGhvdyB0aGUgbmV3IFJNT04tTUlCIGltcGxlbWVudGFpb24gd29ya3MKCjIwMDktMDQtMjIgMTM6NDEgIGR0czEyCgogICAqIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIEZpbGwgb3V0IHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBWYXJiaW5kLXJlbGF0ZWQgQVBJIGNhbGxzLgoKMjAwOS0wNC0yMiAxMzozNyAganNhZnJhbmVrCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliLmgsIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfc2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZW51bXMuaCwgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDIxMDM0OTI6IGltcGxlbWVudAogICBSTU9OLU1JQjo6ZXRoZXJTdGF0c0phYmJlcnMKICAgUGF0Y2ggZnJvbSBOYXJlbmRyYSBLLiwgU2FuZGVlcCBLLiBTaGFuZGlseWEgYW5kIFNoeWFtIEl5ZXIKCjIwMDktMDQtMjIgMTA6MDggIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ29ycmVjdCBhIHNlcmlvdXNseSBtaXNsZWFkaW5nIChpLmUuIHdyb25nKSBkZXNjcmlwdGlvbiBvZiB0aGUKICAgcHVycG9zZQogICBhbmQgYmVoYXZpb3VyIG9mIHRoZSBwcmludF9kZXNjcmlwdGlvbiBmYW1pbHkgb2YgY2FsbHMuCgoyMDA5LTA0LTIyIDA5OjMyICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZ1cnRoZXIgcG9saXNoaW5nIG9mIHRoZSBkZXNjcmlwdGlvbnMgb2YgTUlCLXJlbGF0ZWQgQVBJIGNhbGxzLgoKMjAwOS0wNC0yMiAwNzozOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJhbmdlIGNoZWNrcy4KICAgKFRoZXNlIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgbGFyZ2VfZmRfc2V0IHJvdXRpbmVzIHRoZW1zZWx2ZXMpLgoKMjAwOS0wNC0yMSAyMzoyNyAgYWxleF9iCgogICAqICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICB3aW4zMjogRml4IFdpbmRvd3MgYnVpbGQgZW52aXJvbm1lbnQgdG8gc3VwcG9ydCBwYXRjaCAyNzcyNzg3LgoKMjAwOS0wNC0yMSAxNTozMyAgZHRzMTIKCiAgICogIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZpc2VkIHZlcnNpb24gb2YgcGF0Y2ggIzI3NzI3ODcKCjIwMDktMDQtMjEgMTU6MTUgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAKICAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBVbmRvIHJldmlzaW9uIDE3NTE1CiAgIChicm9rZW4vaW5jb21wbGV0ZSBwYXRjaCkKCjIwMDktMDQtMjEgMTQ6MzcgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAKICAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjc3Mjc4NzogQ2xlYW5lciBhcHByb2FjaCB0byBoYW5kbGluZwogICBsYXJnZSBmZF9zZXRzLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA0LTIxIDE0OjM0ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBQcm9wZXJseSBnZW5lcmF0ZSBuZXcgY29yZSBBUEkgbWFuIHBhZ2VzLgoKMjAwOS0wNC0yMSAwOTozOCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmg6CgogICBGaXJzdC1jdXQgYXQgaWRlbnRpZnlpbmcgdGhlIGNvcmUgTmV0LVNOTVAgQVBJIGNhbGxzLgogICBNb3ZlIHRoZXNlIGludG8gdGhlIGFwcHJvcHJpYXRlIHRvcC1sZXZlbCBoZWFkZXIgZmlsZXMuCgoyMDA5LTA0LTIxIDA5OjM2ICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCAgIAogICAgICBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZjoKCiAgIFJlbmFtZSBjb25maWcvc2Vzc2lvbiBBUEkgbWFuIHBhZ2VzLCBpbiBsaW5lIHdpdGggb3RoZXIgY29yZSBBUEkKICAgc3RydWN0dXJlLgoKMjAwOS0wNC0yMSAwOTozMiAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vcmVhZF9jb25maWcuMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgRG9jdW1lbnQgKG9yIHJlc3RydWN0dXJlKSB0aGUgY29yZSBBUEkgZWxlbWVudHMuCiAgIEFsaWduIHRoaXMgb3JnYW5pc2F0aW9uIHdpdGggdGhlIGZpcnN0LWN1dCByZXN0cnVjdHVyaW5nCiAgIG9mIHRoZSBtYWluIGhlYWRlciBmaWxlcy4KCjIwMDktMDQtMjAgMTA6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFNraXAgZmlsZSBoYW5kbGVzIHRoYXQgYXJlIHRvbyBsYXJnZSBmb3IgZmRfc2V0IHRvIGNvcGUgd2l0aC4KICAgQSBzaW1wbGUgZml4IGZvciB0aGUgaW1tZWRpYXRlIHByb2JsZW0gYWRkcmVzc2VkIGJ5IHBhdGNoCiAgICMxNjI3MDQ5LgoKMjAwOS0wNC0yMCAxMDoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydCBwYXRjaCAjMTYyNzA0OSAoZXh0ZW5zaW9uIHRvIGRlYWwgd2l0aCBsYXJnZSBmaWxlCiAgIGhhbmRsZXJzKS4KICAgU2VlIHRoZSBkaXNjdXNzaW9uIG9uIHRoYXQgdHJhY2tlciBlbnRyeSBmb3IgYmFja2dyb3VuZCBhcyB0bwogICB3aHkuCgoyMDA5LTA0LTIwIDAwOjU5ICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIAogICAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICB3aW4zMjogQnVpbGQgZml4ZXMgZm9yIFdpbmRvd3MuIHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBzdGlsbCBuZWVkCiAgIHRvIGJlIGZpeGVkIHRvIHN1cHBvcnQgQ291bnRlcjY0IG9uIFdpbmRvd3MuCgoyMDA5LTA0LTIwIDAwOjQ4ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHdpbjMyOiBTeW5jIG5ldC1zbm1wLWNvbmZpZy5oLmluIGFuZCBuZXQtc25tcC1jb25maWcuaAoKMjAwOS0wNC0xNyAyMToyMSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQsIAogICAgICAgIG00L2x0b3B0aW9ucy5tNCwgbTQvbHRzdWdhci5tNCwgbTQvbHR2ZXJzaW9uLm00OgoKICAgQ0hBTkdFUzogYnVpbGQ6IFVwZ3JhZGUgbGlidG9vbCB2ZXJzaW9uIHRvIDIuMi42IGluIG9yZGVyIHRvIHdvcmsKICAgYXJvdW5kIGEgYnVnbGV0IHRoYXQgbWFkZSBhdXRvcmVjb25mIC12aWYgZXJhc2UgY29uZmlnLnN1YiBhbmQKICAgY29uZmlnLmd1ZXNzLgoKMjAwOS0wNC0xNCAyMTo1OSAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxOTc2NzcyOiBDaGFuZ2VkIHRoZSBtaWIgcGFyc2VyIHRvIGhhbmRsZQogICBsb25nIGJpbmFyeSBhbmQgaGV4IHN0cmluZ3MuCgoyMDA5LTA0LTExIDEyOjUyICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBzdWdnZXN0IHRydW5jYXRpb24gb2YgQ2hhbmdlTG9nLnJlYWxseWFkZAoKMjAwOS0wNC0xMCAyMzoxOCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIIDI2OTE4NzY6IEFwcGxpZWQgcGF0Y2ggYnkgcmRpZXogdG8gYWxsb3cKICAgY29tcGlsaW5nIHRoZSBzZXJ2aWNlcyB1c2luZyB1bmljb2RlLgoKMjAwOS0wNC0xMCAyMjo1NSAgYWxleF9iCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBXaW4zMjogUEFUQ0ggMjY4ODMwOTogQXBwbGllZCBwYXRjaCBieSBCYXJ0IFZhbiBBc3NjaGUgdG8gcmVtb3ZlCiAgIE1TVkMgMjAwNS8yMDA4IGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwOS0wNC0xMCAyMTo0NSAgYWxleF9iCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgICAKICAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgV2luMzI6IE1pbm9yIGJ1aWxkIGFuZCByZWFkbWUgdXBkYXRlcy4KCjIwMDktMDQtMTAgMjE6MzggIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIE5FV1M6IFdpbjMyOiBQQVRDSCAyNjg2MjQ4OiBBcHBsaWVkIHBhdGNoIGJ5IEJhcnQgVmFuIEFzc2NoZQogICB3aGljaCBmaXhlcyBzZXZlcmFsIHdpbkV4dERMTCBidWdzLgoKMjAwOS0wNC0xMCAyMDoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVzdG9yZSBhbm5veWluZyBsb2cgbWVzc2FnZSwgYnV0IGZpeCBjYXVzZSBvZiBpdCBvbiAhZnJlZWJzZAogICBzeXN0ZW1zCgoyMDA5LTA0LTA5IDEyOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NTA3MzA6IFJlcG9ydCBlcnJvcnMgZnJvbSBpdGVyYXRvci1iYXNlZAogICBoYW5kbGVycy4KICAgQmFzZWQgb24gYSBwYXRjaCBwcm92aWRlZCBieSBXYXluZSBHbGFudHoKCjIwMDktMDQtMDkgMTE6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxMjQyODg6IEZpeCBzZXR0aW5nIG9mCiAgIHVzbVVzZXJQcml2UHJvdG9jb2wgYXQgY3JlYXRpb24uCiAgIExvZ2ljIGJ1ZywgcmVwb3J0ZWQgYnkgUmFtZXNoIEtvdGFiYWdpCgoyMDA5LTA0LTA5IDA5OjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMjU4MjI5OiBSZW1vdmUgbWlzbGVhZGluZyBjb21tZW50CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERhbiBBbmRlcnNvbgoKMjAwOS0wNC0wOSAwOTowOCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIyNjA4Mjg6IEZpeCBweXRob24gc25tcHdhbGsgbWVtb3J5IGxlYWsKICAgUGF0Y2ggcHJvdmlkZWQgYnkgR2FicmllbGUgTWVzc2luZW8KCjIwMDktMDQtMDkgMDg6NTggIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMjcyMzQ3OiBJbXBsZW1lbnQgImltcGxpZWQiIGluIE1JQiBoYXNoCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgoyMDA5LTA0LTA5IDA4OjU0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIOiAyMzE2MTI3OiBGaXggYnVnIGluIGl0ZXJhdGVfYWNjZXNzCiAgIGdlbmVyYXRlZCBjb2RlLgoKMjAwOS0wNC0wOSAwODo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzU2ODE6IEVuYWJsZSBpZi1taWIgcmV3cml0ZSAod2l0aAogICBzeXNjdGwgYmFja2VuZCkgb24gTmV0QlNECgoyMDA5LTA0LTA5IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDM1NzkzOiBTdXBwb3J0IDY0LWJpdCBJRi1NSUIgY291bnRlcnMgb24KICAgc3lzY3RsICgqQlNEKSBzeXN0ZW1zLgogICBQYXRjaCBwcm92aWRlZCBieSBKYW4gQW5kcmVzCgoyMDA5LTA0LTA5IDA4OjAwICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggY29tcGlsYXRpb24gd2FybmluZ3MKCjIwMDktMDQtMDggMjM6MTcgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIG1vdmUgY29tbWVudHMgdG8gYSBwbGFjZSB3aGVyZSB0aGV5IGFyZSBsZWdhbAoKMjAwOS0wNC0wOCAyMzowMyAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSByZW5hbWUgbmV3IGdldFJlcXVlc3RvcklwIHRvIGdldFNvdXJjZUlQIGFuZCBnZXRUYXJnZXRJcCB0bwogICBnZXREZXN0SXAKICAgLSByZW1pbmQgdGhhdCB0aGlzIGlzIGZ1bGx5IHRyYW5zcG9ydC1zcGVjaWZpYywgaS5lLiBVRFAvSVB2NAogICBvbmx5IQoKMjAwOS0wNC0wOCAxNjowMCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMzg0Nzc5OiBGaXggaGFuZGxpbmcgb2YgR2V0QnVsayB3aXRoCiAgIE4+MCxNPT0wCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZ3VzIFNhbGtlbGQKCjIwMDktMDQtMDggMTU6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQwNjM3ODogRml4IGhyU1dSdW5QZXJmTWVtIG9uIDY0LWJpdAogICBTb2xhcmlzIHN5c3RlbXMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTlR3b08KCjIwMDktMDQtMDggMTU6NDggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjQ3OTcwMDogRml4IHpvbmVkIElQIGFkZHJlc3MgdXNlZCBhcwogICB0YWJsZSBpbmRpY2VzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJyaWFuIFJldGZvcmQuCgoyMDA5LTA0LTA4IDE1OjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI0OTIzNzc6IEZpeCB0eXBvL2J1ZyBpbgogICBzbm1wX2VuYWJsZV9jYWxsYmFjaygpCiAgIFJlcG9ydGVkIGJ5IGpveWNlYW5tYWNoaW5lCgoyMDA5LTA0LTA4IDE1OjI5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNTA3MjQ5OiBzY3RwLW1pYiBzdXBwb3J0IGZvciBGcmVlQlNELgoKMjAwOS0wNC0wOCAxNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI1MzgxNjk6IFByZXZlbnQgaW5maW5pdGUgcmV0cmllcyBmb3IgYW4KICAgaW52YWxpZCBlcnJvci1pbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRG91ZyBNYW5sZXkKCjIwMDktMDQtMDggMTQ6NTggIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNTgwOTc5OiBGaXggcHl0aG9uIHNlc3Npb24gcG9pbnRlcnMgb24KICAgNjQtYml0IHN5c3RlbXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEpvaG4gS2h2YXRvdi4KCjIwMDktMDQtMDggMTQ6NDkgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI2Njc0MTU6IFN1cHBvcnQgIlVzZU51bWVyaWMiIG9wdGlvbi4KICAgUmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgaW4gInNubXB3YWxrIiBjb21tYW5kLgogICBQYXRjaCBwcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAwOS0wNC0wOCAxNDozNCAgZHRzMTIKCiAgICogIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMjcyNjMwMjogUGFzcyByZXN1bHRzIG9mIFBlcmwgdHJhcAogICBoYW5kbGVycyB0byB0cmFwIGRhZW1vbgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIFNjaG1pdHoKCjIwMDktMDQtMDggMTQ6MzAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI3MTM4NDE6IEZpeCBydW50aW1lIGVycm9ycyB0cmlnZ2VyZWQgYnkKICAgaGlnaC1BU0NJSSBjaGFycwogICBQYXRjaCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKCjIwMDktMDQtMDggMTQ6MjQgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjcwOTcwNTogUmV0cmlldmUgc3JjL3RhcmdldCBJUCBhZGRyZXNzIGluCiAgIFBlcmwtYmFzZWQgYWdlbnRzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IGZoZXcKCjIwMDktMDQtMDggMTQ6MTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNjg5MzYyOiBGaXggaGFuZGxpbmcgb2YgSVB2NiBob3N0bmFtZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5lc3RvciBNZWxvLgoKMjAwOS0wNC0wOCAxNDowNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjY4ODM0NTogRml4IG5ldHNubXBfYXNzZXJ0KCkgZm9yIFZpc3VhbAogICBTdHVkaW8KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCgoyMDA5LTA0LTA4IDEzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNjg2MjgwOiBSZXBvcnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgYXMKICAgYW4gZXJyb3IgKHJhdGhlciB0aGFuIGEgZmFpbGVkIGFzc2VydGlvbikuCiAgIEZpeCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKICAgCiAgIFFuOiBEb2VzIHRoaXMgZXZlbiBxdWFsaWZ5IGFzIGFuIGVycm9yPyBXb3VsZG4ndCBhIHdhcm5pbmcgYmUKICAgc3VmZmljaWVudD8KCjIwMDktMDQtMDYgMTk6MzMgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICBzbm1wbGliOiBNYWtlIHRoZSBub2RlIHN0cnVjdCBwcml2YXRlLiBIaWRlIHRoZSBvcmhhbl9ub2RlcwogICB2YXJpYWJsZS4KCjIwMDktMDQtMDYgMTg6NDUgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgc25tcGQscGVybDogSWYgbXlfcGVybCBpcyBOVUxMIHdoZW4gcGFzc2VkIHRvIHBlcmxfZGVzdHJ1Y3QgdGhlbgogICB0aGF0IGZ1bmN0aW9uIGNyYXNoZXMgZm9yIHNvbWUgcGVybCB2ZXJzaW9ucyBzbyBjaGVjayB0aGF0IGl0IGlzCiAgIG5vbi1udWxsIGJlZm9yZSBkZXN0cm95aW5nIGl0LgoKMjAwOS0wNC0wNiAxODo0MiAgbWFnZnIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIHBlcmw6IEF2b2lkIHN1cnByaXNlcyBpZiB0aGUgcGVybCBzdHJpbmcgY29udGFpbnMgcHJpbnRmIGVzY2FwZQogICBjaGFyYWN0ZXJzLgoKMjAwOS0wNC0wNiAxODoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUHJvcGVyIGNoZWNrIGZvciBlbXB0eSBwcm9jZXNzIHN0YXR1cyBmaWxlLgogICAoQXZvaWRzIHRydW5jYXRlZCB3YWxrIG9mIGhyU1dSdW5QYXRoIG9uIFN1U0Ugc3lzdGVtcykKICAgUmVwb3J0ZWQgYnkgS2FtaWwgS2lzaWVsLgoKMjAwOS0wNC0wNiAxMTo1OCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzLCBwZXJsL2FnZW50L3R5cGVtYXA6CgogICBDSEFOR0VTOiBwZXJsOiBCVUcgMTU1NDgxNzogZnJvbSB4YW5jbzogcmV2aXNlZCBmaXggZm9yIHRoZSBjbGFzcwogICBhc3NpZ21lbnQgc28KICAgZ2V0Um9vdE9JRCB3b3JrcyBwcm9wZXJseS4gTm93IHBhc3NlcyAibWFrZSB0ZXN0IiBhbmQgIm1ha2UKICAgcGVybHRlc3QiLgoKMjAwOS0wNC0wNSAxMDowNSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOS0wNC0wNSAwOTo1MyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgTWFrZSBldmVuIG1vcmUgdmFyaWFibGVzIGFuZCB0ZW1wbGF0ZXMgY29uc3QuCgoyMDA5LTA0LTA0IDIyOjEzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmg6CgogICBzbm1wZDogTWFrZSBtb3JlIGxvY2FsIHZhcmlhYmxlcyBjb25zdCBhbmQgbG9jYWwuCgoyMDA5LTA0LTA0IDEwOjA3ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLCBuZXQtc25tcC1jb25maWcuaW46CgogICBNYXJrIHRoZSByZWNvbmZpZyB2YXJpYWJsZSBhcyBzdGF0aWMgc2luY2UgaXQgaXMgcHJpdmF0ZSB0byB0aGUKICAgbW9kdWxlLgoKMjAwOS0wNC0wNCAxMDowMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBNYXJrIHRoZSBmaWxlIHNjb3BlIHByaXZhdGUgdmFyaWFibGUgbWluaW11bV9zd2FwIGFzIHN0YXRpYy4KCjIwMDktMDQtMDQgMDk6NTggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBzbm1wbGliOiBNYWtlIG1vcmUgc3ltYm9scyBjb25zdCBpbiBvcmRlciB0byBtb3ZlIHRoZW0gdG8KICAgcmVhZG9ubHkgbWVtb3J5LgoKMjAwOS0wNC0wMiAyMToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogQlVHIDExMjY5NDogUGF0Y2ggZnJvbSBCaWxsIEZlbm5lcjogZG9uJ3Qgb3BlbiAoYW5kCiAgIGNsb2JiZXIpIGFuIGFnZW50eCBzb2NrZXQgaWYgdGhlIG90aGVyIHRyYW5zcG9ydHMgZmFpbCB0byBvcGVuCgoyMDA5LTA0LTAxIDIzOjQxICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDQtMDEgMjM6MTkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA0LTAxIDIzOjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDQtMDEgMjM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIGNvbnZlcnQgY29tbWVudHMgdG8gQU5TSSBjb21tZW50cwoKMjAwOS0wNC0wMSAyMjoyMSAgaGFyZGFrZXIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgICAKICAgICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA0LTAxIDIyOjAzICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L21ha2VyZWxlYXNlLnhtbCwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40IC0+IFY1LjUucHJlMQoKMjAwOS0wNC0wMSAyMTo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBkLjguZGVmOgoKICAgdXBkYXRlcyBmb3IgU1NICgoyMDA5LTA0LTAxIDE5OjM5ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTWFrZSB0aGUgc3JjIHBvaW50ZXIgb2Ygc25tcF9jbG9uZV9tZW0gYSBwb2ludGVyIHRvIGNvbnN0YW50LgoKMjAwOS0wNC0wMSAxODoyMyAgaGFyZGFrZXIKCiAgICogYXBwczoKCiAgIGlnbm9yZSAnc3NodG9zbm1wJwoKMjAwOS0wNC0wMSAxNzozMSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc3NodG9zbm1wLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIG1hbi9zbm1wZC44LmRlZiwgc25tcGxpYi9zbm1wU1NIRG9tYWluLmM6CgogICBNYWtlIHNzaCB0cmFuc3BvcnQgc3VwcG9ydCB1c2UgYSB1bml4IHNvY2tldCB3aXRoIHByb3BlcgogICBjcmVkZW50aWFsIHBhc3NpbmcKCjIwMDktMDQtMDEgMTc6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1ha2UgdGhlIGV4ZWMgY2FjaGUgcmVhZGFibGUgb25seSBieSB0aGUgdXNlcgoKMjAwOS0wNC0wMSAxNzoyOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG1vdmUgc3RyaW5nIHRvIHVpZC9naWQgZnVuY3Rpb25hbGl0eSB0byBzbm1wbGliIGZvciByZXVzZQoKMjAwOS0wMy0zMSAxNToxMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQmFsYW5jZSBwYXJlbnRoZXNlcyBpbiBjYWNoZS1iYXNlZCByZWdpc3RyYXRpb24gY29kZS4KCjIwMDktMDMtMzEgMTU6MDcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJ1dCB0aGV5J3JlIG5vdCBDIGNvbW1lbnRzIGF0IGFsbCwgRGF2ZS4KICAgVGhleSBhcmUgbWliMmMgdGVtcGxhdGUgY29tbWVudHMsCiAgIGFuZCBzaG91bGQgYmUgb21pdHRlZCBmcm9tIHRoZSBnZW5lcmF0ZWQgY29kZS4KICAgPHNpZ2g+CgoyMDA5LTAzLTMxIDE1OjAwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDIGNvbW1lbnRzIHVzZSAvKiAuLi4gKi8sIG5vdCAjCgoyMDA5LTAzLTMxIDA4OjA1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHdpdGggZ2xpYmMgPCAyLjQsIElDTVB2NiBtZXNzYWdlIHR5cGVzIHN0YXJ0aW5nCiAgIHdpdGggTUxEXyogaGF2ZSBkaWZmZXJlbnQgbmFtZSB0aGVyZS4KCjIwMDktMDMtMjQgMDY6MDQgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBEbyBub3QgY29tcGlsZSB0aGUgcGFydHMgdGhhdCBkZXBlbmQgb24gbGlic3NsIGlmIGxpYnNzbCBpcwogICBtaXNzaW5nLgoKMjAwOS0wMy0yMyAwOToyMSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgTkVXUzogc25tcGQ6IGlwTmV0VG9QaHlzaWNhbExhc3RVcGRhdGVkIE9JRCBpbXBsZW1lbnRlZAogICAKICAgVGhlIHZhbHVlIGlzIGVzdGltYXRlZCB3aXRoIGV2ZXJ5IGNhY2hlIHJlbG9hZCwgd2hpY2ggaXMgb25jZSBpbgogICA2MCBzZWNvbmRzIGJ5IGRlZmF1bHQuCiAgIFRoYXQgbWVhbnMgdGhlIHZhbHVlIHJlcG9ydGVkIGJ5IHNubXBkIG1heSBkaWZmZXIgZnJvbSByZWFsaXR5IGJ5CiAgIG9uZSBtaW51dGUuCiAgIElmIGFueWJvZHkgbmVlZHMgYmV0dGVyIHByZWNpc2lvbiwgdGhlIGNhY2hlIHRpbWVvdXQgY2FuIGJlCiAgIGNvbmZpZ3VyZWQgYnkgc2V0dGluZwogICBORVQtU05NUC1BR0VOVC1NSUI6Om5zQ2FjaGVUaW1lb3V0LjEuMy42LjEuMi4xLjQuMzUgdG8KICAgYXBwcm9wcmlhdGUgdmFsdWUgYnkgc25tcHNldC4KCjIwMDktMDMtMjAgMTk6MzggIGhhcmRha2VyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBmaXggbGFjayBvZiB3cmFwcGluZyBsaW5lcyBwcm9ibGVtCgoyMDA5LTAzLTIwIDE4OjMxICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgY29uZmlnIG9wdGlvbnMsIGV0YywgZm9yIFNTSCBhbmQgRFRMUwoKMjAwOS0wMy0yMCAxODoyNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZjoKCiAgIGN1cnJlbnRseSBtaW5pbWFsIGRvY3VtZW50YXRpb24gb24gZHRscyBhbmQgc3NoCgoyMDA5LTAzLTIwIDE2OjUwICBoYXJkYWtlcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zc2h0b3NubXAuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEFkZGVkIGFscGhhIHNubXAgb3ZlciBzc2ggc3VwcG9ydAoKMjAwOS0wMy0yMCAxNjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2hlY2sgdGhlIHNlYyBuYW1lIGxlbmd0aCwgbm90IGp1c3QgdGhlIGNvbnRlbnRzCgoyMDA5LTAzLTIwIDE2OjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHNlcXVlbmNlIHBhcnNpbmcgZml4CgoyMDA5LTAzLTIwIDE1OjUzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBuZXcgZmxhZyB0byBhbGxvdyBmb3Igc2lnbmFsbGluZyBvZiBsZWdhbCBlbXB0eSBwYWNrZXRzCiAgIGZyb20gYSB0cmFuc3BvcnQKCjIwMDktMDMtMTggMTk6NDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gY29tcGlsZSBhZ2Fpbi4KCjIwMDktMDMtMTggMTA6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIGNwdV9saW51eDogYXZvaWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIKICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTggMTA6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIGxpbnV4OiBpbmNyZWFzZSBzaXplIG9mIGluaXRpYWwgcHJvYyBpL28gYnVmZmVyCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ3MKCjIwMDktMDMtMTggMTA6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIG1lbW9yeV9saW51eDogYXZvaWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDA5LTAzLTE4IDEwOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXggdmFsZ3JpbmQgd2FybmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTcgMjI6NTcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBQQVRDSDogMjY4ODM0MjogZnJvbSAiQmFydCBWYW4gQXNzY2hlIjogVXNlIHByb3BlciBmdW5jdGlvbgogICBwb2ludGVycwoKMjAwOS0wMy0xMyAyMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBQcm9jZXNzIGhyTWVtb3J5U2l6ZSAoc2NhbGFyKSBzZXBhcmF0ZWx5IGZyb20gaHJTdG9yYWdlVGFibGUuCiAgIFRoaXMgc2ltcGxpZmllcyB0aGUgaGFuZGxlciBjb2RlIHN0cnVjdHVyZS4KCjIwMDktMDMtMTMgMjE6MjMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBSZWdpc3RlciBDUFUvbWVtb3J5IGhhcmR3YXJlIG1vZHVsZXMgd2l0aAogICBuc0NhY2hlVGFibGUuCiAgIEFsbG93cyBtb25pdG9yaW5nIGZyZXF1ZW5jeSB0byBiZSBjb25maWd1cmVkIGR5bmFtaWNhbGx5LgoKMjAwOS0wMy0xMyAyMToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBBdm9pZCBkaXYwIGNyYXNoLgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IE5pY2sgSGluZGxleQoKMjAwOS0wMy0xMyAyMToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgU2tpcCBuZXcgQ1BVcywgdGhhdCBoYXZlIGFwcGVhcmVkIHNpbmNlIHRoZSBhZ2VudCBmaXJzdCBzdGFydGVkLgogICAoQW4gYWx0ZXJuYXRpdmUgbWlnaHQgYmUgdG8gY3JlYXRlIGEgbmV3IGVudHJ5IGluc3RlYWQpLgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IE5pY2sgSGluZGxleQoKMjAwOS0wMy0xMCAxNToyNSAganNhZnJhbmVrCgogICAqIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jOgoKICAgTkVXUzogc25tcGQ6IGlwQWRkcmVzc1NwaW5Mb2NrIGltcGxlbWVudGVkCgoyMDA5LTAzLTAyIDExOjIzICBkdHMxMgoKICAgKiBDT1BZSU5HOgoKICAgRml4IGF0dHJpYnV0aW9uIG9mIGxhdGVzdCBjb3B5cmlnaHQgbm90aWNlLgoKMjAwOS0wMi0yOCAxODoyMSAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIHRoZSAjZGVmaW5lIGNvbmZpZ18qKC4uLikgZnJvbSBhY2NvbmZpZy5oIHRvIHRoZSBjb25maWd1cmUKICAgc2NyaXB0IHNvIHRoYXQgdGhleSBhcmUgbmV4dCB0byB0aGUgY29kZSB0aGF0IGhhbmRsZSB0aGUKICAgY29ycmVzcG9uZGluZyBjb25maWdfKiB0b2tlbi4KCjIwMDktMDItMjcgMTM6MjAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEdldCByaWQgb2YgYW5ub3lpbmcgJ2Rpc2tpby5jOiBkb24ndCBrbm93IGhvdyB0byBoYW5kbGUgOQogICByZXF1ZXN0JyBpbiBsb2cuCiAgIEl0J3MgYmVpbmcgd3JpdHRlbiB0byBsb2cgZXZlcnl0aW1lIHNvbWVvbmUgcXVlcmllcwogICBVQ0QtU05NUC1ESVNLSU8gTUlCLgoKMjAwOS0wMi0yNSAwNjo0MSAgbWFnZnIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgVXNlIHRoZSBmZWF0dXJlIHRlc3QgbWFjcm9zIHRvIHNldCB3aGF0IGlzIG5lZWRlZC4KICAgRG8gbm90IHVzZSB0aGUgaW50ZXJuYWwgR05VIGxpYmMgbWFjcm9zIHRoYXQgYXJlIHNldCBieSBzZXR0aW5nCiAgIHRoZSBmZWF0dXJlIHRlc3QgbWFjcm9zLgoKMjAwOS0wMi0yNSAwNjozOCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZS4KCjIwMDktMDItMjQgMDc6MjYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBNYWtlIC1MTiBzdG9wIGR1bXBpbmcgY29yZS4gTWFrZSBiYWQgZGVidWcgbGV2ZWxzIHJlcG9ydAogICB0aGUgb2ZmZW5kaW5nIHN5bWJvbC4KCjIwMDktMDItMjQgMDY6NTAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNb3ZlIHRoZSBkaXJlY3RvcnkgY3JlYXRpb24gY29kZSB0byBoYXBwZW4gYWZ0ZXIgdGhlIGRvbWFpbgogICBzZWxlY3Rpb24gY29kZSBzbyB0aGF0IHRoZSBkaXJlY3RvcnkgY3JlYXRpb24gY29kZSBrbm93cyB3aGF0CiAgIGRpcmVjdG9yeSB0byBjcmVhdGUuCgoyMDA5LTAyLTI0IDA2OjQ3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ2hhbmdlIHRoZSBlcnJvciBjaGVja2luZyBvcHRpb24gLS1lbmFibGUtbXlzcWwgdG8gc3VnZ2VzdCB0aGF0CiAgIHRoYXQgLS13aXRoLW15c3FsIGlzIHVzZWQgcmF0aGVyIHRoYXQgLS13aXRoLW9wZW5zc2wuCgoyMDA5LTAyLTI0IDA2OjQ0ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlIGF1dG9jb25mIGFydGlmYWN0cy4KCjIwMDktMDItMjMgMTg6NDMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9zcWwuYzoKCiAgIGFkZCBmb3Jnb3R0ZW4gZmlsZQoKMjAwOS0wMi0yMCAwNDo0MSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgYWRkZWQgZW1hY3MgYXV0b2NvbmYgbW9kZSBzcGVjaWZpZXIKCjIwMDktMDItMTkgMTg6MzIgIHJzdG9yeQoKICAgKiBSRUFETUUuc3FsLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBuZXcgc3FsIHRyYXAgbG9nZ2luZwoKMjAwOS0wMi0xOSAxODoyMCAgcnN0b3J5CgogICAqICBDT1BZSU5HLCBORVdTLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBjb25maWd1cmUsICAKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgZGlzdC9zY2hlbWEtc25tcHRyYXBkLnNxbCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXB0cmFwZDogYWRkIHRyYXAgaGFuZGxlciBmb3IgbG9nZ2luZyB0cmFwcyB0byBhIG15c3FsCiAgIGRhdGFiYXNlCgoyMDA5LTAyLTE5IDE3OjU4ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGRlZCBpdGVyYXRvciBmb3Igc2luZ2x5IGxpbmtlZCBsaXN0czsgYWRkCiAgIGNvbnRhaW5lciBuYW1lIGluIG1vcmUgZXJyb3IgbXNncwoKMjAwOS0wMi0xOCAxODo1MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHVzbS5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBjaGFuZ2UgTUFYX0VOR0lORUlEX0xFTkdUSCB0byAzMiwgcGVyCiAgIFNOTVAtRlJBTUVXT1JLLU1JQiBTbm1wRW5naW5lSUQgVEMKCjIwMDktMDItMTggMTQ6NDEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jOgoKICAgQ29uZmlndXJlIHNjcmlwdCBkb2VzIG5vdCBsaWtlIG5ldC1zbm1wLWNvbmZpZy5oIGJlaW5nIGluY2x1ZGVkCiAgIGZyb20gaGVhZGVyCiAgIGZpbGVzLCB3aGljaCBhcmUgYWRkZWQgYnkgLS13aXRoLW1pYi1tb2R1bGVzPSwgbGV0J3MgcmVtb3ZlIGl0CiAgIGZyb20gdGhlcmUuCgoyMDA5LTAyLTE2IDIxOjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHIDE1NTQ4MTc6IFBhdGNoIGZyb20geGFuY286IGZpeCB0aGUgY2xhc3MKICAgYXNzaWdtZW50IHNvIGdldFJvb3RPSUQgd29ya3MgcHJvcGVybHkuCgoyMDA5LTAyLTE1IDA3OjIwICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgQ29ycmVjdCBjb3B5L3Bhc3RlIG1pc3Rha2UKCjIwMDktMDItMTIgMDA6MjUgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmM6CgogICBBbiBlYXJseSBleHBlcmltZW50YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIERUTFMgb3ZlciBVRFAKICAgdHJhbnNwb3J0IGZyb20gdGhlIElFVEYgSVNNUyB3b3JraW5nIGdyb3VwCgoyMDA5LTAyLTExIDIzOjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlZCByZWxlYXNlIGluc3RydWN0aW9ucwoKMjAwOS0wMi0wNiAyMTozNiAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBhcyBDKysgYWdhaW4uCgoyMDA5LTAyLTA1IDIyOjU2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEFzc3VtZSB0aGF0IHRoZSB0YXJnZXQgcGxhdGZvcm0gc3VwcG9ydHMgbWVtY3B5LAogICBtZW1tb3ZlLCBtZW1zZXQsIHN0cmNociBhbmQgc3RycmNoci4KCjIwMDktMDItMDQgMDY6NTcgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25wcmludGYuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogUmVtb3ZlIHN1cHBvcnQgZm9yIHVzZSBvZiB2YXJhcmdzLmguIE5vdyBhc3N1bWVzIHRoYXQKICAgc3RkYXJnLmggaXMgYXZhaWxhYmxlLgoKMjAwOS0wMi0wNCAwNjo0OSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IEludHJvZHVjZSBwcmludGYtbGlrZSB2ZXJzaW9ucyBvZiBjb25maWdfcGVycm9yCiAgIGFuZCBjb25maWdfcHdhcm4gKG5ldHNubXBfY29uZmlnX2Vycm9yIGFuZCBuZXRzbm1wX2NvbmZpZ193YXJuKS4KICAgUmVwbGFjZSBtYW55IGluc3RhbmNlcyBvZiB7IHRtcGJ1ZlsuLi5dOyBzcHJpbnRmKHRtcGJ1ZiwgLi4uKTsKICAgY29uZmlnX3AqKHRtcGJ1Zik7IH0gd2l0aCBuZXRzbm1wX2NvbmZpZ18qKC4uLik7CgoyMDA5LTAyLTAzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBhZGQgdGhlIHJlZ2luZm8gYW5kIGFuZCBzZXNzaW9uIHBvaW50ZXIgdG8gdGhlIFJFR0lTVEVSX09JRAogICBjYWxsYmFjawoKMjAwOS0wMi0wMyAwMDoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGZpeGVkIC1sc3NsIGNoZWNrCgoyMDA5LTAxLTI5IDA4OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXR1cm4gYSBsZXNzIG1pc2xlYWRpbmcgZXJyb3Igd2hlbiBhZGRpbmcgYW4gdW5yZWNvZ25pc2VkIHZhbHVlLgoKMjAwOS0wMS0yOCAxMDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggc3JjL2RzdCBjb25mdXNpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgS3J6eXN6dG9mIE9sxJlkemtpCgoyMDA5LTAxLTI4IDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IEZpeCB0d28gYnVncyB3aXRoIHNtdXggcGFzc3dvcmQgc3VwcG9ydC4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgS3J6eXN6dG9mIE9sxJlkemtpCgoyMDA5LTAxLTIzIDE0OjUzICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZpeCBwYXJzaW5nIG9mIGxldmVsIHJhbmdlcyBpbiAnLUw8Y2FwaXRhbD4nLgoKMjAwOS0wMS0yMCAxNDo1MSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiA8cnBtL3JwbWZpbGV1dGlsLmg+IGJlZm9yZSBpbmNsdWRpbmcKICAgaXQuCgoyMDA5LTAxLTE5IDIwOjUwICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGhvdXQgSVB2NiBhZ2Fpbi4KCjIwMDktMDEtMTkgMTU6MDEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5Mjc3NTE6IGZyb20gTWl0c3VydSBDaGluZW46IGltcGxlbWVudAogICBpY21wTXNnU3RhdHNUYWJsZSBvbiBMaW51eAoKMjAwOS0wMS0xOSAwOTo0MSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgICAKICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyNDQ5MjEwOiBhZGQgNjQtYml0IGRpc2sgdXNhZ2Ugc3RhdGlzdGljcyB0bwogICBVQ0QtU05NUC1NSUI6OmRza1RhYmxlCgoyMDA5LTAxLTE4IDA3OjQwICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ0hBTkdFUzogQlVHOiAyMTY4MTgwOiBDaGFuZ2VkIC0tZGlzYWJsZS1yZWVudHJhbnQgdG8gbm90CiAgIGFjdGl2YXRlIHRoZSByZWVudHJhbnQgY29kZSBhbmQgbWFkZSAtLWVuYWJsZS1yZWVudHJhbnQgYWNjZXB0IG5vCiAgIHZhbHVlcyBvdGhlciB0aGFuIHllcyBhbmQgbm8uIERpZCB0aGUgc2FtZSBmb3IKICAgLS1lbmFibGUtbWliLWNvbmZpZy1jaGVja3MsIC0tZW5hYmxlLW1pYi1jb25maWctZGVidWcsCiAgIC0td2l0aC1kZWZhdWx0cywgLS1lbmFibGUtZGV2ZWxvcGVyIGFuZCAtLWVuYWJsZS10ZXN0aW5nLWNvZGUgYXMKICAgd2VsbC4KCjIwMDktMDEtMTMgMDk6MTcgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENoZWNrIGVuY29kaW5nIG9mIE9JRHMuCiAgIAogICBCRVIgZW5jb2RlZCBPSURzIHNob3VsZCBoYXZlIGhpZ2ggYml0IGNsZWFyIGluIHRoZSBsYXN0IGJ5dGUgb2YKICAgZWFjaCBzdWJpZGVudGlmaWVyLiBUaGlzIGlzIG5vdyBjaGVja2VkIGFuZCBwYXJzaW5nIG9mIE9JRCBmYWlscywKICAgaWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldC4KCjIwMDktMDEtMTEgMjE6NTQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hlY2sgdGhhdCB0aGUgdGVtcC1maWxlLXBhdHRlcm4gZW5kcyBpbiA2IFgncwogICBhcyBta3N0ZW1wIGFuZCBta3RlbXAgcmVxdWlyZSB0aGF0LgoKMjAwOS0wMS0xMSAyMTozOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQmUgYSBsb3QgbW9yZSBzdHJpY3Qgb24gdGhlIHZhbHVlcyB0aGF0IGFyZQogICBhY2NlcHRhYmxlIGZvciAtLXdpdGgtcGVyc2lzdGVudC1tYXNrIChvbmx5IGFsbG93IHRocmVlIG9jdGFsCiAgIGRpZ2l0cykKCjIwMDktMDEtMTEgMjA6NDIgIG1hZ2ZyCgogICAqICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBtNC9uZXRzbm1wX2FyZy5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXZSBhcmUgY3VycmVudGx5IHVzaW5nIHRoZSBwcmFjdGljZSBvZiBhZGRpbmcKICAgYSBtaXJyb3JpbmcgQUNfQVJHX1dJVEgvRU5BQkxFIHRvIGVhY2ggQUNfQVJHX0VOQUJMRS9XSVRILiBUaGlzCiAgIHBhdGNoIGFkZHMgTkVUU05NUF9BUkdfV0lUSC9FTkFCTEUgbWFjcm9zIHRoYXQgYXV0b21hdGljYWxseSBhZGRzCiAgIHRoZSBtaXJyb3IgdmFyaWFibGUgYW5kIHRoZW4gY29udmVydHMgdGhlIGNvbmZpZ3VyZSBtYWNoaW5lcnkgdG8KICAgdXNlIHRoZW0uCgoyMDA5LTAxLTExIDIwOjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTW92ZSBBQ19ERUZJTkVTIGluIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlIHRvIGJlIGxvY2F0ZWQgbmV4dAogICB0byB0aGUgQUNfQVJHXy4uLiB0aGV5IGRlcGVuZCBvbi4KCjIwMDktMDEtMTEgMjA6MzQgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDaGFuZ2UgdGhlIGRlZmF1bHQgdmVyc2lvbiBudW1iZXIgY2hlY2tpbmcgdG8gYmUgZWFzaWVyIHRvIHJlYWQKCjIwMDktMDEtMTEgMTk6MTkgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTW92ZSB0aGUgbGFzdCBBQ19BUkdfLi4uJ3MgdG8gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUuCgoyMDA5LTAxLTExIDE5OjA4ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IENoYW5nZSB0aGUgbWFjcm8gZm9yIC0td2l0aC1mZWF0dXJlcy1vZiBmcm9tCiAgIEFDX0FSR19FTkFCTEUgdG8gQUNfQVJHX1dJVEggaW4gb3JkZXIgdG8gbWFrZSB0aGUgb3B0aW9uIGJlCiAgIC0td2l0aC1mZWF0dXJlcy1vZi4KCjIwMDktMDEtMDggMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIGFwcHM6IFBhcnNlciBvZiAtTFMgY29tbWFuZCBsaW5lIGFyZ3VtZW50IG5vdwogICBhY2NlcHRzIGJvdGggJy1MUyA8bGV2ZWw+IDxmYWNpbGl0eT4nIGFuZCAnLUxTCiAgIDxsZXZlbD48ZmFjaWxpdHk+Jy4KICAgCiAgIEJlZm9yZSBwYXRjaCAjMTgwNjMzNiB0aGUgZmlyc3Qgc3ludGF4IHdhcyB0aGUgb25seSBvbmUKICAgc3VwcG9ydGVkLiBUaGUgcGF0Y2gKICAgY2hhbmdlZCB0aGUgc3ludGF4IHRvIHRoZSBzZWNvbmQgb25lLCBjYXVzaW5nIGluY29tcGF0aWJpbGl0aWVzCiAgIGluIHN0YWJsZQogICBicmFuY2hlcy4gV2Ugbm93IHN1cHBvcnQgYm90aCBvZiB0aGVtLgoKMjAwOS0wMS0wOCAwMzo1MSAgbWFnZnIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgRG8gbm90IGRlcGVuZCBvbiB0aGUgZXhpc3RhbmNlIG9mIC9iaW4vc2guIEFsc28gZm9sbG93IHRoZSBhZHZpY2UKICAgb2YgdGhlIGF1dG9jb25mIG1hbnVhbCBhbmQgZmluYWxseSBhbGxvdyBmb3IgbGlidG9vbCB0aGF0IGFkb3B0cwogICB0aGUgZ2VuZXJhdGVkIHNjcmlwdCBhZnRlciB0aGUgY2FwYWJpbGl0aWVzIG9mIFNIRUxMLgoKMjAwOS0wMS0wNyAxNjowMiAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBSZW9yZGVyIHRoZSBuZXRpbmV0L2ljbXBfdmFyLmggYW5kIG5ldGluZXQvaXBfaWNtcC5oLCB0aGUgbGF0ZXIKICAgb25lIG11c3QgYmUgY2hlY2tlZCBmaXJzdCBvbiBGcmVlQlNEIDcKCjIwMDktMDEtMDYgMjI6MjMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB1cGRhdGUgU1BBUlRBIGZvciAyMDA5CgoyMDA5LTAxLTAzIDIwOjIzICBtYWdmcgoKICAgKiBjb25maWd1cmUsIG00L2FjX3Byb21wdF91c2VyLm00OgoKICAgVXBncmFkZSB0aGUgQUNfUFJPTVBUX1VTRVIgbWFjcm9zIHRvIGF1dG9jb25mIDIuNjMgd2hlcmUKICAgQUNfRkRfTVNHIGlzIGRlcHJlY2F0ZWQgYW5kIEFTX01FU1NBR0VfRkQgaXMgcmVjb21tZW5kZWQuCgoyMDA5LTAxLTAzIDE0OjIwICBtYWdmcgoKICAgKiAgYWNpbmNsdWRlLm00LCBhY2xvY2FsLm00LCBjb25maWd1cmUsIG00L2FjX2FkZF9zZWFyY2hfcGF0aC5tNCwgICAKICAgICAgbTQvYWNfbXNnX2NhY2hlLm00LCBtNC9hY19tc2dfbW9kdWxlX2RiZy5tNCwgICAKICAgICAgbTQvYWNfcHJvbXB0X3VzZXIubTQsIG00L25ldHNubXBfc2VhcmNoX2xpYnMubTQ6CgogICBTcGxpdCBhY2luY2x1ZGUubTQgaW50byBzbWFsbGVyIHBhcnRzIGJ5IGZ1bmN0aW9uLgoKMjAwOS0wMS0wMyAxNDoxNSAgbWFnZnIKCiAgICogTWFrZWZpbGUuYW06CgogICBNYWtlIGF1dG9yZWNvbmYgd29yayBhZ2Fpbi4KCjIwMDktMDEtMDMgMTQ6MTEgIG1hZ2ZyCgogICAqICBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluc3RhbGwtc2gsIGx0bWFpbi5zaCwgbTQsIAogICAgICAgIG00L2xpYnRvb2wubTQsIG00L2x0b3B0aW9ucy5tNCwgbTQvbHRzdWdhci5tNCwgbTQvbHR2ZXJzaW9uLm00LCAKICAgICAgICBtNC9sdH5vYnNvbGV0ZS5tNDoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sLTIuMi40CgoyMDA5LTAxLTAzIDEzOjI4ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6IENoZWNrIGZvciBhIGZ1bmN0aW9uLCBub3QgYSBtYWNyby4KICAgY29uZmlndXJlOiBSZWdlbmVyYXRlCgoyMDA5LTAxLTAzIDAxOjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIHJlcXVpcmUgLWxzc2w7IHdpbGwgYmUgY2hhbmdlZCBsYXRlciB0byBkbyAnaWYgbmVlZGVkJwoKMjAwOS0wMS0wMyAwMDoxOSAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCBhZ2VudC9taWJncm91cC90YXJnZXQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBVbmlmeSBhbGwgc25tcGQgc3RhdGlzdGljIHZhcmlhYmxlcyBhbmQgbWFrZSB0aGUKICAgaGFuZGxlcnMgaW5zdGFuY2VzIG9mIGEgY29tbW9uIGhhbmRsZXIuCgoyMDA5LTAxLTAxIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGNsZWFuIHVwIGEgZmV3IGNvbW1lbnRzIGFuZCByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDA5LTAxLTAxIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCB2YXJpb3VzIG1pbm9yIG1lbW9yeSBsZWFrIGlzc3VlcwoKMjAwOS0wMS0wMSAxNDoyOCAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwgbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjLCAKICAgICAgICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIE5FV1M6IHNubXBsaWI6IENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgb2lkIGFyZ3VtZW50cyBmcm9tIG9pZCogdG8KICAgY29uc3Qgb2lkKi4gVXBkYXRlIG1pYjJjIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBjaGFuZ2UuCgoyMDA5LTAxLTAxIDEzOjU2ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDaGVjayByZXR1cm4gdmFsdWVzIGFuZCBmcmVlIGFsbG9jYXRlZCByZXNvdXJjZXMgb24gZXJyb3IuCgoyMDA5LTAxLTAxIDEyOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBEbyBub3QgbGVhayBhbGlhc19saXN0IG9uIHJldHVybiBmcm9tIF9uZXh0X2FsaWFzLgoKMjAwOS0wMS0wMSAxMToyNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgTWFrZSB2YXJpYWJsZSBjb25zdCBhcyBpdCBuZXZlciBpcyBjaGFuZ2VkLgoKMjAwOS0wMS0wMSAxMToyNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAwOC0xMi0zMSAyMTo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IHVzZSB0aGUgZnVuY3Rpb25zIGlmIHdlJ3JlIG5vdCBsaW5rZWQgd2l0aCBvcGVuc3NsCgoyMDA4LTEyLTMxIDIwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOgoKICAgbmV3ZXIgcGVybCBnZW5lcmF0ZWQgdXBkYXRlcwoKMjAwOC0xMi0zMSAxODowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBmZXcgbW9yZSByZWN2L3NlbmQgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDgtMTItMzEgMTg6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQWxsb3cgcXVvdGVkIHNlY3VyaXR5IG5hbWVzIGZvciBvbmVzIGNvbnRhaW5pbmcgc3BhY2VzCgoyMDA4LTEyLTMxIDE4OjAxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYW4gb3BlbnNzbCBpbml0aWFsaXphdGlvbiB3cmFwcGVyCgoyMDA4LTEyLTMwIDAwOjAzICBtYWdmcgoKICAgKiBhcHBzL3NubXB0ZXN0LmMsIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBVc2Ugc25tcF9kdXBsaWNhdGVfb2JqaWQgaW5zdGVhZCBvZiB2YXJpb3VzIG1hbGxvYyttZW1jcHkKICAgdmFyaWFudHMgaW4gb3JkZXIgdG8gbWFrZSBjbGVhcmVyIGNvZGUuCgoyMDA4LTEyLTI5IDIzOjM0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL2FzbjEuYzoKCiAgIFVzZSBmb3JtYXQgc3RyaW5ncyBmb3IgcHJpbnRmLWxpa2UgZnVuY3Rpb25zLgogICBQcmVmZXIgc3RyY3B5IG92ZXIgc3ByaW50ZihkZXN0LCAiJXMiLCBzcmMpCiAgIFByZWZlciBERUJVR01TR1RMKChmb3JtYXQsIGFyZ3MpKSBvdmVyIHNwcmludGYobG9jYWwsIGZvcm1hdCwKICAgYXJncyk7IERFQlVHTVNHVEwoKCIlcyIsIGxvY2FsKSkKCjIwMDgtMTItMTggMTc6MDQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGV4cG9ydCBvdXQgb2YgdGhlIGZpbGUgc29tZSBoZWxwZnVsIGdlbmVyaWMgdWRwIGZ1bmN0aW9ucwoKMjAwOC0xMi0xNiAwMDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBjaGFuZ2UgbG9jYWxzbSBzZWN1cml0eSBtb2RlbCB0byB0c20gKGFuZCBhZGQgMSkKCjIwMDgtMTItMTUgMjM6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYzoKCiAgIFBhdGNoIHRvIGNoYW5nZSBhIHR5cGVkZWYgbmFtZSBmcm9tIGxpbmsgdG8gbm9kZWxpbmsgdG8gYXZvaWQKICAgbmFtaW5nIGNvbmZsaWN0IGlzc3Vlcy4KCjIwMDgtMTItMDkgMDE6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICB1c2UgaW50MzJfdCBpbnN0ZWFkIG9mIGludF8zMiB3aGljaCBkb2Vzbid0IHdvcmsgYXQgYWxsIG9uIEYxMAoKMjAwOC0xMi0wOSAwMTowNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlbW92ZSB0aGUgbm90ZSB0aGF0IHdlIG1vdmVkIHRvIHN2bi4uLiBvYnNvbGV0ZSBhdCB0aGlzIHBvaW50LAogICB0byBzYXkgdGhlIGxlYXN0CgoyMDA4LTEyLTA5IDAxOjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiB0aGUgVFNNIGltcGxlbWVudGF0aW9uCgoyMDA4LTEyLTA5IDAwOjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZsYWcgc29tZSBzdGVwcyBhbmQgbWFuZGF0b3J5CgoyMDA4LTEyLTA5IDAwOjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgcmVtb3ZlIGFjY2lkZW50aWFsIG5ldyBkZWZpbmVzIHRoYXQgYXJlbid0IG5lZWRlZCB5ZXQKCjIwMDgtMTItMDkgMDA6NTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBsb2NhbHNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIHNubXBsaWIvc25tcGxvY2Fsc20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmM6CgogICByZW1vdmUgb2xkZXIgbG9jYWxzbSBzZWN1cml0eSBtb2RlbCBhbmQgcmVwbGFjZSB3aXRoIGEgbmV3ZXIgVFNNCiAgIGJhc2VkIG9uIHRoZSB1cGNvbWluZyBJRVRGIHNwZWMKCjIwMDgtMTItMDkgMDA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBpc3N1ZSB3aXRoIGNvbnRleHQgcHJvYmluZwoKMjAwOC0xMi0wNCAxMjozMyAganNhZnJhbmVrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBEYWVtb25pemUgYWZ0ZXIgdHJhbnNwb3J0cyBhcmUgY3JlYXRlZCBhbmQgbGlzdGVuaW5nIHNvY2tldHMgYXJlCiAgIGJvdW5kIHRvIGFwcHJvcHJpYXRlIHBvcnRzLiBUaGlzIGFsbG93cyB0byBleGl0IHdpdGggbm96ZXJvIGV4aXQKICAgY29kZSB3aGVuIHRoZSBiaW5kaW5nIGZhaWxzLgoKMjAwOC0xMi0wNCAxMTo0NCAganNhZnJhbmVrCgogICAqICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFByaW50IHBvcnRzIGFzIHVuc2lnbmVkIG51bWJlcnMuCgoyMDA4LTExLTI0IDE5OjA5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIF9fRVhURU5TSU9OU19fIGlzIG5vdyBoYW5kbGVkIGJ5IGNvbmZpZ3VyZQoKMjAwOC0xMS0yMiAxODozNiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIERvIG5vdCB0cnkgdG8gdXNlIHRoZSBtb2R1bGUgbGlzdCBhcyBhIGZpbGUgdGhhdCBzaG91bGQgYmUKICAgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLCB0aHVzIG1ha2luZyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbgogICBTb2xhcmlzLgoKMjAwOC0xMS0yMCAyMjozMCAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgCiAgICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJlcGxhY2UgbWVtZHVwKCh1X2NoYXIqKikmeCwgKHVfY2hhciopeSwgeiAqIHNpemVvZihvaWQpKSB3aXRoIHgKICAgPSBzbm1wX2R1cGxpY2F0CiAgIGVfb2JqaWQoeSwgeikgc2luY2UgdGhlIGxhdGVyIGlzIGVhc2llciB0byByZWFkIGFuZCBleHByZXNzZXMgdGhlCiAgIGludGVudGlvbiBvZiB0CiAgIGhlIGNvZGUgY2xlYXJlci4KCjIwMDgtMTEtMjAgMjI6MDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBtZW1tb3ZlIHRvIGNvcHkgb2lkcyBhcyBpdCBpcyBrbm93biB0aGF0CiAgIHRoZSBhcmVhcyBhcmUgbm9ub3ZlcmxhcHBpbmcuCgoyMDA4LTExLTIwIDIwOjUxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBTVEREb21haW4uYzoKCiAgIE1ha2UgbG9nIHJlZmVyIHRvIHRoZSByaWdodCBmdW5jdGlvbi4KCjIwMDgtMTEtMjAgMjA6NDYgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBDSEFOR0VTOiBEbyBub3QgdXNlICVtIGluIHByaW50Zi1mb3JtYXR0ZWQgc3RyaW5ncyBzaW5jZSAlbSBpbgogICBwcmludGYgaXMgYSBnbGliYyBleHRlbnNpb24uCgoyMDA4LTExLTE2IDIyOjAxICBtYWdmcgoKICAgKiBjb25maWd1cmUuYWM6CgogICBCdW1wIHRoZSByZXF1aXJlZCBhdXRvY29uZiB2ZXJzaW9uIHRvIDIuNjMgYXMgcGVyIDE3MzAxLgoKMjAwOC0xMS0xNiAyMTo1NSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgUmVtb3ZlIGFuIHVudXNlZCBmdW5jdGlvbiBmcm9tIHRoZSBjb25maWd1cmUgdGVzdCBmb3IgX19mdW5jX18uCgoyMDA4LTExLTE2IDIxOjUxICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTTQgdXNlcyBkbmwsIG5vdCBcIGZvciBsaW5lIGNvbmNhdGVuYXRpb24uCiAgIFwgaW50cm9kdWNlZCBhIHNwdXJpb3VzIGRlZmluZSBpbiBuZXQtc25tcC1jb25maWcuaC5pbiwgdGh1cyB0aGlzCiAgIGNoYW5nZS4KICAgUmVyYW4gYXV0b2NvbmYgYW5kIGF1dG9oZWFkZXIuCgoyMDA4LTExLTEzIDIyOjE0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIE5FV1M6IGJ1aWxkOiB1cGRhdGUgdG8gYXV0b2NvbmYgMi42MwoKMjAwOC0xMS0xMyAwMDozMCAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDIyNTg5MzU6IFB5dGhvbiBFeHRlbnNpb24gTW9kdWxlIGZhaWxzIG9uCiAgIFNvbGFyaXMKCjIwMDgtMTEtMTMgMDA6MjYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQ6CgogICBmaXggdHlwbwoKMjAwOC0xMS0xMyAwMDoyNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIGZpeCB0eXBvCgoyMDA4LTExLTEzIDAwOjE5ICB0YW5kZXJzCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBtYWtlIHNjcmlwdHMgZXhlY3V0YWJsZQoKMjAwOC0xMS0xMiAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBmaXggdHlwby9zcGVsbGluZyBpbiBhbiBlbWJlZGRlZCBwZXJsIGVycm9yIG1lc3NhZ2UKCjIwMDgtMTEtMTEgMTM6MTMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXggY29tcGlsYXRpb24gb24gb2xkZXIgTGludXhlcyB3aXRob3V0IFNQRUVEXzEwMDAwIGFuZAogICBTUEVFRF8yNTAwLgoKMjAwOC0xMS0wMSAxOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgTkVXUzogc25tcGQ6IEFwcGx5aW5nIHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSB0byBmaXggdGhlCiAgIGdldGJ1bGsgaXNzdWUgcmVwb3J0ZWQgYnkgT3NjYXIgTWlyYS1TYW5jaGV6CgoyMDA4LTEwLTMwIDIyOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgcmVtb3ZlIHRoZSBvbGRlciAob2Jzb2xldGUpIG1ha2VyZWxlYXNlIHNjcmlwdAoKMjAwOC0xMC0yMiAxNzoyNCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHRoZSBsaWIgdXNpbmcgYSBDKysgY29tcGlsZXIgb25jZSBtb3JlLgoKMjAwOC0xMC0yMiAwNzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRG9uJ3QgY2xlYXIgc2Vzc2lvbiBmbGFncyB3aGVuIHRlc3Rpbmcgb25lIGJpdC4KCjIwMDgtMTAtMjEgMjE6MTAgIG1hZ2ZyCgogICAqICBBR0VOVC50eHQsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgbG9jYWwvbWliMmMub2xkLWFwaS5jb25mLCAgIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0ZBUS5odG1sOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDE3Mzc3Mjc6IGZyb20gam95Y2Vhbm1hY2hpbmU6IEFkZCBhCiAgIE5FVFNOTVBfT0xEQVBJXyBwcmVmaXggdG8gdGhlIGFjY2VzcyBtYWNyb3MgdGhhdCBhcmUgdXNlZCBpbiB0aGUKICAgb2xkLWFwaSBoZWxwZXIuCiAgIEkgZGlkIGFkZCB0aGUgcHJlZml4IHRvIGFsbCB1c2VycyBpbiBvdXIgY29kZS4KCjIwMDgtMTAtMjEgMjE6MDAgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAKICAgICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMTczNzcyNzogZnJvbSBqb3ljZWFubWFjaGluZTogUmVwbGFjZSBhbGwgdXNlcwogICBvZiBORVRTTk1QX0NMRUFOX05BTUVTUEFDRSB3aXRoIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgoyMDA4LTEwLTE2IDA5OjU2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDgyNzI2OiBjb3JyZWN0bHkgcmVwb3J0IE5JQyBzcGVlZHMKICAgaGlnaGVyIHRoYW4gNEdiaXQvcwoKMjAwOC0xMC0xNiAwODowMCAganNhZnJhbmVrCgogICAqIG1hbjoKCiAgIFNjcmF0Y2ggcHJldmlvdXMgY29tbWl0LCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xIHRvIGJlIGlnbm9yZWQuCgoyMDA4LTEwLTE2IDA3OjM3ICBqc2FmcmFuZWsKCiAgICogbWFuOgoKICAgQWRkIGNvbXBpbGVkIG5ldC1zbm1wLWNvbmZpZy4xIHRvIHN2bjppZ25vcmUgbGlzdAoKMjAwOC0xMC0xNSAxMjo1NyAganNhZnJhbmVrCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZW51bXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9vaWRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMTc5NzExMTogaW1wbGVtZW50IElQLU1JQjo6aXBJZlN0YXRzVGFibGUKCjIwMDgtMTAtMTUgMDk6MjcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcG9ydGFiaWxpdHkgZml4OiBhdm9pZCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaW4gdGhlIG1pZGRsZSBvZgogICBjb2RlCgoyMDA4LTEwLTE0IDE4OjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMDQzMDE4OiBmaXggcmVjdmZyb20gaGFuZ3MKICAgQWxzbyBhZGRyZXNzZXMgKGNsb3NlZCkgYnVncyAxMTcxOTA0IGFuZCAxMzQ1Mjk2CgoyMDA4LTEwLTE0IDA5OjQ0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBtZW1vcnkgbGVhayB3aGVuIG11bHRpcGxlIGludGVyZmFjZXMgaGF2ZSB0aGUKICAgc2FtZSBJUHY2IGFkZHJlc3MKCjIwMDgtMTAtMTQgMDk6MzcgIGpzYWZyYW5lawoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjkzMDM5OiBiZSBzaWxlbnQgd2hlbiBpbnNlcnQgZmFpbHMuCgoyMDA4LTEwLTEzIDE5OjAxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTk3NzQzOTogRml4IHBhc3MvX3BlcnNpc3QgYnVnIHdpdGggU0VUCiAgIG9pZCB2YWx1ZQoKMjAwOC0xMC0xMiAxNzoyNCAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBSZWltcGxlbWVudGF0aW9uIG9mIHNubXBNUERTdGF0cy4KCjIwMDgtMTAtMTAgMjE6MTMgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIENvbnNvbGlkYXRlIGNoZWNrcyBvbiBnZW5lcmFsIE8vUyBjaGFyYWN0ZXJpc3RpY3MKCjIwMDgtMTAtMDcgMDg6NTAgIGpzYWZyYW5lawoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXM6CgogICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDk1OTgzOiBmaXggc3ludGF4IGVycm9yIGluCiAgIGZpbmQtcmVxdWlyZXMgaGVscGVyIHNjcmlwdCBhbmQgbWFrZSBpdCBleGVjdXRhYmxlCgoyMDA4LTEwLTA2IDE5OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGlmZGVmIHN5cy9wb2xsCgoyMDA4LTEwLTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIHBhdGNoIGZyb20gU2hhY2hhciBTY2hlbWVzaCB0byBmaXggYSBxdW90ZSBlc2NhcGluZwoKMjAwOC0wOS0zMCAyMjoxOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZGVkIGEgbmVlZGVkIHRyYWlsaW5nIG5ld2xpbmUKCjIwMDgtMDktMzAgMjI6MTEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjAyMjk0ODogRml4IGZvciBDb3VudGVyNjQgaW4gcGVybCBzdWJhZ2VudAoKMjAwOC0wOS0zMCAyMTo0MCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIE5FV1M6IHNubXBsaWI6IEltcGxlbWVudGVkIFJGQzUzNDMgY29udGV4dEVuZ2luZUlEIHByb2JpbmcuCiAgIFRoaXMgYWxsb3dzIGZvciBwcm9iaW5nIG9mIHRoZSBjb250ZXh0RW5naW5lSUQgd2l0aG91dCByZXF1aXJpbmcKICAgdGhlIFVTTSBzZWN1cml0eSBtb2RlbC4KICAgLSBpbXBsZW1lbnRlZCBlbnRpcmVseSB3aXRoaW4gdGhlIGxpYnJhcnkgZm9yIGJvdGggY2xpZW50cyBhbmQKICAgc2VydmVycy4KCjIwMDgtMDktMzAgMjE6MzMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgQWRkIGEgbG9jYWwgZGVmaW5pdGlvbiBmb3IgaGF2aW5nIHNlY3VyaXR5IG1vZGVscyBkZWZpbmUgdGhlaXIKICAgb3duCiAgIGNvbnRleHRFbmdpbmVJRCBwcm9iZQoKMjAwOC0wOS0zMCAyMTozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZCBhIGRlZmluaXRpb24gZm9yIHRoZSBTU0ggZG9tYWluCgoyMDA4LTA5LTMwIDIxOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDEyNTczNDc6IE5vbi1maXhlZCBzaXplIGNvbm5lY3Rpb24gYnVmZmVyCgoyMDA4LTA5LTMwIDA3OjMyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbgogICBNYWtlZmlsZS4KICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCgoyMDA4LTA5LTI0IDIwOjU4ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIElkZW50aWZ5IHdoZXJlIHBhcnRpY3VsYXIgY2hlY2tzIGFyZSBhY3R1YWxseSB1c2VkCiAgIChsaWJyYXJ5LCBhZ2VudCwgYXBwbGljYXRpb25zIG9yIG5vdCBhdCBhbGwpCgoyMDA4LTA5LTI0IDEyOjUzICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYzoKCiAgIFVzZSB0aGUgbG9uZ2VzdCBpbnRlZ2VyIGZvciBpbm9kZSBudW1iZXJzIGFuZCAocG9zc2libHkgNjQgYml0KQogICBjb3VudGVycy4KCjIwMDgtMDktMjAgMDk6MDEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzOgoKICAgTkVXUzogYnVpbGQ6IERvIG5vdCByZXF1aXJlIHVzZSBvZiAtLXdpdGgtZW5kaWFubmVzcyB3aGVuCiAgIGNyb3NzLWNvbXBpbGluZy4KCjIwMDgtMDktMTkgMTU6MTkgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBDb3JyZWN0IGxvY2F0aW9uIG9mIGRvY3VtZW50YXRpb24gZmlsZXMuCgoyMDA4LTA5LTE5IDA1OjI4ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBbmQgYWRkIHRoZSBjaHVuayB0aGF0IEkgbG9zdC4KCjIwMDgtMDktMTkgMDU6MjMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIG1vcmUgdGhpbmdzIGZyb20gYWNjb25maWcuaCB0byB0aGUgdGVtcGxhdGVzIGluIHRoZQogICBjb25maWd1cmUgaW5wdXQgZmlsZXMuCgoyMDA4LTA5LTE3IDEzOjMxICBqc2FmcmFuZWsKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzOgoKICAgbWFrZSBmaW5kLXJlcXVpcmVzIGV4ZWN1dGFibGUgc28gaXQncyBhY3R1YWxseSB1c2FibGUgYnkgdGhlCiAgIG5ldC1zbm1wLnNwZWMKCjIwMDgtMDktMTcgMTI6MDggIGpzYWZyYW5lawoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xLmRlZjoKCiAgIGFkZCBtYW4gcGFnZSBmb3IgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIKCjIwMDgtMDktMTYgMTg6MDIgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZ1cnRoZXIgbWluaW1pemF0aW9uIG9mIGFjY29uZmlnLmgKCjIwMDgtMDktMTEgMjI6MjggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW92ZSBhIGZldyBtb3JlIHZhcmlhYmxlcyBvdXQgb2YgYWNjb25maWcuaAoKMjAwOC0wOS0xMSAyMDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzM3NDM5OiBmcm9tIGVtaXk6IGF1dG9tYXRpYyBsaW5rIHVwL2Rvd24KICAgdHJhcHMgb24gYSB3YWxrOyBzdGlsbCBuZWVkIGEgYmV0dGVyIGludGVyZmFjZSBmb3IgbWFudWFsbHkgZG9pbmcKICAgdGhpbmdzIG9uIGFuIG9jY2FzaW9uYWwgYmFzaXMKCjIwMDgtMDktMTEgMjA6MjUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiA3MDA2ODE6IGxpbWl0ZWQgc3VwcG9ydCBmb3IgVURQdjQgYnJvYWRjYXN0CiAgIGFkZHJlc3NlcwoKMjAwOC0wOS0xMCAwNjozOSAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX0NIRUNLX1RZUEVTIGluc3RlYWQgb2YgYSBob21lZ3Jvd24KICAgYWx0ZXJuYXRpdmUgdG8gY2hlY2sgZm9yIHR5cGVzCgoyMDA4LTA5LTA5IDIwOjI3ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCBhbGwgdGhlIHBhcnRzIG9mIGNvbmZpZ3VyZS5hYyB0byB0aGUgZGVwZW5kZW5jeSBsaXN0CgoyMDA4LTA5LTA5IDE4OjEzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ3VyZS5pbiAtPiBjb25maWd1cmUuYWMgY2hhbmdlCgoyMDA4LTA5LTA5IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgZGVmYXVsdCB0byAtcDAKCjIwMDgtMDktMDggMjM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGxvY2Fsc20uYzoKCiAgIGNoZWNrIGZvciBhIHNlc3Npb24gdHVubmVsZWQgZmxhZyBiZWZvcmUgcmV0dXJuaW5nIGFuCiAgIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUKCjIwMDgtMDktMDggMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgdHVubmVsZWQgZmxhZyB3aGVuIGRlYWxpbmcgd2l0aCBhIHR1bm5lbC1iYXNlZCB0cmFuc3BvcnQ7CiAgIGRvbid0IHJlcXVpcmUgYSBzZWN1cml0eUVuZ2luZUlEIGlmIHRoZSBzZWN1cml0eSBtb2RlbCBkb2Vzbid0CiAgIGhhdmUgb25lIChqdXN0IFVTTSBuZWVkcyBpdCkKCjIwMDgtMDktMDggMjA6MjQgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAyMDk5OTg1OiBBZGRlZCBjb25zdCBxdWFsaWZpZXJzIHRvIHRpbWUKICAgY29udmVyc2lvbiByb3V0aW5zCgoyMDA4LTA5LTA1IDA3OjUxICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgVXBkYXRlIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zLCBpbiBsaW5lIHdpdGggbWFrZXJlbGVhc2UueG1sCiAgIChRbjogV2h5IGlzbid0IG1ha2VyZWxlYXNlLnhtbCBiZWluZyBwaWNrZWQgdXAgaGVyZT8pCgoyMDA4LTA5LTA0IDIyOjUyICB0YW5kZXJzCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMTg2ODI3ODogUHl0aG9uIHNlZ2ZhdWx0IChpbnRyb2R1Y2VkIGJ5CiAgIHIxNjk2MikKCjIwMDgtMDktMDMgMTM6NDMgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDIwMDA4NzQ6IENsZWFudXAgdHJhbnNwb3J0IHNlbGVjdGlvbi4KCjIwMDgtMDktMDMgMTM6MjkgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBUaWR5IHVwIHBlcmwvcHl0aG9uIGFuZCBPL1MgZGF0YSBzdHJ1Y3R1cmUgdGVzdHMuCgoyMDA4LTA4LTMxIDE4OjE0ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgVGlkeSB1cCAobW9zdCBvZikgdGhlIGluZGl2aWR1YWwgY29tcG9uZW50cyBvZiB0aGUgY29uZmlndXJlCiAgIGZyYW1ld29yay4KICAgVGhpcyBpcyBtb3N0bHkgcmUtaW5kZW50YXRpb24sIHJlLWNvbW1lbnRpbmcsIGFuZCBhIGNlcnRhaW4KICAgYW1vdW50CiAgIG9mIGp1ZGljaW91cyByZS1vcmRlcmluZyBvZiB0aGUgdGVzdHMgd2l0aGluIGluZGl2aWR1YWwKICAgc3ViLXNjcmlwdC4KCjIwMDgtMDgtMzEgMTc6MzAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgQW5ub3RhdGUgY29uZmlndXJlIHRlbXBsYXRlIHdpdGggc3VnZ2VzdGVkIGJlc3QgcHJhY3RpY2UKICAgc3RydWN0dXJlLgogICBOb3RlIHRoYXQgbm9uZSBvZiB0aGVzZSBjaGFuZ2VzIGhhcyBhbHRlcmVkIHRoZSBjb2RlIHdpdGhpbgogICAnY29uZmlndXJlJyBpdHNlbGYgKG90aGVyIHRoYW4gYWZmZWN0aW5nIGxpbmUgbnVtYmVycykKCjIwMDgtMDgtMzEgMTc6MjYgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlLmQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE5FV1M6IGJ1aWxkOiBzcGxpdCBjb25maWd1cmUgdGVtcGxhdGUgaW50byBzZXBhcmF0ZSBwaWVjZXMuCiAgIChNb3N0bHkpIHNlbGYtY29udGFpbmVkLCBhbmQgc2lnbmlmaWNhbnRseSBsZXNzIGNvbmZ1c2luZyEKCjIwMDgtMDgtMzEgMTc6MjMgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlLmluOgoKICAgUmVuYW1lIGNvbmZpZ3VyZSB0ZW1wbGF0ZSBpbiBsaW5lIHdpdGggY3VycmVudCBiZXN0IHByYWN0aWNlLgoKMjAwOC0wOC0yOSAxOTo1NCAgZHRzMTIKCiAgICogZGlzdC9jaGFuZ2Vsb2dmaXg6CgogICBSZXRhaW4gZmlsZW5hbWVzIHdoaWNoIGRvbid0IGluY2x1ZGUgdGhlIGV4cGVjdGVkIHByZWZpeC4KCjIwMDgtMDgtMjcgMjE6NTUgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jczoKCiAgIGlnbm9yZSAubGlicyBkaXJlY3RvcmllcwoKMjAwOC0wOC0yNyAxMzozOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFMvMzkwIHVzZXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZvcm1hdCBvZiB0aGUgL3Byb2MvY3B1aW5mbyBmaWxlOgogICBwcm9jZXNzb3IgMDogdmVyc2lvbiA9IEZGLCBpZGVudGlmaWNhdGlvbiA9IDA2MEFGRSwgbWFjaGluZSA9CiAgIDIwOTQKCjIwMDgtMDgtMjIgMjM6NDcgIHRhbmRlcnMKCiAgICogRkFROgoKICAgdXBkYXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW1zCgoyMDA4LTA4LTIyIDIzOjI3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IEJVRzogMjAyMzgwMzogQ29tcGlsYXRpb24gcHJvYmxlbXMgb24gSFAtVVggMTEuMzEKICAgQ0hBTkdFUzogYnVpbGQ6IExpbWl0IHRoZSB1c2Ugb2YgX0tFUk5FTCBkZWZpbml0aW9ucyBpbiBjb25maWd1cmUKICAgdGVzdHMgdG8gbWF0Y2ggdGhlIHVzZQogICBvZiBfS0VSTkVMIGluIG91ciBjb2RlYmFzZQoKMjAwOC0wOC0yMiAwMDoxOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggYnVpbGQgZmFpbHVyZSBvbiBIUC1VWCAxMS4zMTogdXNlIGdldHBhZ2VzaXplKCkgaW5zdGVhZCBvZgogICBQR1NISUZULgogICBTdWNjZXNzZnVsbHkgdGVzdGVkIG9uIEhQLVVYIDEwLjIwLCAxMS4wMCwgMTEuMTEsIDExLjIzIGFuZAogICAxMS4zMS4KCjIwMDgtMDgtMjEgMTA6MDMgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgU0NUUC1NSUIKCjIwMDgtMDgtMjAgMTc6MzcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgSGF2ZSBvbmx5IG9uZSB2YXJpYWJsZSBuYW1lZCBwYXNzd2QgaW4gc211eF9hdXRoX3BlZXIuCgoyMDA4LTA4LTE5IDIzOjIyICB0YW5kZXJzCgogICAqIFJFQURNRS50cnU2NDoKCiAgIHVwZGF0ZSBSRUFETUUgZm9yIFRydTY0IGFmdGVyIHRoZSBzZW5kdG8vcmVjdmZyb20gZml4ZXMKCjIwMDgtMDgtMTkgMjA6MjcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgZml4IHNpZ25pZmljYW50IHR5cG8KCjIwMDgtMDgtMTkgMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIEZvcmNlIHVzZSBvZiAvcHJvYy8lZC9wc2luZm8gaW50ZXJmYWNlIG9uIFNvbGFyaXMuCiAgIFRlbXBvcmFyeSBoYWNrIHdoaWxlIHdlIGludmVzdGlnYXRlIHRoZSBpc3N1ZXMgd2l0aAogICB0aGUga3ZtX3Byb2MoKSBjb2RlLgogICAKICAgVGhlICdjb25maWdfcmVxdWlyZScgcHJvY2Vzc2luZyBkb2Vzbid0IGN1cnJlbnRseQogICBwaWNrIHVwIHRoZSBmdWxsICNpZmRlZiBlbnZpcm9ubWVudCwgc28gZGVmYXVsdHMKICAgdG8gdXNpbmcga3ZtX3Byb2MoKS4gSSdtIG5vdCBjb252aW5jZWQgdGhpcyB3YXMKICAgd29ya2luZyBiZWZvcmUgYW55d2F5LAoKMjAwOC0wOC0xOSAxMzoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmM6CgogICBGaXggcHJvYmxlbXMgaW4gL3Byb2MvJWQvcHNpbmZvIGludGVyZmFjZSBwcm9jZXNzaW5nLgoKMjAwOC0wOC0xOSAwODo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycywgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2VzczoKCiAgIElnbm9yZSBsaWJyYXJ5IGFuZCBvYmplY3QgZmlsZXMKCjIwMDgtMDgtMTkgMDg6MzYgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQWN0aXZhdGUgc3RhdGlzdGljcyB0aGF0IGFyZSBzdXBwb3J0ZWQgb24gU29sYXJpcyBhbmQvb3IgTGludXgKICAgSVB2NgoKMjAwOC0wOC0xOSAwODoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBJbXByb3ZlZCB0cmFjaW5nIG9mIFNNVVggYXV0aGVudGljYXRpb24gcHJvYmxlbXMuCgoyMDA4LTA4LTE5IDA4OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jOgoKICAgQmV0dGVyIHRyYWNpbmcgb2YgRGlzTWFuIG9iamVjdCBwcm9jZXNzaW5nLgoKMjAwOC0wOC0xOCAyMjo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oOgoKICAgcmVtb3ZlIGJvZ3VzIHdoaXRlIHNwYWNlCgoyMDA4LTA4LTE4IDIyOjAxICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMDIxNDQ0OiBTdXBwb3J0IFNOTVB2MmMgaW4gZ2V0dGFibGUKICAgcHJvY2Vzc2luZwoKMjAwOC0wOC0xOCAyMTo0NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjAwMzQ1MDogRml4IGEgY291cGxlIG9mIDY0LWJpdAogICBwcm9ibGVtcy4KCjIwMDgtMDgtMTggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgcmV2ZXJ0IDE3MTU3IHNpbmNlIGl0IGJyb2tlIHNvbWV0aGluZwoKMjAwOC0wOC0xOCAwNzowNiAganNhZnJhbmVrCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIFNDVFAtTUlCIGltcGxlbWVudGF0aW9uIChMaW51eCBvbmx5KQoKMjAwOC0wOC0xNyAyMTowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMjI5MzY6IEZpeCBBZ2VudFggQ291bnRlcjY0IGRlY29kaW5nIG9uCiAgIDY0LWJpdCBhcmNoaXRlY3R1cmVzCgoyMDA4LTA4LTE3IDIwOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDE0MjA0OiBTdXBwb3J0IC1nIHtncm91cG5hbWV9CgoyMDA4LTA4LTE1IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIE5FV1M6IHNubXB1c206IFBBVENIOiAxNTkxMzU1OiBmcm9tIHBwYXNzZXJhOiBBbGxvdyBjbG9uaW5nIHRvCiAgIGVuZ2luZUlEcyB0aGF0IGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgYWdlbnQncyBlbmdpbmVJRAoKMjAwOC0wOC0xNCAxNTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jOgoKICAgU1dSdW4gcHJvY2Vzc2luZyBuZWVkcyBhY2Nlc3MgdG8gdGhlIGludGVybmFscyBvZiAnc3RydWN0IHVzZXInCiAgIChTb2xhcmlzKQoKMjAwOC0wOC0xMyAxMzowMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBDb3JyZWN0bHkgcGFyc2UgaW50ZXJmYWNlIGluZGV4ZXMgaGlnaGVyIHRoYW4gMHhmZi4KCjIwMDgtMDgtMTIgMDg6MjcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDbG9zZSBmaWxlIHdoZW4gcGFyc2luZyBvZiAvcHJvYy9YWFgvc3RhdHVzIGZhaWxzLgoKMjAwOC0wOC0xMiAwNzoyNyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYiwgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9TQ1RQLU1JQi50eHQ6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDIwMjM2MzM6IGFkZCBTQ1RQLU1JQiBpbXBsZW1lbnRhdGlvbiAoTGludXgKICAgb25seSkKCjIwMDgtMDgtMDcgMTA6MDMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBGaXggaW5ldE5ldFRvTWVkaWFUYWJsZSB0YWJsZSBwcm9jZXNzaW5nIC0gY29udGludWUgd2l0aCBuZXh0CiAgIGVudHJ5IHdoZW4gZmlsbHVwX2VudHJ5X2luZm8oKSBmYWlscy4KCjIwMDgtMDgtMDcgMDk6MDAgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBkb2N1bWVudGF0aW9uIG9mIGV4ZWMgc3RhdGFtZW50IC0gaXQgZG9lcyBub3QgY2FjaGUgcmVzdWx0cwogICBhbnltb3JlLiBSZWxhdGVkIHRvIGJ1ZyA4ODMxMzQKCjIwMDgtMDctMzEgMjM6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYzoKCiAgIEZpeCBhIHR5cG8sIGFuZCBhIGJvZ3VzIGZpZWxkIG5hbWUgaW4gdGhlIEFJWCBwcm9jaW5mbyBzdHJ1Y3R1cmUuCgoyMDA4LTA3LTMxIDIzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmM6CgogICBJbmNsdWRlIG1pc3NpbmcgaGVhZGVycywgYW5kIGZpeCBvbmUgYm9ndXMgZmllbGQgbmFtZSBpbiBTb2xhcmlzCiAgIHByb2Mgc3RydWN0dXJlLgoKMjAwOC0wNy0zMCAxNzo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyMDAzMTQ0OiBJbmNyZWFzZSBzaXplIG9mIEFnZW50WCBwYWNrZXQKICAgYnVpbGQgYnVmZmVyCgoyMDA4LTA3LTMwIDA3OjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAyMDI3ODM0OiBFeHRlbmQgc3RyaW5nIHByaW50IGJ1ZmZlciBieSB0aGUKICAgbWluaW11bSBuZWNlc3NhcnkuCgoyMDA4LTA3LTI5IDIzOjM0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9jeWd3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3BzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jOgoKICAgRml4IGFzc29ydGVkIHNpbGx5IHR5cG9zIC0gdW5iYWxhbmNlZCBwYXJlbnRoZXNlcwogICBhbmQgdGhlIHdyb25nIHR5cGUgZW51bWVyYXRpb24gdmFsdWUgbmFtZXMuCgoyMDA4LTA3LTI5IDIzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmM6CgogICBFbnN1cmUgc3dydW4gZGF0YSBpcyBhdmFpbGFibGUgZm9yIHRoZSBwclRhYmxlIGNhbGxzLAogICByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGhyU1dSdW5UYWJsZSB0byB0cmlnZ2VyIHRoaXMuCgoyMDA4LTA3LTI5IDE2OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGEpIEZpeCB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGluIGp1c3Qgb25lIHBsYWNlCiAgIChtYWtlcyBpdCBlYXNpZXIgdG8gY2hhbmdlIGlmIG5lY2Vzc2FyeSkKICAgYikgRml4IHZhcmlvdXMgdW5mb3J0dW5hdGUgbGluZS1icmVha3MgKHdpdGhpbiAicGR1LT5mbGFncyIpCgoyMDA4LTA3LTI5IDE2OjA1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBJZiB0aGUgcmUtd3JpdHRlbiBTV1J1biBtb2R1bGUgaWYgYXZhaWxhYmxlLCB0aGVuIHVzZSBpdCBmb3IKICAgdGhlIFVDRC1zcGVjaWZpYyBwclRhYmxlIGFzIHdlbGwgYXMgdGhlIGhyU1dSdW5UYWJsZS4KICAgQ29uc2lzdGVuY3kgaXMgZ29vZC4uLi4KCjIwMDgtMDctMjkgMTU6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOgoKICAgU3VwcHJlc3MganVuayBpbiBoclNXUnVuTmFtZSAmIGhyU1dSdW5QYXJhbWV0ZXJzIHZhbHVlcwoKMjAwOC0wNy0yOSAxMDoyNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYzoKCiAgIFRoZSBjYWNoZS9jb250YWluZXIgcmVsYXRlIHRvIHRoZSBkYXRhIGl0c2VsZiwgc28gc2hvdWxkCiAgIG1vcmUgbmF0dXJhbGx5IGJlIGhhbmRsZWQgYnkgdGhlIGRhdGFfYWNjZXNzIG1vZHVsZSwKICAgcmF0aGVyIHRoYW4gYSBwYXJ0aWN1bGFyIE1JQiB0YWJsZSBtb2R1bGUuCgoyMDA4LTA3LTI4IDIxOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICAndXNlZCcgYW5kICdmcmVlJyBhcmUgbm90IHRoZSBzYW1lIHRoaW5nLCBEYXZlLiBQYXkgYXR0ZW50aW9uIGF0CiAgIHRoZSBiYWNrLi4uLgoKMjAwOC0wNy0yOCAxNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyMDIzODAzOiBFbnN1cmUgY29tcGlsYXRpb24gaXMgbm90IGRlcGVuZGVudAogICBvbiBhbiBpcnJlbGV2YW50IGNvbmZpZ3VyZSBjaGFyYWN0ZXJpc3RpYyBmb3IgSFAtVVggMTEKCjIwMDgtMDctMjggMTA6NTYgIGR0czEyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgQ0hBTkdFUzogYXBwczogQlVHOiAxOTY0MTM2OiBEcm9wIE5VTEwgdHlwZSBmcm9tIHNubXBzZXQgdXNhZ2UKICAgbWVzc2FnZS4KCjIwMDgtMDctMjUgMTQ6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaDoKCiAgIFVzZSAnLS1lbmFibGUtbmV3LWZlYXR1cmVzJyBtZWNoYW5pc20gdG8gaW5jbHVkZSBoclNXKiByZS13cml0ZXMKCjIwMDgtMDctMjUgMTQ6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2N5Z3dpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX251bGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jOgoKICAgUHJlbGltaW5hcnkgT1Mtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIG9mIFJ1bm5pbmcgYW5kIEluc3RhbGxlZAogICBTb2Z0d2FyZSBkYXRhIGFjY2Vzcy4KCjIwMDgtMDctMjQgMjM6MjIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDIwMjcxMjk6IGZpeCB0eXBvIGluIHNubXBjbWQuMQoKMjAwOC0wNy0yNCAxMDowMCAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNlZHNjcmlwdC5pbjoKCiAgIHJlZmxlY3QgZGVmYXVsdCB0ZW1wIGZpbGUgcGF0dGVybiBpbiBtYW4gcGFnZSBpZiBpdCdzIG1vZGlmaWVkIGJ5CiAgIC4vY29uZmlndXJlIHNjcmlwdAoKMjAwOC0wNy0yNCAwODozNiAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogYnVpbGRpbmc6IGFkZCAtLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4gY29uZmlndXJlIG9wdGlvbgoKMjAwOC0wNy0yNCAwNjo1MyAganNhZnJhbmVrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MjM4MDA6IHJlbGVhc2UgYW5kIHJlbG9hZCBhbGwgdHJhcAogICBkZXN0aW5hdGlvbnMgb24gU0lHSFVQCgoyMDA4LTA3LTIyIDE0OjMzICBqc2FmcmFuZWsKCiAgICogbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW46CgogICBmaXggbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIgdG8gcnVuIHdpdGhvdXQgYXJndW1lbnRzCgoyMDA4LTA3LTIyIDE0OjIxICBqc2FmcmFuZWsKCiAgICogIC4sIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluLCAgIAogICAgICBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbjoKCiAgIE5FV1M6IG1pc2M6IHNlcGFyYXRlIHVzZXIgbWFuYWdlbWVudCBmcm9tIG5ldC1zbm1wLWNvbmZpZyBpbnRvCiAgIG5ldyBuZXQtc25tcC1jcmVhdGUtdjMtdXNlciBzY3JpcHQKCjIwMDgtMDctMjEgMTM6NDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDE5NDQ1ODE6IFByb3RlY3QgYWdhaW5zdCBjb3JlIGR1bXBzIHdpdGgKICAgbG9uZyBzdHJpbmcgaW5kZXggdmFsdWVzLgoKMjAwOC0wNy0xOCAxNToxOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBuZXcgc2lnbmluZyBrZXkKCjIwMDgtMDctMTcgMTA6MDUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyMDE4MDMxOiBEb24ndCBwcm9iZSBlbmdpbmVJRCBpbiBpbnRlcm5hbAogICBtb25pdG9yIHNlc3Npb25zLgoKMjAwOC0wNy0xMCAxOTozMyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggYSByZWdleHAgcXVvdGUKCjIwMDgtMDctMTAgMTQ6MTIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgZ2V0YWRkcmluZm8gKGUuZy4gSFAtVVgKICAgMTEuMCBhbmQgZWFybGllciwgU29sYXJpcyA3IGFuZCBlYXJsaWVyKQoKMjAwOC0wNy0xMCAxMzo1MCAgYWxleF9iCgogICAqIHdpbjMyL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEJVRzogMjAxNDUyNjogV2luMzI6CiAgIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oIG5vdCBpbnN0YWxsZWQKCjIwMDgtMDctMDYgMTU6MDUgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVsZGluZzogQWRkIHN1cHBvcnQgZm9yIHdpbkV4dERMTCB0byBidWlsZC5iYXQgKHdpbjMyKQoKMjAwOC0wNy0wNiAxMjozOCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzIC0gYWRkIG1pc3NpbmcgZnVuY3Rpb24gZm9yIERMTCBidWlsZC4KCjIwMDgtMDctMDIgMTI6MzkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjAwNjc4NjogSW50ZXJmYWNlIG5hbWUgY2FuIGhhdmUgbW9yZSB0aGFuIDgKICAgY2hhcmFjdGVycy4KCjIwMDgtMDYtMjUgMTc6MzkgIHRhbmRlcnMKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3RyYXAuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkxNjg0MDogbmV3IGNvbmZpZyBvcHRpb24gdG8gc2V0IFNOTVB2MSB0cmFwCiAgIGFnZW50IGFkZHJlc3MKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE5MTY4NDA6IGludHJvZHVjZQogICBuZXRzbm1wX2dldGhvc3RieW5hbWVfdjQKCjIwMDgtMDYtMjUgMTU6MTYgIGpzYWZyYW5lawoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBhc3NlcnRpb24gd2hlbiB1c2VkIHdpdGggcGVybCA1LjEwCgoyMDA4LTA2LTI0IDA1OjAxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogQlVHOiAyMDAxMTI0OiBBbGxvdyBlbWJlZGRlZCBOVUwKICAgY2hhcmFjdGVycyBpbiB1c21Vc2VyUHVibGljCgoyMDA4LTA2LTIzIDE5OjU3ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBPbmx5IHJlc2VydmUgc3BhY2UgZm9yIHRoZSBleHRyYSBcMCBhZnRlciB0aGUgZGF0YSBmb3IgT0NURVQKICAgU1RSSU5HIHZhbHVlZCBlbnRpdGllcwoKMjAwOC0wNi0yMyAxOToxMyAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERpc2FibGUgdGVzdHMgaWYgdGhlIGFnZW50IGlzIGJ1aWx0IHdpdGhvdXQKICAgdGhlIG1pYiBtb2R1bGUgdGhleSBkZXBlbmQgb24uCgoyMDA4LTA2LTIxIDEyOjE0ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSBzcHVyaW91cyBBQ19NU0dfUkVTVUxUIGluc2lkZSBhbiBBQ19DQUNIRV9DSEVDSwoKMjAwOC0wNi0xOCAwNTowNyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBIYW5kbGUgc29sYXJpcyBhd2sgYXMgd2VsbC4KCjIwMDgtMDYtMTcgMTY6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTk1NzUzOiBmcm9tIHZvbGtvdl9wZXRlcjogbWlub3IgY2xlYW51cAogICBhZ2VudC9hdXRvX25saXN0LmMKCjIwMDgtMDYtMTcgMDg6NTcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIEZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHNwcmludGYgZm9yIFRDUC9JUHY2CiAgIENyb3NzLXBvcnQgb2YgcmV2aXNpb24gMTY2NjgKCjIwMDgtMDYtMTYgMjM6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTk5NTE3MjogZml4IC0td2l0aG91dC1lbGYgY29uZmlndXJlIHVzYWdlCiAgIG1lc3NhZ2UKCjIwMDgtMDYtMTMgMjI6MTYgIGR0czEyCgogICAqIGRpc3QvZmluZC1yZXF1aXJlcywgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEltcHJvdmVkIFJQTSBzcGVjIGZpbGVzLCBmb3IgYmV0dGVyIGNvbnNpc3RlbmN5CiAgIHdpdGggdmVuZG9yLXByb3ZpZGVkIHBhY2thZ2VzLgogICBQcm92aWRlZCBieSBKYW4gU2FmcmFuZWsKCjIwMDgtMDYtMTMgMjE6MDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxODk5NzYyOiBUd2VhayBlbWJlZGRlZF9wZXJsIGNvbmZpZ3VyZQogICBjaGVja3MuCgoyMDA4LTA2LTEzIDA1OjQzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBSZXRpcmUgdGhlIGNvbmZpZ19vbGQvbmV3X3JlcXVpcmUgZmVhdHVyZSBhbmQKICAgcmVwbGFjZSBpdCB3aXRoIGNvbmZpZ192ZXJzaW9uX3JlcXVpcmUgdGhhdCBjb21wYXJlcyB2ZXJzaW9uCiAgIG51bWJlcnMgdG8gYWNoaWV2ZSBhIHNpbWlsYXIgdGhpbmcKCjIwMDgtMDYtMTIgMTI6NTAgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBPbmx5IGFkZCBub24tZGVmYXVsdCBNSUIgbW9kdWxlcyB0byB0aGUgdGVzdCBidWlsZHMuCiAgIFNwZWNpZnlpbmcgdGhlIGhvc3QgbW9kdWxlIGlzIG5vdCBuZWVkZWQgb24gTGludXggc3lzdGVtcywKICAgYW5kIG1heSBicmVhayBvbiBvdGhlciBPL1NzLiBTcGVjaWZ5aW5nIHRoZSBkaXNtYW4vZXZlbnQKICAgTUlCIGlzIHVubmVjZXNzYXJ5IG9uIGFueSBzeXN0ZW0uCgoyMDA4LTA2LTExIDEwOjE2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgT25seSBlbmFibGUgSVBYIHRyYW5zcG9ydCBvbiBMaW51eCBzeXN0ZW1zCgoyMDA4LTA2LTEwIDE0OjM3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgc25tcGQ6IFBBVENIOiAxOTE4MzgzOiBGaXggRGlzTWFuIG1vbml0b3Jpbmcgb2YgQWdlbnRYIHN1YmFnZW50cwogICBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IGFjdHVhbGx5IHVzZSB0aGUgY29kZSBzdWJtaXR0ZWQgaW4gdGhhdAogICBwYXRjaC4KICAgSW5zdGVhZCBpdCBpbnNlcnRzIGEgY2FsbGJhY2sgaG9vayBpbnRvIHRoZQogICBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiCiAgIHJvdXRpbmUgKHVzaW5nIHRoZSBteXZvaWQgcG9pbnRlciBhbmQgYSBuZXcgc2Vzc2lvbiBmbGFnKSwgd2hpY2gKICAgaGFzCiAgIHRoZSBzYW1lIGVmZmVjdCB3aXRob3V0IG5lZWRpbmcgdG8gZHVwbGljYXRlIGFueSBjb2RlLgoKMjAwOC0wNi0xMCAxMjo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIEZpeCBsb2dpYyBlcnJvcnMgaW4gaGFuZGxpbmcgb2Ygb2xkL2N1cnJlbnQgdmFyYmluZCBsaXN0cy4KICAgUmVwb3J0ZWQgYnkgRnJlZCBHYW8gaW4gcGF0Y2ggIzE5MTgzODMKCjIwMDgtMDYtMDkgMTk6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHVwZGF0ZSB0byBtYXRjaCBwdWJsaXNoZWQgcmVsZWFzZQoKMjAwOC0wNi0wOSAxNjo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGRlZCBzbm1wX3ZlcnNpb24uYwoKMjAwOC0wNi0wOSAwOTowNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYzoKCiAgIEEgY291cGxlIG1vcmUgbWlzc2luZyBlcnJvciBjaGVja3MuCiAgIEJhc2VkIG9uIHRob3NlIHJlcG9ydGVkIGJ5IEJveWEgU3VuCgoyMDA4LTA2LTA2IDEyOjAyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBlbWJlZGRlZCBwZXJsIG9uIE1hYyBPUy9YCiAgIChuZWFybHkgd29ya2luZyBvbiBMZW9wYXJkIG5vdykKCjIwMDgtMDYtMDMgMjM6MTQgIHRhbmRlcnMKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5FV1M6IGFpeDogQWRkIHN1cHBvcnQgZm9yIEFJWCA2LngKCjIwMDgtMDYtMDMgMjI6NDYgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIE5FV1M6IGJ1aWxkOiBVcGRhdGUgdG8gbGlidG9vbCAxLjUuMjYgKGZyb20gMS41LjI0KSwgZS5nLiB0bwogICBiZXR0ZXIgc3VwcG9ydCBBSVggNi4xIGFuZCBNYWMgT1MgWCBMZW9wYXJkCgoyMDA4LTA2LTAzIDIyOjM5ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB3aHkgYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgbmV3IHN0dWZmPwoKMjAwOC0wNi0wMyAwOTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgRW5zdXJlIHRoZSBkZWZhdWx0IGludGVybmFsIHF1ZXJ5IHNlc3Npb24gaGFzIGEgdmFsaWQgZW5naW5lSUQsCiAgIHRvIGF2b2lkIGhhdmluZyB0byBwcm9iZSBmb3IgaXQgb24gdGhlIGZpcnN0IHVzZS4KCjIwMDgtMDYtMDIgMjI6MTcgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi90b29scy5jOgoKICAgTkVXUzogc25tcGxpYjogQ29udmVydCBnZW5lcmljIHNvdXJjZSBhcmd1bWVudHMgZnJvbSBjb25zdAogICB1X2NoYXIqIHRvIGNvbnN0IHZvaWQqIGZvciBzbm1wX3BkdV9hZGRfdmFyaWFibGUsCiAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUsIHNubXBfc2V0X3Zhcl92YWx1ZSwKICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlIGFuZCBtZW1kdXAuCgoyMDA4LTA2LTAyIDEzOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRW5zdXJlIHRoYXQgdGhlICJ0cmlnZ2VyIGFybWVkIiBmbGFnIGlzIGNsZWFyZWQgd2hlbmV2ZXIgdGhlCiAgIG1hdGNoaW5nCiAgIGV4cHJlc3Npb24gaXMgZm91bmQgdG8gaG9sZCAtIGV2ZW4gaWYgdGhlIHRyaWdnZXIgZG9lc24ndAogICBhY3R1YWxseSBmaXJlLgogICBUaGlzIGFmZmVjdHMgdGhlIGJlaGF2aW91ciBvZiBpbml0aWFsbHktdHJ1ZSBleHByZXNzaW9ucywgd2hlbgogICB0aGlzCiAgIGluaXRpYWwgZmlyaW5nIGlzIHN1cHByZXNzZWQgdXNpbmcgdGhlIG10ZVRyaWdnZXIqU3RhcnR1cCBvYmplY3QuCiAgIFdpdGhvdXQgdGhpcyB0d2VhaywgdGhlIHRyaWdnZXIgd2lsbCBmaXJlIG9uIHRoZSBzZWNvbmQgc2FtcGxpbmcKICAgKGFzIGlmIHRoZSBleHByZXNzaW9uIGhhZCBldmFsdWF0ZWQgZmFsc2UgZmlyc3QgdGltZSByb3VuZCkuCgoyMDA4LTA2LTAxIDIwOjAyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmg6CgogICBIYW5kbGUgdmFyYmluZCBwYXlsb2FkIGZvciBpbnRlcm5hbCBsaW5rVXAvRG93biBub3RpZmljYXRpb25zLgoKMjAwOC0wNi0wMSAwNjo0NSAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBORVdTOiBzbm1wdHJhcGQ6IEJVRzogMTk1NTIyNzogTWVtb3J5IGxlYWsgZm9yIGVtYmVkZGVkIFBlcmwgb24KICAgeDg2XzY0CgoyMDA4LTA1LTMxIDEyOjA4ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFRoZSBzY2FsYXIgaGVscGVyIHRoYXQgd2FzIGNhbGxlZCBmcm9tIHRoZQogICBzY2FsYXJfZ3JvdXAgaGVscGVyIGRpZCBub3RoaW5nIHNhdmUgYWRkaW5nIGEgdHJhaWxpbmcgMCB0byB0aGUKICAgYXJndW1lbnQuIFJlbW92ZSB0aGUgdXNlIG9mIHRoZSBzY2FsYXIgaGVscGVyIGZyb20gdGhlCiAgIHNjYWxhcl9ncm91cCBhbmQgYWRkIHRoZSB0cmFpbGluZyAwIGluIHRoZSBzY2FsYXJfZ3JvdXAgaGVscGVyLgoKMjAwOC0wNS0zMCAxMzo1NiAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFR3ZWFrIGxpc3Qgb2Ygb24tbGluZSBzb2Z0d2FyZSBkaXJlY3RvcmllcyB0byBiZSB1cGRhdGVkLgoKMjAwOC0wNS0yOSAwOTo1OSAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgYXBwcy9zbm1wdGVzdC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIFZhcmlvdXMgbWlzc2luZyBlcnJvciBjaGVja3MsIGV0Yy4KICAgUmVwb3J0ZWQgYnkgQm95YSBTdW4uCgoyMDA4LTA1LTI4IDExOjQ4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUmVwb3J0IGNhY2hlZCBtZW1vcnkgc2l6ZS91c2FnZSBwcm9wZXJseSAocGFydGljdWxhcmx5IG9uCiAgIEZyZWVCU0QpLgoKMjAwOC0wNS0yOCAxMToyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBCcmluZyBtZW1CdWZmZXIgY29kZSBpbnRvIGxpbmUgd2l0aCByZXZpc2lvbiAxNjk3NS4KCjIwMDgtMDUtMjggMTE6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIExpbnV4IDIuNiBrZXJuZWwgZG9lcyBub3QgcmVwb3J0IHNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24uCgoyMDA4LTA1LTI4IDA5OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxOTMxMzkxOiBGaXggcmVwb3J0aW5nIG9mIE1lbW9yeSBidWZmZXJzIGFuZAogICBjYWNoZWQgbWVtb3J5LgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IGRvY29uZWlsbC4KCjIwMDgtMDUtMjggMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgVHdlYWsgdGhlIGZpeCBmb3IgYnVnICMxOTEyNjQ3CgoyMDA4LTA1LTI4IDA2OjU2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEVuZm9yY2UgdGhlIGxvd2VyIGxpbWl0IG9uIHNjYWxhcl9ncm91cHMKICAgVGhpcyBmaXhlcyB0aGUgY2FzZSBvZiBnZXRuZXh0IGljbXAuMCByZXR1cm5pbmcgaWNtcC4wLjAgaW5zdGVhZAogICBvZiB0aGUKICAgZXhwZWN0ZWQgaWNtcEluTXNncy4wCgoyMDA4LTA1LTI3IDIyOjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTkxMjY0NzogRml4IG1lbW9yeSBsZWFrIGZvbGxvd2luZyBmYWlsZWQKICAgcmVxdWVzdHMuCiAgIEZpeCBwcm92aWRlZCBieSBBbnRvbiBQYWsKCjIwMDgtMDUtMjcgMjE6MjIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTk1ODA0MTogRW5zdXJlIElEcyBhcmUgbm90IHRydW5jYXRlZC4KCjIwMDgtMDUtMjcgMTQ6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jOgoKICAgTW9uaXRvciBtZW1vcnkgYnVmZmVycyBvbiBGcmVlQlNEIHN5c3RlbXMuCiAgIEFQSSBzdWdnZXN0ZWQgYnkgQ2hyaXMKCjIwMDgtMDUtMjcgMTI6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBGaXggY2FyZWxlc3MgdHlwbyB3aGVuIGFwcGx5aW5nIE1heGltJ3MgcGF0Y2guCgoyMDA4LTA1LTI1IDIxOjM3ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlaW1wbGVtZW50YXRpb24gb2YgdXNtU3RhdHMuCgoyMDA4LTA1LTI1IDA3OjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmM6CgogICBSZW1vdmUgYSBsb2NhbCB2YXJpYWJsZSBvbmx5IHVzZWQgdG8gdHJhY2sgYSBsb2NhbCBzdHJpbmcKICAgY29uc3RhbnQgYW5kIHJlcGxhY2UgdCB3aXRoIGEgZGlyZWN0IHJlZmVyZW5jZSB0byB0aGUgc3RyaW5nCiAgIGNvbnN0YW50LgogICBNYXJrIHR3byBsb2NhbCBmdW5jdGlvbnMgc3RhdGljIGFzIHdlbGwuCgoyMDA4LTA1LTI1IDA3OjE3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBSZW9yZGVyIHRvIGF2b2lkIG9uZSBzdHJsZW4gY2FsbC4KICAgQWRkIG1pc3NpbmcgY2FzdC4KCjIwMDgtMDUtMjUgMDc6MTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBNYWtlIGlwZndfbmFtZSBhIHN0YXRpYyBhcnJheSBpbnN0ZWFkIG9mIGEgcG9pbnRlciBhcyBpdCBpcwogICBwcml2YXRlIHRvIHRoaXMgbW9kdWxlLgoKMjAwOC0wNS0yNSAwNzowNSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgV2hlbiBjYXN0aW5nLCBjYXN0IHRvIHRoZSByaWdodCB0eXBlLgoKMjAwOC0wNS0yNSAwNjowOCAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFJlbW92ZSB3YXJuaW5ncyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIG9uIHNvbGFyaXMuCgoyMDA4LTA1LTI0IDIwOjMwICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDE4MjYxNzQ6IENoZWNrIGZvciBidWZmZXIgb3ZlcmZsb3cgd2hlbgogICBwcmludGluZyB2YWx1ZXMuCiAgIEFkZHJlc3NlcyBDVkUtMjAwOC0yMjkyCgoyMDA4LTA1LTI0IDEzOjExICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE9uIEFJWCBuZXRpbmV0L2luX3BjYi5oIGRlcGVuZHMgb24gbmV0L3JvdXRlLmguIEFkZCB0aGUgaW5jbHVkZQogICBmb3IgY29uZmlndXJlLgoKMjAwOC0wNS0yNCAwOTowNiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTWFrZSB0aGUgY2hlY2tzIGZvciBuZXRpbmV0L2luX3BjYi5oIGFuZCBzeXMvZGlza2xhYmVsLmggdXNlIHRoZQogICBub3JtYWwKICAgbWFjaGluZXJ5LgogICBBZGQgYSBuZXRzbm1wIHByZWZpeCB0byB0aGUgY2FjaGUgdmFyaWFibGUKICAgY3Zfc3lzX2lvY3RsX2hfaGFzX1NJT0NHSUZBRERSIHRvCiAgIHBhY2lmeSBhY2xvY2FsLgoKMjAwOC0wNS0yMyAyMDoyNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBGaXggZm9yIENQVSBzdGF0cyBvbiBGcmVlQlNECiAgIFByb3ZpZGVkIGJ5IE1heGltIFNvYm9sZXYKCjIwMDgtMDUtMjMgMjA6MTIgIGR0czEyCgogICAqIGRpc3Qvc25tcGQtaW5pdC5kLCBkaXN0L3NubXB0cmFwZC1pbml0LmQ6CgogICBDSEFOR0VTOiBpbnN0YWxsOiBQQVRDSDogMTk2OTYyNzogSGFuZGxlIGVtcHR5CiAgIC9ldGMvc3lzY29uZmlnL25ldHdvcmsgZmlsZQogICBGaXggcHJvdmlkZWQgYnkgSm9zaCBXaWxtZXMKCjIwMDgtMDUtMjMgMjA6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTY3MTk0OiBSZWNvZ25pc2UgTkZTNCBtb3VudHMKICAgU3VibWl0dGVkIGJ5IEZhYnJpY2UgQmFjY2hlbGxhCgoyMDA4LTA1LTIyIDIwOjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERvbid0IGNoYW5nZSBsZW5ndGggb2YgT0lEIGJ1ZmZlciBpZiBwYXJzaW5nIHRoZSBPSUQgZmFpbHMuCiAgIFJlcG9ydGVkIGJ5IHNhaWZ1bGxhIE1vaGQgQWJkdWwuCgoyMDA4LTA1LTIyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHVwZGF0ZSB0aGUgYWR2ZXJ0aXNpbmcgc2VjdGlvbiBhbmQgY2hhbmdlIG5vdGUgYWJvdXQgaG93IHRvCiAgIHVwbG9hZCBmaWxlcyAoYWRkaW5nIGFuIGF1dG9tYXR0ZWQgcnN5bmMgY29tbWFuZCkKCjIwMDgtMDUtMjIgMDQ6MDggIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZS4KCjIwMDgtMDUtMjEgMjA6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHRoZSBhbGlhcyBtb2R1bGUgd2l0aCBhIEMrKyBjb21waWxlci4KCjIwMDgtMDUtMjEgMTM6NDAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWRkZWQgRlNGIGRpcmVjdG9yeSBpbmZvCgoyMDA4LTA1LTIxIDA5OjIxICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgQWRkIEZyZWUgU29mdHdhcmUgRGlyZWN0b3J5IHRvIHRoZSBsaXN0IG9mIHBsYWNlcyB0byBiZSB1cGRhdGVkLgoKMjAwOC0wNS0yMCAyMzowMCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBUaGUgbWFqb3JpdHkgb2YgdGhlIGRlcGVuZGVuY2llcyBvbiB1dGlsX2Z1bmNzIGlzCiAgIGZvciB0aGUgaGVhZGVyXyogZnVuY3Rpb25zLiBGYWN0b3Igb3V0IHRoZSBoZWFkZXJfKiBmdW5jdGlvbnMgYW5kCiAgIGFkanVzdCB0aGUgcmVxdWlyZW1lbnRzLgoKMjAwOC0wNS0yMCAyMjo0MCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBEbyBub3QgY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcykgaWYgbm90aGluZyBmcm9tCiAgIHV0aWxfZnVuY3MgaXMgdXNlZAoKMjAwOC0wNS0xNCAxMzozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBmaXggYnVpbGQgZmFpbHVyZXMgd2l0aCBlYXJsaWVyIExpbnV4IGtlcm5lbHMgKGUuZy4gd2l0aCBSSDcuMSkKICAgaW50cm9kdWNlZCBieSByMTY5MDkKCjIwMDgtMDUtMTMgMTg6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggY29tbWVudCB0eXBvCgoyMDA4LTA1LTEzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgdGhlIC10IHN3aXRjaCBjaGFuZ2UKCjIwMDgtMDUtMTMgMTU6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGFsaWFzIGtleXdvcmQKCjIwMDgtMDUtMTMgMTU6NDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgYWxsb3cgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyB0byBiZSB1c2VkIGZvciB0aW1lb3V0IHZhbHVlcwoKMjAwOC0wNS0xMiAyMToxMSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmM6CgogICBBZGRlZCBhIHJlYWwgc25tcEFsaWFzRG9tYWluIE9JRCBkZWZpbml0aW9uCgoyMDA4LTA1LTEyIDIxOjA3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlZCBORVdTIHdpdGggbmV3IGFsaWFzIGJsdXJiCgoyMDA4LTA1LTEyIDIxOjA3ICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQWxpYXNEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogc25tcGxpYjogQWRkZWQgYSBhbGlhcyB0cmFuc3BvcnQgZm9yIG1hcHBpbmcgY29tcGxleAogICB0cmFuc3BvcnQgc3RyaW5ncyB0byBzaW1wbGUgbmFtZSBkZWZpbml0aW9ucwoKMjAwOC0wNS0xMiAxOTozOCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBzdHJpcCBvZmYgdHJhaWxpbmcgbW9kdWxlIG5hbWUKCjIwMDgtMDUtMTIgMDY6MDMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICBNYWtlIG1pYklJL3NubXAgd29yayBhZ2Fpbi4KCjIwMDgtMDUtMTAgMjE6NDcgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDgtMDUtMTAgMDk6NTUgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBSZXBsYWNlIHRoZSBpbnZhbGlkICUwOHAgZm9ybWF0CiAgIHNwZWNpZmllciB3aXRoIHRoZSBjb3JyZWN0ICU4cC4KCjIwMDgtMDUtMTAgMDk6NTEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBuZXRzdGF0LCBzbm1wdHJhcGQsIHNubXBkZWx0YTogVXNlIE5VTEwKICAgaW5zdGVhZCBvZiAwIGZvciBOVUxMIHBvaW50ZXJzLiBVc2UgY2FzdGVkIDAncyBpbnN0ZWFkIG9mIDAgZm9yCiAgIE5VTEwgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDA4LTA1LTEwIDA5OjQwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoKMjAwOC0wNS0xMCAwOTozOSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgaW5jbHVkZSBmaWxlcy4KCjIwMDgtMDUtMTAgMDk6MzMgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYiwgbWliMmM6IE1vdmUgdGhlIGRlZmluaXRpb24gb2YgaW5saW5lCiAgIGZ1bmN0aW9ucyBzbyB0aGF0IHRoZSBjb21waWxlciBzZWVzIHRoZW0gYmVmb3JlIGl0IHNlZXMgdXNlcyBvZgogICB0aGVtLgoKMjAwOC0wNS0xMCAwOTozMCAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogUmVtb3ZlIHRoZSBpbmxpbmUgZGVjbGFyYXRpb25zIGZvcgogICBmdW5jdGlvbnMgdGhhdCBsYWNrIGFuIGlubGluZSBkZWZpbml0aW9uLgoKMjAwOC0wNS0wOSAyMTozNSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgIAogICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAKICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFVzZSBOVUxMIGluc3RlYWQgb2YgMCBmb3IgTlVMTCBwb2ludGVycy4KICAgVXNlIGNhc3RlZCAwJ3MgaW5zdGVhZCBvZiAwIGZvciBOVUxMIGZ1bmN0aW9uIHBvaW50ZXJzLgoKMjAwOC0wNS0wOSAyMToyNyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgIAogICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZwogICAoKV0uCgoyMDA4LTA1LTA5IDIxOjIzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYzoKCiAgIFJlbW92ZSBkZWFkIGNvZGUuCgoyMDA4LTA1LTA5IDE5OjE2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgTWlzc2luZyBNRDUgc2lnbmF0dXJlIGZpbGUgZm9yIHppcCByZWxlYXNlCgoyMDA4LTA1LTA5IDE5OjE1ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgQmFzaWMgZG9jdW1lbnRhdGlvbiBhbmQgaGVscC91c2FnZSBtZXNzYWdlcy4KCjIwMDgtMDUtMDggMTQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIERyb3Agc3VwcG9ydCBmb3IgdGhlIGludGVyaW0gU0lPQ0RFVlBSSVZBVEUtYmFzZWQgaW9jdGwgY2FsbHMuCiAgIFNJT0NHTUlJUEhZL1NJT0NHTUlJUkVHIGhhdmUgYmVlbiBkZWZpbmVkIHNpbmNlIGF0IGxlYXN0IFNlcHQKICAgMjAwMSAoa2VybmVsIDIuNC4xMCksCiAgIHNvIHRoZSByaXNrIG9mIGNhbGxpbmcgYW4gaW5hcHByb3ByaWF0ZSBwcml2YXRlIGlvY3RsIGlzIHByb2JhYmx5CiAgIGdyZWF0ZXIgdGhhbgogICB0aGF0IG9mIG1pc3NpbmcgaW5mb3JtYXRpb24gZnJvbSBhbiBhbmNpZW50IHN5c3RlbS4KCjIwMDgtMDUtMDggMDk6MDIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvbid0IHRyeSB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbm9ueW1vdXMgdXNlcnMuCiAgIChBbiBpbnZhbGlkIHRyYXBzZXNzIGRpcmVjdGl2ZSBtYXkgY3Jhc2ggdGhlIGFnZW50KQoKMjAwOC0wNS0wNiAwODozOCAganNhZnJhbmVrCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gcmVtb3ZlICV7bGliY3VycmVudH0KICAgLSBhZGQgb3BlbnNzbC1kZXZlbCB0byBidWlsZCByZXF1aXJlbWVudHMKICAgLSBkb24ndCB1c2UgUHJvdmlkZXM6IHVubGVzcyBuZWNlc3NhcnksIGxldCBycG1idWlsZCBjb21wdXRlIHRoZQogICBwcm92aWRlZCBsaWJyYXJpZXMKICAgLSBkb24ndCBzcGVjaWZ5IFBSRUZJWCBmb3IgcGVybAoKMjAwOC0wNS0wNiAwODozOCAganNhZnJhbmVrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHJldmVydGluZyBhY2NpZGVudGFseSBjb21taXRlZCBmaWxlcwoKMjAwOC0wNS0wNiAwODozNCAganNhZnJhbmVrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gcmVtb3ZlICV7bGliY3VycmVudH0KICAgLSBhZGQgb3BlbnNzbC1kZXZlbCB0byBidWlsZCByZXF1aXJlbWVudHMKICAgLSBkb24ndCB1c2UgUHJvdmlkZXM6IHVubGVzcyBuZWNlc3NhcnksIGxldCBycG1idWlsZCBjb21wdXRlIHRoZQogICBwcm92aWRlZCBsaWJyYXJpZXMKICAgLSBkb24ndCBzcGVjaWZ5IFBSRUZJWCBmb3IgcGVybAoKMjAwOC0wNS0wNSAyMTo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBNZWNoYW5pc20gdG8gc2VsZWN0IHVwY29taW5nIG1vZHVsZSByZS13cml0ZXMgYW5kL29yCiAgIHJlY2VudGx5LWRlcHJlY2F0ZWQgbW9kdWxlcy4KCjIwMDgtMDUtMDIgMTA6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIEhhbmRsZSB1ZHBUYWJsZSBpbmRleGluZyBvbiBib3RoIFBQQyBhbmQgSW50ZWwgaGFyZHdhcmUuCgoyMDA4LTA0LTMwIDE5OjQ1ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSB0aGUgc3VwcG9ydCBmb3IgZ2VuZXJhdGlvbiBvZiBzdGF0aXN0aWNzCiAgIG9mIGhvdyBvZnRlbiBhIGNlcnRhaW4gZGVidWcgbG9nIGxldmVsIGlzIHRyaWdnZXJlZC4KCjIwMDgtMDQtMzAgMTk6NDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSB2YXJpYWJsZSBkZWJ1Z19udW1fZXhjbHVkZWQuCiAgIFRoZXJlIGlzIG5vdGhpbmcgdGhhdCBzZXRzIGRlYnVnX251bV9leGNsdWRlZCBhbmQgdGhlcmUgaXMgbm8gd2F5CiAgIHRvIGZvciBpdAogICB0byBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhbnkgZnVuY3Rpb24uCgoyMDA4LTA0LTMwIDA1OjI4ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIFJlbW92ZSB1bm5jZXNzYXJ5IHByb3RvdHlwZXMKCjIwMDgtMDQtMjMgMTY6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWN0dWFsbHkgdXNlIHRoZSBicmFuY2ggcGF0aCwgZG9uJ3QganVzdCBzYXkgeW91J3JlIGdvaW5nIHRvCgoyMDA4LTA0LTE5IDIyOjIwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgZG9uJ3QgZGVwZW5kIG9uIE9JRCByZXNvbHV0aW9uIGZvciBkaXNtYW4gbGlua1VwRG93bk5vdGlmaWNhdGlvbnMKCjIwMDgtMDQtMDggMjA6NDMgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgQWNjZXB0IHRoYXQgcGVvcGxlIHdpbGwgdHJ5IHRvIGNvbXBpbGUgdGhpcyBjb2RlIHdpdGggcHJlLUFOU0kKICAgY29tcGlsZXJzIGFuZCBjaGFuZ2UgaXQgdG8gaGFuZGxlIHRoYXQgY2FzZS4KCjIwMDgtMDQtMDggMjA6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhbiBleHRyYSBicmFjZSBpbiB0aGUgZG9jcyBwb2ludGVkIG91dCBieQogICBKYXNvbiBNYXJ0aW4KCjIwMDgtMDQtMDggMjA6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlIGFuZCByZXN0cnVjdHVyZSBhIGJpdCB0byBmaXggYSBmZXcgcHJvYmxlbXMKCjIwMDgtMDQtMDcgMjA6MDYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFzIHRoZSBudWxsIGhhbmRsZXIgaXMgcGVyZmVjdGx5IGNhcGFibGUgb2YKICAgaGFuZGxpbmcgR0VUX0JVTEsgcmVxdWVzdHMgaXQgaXMgbm93IG1hcmtlZCBhcyBzdWNoIGluIHRoZQogICByZWdpc3RyYXRpb24uCgoyMDA4LTA0LTA3IDE0OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBbm90aGVyIG92ZXItc2hvcnQgREVTQ1JJUFRJT04gYnVmZmVyLgoKMjAwOC0wNC0wNyAxMzo1NyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgSGFuZGxlIGxvbmdlciBERVNDUklQVElPTi9SRUZFUkVOQ0Ugc3RyaW5ncyBpbiBDYXBhYmlsaXRpZXMKICAgc3RhdGVtZW50cy4KICAgKENvbnNpc3RlbnQgcHJvY2Vzc2luZyB3aXRoIG90aGVyIE1JQiBkZWZpbml0aW9uIG1hY3JvcykuCiAgIEZpeCBwcm92aWRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDgtMDQtMDIgMTk6MzUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1lbnRpb24gbGliZWxmIHBhY2thZ2UgcmVuYW1lCgoyMDA4LTAzLTI5IDA5OjI5ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCAKICAgICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgTkVXUzogc25tcGQ6IEVuYWJsZSBhdXRvbWF0aWMgcmVyZWdpc3RlcmluZyBvZiBzeXNPUlRhYmxlIGVudHJpZXMKICAgZnJvbSBBZ2VudFggc3ViYWdlbnRzLiBBZGQgdGhlIHN5c09SVGFibGUgaW50ZXJmYWNlIHRvIHRoZQogICBpbmNsdWRlIGRpcmVjdG9yeS4gUmV3cml0ZSB0aGUgc3lzT1JUYWJsZSBtb2R1bGUgdG8gdXNlIHRoZQogICB0YWJsZV9jb250YWluZXIgaGFuZGxlci4KCjIwMDgtMDMtMjcgMDM6MjEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UsIGRpc3QvbmV0LXNubXAuc3BlYywgZGlzdC9wYXRtZToKCiAgIHVuY29tbWl0IDMgYWNjaWRlbnRhbCBtdWx0aXBsZSBmaWxlIGNvbW1pdHMKCjIwMDgtMDMtMjcgMDM6MTggIGhhcmRha2VyCgogICAqICBkaXN0L21ha2VyZWxlYXNlLCBkaXN0L21ha2VyZWxlYXNlLnhtbCwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBkaXN0L3BhdG1lOgoKICAgdmFyaW91cyByZXdvcmRpbmcsIHJlc3RydWN0dXJpbmcgYW5kIHByb3BlciBmaWxlIHJlcGxhY2VtZW50CiAgIHNjaGVtZQoKMjAwOC0wMy0yNiAwNzo1MiAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTkVXUzogc25tcGxpYjogZnJvbSAiQWxla3NhbmRyIExvbWFub3YiOiBDb3JyZWN0ZWQgcmVnaXN0ZXJpbmcgb2YKICAgbXVsdGlwbGUgcHJlbWliIGNvbmZpZyBoYW5kbGVycyBzbyB0aGF0IGFsbCBvZiB0aGVtIGdldAogICByZWdpc3RlcmVkIGFzIHByZW1pYiBoYW5kbGVycyBhcyBvcHBvc2VkIHRvIHRoZSBlYXJsaWVyIGJlaGF2aW91cgogICB3aGVyZSB0aGV5IGFsd2F5cyBnb3QgcmVnaXN0ZXJlZCBhcyBub3JtYWwgY29uZmlnIGl0ZW1zLgoKMjAwOC0wMy0yNiAwNzoxNiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBHZXQgdGhlIHRhYmxlX2NvbnRhaW5lciBkYXRhIGZyb20gdGhlIHJpZ2h0CiAgIGhhbmRsZXIgd2hlbiB1bnJlZ2lzdGVyaW5nIGEgdGFibGVfY29udGFpbmVyLgoKMjAwOC0wMy0yNSAwNjowNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJlbW92ZSBzcHVyaW91cyBwcmludGYgZnJvbSB1bnJlZ2lzdGVyX21pYl9jb250ZXh0CgoyMDA4LTAzLTI0IDE3OjU0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE4NzQwNTksMTczNzA2ODogSGFuZGxlIE1JQiBvYmplY3RzIHdpdGgKICAgZW1iZWRkZWQgaHlwaGVucwoKMjAwOC0wMy0yNCAxNzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE4NjY2NTU6IEhhbmRsZSBwYXJzaW5nIGludmFsaWQgT0lECiAgIHN1YmlkZW50aWZpZXJzCgoyMDA4LTAzLTI0IDE2OjUzICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAxOTIxODYxOiBBdm9pZCBlbmRsZXNzIGxvb3AgYWZ0ZXIKICAgdHJ1bmNhdGluZyA2NGJpdCBpbnQKCjIwMDgtMDMtMjQgMTU6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgyMzM4MTogVmFsaWQgTUlCIGRpcmVjdG9yeSBzZWFyY2ggcGF0aCBvbgogICBXaW5kb3dzCgoyMDA4LTAzLTIyIDA4OjQyICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBzbm1wdHJhcGQgd2l0aG91dCBlbWJlZGRlZCBwZXJsIGFnYWluLgoKMjAwOC0wMy0yMSAxNzo1NSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmM6CgogICBORVdTOiBsaWJzbm1wOiBQQVRDSDogMTg5NTkyNzogZnJvbSBqaHVtODExMTogY2hhbmdlIG9ic29sZXRlCiAgIHJlY3Yvc2VuZCB0byByZWN2ZnJvbS9zZW5kdG8KCjIwMDgtMDMtMjEgMTc6NDkgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAxODYyMTc3OiBmcm9tIHdhZmZsZXNvdWZmbGU6IG1hZGUgY29kZQogICBtb3JlIHdpbmRvd3MvY3lnd2luIGNvbXBpbGVyIGZyaWVuZGwKCjIwMDgtMDMtMjEgMTc6NDUgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDE4Nzc4NDA6IGZpeCBNSUIgbGFiZWwgYW5kIGluZGV4aW5nIGR1ZQogICB0byBzbGlnaHRseSBicm9rZW4gcmVnZXhwCgoyMDA4LTAzLTIxIDE3OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTIwMzkwOiBmcm9tIHdpbG1lc2o6IGZpeCByZWdpc3RyYXRpb24gb2YKICAgdGFibGVzIHdpdGggLjAgYXMgSUlEcwoKMjAwOC0wMy0yMSAxNzozMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDY0NTogZnJvbSB3aWxtZXNqOiBiZXR0ZXIgZW5kIG9mIG1pYgogICBzdXBwb3J0CgoyMDA4LTAzLTIxIDE3OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MTQ2NDM6IGZyb20gd2lsbWVzajogZml4IGlzc3VlcyB3aXRoCiAgIGVtYmVkZGVkIHBlcmwgcmV0dXJuaW5nIDAgYmVpbmcgcmVjbGFzc2lmaWVkIGFzIGEgd3JvbmcgZGF0YSB0eXBlCiAgIHdoZW4gYW4gaW50IHdvcmtzLgoKMjAwOC0wMy0yMSAxNzoyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0ggMTkxNDM5ODogZnJvbSB3aWxtZXNqOiBpbnN0YWxsCiAgIG1pYjJjLnBlcmwuY29uZgoKMjAwOC0wMy0yMSAxNzowMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDM5MzogZnJvbSB3aWxtZXNqOiByZWdpc3RlckFnZW50IGNhbgogICBub3cgYmUgcnVuIG11bHRpcGxlIHRpbWVzCgoyMDA4LTAzLTIxIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5MDk4MTM6IGZpeCB0YWJsZV9pdGVyYXRvciBoaW50IHRvIGdldF9maXJzdAogICB3aGVuIFNPUlRFRCBmbGFnIGlzIHNldAoKMjAwOC0wMy0yMSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IFBBVENIOiAxOTA4Mjg4OiBmcm9tIGFuZWRlbDogSWYgc25tcHRyYXBkIC1mCiAgIGludGVycnVwdGVkIHdpdGggY3RybC1DIHJ1biBwZXJsIEVORCBibG9jawoKMjAwOC0wMy0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE5MDIxMTM6IGZyb20ganNhZnJhbmVrOiBmaXggZXJyb3IgbG9nIGluCiAgIGluZXROZXRUb01lZGlhdGFibGUKCjIwMDgtMDMtMjEgMTY6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE5MDIxMDU6IGZyb20ganNhZnJhbmVrOiBoaWRlIGFuZCBpbXByb3ZlIGRlYnVnCiAgIGxvZyBtZXNzYWdlcyBjcmVhdGVkIGJ5IHBhdGNoIDE3MDU1OTQKCjIwMDgtMDMtMDcgMTU6NDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmg6CgogICBIQUwtYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGhyRlNUYWJsZS4KCjIwMDgtMDMtMDcgMTU6NDAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW91bnRzLmg6CgogICBJbml0aWFsIEhBTCBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uCgoyMDA4LTAzLTA3IDE1OjM1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBnZXR2ZnNzdGF0KCkKCjIwMDgtMDMtMDcgMTU6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgyMzM4MTogVXNlIGEgc2Vuc2libGUgZGVmYXVsdCBNSUJESVIgcGF0aAogICBvbiBDeWd3aW4vTWluR1cKICAgKFNob3VsZCB0aGlzIGJlIGFwcGxpZWQgdG8gb3RoZXIgYnJhbmNoZXM/IElmIHNvLCB3aGljaD8pCgoyMDA4LTAyLTI3IDIyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgRml4IEMrKyBzdHlsZSBjb21tZW50CgoyMDA4LTAyLTI3IDA3OjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIFRoZSBMVk0gZGlzayBwYXRjaCBpbnRyb2R1Y2VkIGEgbWVtb3J5IGxlYWsuIFRoaXMgcmVtb3ZlcyB0aGUKICAgbGVhay4KCjIwMDgtMDItMjYgMjM6MjcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbWFrZSB0aGUgc2NyaXB0IG1vcmUgaGllcmFyY2hpYWwvc3RydWN0dXJlZAoKMjAwOC0wMi0yNiAyMTozNiAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgQ0hBTkdFUzogSW5pdGFsaXplIGxvZyBzdWJzeXN0ZW0KCjIwMDgtMDItMjYgMjE6MzQgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBGaXggZm9yIHJlZnMgdG8gT0JKRUNULUdST1VQIGluIGFub3RoZXIgTUlCCgoyMDA4LTAyLTI2IDIxOjIzICBuYmEKCiAgICogIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQsIG1pYnMvRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgICAKICAgICAgbWlicy9JUC1GT1JXQVJELU1JQi50eHQsIG1pYnMvSVAtTUlCLnR4dCwgICAKICAgICAgbWlicy9JUFY2LUZMT1ctTEFCRUwtTUlCLnR4dCwgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsICAgCiAgICAgIG1pYnMvU05NUC1VU00tQUVTLU1JQi50eHQsIG1pYnMvU05NUC1VU00tREgtT0JKRUNUUy1NSUIudHh0LCAgIAogICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gYXV0b2V4dHJhY3RlZCBtaWIgZmlsZXMgKGJsYW5rIGxpbmUgY2hhbm1nZXMpCgoyMDA4LTAyLTI2IDIwOjQ2ICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdDoKCiAgIFVwZGF0ZSBmb3IgY3VycmVudGx5IHJlbGVhc2VkIFJGQyBNSUJTCgoyMDA4LTAyLTI2IDIwOjQ1ICBuYmEKCiAgICogIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0LCBtaWJzL0lBTkEtUlRQUk9UTy1NSUIudHh0LCAgIAogICAgICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSBJQU5BIE1JQlMgdG8gY3VycmVudCB2ZXJzaW9uCgoyMDA4LTAyLTI1IDIyOjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGFkZCBtaXNzaW5nICNpbmNsdWRlPHB0aHJlYWQuaD4gZm9yIHB0aHJlYWRfbXV0ZXhfdAoKMjAwOC0wMi0yNSAyMjowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYzoKCiAgIGEgYmV0dGVyIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0yMyAwMDo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbnN0YW50cy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MDU1OTQ6IGZyb20gY192YXJ1bjogRml4IHZhcmlvdXMgYXNwZWN0cyBvZgogICBsaW51eCBpcEFkZHJlc3NQcmVmaXhUYWJsZSByZXBvcnRpbmcuCgoyMDA4LTAyLTIyIDIzOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4OTYxMTg6IHBhdGNoIGZyb20ganNhZnJhbmVrOiBmaXggaWZUYWJsZQogICAzMmJpdCBjb3VudGVycyBvbiBsaW51eAoKMjAwOC0wMi0yMiAyMzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIHBhdGNoIGZyb20ganNhZnJhbmVrOiBDcmVhdGUgaXB2NlNjb3BlWm9uZUVudHJ5IG9ubHkgZm9yCiAgIGxpbmstbG9jYWwgYWRkcmVzc2VzIGFuZCBvbmx5IG9uY2UgcGVyIGludGVyZmFjZS4KCjIwMDgtMDItMjIgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODk4MjA0OiBmcm9tIE1pa2UgV2VzY290dDogZml4IGJ1ZwogICAxODk4MTk4IGluIHBhcnNlLmMgdG8gYXZvaWQgYSBzZWdmYXVsdCB3aGVuIHBhcnNpbmcgYnJva2VuIG1pYnMuCgoyMDA4LTAyLTE4IDEyOjExICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIENsYXJpZnkgdGhlIG5lZWQgdG8gcmVzZXQgYnVmZmVyIGxlbmd0aCB3aGVuIGNhbGxpbmcgJ3JlYWRfb2JqaWQnCiAgIHJlcGVhdGVkbHkuCgoyMDA4LTAyLTE4IDEwOjMyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE4IDA3OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgbWFrZSBzdXJlIHRoYXQgbmV0c25tcF9pcXVlcnlfdXNlcl9zZXNzaW9uIGV0IGFsLiBhcmUgcHJvcGVybHkKICAgZGVjbGFyZWQKCjIwMDgtMDItMTcgMTg6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lCgoyMDA4LTAyLTE3IDA4OjM4ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTUgMTc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGxvd2VyZWQgZmFpbHVyZSBtZXNzYWdlIHRvIGluc2VydCB0byBkZWJ1ZzsgcmVtb3ZlZCBDVlMgSUQgZnJvbQogICB0b3Agb2YgbGluZQoKMjAwOC0wMi0xNSAxNzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgZG9uJ3QgaW5zZXJ0IGVtcHR5IGVudHJpZXMKCjIwMDgtMDItMTUgMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIHBhdGNoIGZyb20ganNhZnJhbmUgb24gaXJjOiBtYWtlIGlwdjYgZW50cmllcyB3b3JrIG9uIDY0IGJpdAogICBtYWNoaW5lcwoKMjAwOC0wMi0xNSAxNjoyNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBwYXNzIDEgYXQgYSBuZXcgbWFrZXJlbGVhc2Ugc2NyaXB0OyBjdXJyZW50bHkganVzdCBjb252ZXJ0ZWQgY29kZQogICBtb3N0bHkKCjIwMDgtMDItMTUgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgcmVtb3ZlIGxpbnV4IGNoZWNrcwoKMjAwOC0wMi0xNSAxNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gUkRBX1JUQQoKMjAwOC0wMi0xNSAxNTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgZG9uJ3QgY29tcGlsZSBpbiB0aGUgaXB2NiBjb2RlIGlmIE5EQV9SVEEgaXNuJ3QgZGVmaW5lZAoKMjAwOC0wMi0xNSAxMzowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE1IDA2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBtaW5vciBidWcgdXBkYXRlIGZyb20gY192YXJ1bgoKMjAwOC0wMi0xNSAwNToxMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcwNDEwNTogZnJvbSBjX3ZhcnVuOiBBZGQgSVB2NiBzdXBwb3J0IHRvCiAgIHRoZSBpbmV0TmV0VG9NZWRpYVRhYmxlIGZvciBsaW51eAoKMjAwOC0wMi0xNSAwNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICByZXF1aXJlIG5ldyBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSB0YWJsZQoKMjAwOC0wMi0xNSAwNTowMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfb2lkcy5oLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3Njb3Blem9uZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzE1NDA1OiBmcm9tIGNfdmFydW46IEltcGxlbWVudCB0aGUKICAgaXB2NlNjb3BlWm9uZUluZGV4VGFibGUgb24gbGludXgKCjIwMDgtMDItMTUgMDQ6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MTY1NDg6IGZyb20gbXlhbWF0bzogRml4IGhlbHAgb3V0cHV0IHNvCiAgIG5vIHNwYWNlIGlzIHByaW50ZWQgYmV0d2VlbiAtRCBhbmQgYXJndW1lbnRzLgoKMjAwOC0wMi0xNSAwNDoyNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24uaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzIzNjExOiBmcm9tIEVtaSBZYW5hZ2k6IE5ldyBpbXBsZW1lbnRhdGlvbgogICBvZiB0aGUgcm1vbiBhbGFybVRhYmxlCgoyMDA4LTAyLTE1IDAzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODkzNDY4OiBmcm9tIGdrb2VuaWc6IGZpeGVkIHJlZ2lzdHJhdGlvbiBvZgogICBPSURzIHdpdGggcmFuZ2VzCgoyMDA4LTAyLTE0IDIxOjQwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgZGVjbGFyYXRpb24gKHVuYnJlYWtzIHRoZSBidWlsZCBvbiBhIGZldwogICBzeXN0ZW1zKQoKMjAwOC0wMi0xNCAwMDoyOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlIGZvciBzcGFydGEKCjIwMDgtMDItMTMgMjM6MzcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIE5FV1M6IHNubXBsaWI6IENoYW5nZSBDT05UQUlORVJfSU5TRVJUIHRvIG5vdCBkbyBwYXJ0aWFsIGluc2VydHMKICAgaW4gY29udGFpbmVycyB3aXRoIG11bHRpcGxlIGluZGljZXMgd2hlbiBvbmUgaW5zZXJ0IGZhaWxzLgoKMjAwOC0wMi0xMyAyMzoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXhlZCB0aGUgY3JlYXRlVXNlciBsaW5lIHRvIHNwZWNpZnkgdGhlIC1lIGZsYWcgKHJlc3BvbmRpbmcgdG8gYQogICBjb21wbGFpbnQgYWJvdXQgaXQgYmUgbWlzc2luZykKCjIwMDgtMDItMTMgMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzc5NTU4OiBmcm9tIGJydW1iczogSW1wbGVtZW50IHRoZQogICBkaXNrSU9MQTEsNSwxMCBvYmplY3Rpb25zIGluIHRoZSBkaXNraW8tbWliIHVuZGVyIGxpbnV4CgoyMDA4LTAyLTEzIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzgzNzMzOiBQdXQgdGhlIHBhY2thZ2UgdmVyc2lvbiBudW1iZXIKICAgaW50byB0aGUgaHJTV0luc3QgdGFibGUgZm9yIHNvbGFyaXMuCgoyMDA4LTAyLTEzIDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODM0MjM6IGZyb20ganNhZnJhbmVrOiByZXR1cm4gYSBjb3JyZWN0CiAgIGlwdjZJbnRlcmZhY2VJZGVudGlmaWVyIG9mIGxvb3BiYWNrIG9uIGxpbnV4CgoyMDA4LTAyLTEzIDE2OjEyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzg0NzQ3OiBmcm9tIGpzYWZyYW5lazogRml4IGxvbmcgdXNhZ2UKICAgZm9yIGlwIGFkcmVzc2VzIG9uIDY0IGJpdCBzeXN0ZW1zIGluIHZhcmlvdXMgTUlCLUlJIHRhYmxlcy4KCjIwMDgtMDItMTMgMTY6MDcgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODA2NTAxOiBmcm9tIGptYWdkZXI6IEFkZCBhIHNubXBfdjN0cmFwCiAgIGZ1bmN0aW9uIGZvciBzZW5kaW5nIHRyYXBzIHdpdGggYSBzbm1wdjMgY29udGV4dAoKMjAwOC0wMi0xMyAxNjowMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MjYxMDI6IGZyb20ganNhZnJhbmVrOiBzdXBwb3J0IGxvbmdlcgogICBpbnRlcmZhY2UgbmFtZXMgb24gbGludXgKCjIwMDgtMDItMTIgMjM6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBQQVRDSDogMTgwNzQ4OTogZml4IGlnbm9yaW5nIG9mIGRpc3BsYXkgaGludHMuCgoyMDA4LTAyLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAKCjIwMDgtMDItMTIgMjM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAxODIzNDY1IGZyb20ganNhZnJhbmVrOiBmaXggaWNtcCBjYWNoZQogICByZWdpc3RyYXRpb24KCjIwMDgtMDItMTIgMjI6MTYgIGhhcmRha2VyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTgyODYwMjogZnJvbSB0Z29oYWQ6IFN1cHBvcnQgaXBEZWZhdWx0VFRMCiAgIGFuZCBpcEZvcndhcmRpbmcgU0VUcyBvbiBsaW51eAoKMjAwOC0wMi0xMiAyMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NjY4MjM6IGZyb20ganNhZnJhbmVrOiB0cnVuY2F0ZSAzMiBiaXQKICAgY291bnRlciB2YWx1ZXMgb24gNjQgYml0IG1hY2hpbmVzIHRvIGF2b2lkIGJvZ3VzIHdhcm5pbmdzLgoKMjAwOC0wMi0xMiAxOTowNSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODQ5OTAzOiBmcm9tIGpzYWZyYW5lazogZG8gbm90IHNwYW0gbG9nCiAgIHdpdGggYXNzZXJ0cyB3aGVuIFhFTiBpcyB1c2VkCgoyMDA4LTAyLTEyIDE4OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBQQVRDSDogMTg3NTAyMjogZnJvbSBzZW1fcHJnOiBpbXByb3ZlIGNhbGxiYWNrCiAgIGxvY2tpbmcgbWVjaGFuaXNtcwoKMjAwOC0wMi0xMiAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NzkyNjE6IGZyb20gYW1lc2J1cnk6IEFkZCBpbiBpbmFjdGl2ZQogICBtZW1vcnkgdG8gdGhlIGNhY2hlZCByZXBvcnQgZm9yIGZyZWVic2QKCjIwMDgtMDItMTIgMTU6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIE5FV1M6IGxpYnNubXA6IFBhdGNoOiAxODgyMDY5OiBmcm9tIG5zY2hyZW5rOiBBZGQgYSBleGFjdEVuZ2luZUlECiAgIHRva2VuIGZvciBzcGVjaWZ5aW5nIGFuIGV4YWN0IFNOTVB2MyBlbmdpbmVJRCB0byB1c2UKCjIwMDgtMDItMTIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgbWlub3IgY2xlYW51cHMgZnJvbSByZXZpZXdpbmcgcGFydHMgb2YgdGhlIGNvZGUKCjIwMDgtMDItMTIgMTU6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODgyNjIxOiBmcm9tIGpzYWZyYW5lazogQWRkIExWTSBzdXBwb3J0IHRvCiAgIHRoZSBwYXJ0aXRpb24gdGFibGUKCjIwMDgtMDItMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHF1b3RlZCBzdHJpbmdzIGluIGhlbHAgb3V0cHV0CgoyMDA4LTAxLTMwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZGVkIHZhY21fY29uZiB0byBleGlzdGluZyBjb25maWd1cmUgZmlsZXMgKGZvciB0cmFwZCB0b28pCgoyMDA4LTAxLTIwIDA3OjU1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTg3MjI2NjogUEVSTENDIGNoZWNrIGZhaWxzIGZvciBDQyB3aXRoCiAgIG9wdGlvbnMKCjIwMDgtMDEtMTcgMDE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgZml4IGRlZmF1bHQgbWlicyB0byBpbmNsdWRlIHZhY21fY29uZiB0b28KCjIwMDgtMDEtMTcgMDA6MDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjA4ODogZnJvbSBKYW4gU2FmcmFuZWs6IFVzZSB0aGUgcmlnaHQKICAgaW50ZXJmYWNlIHQgcmVhZCB0aGUgbmV0bWFzawoKMjAwOC0wMS0xNiAyMTo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogSGFuZGxlIGRldmljZSBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcyBpbgogICBVQ0QtU05NUC1NSUI6OmRza0RldmljZQoKMjAwOC0wMS0xNiAwMDo0NyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI4ODM5OiBmcm9tIGpzYWZyYW5layB0byBwcm92aWRlIGJldHRlcgogICBoYW5kbGluZyBvZiBkaXNrcyBtb3VudGVkIG9uIHBhdGhzIHdpdGggZW1iZWRkZWQgc3BhY2VzCgoyMDA4LTAxLTE1IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAyMDU6IGRvdWJsZSBjaGVjayBwb2ludGVyIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDgtMDEtMTQgMjM6NTUgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5oOgoKICAgVXBkYXRlIHRoZSBzbm1wIGFuZCBzeXN0ZW0gbWlicyB0byBiZSBoYW5kbGVyIGJhc2VkCgoyMDA4LTAxLTEzIDAwOjAwICBtYWdmcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TLCAgCiAgICAgICBkb3h5Z2VuLmNvbmYsIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGwsIHNlZHNjcmlwdC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIExlc3NlbiB0aGUgbnVtYmVyIG9mIHBsYWNlcyB0aGF0IG5lZWQgdG8gYmUgY2hhbmdlZCBpbiBvcmRlciB0bwogICBkbyBhIHJlbGVhc2UuCiAgIENoYW5nZSB0byB1c2UgdGhlIGNvbmZpZ3VyZSB2ZXJzaW9uIG51bWJlciBhcyB0aGUgcGFja2FnZSB2ZXJzaW9uCiAgIG51bWJlci4KCjIwMDgtMDEtMDkgMjE6NTggIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgRGVsZXRlIHVudXNlZCBzdGF0aWMgZnVuY3Rpb25zCgoyMDA4LTAxLTA2IDEzOjAxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNYWtlIGVycm9yX3N0cmluZyBwcml2YXRlIGFuZCByZWFkb25seQoKMjAwNy0xMi0yMiAxOToyMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE4MjYxNzQ6IENoZWNrIGZvciBidWZmZXIgb3ZlcmZsb3cgd2hlbgogICBwcmludGluZyB2YWx1ZXMuCgoyMDA3LTEyLTIxIDIzOjE5ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTc0NzczMzogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgdW5kZWZpbmVkCiAgIHZhbHVlcy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTWF0dGkgTGlubmFudnVvcmkKCjIwMDctMTItMjEgMjE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzQ4MjA2OiBQcm90ZWN0IGFnYWluc3QgZmFpbHVyZXMgdG8gb3BlbgogICAvZXRjL210YWIgKG9yIGVxdWl2KQoKMjAwNy0xMi0yMSAxODo0MiAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQnJpbmcgb3JkZXIgb2YgYWdlbnQgbGlicmFyeSBsaW5raW5nIGludG8gbGluZSB3aXRoIGFnZW50CiAgIE1ha2VmaWxlLgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFN0ZXZlIE1jQ2FydGh5LgogICBRbjogU2hvdWxkIDUuMi54IGFuZCA1LjMueCBhbHNvIHVzZSB0aGUgc2FtZSBvcmRlcj8KICAgKGZvciBib3RoIGFnZW50IE1ha2VmaWxlIGFuZCBuZXQtc25tcC1jb25maWcpCgoyMDA3LTEyLTIxIDEzOjExICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE4MDI4MzM6IEVuc3VyZSBzbm1wdHJhcGQgYnVpbGRzIHdpdGgKICAgLS1kaXNhYmxlLXNubXB2MS8yYwoKMjAwNy0xMi0yMCAxNjoyNiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE4MzQ1Mzk6IENvbnNpc3RlbnQgaGFuZGxpbmcgb2YgT0lEIHBhcnNpbmcuCiAgIEFwcGxpZXMgcGF0Y2ggIzE4MzQ5ODMsIHByb3ZpZGVkIGJ5IERtaXRyeSBLYXJhc2lrCgoyMDA3LTEyLTIwIDE2OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNb3JlIGludGVybmFsIHF1ZXJ5IGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA3LTEyLTIwIDE0OjIwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE4MjIzNjA6IEZpeCBzcGlubG9jayBoZWxwZXIgZXJyb3IgaGFuZGxpbmcuCgoyMDA3LTEyLTIwIDE0OjE4ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTc5NTg0MDogU2lnbmVkIDMyLWJpdCB0cnVuY2F0aW9uIGxvZ2dlZAogICBhcyBkZWJ1ZyBtZXNzYWdlIHJhdGhlciB0aGVuIGVycm9yLgoKMjAwNy0xMi0yMCAxNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzkyODkwOiBpbmNsdWRlIENJRlMgbW91bnRzIHdoZW4gc2tpcHBpbmcKICAgcmVtb3RlIGZpbGVzeXN0ZW1zCgoyMDA3LTEyLTIwIDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzcxMjIxOiBSZXRhaW4gaWZMYXN0Q2hhbmdlIGluZm9ybWF0aW9uIG9uCiAgIGRhdGEgcmVsb2FkLgoKMjAwNy0xMi0yMCAxNDowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc1ODIxMjogSGFuZGxpbmcgbWlzc2luZyB2YXJpYWJsZSB0eXBlcwogICAoSXBBZGRyZXNzLENvdW50ZXIsT3BhcXVlKQoKMjAwNy0xMi0xOSAyMjozOSAgbWFnZnIKCiAgICogIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9kYXRhX2xpc3QuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ29ycmVjdCBkb3h5Z2VuIHdhcm5pbmdzCgoyMDA3LTEyLTE5IDIyOjMxICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIFVzZSBORVRTTk1QXy1wcmVmaXhlZCBzeW1ib2xzIHdoZW4gZGVjaWRpbmcgd2hhdCB0ZXN0cyB0byBydW4gYXMKICAgdGhlIGNvbXBhdCBzeW1ib2xzIGFyZW4ndCBkZWZpbmVkLgoKMjAwNy0xMi0xOSAyMjowNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQlVHIDE4MzE1Njg6IHN0cmR1cCBtaWdodCBmYWlsIGFuZCByZXR1cm4gTlVMTCAtIHRha2UgY2FyZSBvZiBpdAogICBpbiB0aGlzIGNhc2UgYXQgbGVhc3QuCgoyMDA3LTEyLTE5IDIxOjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQlVHIDE4MjQ4ODM6IFJlbW92ZSBtZW1vcnkgbGVhawoKMjAwNy0xMi0xOSAyMDo0NiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBCVUc6IDE4NTEwNDc6IERvIG5vdCB0cnkgdG8gZG8gbW9yZSBoYW5kbGluZyBvZiBhIHZhbHVlCiAgIG9uY2UgaXQgaXMgZm91bmQgdG8gYmUgY29ycnVwdCBieSB0aGUgd2F0Y2hlciBoZWxwZXIsIHRodXMKICAgYXZvaWRpbmcgY29kZSB0aGF0IGNvdW50cyBvbiBnZXR0aW5nIHRoZSByaWdodCB0eXBlLiBUaGlzIGJ1ZyB3YXMKICAgZm91bmQgYnkgQ2hhcmxpZSBNaWxsZXIsIEluZGVwZW5kZW50IFNlY3VyaXR5IEV2YWx1YXRvcnMuCgoyMDA3LTExLTI3IDA5OjU2ICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgQ2xhcmlmeSB1c2Ugb2YgdGhlIC1BIChsb2cgYXBwZW5kKSBvcHRpb24uCgoyMDA3LTExLTIyIDE1OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBjaGVjayByZXF1ZXN0LCBub3QgcmVxdWVzdHMuIHJlcG9ydGVkIGJ5IHVsaW0gb24gaXJjCgoyMDA3LTExLTIyIDE1OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CgogICBjaGVjayByZXF1ZXN0LCBub3QgcmVxdWVzdHMuIHJlcG9ydGVkIGJ5IHVsaW0gb24gaXJjCgoyMDA3LTExLTE5IDIxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAxODM0Njk5OiBmcm9tIGFwZXJzc29uOiBGaXggMTgzMzI5NDoKICAgRExQSSBwcm9ibGVtcyBvbiBTb2xhcmlzIDIuNgoKMjAwNy0xMS0xNyAxNjoyNiAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBVc2UgdGhlIHdvcmtlciBoZWxwZXJzIGZyb20gdGhlCiAgIHJlZ2lzdGVyXypfaW5zdGFuY2UgaGVscGVycyBhbmQgc2NoZWR1bGUgdGhlIGluc3RhbmNlIGhlbHBlcnMgZm9yCiAgIHJlbW92YWwgaW4gNS42CgoyMDA3LTExLTE0IDEyOjIxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuaDoKCiAgIFN1cHBvcnQgdjMgbG1zZW5zb3JzIEFQSS4KCjIwMDctMTEtMTQgMTI6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jOgoKICAgRml4IG1pc2xlYWRpbmcgZGVidWcgb3V0cHV0IG1lc3NhZ2UuCgoyMDA3LTExLTEzIDEzOjU5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9kdW1teV9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvc2Vuc29ycy5oOgoKICAgUHJlbGltaW5hcnkgcmUtd29ya2luZyBvZiB0aGUgTE0tU0VOU09SUy1NSUIsIHRvIHNlcGFyYXRlIG91dAogICB0aGUgc2Vuc29yIGhhcmR3YXJlIHByb2Nlc3NpbmcgZnJvbSB0aGUgTUlCIHRhYmxlcyB0aGVtc2VsdmVzLgoKMjAwNy0xMS0wOCAyMzoxNyAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE4MjQxOTY6IHtpZk9wZXJTdGF0dXMsaXBBZEVudElmSW5kZXh9CiAgIHJlcG9ydGVkIGluY29ycmVjdGx5CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEFuZGVycyBQZXJzc29uLiBGaXhlcyBCdWdzIDE4MjIyNzUgYW5kIDE4MTkxODkuCgoyMDA3LTEwLTI2IDIxOjIyICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBORVdTOiBzbm1wZDogQWRkZWQgc3VwcG9ydCBmb3IgYSB1c2VyIHByb3ZpZGVkIGxlbmd0aCB2YXJpYWJsZQogICBhbmQgQyBzdHJpbmcgdmFsdWVzIHRvIHRoZSB3YXRjaGVyIGhlbHBlci4KCjIwMDctMTAtMTYgMjI6MzkgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFVzZSAlcCB0byBwcmludCBwb2ludGVycy4gRG8gbm90IHVzZSAlcCB0byBwcmludCBudW1iZXJzLgoKMjAwNy0xMC0xNiAwNzozMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWFrZSB0aGUgbGlicmFyeSBidWlsZGFibGUgYXMgQyBhZ2Fpbi4KCjIwMDctMTAtMTYgMDc6MTcgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogbWlzYzogYXZvaWQgY2FsbGluZyBkZWJ1ZyBtYWNyb3Mgd2l0aCB0b28gbWFueQogICBhcmd1bWVudHMuCgoyMDA3LTEwLTE2IDA2OjE4ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfc2VydmljZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBNYWtlIHRoZSBsaWJyYXJ5IGJ1aWxkYWJsZSBhcyBDKysgYWdhaW4uCgoyMDA3LTEwLTE1IDIwOjUyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBkZWNsYXJlIG5ldHNubXBfYmluYXJ5X2FycmF5X29wdGlvbnNfc2V0OyBpbmNsdWRlIGhlYWRlciBmb3IgaXQKICAgYXMgbmVlZGVkCgoyMDA3LTEwLTE1IDIwOjM5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmM6CgogICBDb252ZXJ0IGFuIGluZmluaXRlIGxvb3AgdG8gYSBmaW5pdGUgb25lLgogICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAwNy0xMC0xNCAyMjoxMCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmM6CgogICBDSEFOR0VTOiBtaXNjOiBBdm9pZCBjYWxsaW5nIGRlYnVnIG1hY3JvcyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzLgoKMjAwNy0xMC0xNCAyMDo1MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTgxMTQ2OTogcmVhZF9jb25maWdfZmlsZXNfaW5fcGF0aCgpCiAgIHJlYWRzIHBhc3QgbWFsbG9jJ2QgYnVmZmVyCgoyMDA3LTEwLTE0IDIwOjQxICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE4MTE0NjM6IHBlcmwgYXN5bmMgY2FsbGJhY2sgY29yZWR1bXAKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNjA2MDYyOiBwZXJsIGJ1bGt3YWxrIChhc3luYykgY29yZWR1bXAKCjIwMDctMTAtMTQgMTk6MDcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxODA2MzM2OiBmaXggLUxTIG9wdGlvbiBwYXJzaW5nCgoyMDA3LTEwLTE0IDEyOjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggY29tbWVudAoKMjAwNy0xMC0xMyAyMzoyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIENIQU5HRVM6IHRlc3Q6IGVuaGFuY2Ugc25tcG5ldHN0YXQgdGVzdCB0byBjaGVjayB0Y3BUYWJsZSBpbiBUQ1AKICAgbW9kZQoKMjAwNy0xMC0xMyAyMjoyOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ0hBTkdFUzogU29sYXJpczogQlVHOiAxODEwODE0OiB0Y3BUYWJsZSBtaXNzaW5nIGVudHJpZXMgYW5kCiAgIHdyb25nIHBvcnRzCgoyMDA3LTEwLTEyIDIxOjQ2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIENIQU5HRVM6IFNvbGFyaXM6ICNkZWZpbmUgTkVXX01JQl9DT01QTElBTlQgdG8gc3VwcG9ydCBTb2xhcmlzCiAgIDEwVTQrCgoyMDA3LTEwLTExIDIwOjQ2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBsZWFrIG1lbW9yeSB3aGVuZXZlciBhbiB1ZHAgYWRkcmVzcyBpcwogICBmb3JtYXR0ZWQuCgoyMDA3LTEwLTAzIDAxOjAyICBhbGV4X2IKCiAgICogIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9SRUFETUUudHh0LCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9BZGQyUGF0aC5uc2ksICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIC1GaXggZm9yIGJ1ZyAxNzY4Nzk3LiBOU0lTIEluc3RhbGxlciBzY3JpcHQgbm93IHdhcm5zIHRoZSB1c2VyIGlmCiAgIHRoZSBQQVRICiAgIGlzID4gMTAyNCBhcyBOU0lTIGNhbiBub3QgaGFuZGxlIHZhcmlhYmxlcyBsYXJnZXIgdGhhbiAxMDI0LgogICAtVXBkYXRlcyB0byBidWlsZCBpbnN0cnVjdGlvbnMuCgoyMDA3LTA5LTMwIDIwOjU5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIENIQU5HRVM6IEJVRzogMTgwMTgzNTogQWRkZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBtdWx0aXBsZSBkZWZhdWx0CiAgIHRyYW5zcG9ydHMgZm9yIGFuIGFwcGxpY2F0aW9uLiBPbiBvcGVuIHRoZSBkaWZmZXJlbnQgdHJhbnNwb3J0cwogICB3aWxsIGJlIHRyaWVkIGluIG9yZGVyLiBBcyBhIGNvbnNlcXVlbmNlIHNubXAgYW5kIHNubXB0cmFwIG5vdwogICB3aWxsIHRyeSBmaXJzdCB1ZHAgYW5kIHRoZW4gdWRwNiBhbmQgYWdlbnR4IHdpbCB0cnkgZmlyc3QgdW5peAogICBhbmQgdGhlbiB0Y3AuCgoyMDA3LTA5LTI5IDEzOjEwICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgdHJ5IHRvIGxvb2sgdXAgZW1wdHkgc3RyaW5ncyBhcwogICBob3N0bmFtZXMgZm9yIElQdjYKICAgQWRkaXRpbmFsbHksIHByaW50IHdoYXQgc3RyaW5nIGZpbGVkIHRvIHJlc29sdmUgdXNpbmcgZ2V0YWRkcmluZm8KICAgZm9yIElQdjYKCjIwMDctMDktMjkgMDY6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4MDQ0NDU6IGZyb20gYXBlcnNzb246IEhpZ2ggb3JkZXIgYml0cyBvZgogICBIQ0luT2N0ZXRzIG5vdCBzZXQgb24gU29sYXJpcwoKMjAwNy0wOS0yNCAyMDo0MyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCgoyMDA3LTA5LTIzIDA2OjAzICB0YW5kZXJzCgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBmaXggI2VsaWYKCjIwMDctMDktMjEgMjI6MDQgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYXR0ZW1wdCB0byBmaXggYnVpbGQgZm9yIFNvbGFyaXMvQUlYL0hQLVVYCiAgIGJyb2tlbiBieSByMTY2ODQKCjIwMDctMDktMjAgMjE6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzQ2ODMxOiBmcm9tIGN1bm5pamQ6IGZpeCBwcm9jZXNzCiAgIGNoZWNraW5nIHJhY2UKICAgY29uZGl0aW9uIHVuZGVyIExpbnV4IGFuZCBwbGF0Zm9ybSAjaWZkZWZzCgoyMDA3LTA5LTE5IDIxOjA5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiBDb3Zlcml0eSAjMTgzOiBmaXggbWVtb3J5IGxlYWsgaWYKICAgSVBfUEtUSU5GTyBmYWlscwoKMjAwNy0wOS0xOSAxOTo1NyAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIEZpeCBtaXNudW1iZXJpbmdzIG9mIHN0ZXBzLgogICBJdCBpcyAqc28qIGRpZmZpY3VsdCB0byBmaW5kIHByb3Blcmx5IG51bWVyYXRlIHN0YWZmIHRoZXNlCiAgIGRheXMuLi4uCgoyMDA3LTA5LTE2IDA5OjUxICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBSZW1vdmUgYmFzaGlzbXMuIFRoaXMgaXMgbmV0YnNkIHBhdGNoLWV0IGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA5OjQ1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgVXNlIGNvbnN0IGNoYXIqIGZvciB0ZW1wb3JhcnkgY29uc3RhbnQgc3RyaW5nIHZhcmlhYmxlLiBUaGlzIGlzCiAgIG5ldGJzZCBwYXRjaC1lYSBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwOTo0MCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIHRoZSBuYXR1cmFsIHR5cGUgb2YgaW5fYWRkcl90J3MgZm9yIGNvbXBhcmlzaW9ucy4gVGhpcyBpcwogICBuZXRic2QgcGF0Y2gtZWEgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDc6MDYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIENIQU5HRVM6IEJVRzogMTc5MzU0NTogVGFrZSB0aGUgbmFtZSBmcm9tIHRoZSBzb2NrYWRkcl91biBpbgogICBvcmRlciB0byBhdm9pZCB0cmFuc3BvcnQgc3BlY2lmaWVycyBhbmQgb3RoZXIgZGVjb3JhdGlvbnMuCgoyMDA3LTA5LTE0IDEzOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGhlYWRlciBmb3Igc3dydW4gcmV3cml0ZQoKMjAwNy0wOS0xNCAxMzoxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBhZGQgdXRpbGl0eSBtYWNybwogICAtIGFjdGl2YXRlIG5ldyBob3N0IHJlc291cmNlIHJld3JpdGVzCgoyMDA3LTA5LTE0IDEzOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGNvbmZpZ19yZXF1aXJlIGZvciBuZXcgcmV3cml0ZXMsIGlmIGVuYWJsZWQKCjIwMDctMDktMTQgMTM6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZC9maXggZGlzay9wYXJ0aXRpb24gdGFibGVzIG9uIGRhcndpbgoKMjAwNy0wOS0xNCAxMzowOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBhZGQgaHJTV0luc3RhbGxlZFRhYmxlIGZvciBkYXJ3aW4KCjIwMDctMDktMTQgMDg6NDQgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBQcm90ZWN0IGFnYWluc3QgdW5leHBlY3RlZCBjb21tYW5kIGFyZ3VtZW50cy4KCjIwMDctMDktMTQgMDg6MDAgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBEb2N1bWVudCB1c2Ugb2YgInN2biBleHBvcnQiIHJhdGhlciB0aGFuICJzdm4gY2hlY2tvdXQiLgogICBDb3ZlciBnZW5lcmF0aW9uIG9mIHRoZSB6aXAgYXJjaGl2ZSBhcyB3ZWxsIGFzIHRoZSB0YXJiYWxsLgoKMjAwNy0wOS0xMyAyMToyNSAgdGFuZGVycwoKICAgKiBSRUFETUU6CgogICBkcm9wIG9ic29sZXRlIG1pcnJvcnMKCjIwMDctMDktMTMgMTc6MjkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2VzcywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBob3N0IHJlc291cmNlcyBTV1J1biBhbmQgU1dSdW5QZXJmIFRhYmxlIGZvciBkYXJ3aW45CgoyMDA3LTA5LTEzIDE3OjIyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gaW1wcm92ZSBlcnJvciBoYW5kbGluZyBhbmQgY2xlYW51cCBpbiByZWdpc3RyYXRpb24gZnVuY3Rpb25zCgoyMDA3LTA5LTEzIDE3OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBmb3IgZGFyd2luOSwgcmV4ZWMgYWZ0ZXIgZm9yayB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIHNvbWUgbWFjaAogICBjYWxscwoKMjAwNy0wOS0xMiAxODo1MSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IHV0aWxpdHkgZnVuY3Rpb24gdG8gcmVhZCBhIGRpcmVjdG9yeSBoaWVyYXJjeSBpbnRvIGEKICAgY29udGFpbmVyCgoyMDA3LTA5LTEyIDE3OjU1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIG5ldyBzdHJpbmcgY29tcGFyZSBjYWxsYmFjawoKMjAwNy0wOS0xMiAxNzo1MyAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IG5ldHNubXBfY2FjaGVfZnJlZSBmdW5jdGlvbgoKMjAwNy0wOS0xMiAxNzo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSBpbiBkZWJ1ZyBtc2cKCjIwMDctMDktMTIgMTc6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZjoKCiAgIFBhdGNoZXMgZnJvbSBBcHBsZQogICAtIGFkZCBvcHRpb25hbCBjYWNoZQogICAtIGNoZWNrL2hhbmRsZSBlcnJvcnMgZm9yIGFsbCBmdW5jdGlvbnMgaW4gaW5pdCBmdW5jCiAgIC0gdHlwZWRlZiBnZW5lcmF0ZWQgc3RydWN0CiAgIC0gc2tpcCBwcm9jZXNzZWQgcmVxdWVzdHMKICAgLSBjaGVjayBmb3IgbnVsbCB3aGVuIGV4dHJhY3Rpbmcgcm93CgoyMDA3LTA5LTEyIDE3OjM1ICByc3RvcnkKCiAgICogQ09QWUlORzoKCiAgIGFkZCBuZXcgY29weXJpZ2h0L2NvbnRyaWJ1dG9yCgoyMDA3LTA5LTA1IDIwOjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDb21iaW5lIHN5c3RlbV9wYXJzZV9jb25maWdfc3lze2xvYyxjb24sbmFtZX0gaW50byBvbmUgZnVuY3Rpb24KICAgc2luY2UgdGhleSBhbGwgZG8gdGhlIHNhbWUgdGhpbmcKCjIwMDctMDgtMjUgMTQ6MjQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIE1ha2UgbW9zdCBvZiBub3RpZmljYXRpb25fbG9nIHN0YXRpYy4gTWluaW1pemUgdGhlIGhlYWRlciBmaWxlLgoKMjAwNy0wOC0yMiAyMTo1NiAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgTkVXUzogYWdlbnQ6IHN1cHByZXNzIGFubm95aW5nICJyZWdpc3RyYXRpb24gIT0gZHVwbGljYXRlIgogICB3YXJuaW5nIGZvciByb290IG9pZHMKICAgKG90aGVyd2lzZSwgeW91J2xsIGdldCB0aGlzIG1lc3NhZ2Ugb24gYWxtb3N0IGV2ZXJ5IHN0YXJ0dXApCgoyMDA3LTA4LTIwIDA4OjA2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHNwcmludGYgZm9yCiAgIFVEUC9JUHY2CgoyMDA3LTA4LTE3IDA5OjEwICBkdHMxMgoKICAgKiBGQVE6CgogICBTdWJ2ZXJzaW9uLCBub3QgQ1ZTLgoKMjAwNy0wOC0xNyAwODo1OSAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSBoYW5kbGluZyBvZiB1bmtub3duIGNvbW11bml0aWVzCgoyMDA3LTA4LTE2IDE1OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIERvbid0IGp1c3QgcmVwb3J0IHRoZSBwcm9ibGVtIC0gaXQgbWlnaHQgYmUgc2Vuc2libGUgdG8gYXZvaWQKICAgY3Jhc2hpbmcgdGhlIGFnZW50IGFzIHdlbGwhCgoyMDA3LTA4LTE2IDE1OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc0NDE1NzogUmVwb3J0IGR1cGxpY2F0ZSAiZXh0ZW5kL2V4ZWMiCiAgIGlkZW50aWZpZXJzLgoKMjAwNy0wOC0xNiAxNToyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFwcHMvc25tcHRyYXBkX2RzLmg6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNzQ2OTkyOiBJbXByb3ZlIHNubXB0cmFwZAogICBhY2Nlc3MtY29udHJvbCBlcnJvciBtZXNzYWdlcy4KCjIwMDctMDgtMTYgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MjkzNDogRml4IG9mZi1ieS1vbmUgcXNvcnQgZXJyb3IgaW4KICAgdGFibGUgdXRpbGl0aWVzLgoKMjAwNy0wOC0xNiAxMzozMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDM3OiBGaXggZXJyb3IgaW5kZXggb24gZmFpbGluZyBTRVQKICAgcmVxdWVzdHMKCjIwMDctMDgtMTYgMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MzQ0OTogRml4IEFnZW50WCBlcnJvciBwcm9wYWdhdGlvbgoKMjAwNy0wOC0xNiAxMjozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0NjM6IEZpeCBBZ2VudFggc3ViYWdlbnQgcGluZyBhbGFybQogICBoYW5kbGluZwoKMjAwNy0wOC0xNiAxMjoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzU4MjA4OiBGaXggbWVtb3J5IGxlYWsKCjIwMDctMDgtMTYgMTI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc3NDYxMjogTW9yZSByZXNpbGllbnQgcHJvY2VzcyBzdGF0dXMKICAgaGFuZGxpbmcKCjIwMDctMDgtMTYgMTE6NTggIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE3NzUxMjQ6IEZpeCBjbGllbnRhZGRyIGZ1bmN0aW9uYWxpdHkKCjIwMDctMDgtMTYgMDk6MzggIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNzY4Mjg1OiBDb3VudCBNSUIgZmlsZXMgY29ycmVjdGx5IGluCiAgIGFkZF9taWJkaXIoKQoKMjAwNy0wOC0xNiAwOTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE3Njc3MjU6IENsb3NlIGFsbCBub24gc3RhbmRhcmQgZmlsZQogICBoYW5kbGVzCgoyMDA3LTA4LTE2IDA5OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5jOgoKICAgRGVjbGFyZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lIGNvcnJlY3RseSwgYW5kIG9taXQgdW51c2VkCiAgIHZhcmlhYmxlcy4KICAgUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wOC0xNiAwODo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgUmVhZCBpbiBhZ2VudCBjb25maWd1cmF0aW9uIHNldHRpbmdzICpiZWZvcmUqIHRoZSBoZWFkZXIKICAgZmlsZXMgdGhhdCBtaWdodCByZWx5IG9uIHRoZW0uCgoyMDA3LTA4LTA1IDE2OjE2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBDaGFuZ2Ugd2luMzIgYnVpbGQgcmVhZG1lIGZpbGVzIHRvIENSTEYuCgoyMDA3LTA4LTA1IDE0OjE2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgV2luMzI6IENoYW5nZSBidWlsZCBkb2NzIHRvIHVzZSBkeW5hbWljIChETEwpIGluc3RlYWQgb2Ygc3RhdGljLgoKMjAwNy0wOC0wMiAxMzo0NiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgSXQgbWlnaHQgYmUgc2xpZ2h0bHkgbGVzcyBjb25mdXNpbmcgaWYgdGhlIG5ldFNubXBFeGFtcGxlU3RyaW5nCiAgIE1JQiBvYmplY3QgZGlkIGFjdHVhbGx5IHRha2Ugc3RyaW5nIHZhbHVlcy4gUGlja3ksIEkga25vdy4uLi4KCjIwMDctMDctMjggMTM6MDIgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgZml4IHRhZyBleHRyYWN0aW9uOyBjaGVjayBmb3IgZW1wdHkgdGFnIGVhcmxpZXIKCjIwMDctMDctMjUgMjI6NDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzYwNjMzOiBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA3LTA3LTIxIDIxOjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBmb3J3YXJkaW5nIGVuY29kaW5nCgoyMDA3LTA3LTIwIDA4OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBUd2VhayB3YXJuaW5nIG1lc3NhZ2UgZm9yIChvbGQtc3R5bGUsIGludmFsaWQgZm9ybWF0KSAiZXhlYyBPSUQiCiAgIGRpcmVjdGl2ZXMuCgoyMDA3LTA3LTE2IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQXBwbHkgKGNvcnJlY3QpIHBhdGNoIGZyb20gTWFyY3VzIFJ1ZWNrZXJ0IHRvIHJlbW92ZSBhc3NlcnRzCiAgIHVzaW5nIHNvcnQtby1pbGxlZ2FsIEMgc3RyaW5nIGNvbXBhcmVzCgoyMDA3LTA3LTE2IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgUmVtb3ZlIHByZXZpb3VzIHBhdGNoIHdoaWNoIHdhcyB0aGUgd3JvbmcgdmVyc2lvbgoKMjAwNy0wNy0xNiAyMzo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gTWFyY3VzIFJ1ZWNrZXJ0IHRvIHJlbW92ZSBhc3NlcnRzIHVzaW5nCiAgIHNvcnQtby1pbGxlZ2FsIEMgc3RyaW5nIGNvbXBhcmVzCgoyMDA3LTA3LTEzIDE5OjI3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZ2VuZXJhdGUgemlwIGZpbGVzCgoyMDA3LTA3LTEyIDIxOjUxICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBmaXggc3ViYWdlbnQgZXhhbXBsZSAoZG9jdW1lbnRhdGlvbikKCjIwMDctMDctMTIgMjE6MjcgIHRhbmRlcnMKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICBzbm1wX3Nlc3NfcmVhZCByZXR1cm5zIGludCwgbm90IHZvaWQKCjIwMDctMDctMDYgMjM6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBidWlsZDogdXNlIGxpYnRvb2wgY2xlYW4gZm9yIHJlbW92aW5nIGZpbGVzIHRvIGVuc3VyZSB3ZQogICBkZWxldGUgYWxsIGxpYnRvb2wgdGVtcG9yYXJ5IGZpbGVzLgoKMjAwNy0wNy0wNiAyMzozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIHVzZSBhIHJlY3Vyc2l2ZSByZXZlcnQgaW5zdGVhZCBvZiBybS91cGRhdGU7IHJlbW92ZSBkb3VibGUgLyBmcm9tCiAgIGVkaXRpbmcgY2FsbHMKCjIwMDctMDctMDYgMjE6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzdG9wIHNlYXJjaGluZyBwYXRocyB3aGVuIGRvbmUKCjIwMDctMDctMDYgMjE6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBkbyBub3QgZnJlZSBpbnRlcmZhY2UgZW50cnkganVzdCBiZWNhdXNlIHdlIGNhbiBub3QgZ2V0IHN0YXRzIGZvcgogICBpdAoKMjAwNy0wNy0wNiAxNTozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHIDE3NDUxMTM6IEhhbmRsZSBzaW5nbGUtbGluZSAoYW5kIHplcm8tbGluZSkKICAgb3V0cHV0IGluIFVDRCBjb21wYXRhYmlsaXR5IG1vZGUuCgoyMDA3LTA3LTA2IDA5OjA4ICBkdHMxMgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0ggMTcyODI0NzogZnJvbSBNaXRzdXJ1IENoaW5lbjogY2xlYW5zIHVwCiAgIHRoZSBpbnQ2NCB0eXBlIGNoZWNraW5nIGFuZCB1c2FnZSBmb3IgYnVpbGRpbmcgcGFja2V0cyBlc3BlY2lhbGx5CiAgIHVuZGVyIE1TVkMuCgoyMDA3LTA3LTA1IDE0OjQ1ICByc3RvcnkKCiAgICogLiwgUkVBRE1FLm9zWDoKCiAgIHIyMDA0NEBkaGNwMjExOiByc3RvcnkgfCAyMDA3LTA3LTA1IDEwOjQ0OjAxIC0wNDAwCiAgIHJlbW92ZSBkaXNhYmxlLXN0YXRpYyBmcm9tIHJlY29tbWVuZGVkIG9wdGlvbnMKCjIwMDctMDctMDUgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBza2lwIHN0YXRzIHBhcnNpbmcgb24gaW50ZXJmYWNlcyB3aXRoIG5vIHN0YXRpc3RpY3MKCjIwMDctMDctMDUgMTE6MDEgIHJzdG9yeQoKICAgKiBkaXN0L2NoZWNrLWFwaS1jaGFuZ2U6CgogICBjaGVjayBmb3IgZGlyIGV4aXN0ZW5jZQoKMjAwNy0wNy0wNCAyMzoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IHBlcmw6IGluc3RhbGwgZW1iZWRkZWQgcGVybCBpbml0IGZpbGVzIGZvcgogICBzbm1wZC9zbm1wdHJhcGQgd2l0aCBtb2RlIDY0NCBpbnN0ZWFkIG9mIDc1NQoKMjAwNy0wNy0wNCAyMTo0MiAgdGFuZGVycwoKICAgKiBSRUFETUUub3NYOgoKICAgUGVybCBwcm9ibGVtcyAoYmVsaWV2ZWQgdG8gYmUpIGZpeGVkCgoyMDA3LTA3LTAzIDEyOjU2ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgcmVtb3ZlIGV4ZWN1dGFibGUgZmxhZyBmcm9tIFNWTiBwcm9wZXJ0aWVzCgoyMDA3LTA3LTAyIDA2OjUzICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB2YWNtLmM6CgogICBSZW1vdmUgdW51c2VkIG9pZCBkZWNsYXJhdGlvbnMKCjIwMDctMDctMDIgMDY6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jOgoKICAgQWRkIG1pc3NpbmcgcmV0dXJuIHZhbHVlIHRvIF9tdGVFdmVudF9maXJlX25vdGlmeS4KCjIwMDctMDctMDIgMDU6MzEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIFJlbW92ZSB0aGUgZGVjbGFyYXRpb24gb2YgYW4gdW5kZWZpbmVkIHN0YXRpYyBmdW5jdGlvbi4KCjIwMDctMDctMDEgMjA6MzIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItbmlnaHRseSwgZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2UgZ2V0b3B0cyB3b3JrIG9uIFRydTY0IGJ5IHJlc3Bhd25pbmcgaW4gUG9zaXggbW9kZQoKMjAwNy0wNy0wMSAxOTo1NiAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogLS1kaXNhYmxlLWFzLW5lZWRlZCBub3cgYWxsb3dzIHRvIHJldmVydCB0byB0aGUKICAgZm9ybWVyIGRlZmF1bHQgYmVoYXZpb3VyIG9mIGxpbmtpbmcgbGlicGVybCB0byBhcHBsaWNhdGlvbnMKICAgcmF0aGVyIHRoYW4gTmV0LVNOTVAgTGlicmFyaWVzIChpbiBjYXNlIG9mIGFueSBwcm9ibGVtcykKCjIwMDctMDYtMzAgMDY6MTcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhY3R1YWxseSBjYWxsIHJlbW92ZWZpbGVzCgoyMDA3LTA2LTI4IDIzOjUwICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgTkVXUzogc25tcGxpYjogQWRkZWQgR0NDIGZvcm1hdCBjaGVja2luZyBhdHRyaWJ1dGVzIHRvIHRoZSBkZWJ1ZwogICBmdW5jdGlvbnMuCgoyMDA3LTA2LTI4IDIzOjM3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFJlbW92ZSBjYXN0cyBvZiB1bnVzZWQgdmFsdWVzCgoyMDA3LTA2LTI4IDIzOjM2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCjIwMDctMDYtMjggMjI6MDkgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgcmVuYW1lIGxhc3Qgb2NjdXJlbmNlIG9mIERFRkFVTFRfTUlCW0RJUl1TIHRvCiAgIE5FVFNOTVBfREVGQVVMVF9NSUJbRElSXVMKCjIwMDctMDYtMjggMDg6MTUgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBEbyBub3QgdHJhbnNmb3JtIHRoZSBpZ25vcmVkIHJlc3VsdCBvZiByZWFsbG9jX2Zvcm1hdF90cmFwCgoyMDA3LTA2LTI2IDIyOjEyICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogd29yayBhcm91bmQgbGlibmV0c25tcGFnZW50L2xpYm5ldHNubXBoZWxwZXJzCiAgIGRlcGVuZGVuY3kgaXNzdWVzIHdoZW4gbGlua2luZyBzbm1wdHJhcGQKCjIwMDctMDYtMjYgMjE6NDUgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogdXNlIExERkxBR1Mgd2hlbiBidWlsZGluZyBhZ2VudCwgaGVscGVycyBhbmQgbWliCiAgIGxpYiB0byBiZSBjb25zaXN0ZW50IHdpdGggbGlibmV0bm1wCgoyMDA3LTA2LTI2IDIxOjI4ICB0YW5kZXJzCgogICAqIElOU1RBTEw6CgogICBtaW5vciB1cGRhdGVzCgoyMDA3LTA2LTI2IDE1OjEwICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGRvbid0IGluaXRpYWxpemUgdmFyIGluIGV4dGVybiBkZWNsOyBpbnN0ZWFkLCBpbml0aWFsaXplIGFjdHVhbAogICB2YXIKCjIwMDctMDYtMjUgMjE6MjkgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIE5FV1M6IGJ1aWxkOiB1cGRhdGUgdG8gbGlidG9vbCAxLjUuMjQgKGZyb20gMS41LjIyKQoKMjAwNy0wNi0yNCAxMjo1NyAgdGFuZGVycwoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBIQVZFX1NTSVpFX1QgY2xlYW51cAoKMjAwNy0wNi0yMyAyMjo1NiAgdGFuZGVycwoKICAgKiBSRUFETUUuaHB1eDExOgoKICAgZG9uJ3Qgc3VnZ2VzdCAtLXdpdGgtbGlicz0tbG5tCgoyMDA3LTA2LTIyIDE1OjA1ICBkdHMxMgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgd2luMzIvbGlic2RsbC5kc3csICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBFbmZvcmNlIERPUy1zdHlsZSBsaW5lIGVuZGluZ3MsIHRvIGtlZXAgVmlzdWFsIFN0dWRpbyBoYXBweS4KCjIwMDctMDYtMjEgMTQ6MDEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIGRlZmF1bHQgdG8gdXNpbmcgaWZUYWJsZSByZXdyaXRlcwoKMjAwNy0wNi0yMCAyMTozNCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBmaXggdHlwbwoKMjAwNy0wNi0xOSAyMjoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBQZXJsLXJlbGF0ZWQgYXV0b2NvbmYgbWVzc2FnZXMKCjIwMDctMDYtMTkgMTU6MDggIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCAiQnVpbGRSZXF1aXJlczogcGVybC1FeHRVdGlscy1FbWJlZCIgdG8gdGhlCiAgIHNwZWMgZmlsZSwgZS5nLiBmb3IgRmVkb3JhIDcKCjIwMDctMDYtMTggMjI6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGJyb2tlbiBjb21tZW50LgoKMjAwNy0wNi0xOCAyMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIHJldmVydCBkb3VibGUgbGlua2luZyBvZiBsaWJuZXRzbW5wIHBhcnQgb2YgcGF0Y2ggdGhhdCB3YXMKICAgc3VwcG9zZWQgdG8gYmUgcHVsbGVkIGJvZmVyIGFwcGx5aW5nIGluIHIxNjUzOCAodGhhbmtzIHRhbmRlcnMKICAgZm9yIGNhdGNoaW5nIGl0KQoKMjAwNy0wNi0xOCAyMTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBwYXRjaCBmcm9tIGFwcGxlIHRvIHNpbXBsaWZ5IG1ha2VmaWxlIHRhcmdldAogICByZWZlcmVuY2VzIGluIHNvbWUgcnVsZXMuCgoyMDA3LTA2LTE4IDIxOjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBmaXggbWlub3IgZG9jdW1lbnRhdGlvbiBidWdzLgoKMjAwNy0wNi0xOCAyMToxMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgCgoyMDA3LTA2LTE4IDIxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBpbXByb3ZlIG1lbW9yeSByZXBvcnRpbmcKCjIwMDctMDYtMTggMjE6MDkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIENIQU5HRVM6IHBhdGNoIGZyb20gYXBwbGUgdG8gZml4IGNyb3NzLWNvbXBpbGUgYnVpbGRzIGluIGFwcGxlcwogICBidWlsZCBlbnZpcm9ubWVudC4KCjIwMDctMDYtMTggMjA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDSEFOR0VTOiBwYXRjaDogMTczNzA4NTogZnJvbSBqc2FmcmFuZWs6IGZpeCB0aGUgLU0gc3dpdGNoIGZvcgogICBtaWIgcGFyc2luZyBieSBsb2FkaW5nIGRlZmF1bHRzIGZpcnN0IGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzZXQKICAgc28gaXQgZG9lcyBub3QgZ2V0IG92ZXJ3cml0dGVuIGJ5IHRoZSBkZWZhdWx0cyBsYXRlci4KCjIwMDctMDYtMTggMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogcGF0Y2g6IDE3MjUwNDk6IGZpeCBidWxrd2FsayBpbiBjYXNlcyBvZiBub24tcmVwZWF0ZXIKICAgdXNhZ2UuCgoyMDA3LTA2LTE4IDE0OjEwICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogcGVybDogZml4IHByZXJlcXVpc2l0ZXMgZm9yIE5ldFNOTVA6OlRyYXBSZWNlaXZlcgoKMjAwNy0wNi0xOCAxMzozOSAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBzeW50YXggZXJyb3IgaW4gTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQKCjIwMDctMDYtMTYgMjM6MDEgIHRhbmRlcnMKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluOgoKICAgTkVXUzogcGVybDogQlVHOiAxNjE5ODI3OiBsaW5rIGxpYm5ldHNubXBhZ2VudC9saWJuZXRzbm1wdHJhcGQKICAgKHJhdGhlciB0aGFuIHNubXBkL3NubXB0cmFwZCkgYWdhaW5zdCBsaWJwZXJsLgoKMjAwNy0wNi0xNCAxNTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggdHlwbyBpbiB1c2VyIG91dHB1dCwgYXMgbm90ZWQgb24gY29kZXJzCgoyMDA3LTA2LTE0IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXNlICdzdm4gaW5mbycgdG8gcXVlcnkgZm9yIHVybAoKMjAwNy0wNi0xNCAwNDozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBBZGQgbWlzc2luZyBhcmd1bWVudCB0eXBlIGluIG9yZGVyIHRvIHNpbGVuY2UgYSBnY2Mgd2FybmluZwoKMjAwNy0wNi0xMyAwNjozNyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEbyBub3QgdHJ5IHRvIGJlIGNsZXZlciBpbiB0aGUgaGFuZGluZyBvZiAtbGt2bSBpbiBMQUdFTlRMSUJTLgogICBJbmNsdWRlIGl0IGlmIGFueSBzb3VnaHQgZnVuY3Rpb24gaXMgaW4gaXQuCgoyMDA3LTA2LTExIDEwOjExICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICBkb2N1bWVudCB4bGM8LT5jY19yIGNvbXBpbGVyIGlzc3VlcyB3aXRoIFBlcmwgb24gQUlYIChzZWUgYnVnCiAgICMxNjAwMDk5KQoKMjAwNy0wNi0xMCAyMjoyOSAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODI0NzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogQWRkIHR5cGUKICAgY2hlY2sgZm9yIGludD8/X3QgYW5kIHVpbnQ/P190CgoyMDA3LTA2LTEwIDIyOjIyICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjQ0OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBBZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBzaW42X3Njb3BlX2lkCgoyMDA3LTA2LTEwIDIyOjE1ICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTcyODI0MTogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkIGNvbmZpZ3VyZSBjaGVjawogICBmb3IgPHN5cy91aW8uaD4gKG1ha2Ugc3VyZSBpb3Ygc3RydWN0dXJlIGlzIGRlY2xhcmVkKQoKMjAwNy0wNi0xMCAwNjozMyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciBzeXN0ZW0gc3BlY2lmaWMKICAgbGlicmFyaWVzCgoyMDA3LTA2LTEwIDA2OjI2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxzZW5zb3JzCgoyMDA3LTA2LTEwIDA2OjE4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sZGV2c3RhdAoKMjAwNy0wNi0xMCAwNjoxMyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sZGwKCjIwMDctMDYtMDkgMDg6NTggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbGt2bQoKMjAwNy0wNi0wOCAyMDozMiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbiwgZGlzdC9tYWtlcmVsZWFzZToKCiAgIEZpeCByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgcjE2NDc5OiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItVAogICB0Y3AiJyBub3cKICAgd29ya3MgYWdhaW4uIG1ha2VyZWxlYXNlIG5vdyB1c2VzIHRoZSByaWdodCBvcHRpb24uCgoyMDA3LTA2LTA4IDEwOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGRUFUVVJFOiA3NDEzNzU6IEV4dGVuZCAtRiBmbGFnIHRvIGNvdmVyCiAgIHN5c2xvZy9leGVjdXRlIGZvcm1hdCBzdHJpbmdzLgoKMjAwNy0wNi0wOCAxMDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEltcHJvdmUgbWVtb3J5IGhhbmRsaW5nIG9mIHN0eWxlLXNwZWNpZmljIGZvcm1hdCBzdHJpbmdzLgoKMjAwNy0wNi0wOCAxMDozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBEZWZhdWx0IHRvIHJlcG9ydGluZyBORlMgbW91bnRzIGFzIE5ldHdvcmtEaXNrLgoKMjAwNy0wNi0wOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1scnBtIGFuZAogICB0aGluZ3MgaXQgZGVwZW5kcwogICBvbgoKMjAwNy0wNi0wOCAwNTo1OSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEFkZCBtaXNzaW5nIFwKCjIwMDctMDYtMDggMDU6MzEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbGtzdGF0CgoyMDA3LTA2LTA4IDA1OjI4ICBtYWdmcgoKICAgKiBhY2luY2x1ZGUubTQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGEgdmFyaWF0aW9uIG9mIEFDX1NFQVJDSF9MSUJTIHdoZXJlIHRoZQogICByZXN1bHQgdmFyaWFibGUgaXMgc2V0dGFibGUuCgoyMDA3LTA2LTA4IDA1OjE2ICBtYWdmcgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVtb3ZlIHRoZSB1bnVzZWQgdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFYuCiAgIFRoZSBQZXJsX2V2YWxfcHYgZnVuY3Rpb25zIGFyZSBoYW5kbGVkIGJ5IHRoZQogICBIQVZFX1BFUkxfRVZBTF9QVl9bVUxdQyBkZWZpbmVzLAogICB0aGlzIG9uZSBpcyBuZXZlciBzZXQgYnkgb3VyIGNvbmZpZ3VyZSBzY3JpcHQuCgoyMDA3LTA2LTA3IDE2OjAyICBkdHMxMgoKICAgKiAgLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZSwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsICAKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZSwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLy5jdnNpZ25vcmUsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLy5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZSwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBkaXN0Ly5jdnNpZ25vcmUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvLmN2c2lnbm9yZSwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlLCAKICAgICAgICBsb2NhbC8uY3ZzaWdub3JlLCBtYW4vLmN2c2lnbm9yZSwgbWlicy8uY3ZzaWdub3JlLAogICAgICBvdi8uY3ZzaWdub3JlLCAgICBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvQVNOLy5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvT0lELy5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvU05NUC8uY3ZzaWdub3JlLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci8uY3ZzaWdub3JlLCBwZXJsL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUsIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlLCAgIAogICAgICBzbm1wbGliLy5jdnNpZ25vcmUsIHRlc3RpbmcvLmN2c2lnbm9yZSwgd2luMzIvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvYmluLy5jdnNpZ25vcmUsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGliLy5jdnNpZ25vcmUsIHdpbjMyL2xpYmFnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvLmN2c2lnbm9yZSwgd2luMzIvbGlibmV0c25tcHRyYXBkLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGlidWNkbWlicy8uY3ZzaWdub3JlLCB3aW4zMi9uZXQtc25tcC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUsIHdpbjMyL25ldHNubXBtaWJzLy5jdnNpZ25vcmUsICAKICAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBidWxrZ2V0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvLmN2c2lnbm9yZSwgd2luMzIvc25tcGRmLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvLmN2c2lnbm9yZSwgd2luMzIvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHNldC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wc3RhdHVzLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdGVzdC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdXNtLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB2YWNtLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB3YWxrLy5jdnNpZ25vcmU6CgogICBSZW1vdmUgcmVkdW5kYW50IENWUy1hZG1pbiBmaWxlcy4KCjIwMDctMDYtMDcgMTI6NTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIEhhbmRsZSB1bnJlZ2lzdGVyaW5nIHRoZSBmaXJzdCBTZWN1cml0eSBNb2RlbCBpbiB0aGUgbGlzdC4KICAgUmVwb3J0ZWQgYnkgQWxla3NhbmRyIExvbWFub3YuCgoyMDA3LTA2LTA3IDA5OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBoZWFkZXIgZmlsZXMgZm9yIHN0YXNoX2NhY2hlIGFuZCBzdGFzaF90b19uZXh0IGhlbHBlcnMuCgoyMDA3LTA2LTA3IDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgU2VwYXJhdGUgb3V0IGhlYWRlciBmaWxlcyB0aGF0IGRvbid0IGhhdmUgYSBjb3JyZXNwb25kaW5nIEMKICAgc291cmNlIGZpbGUuCgoyMDA3LTA2LTA3IDA4OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgU29ydCBsaXN0cyBvZiBoZWxwZXJzIChzb3VyY2UgY29kZSwgb2JqZWN0IGZpbGVzIGFuZCBoZWFkZXJzKS4KICAgVGhpcyBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCBmaWxlcyB0aGF0IGhhdmUgYmVlbiBvbWl0dGVkLgoKMjAwNy0wNi0wNyAwODo0MiAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHN5c3RlbXMgd2l0aG91dCBTX0lTRElSLgoKMjAwNy0wNi0wNiAyMjozNiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBXZSBhcmVuJ3QgdXNpbmcgbGlidG9vbHMgZGxvcGVuIHN1cHBvcnQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8KICAgY29uZmlndXJlIGZvciBpdAoKMjAwNy0wNi0wNiAxMjozNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IEFJWDogdXNlICItV2wsLWJydGwiIHdoZW4gY29tcGlsaW5nIHdpdGggZ2NjCgoyMDA3LTA2LTA2IDEwOjI2ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVtb3ZlIHRoZSB1bnVzZWQgdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFYuCiAgIFRoZSBQZXJsX2V2YWxfcHYgZnVuY3Rpb25zIGFyZSBoYW5kbGVkIGJ5IHRoZQogICBIQVZFX1BFUkxfRVZBTF9QVl9bVUxdQyBkZWZpbmVzLAogICB0aGlzIG9uZSBpcyBuZXZlciBzZXQgYnkgb3VyIGNvbmZpZ3VyZSBzY3JpcHQuCgoyMDA3LTA2LTA2IDEwOjIwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRW5zdXJlIG91dHB1dCBpcyBwcm9wZXJseSBkaXJlY3RlZCB0byBzeXNsb2cuCiAgIE90aGVyd2lzZSwgcHJvYmxlbXMgaW4gdGhlIGNvbmZpZyBlbnZpcm9ubWVudCBjYW4gdHJpZ2dlcgogICBlcnJvcnMgYmVpbmcgZGlyZWN0ZWQgdG8gc3RkZXJyLCBhbmQgc3Vic2VxdWVudCBsb2dnaW5nCiAgIG91dHB1dCBnZXRzIGxvc3QuCgoyMDA3LTA2LTA2IDEwOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNb3JlIGhlbHBmdWwgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMDYtMDYgMDU6NTMgIG1hZ2ZyCgogICAqICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgQ0hBTkdFUzogbWlzYzogRG9uJ3QgdXNlIHRoZSBsZWdhY3kgc3ltYm9sCiAgIFNOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAoKMjAwNy0wNi0wNSAxNzo0OSAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgZXhwbGljaXQgZGVmaW5pdGlvbnMgb2YgaXRlbXMgdGhhdAogICBhdXRvaGVhZGVyIGFsc28gZGVmaW5lcwoKMjAwNy0wNi0wNSAxNTo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTcyOTYyOTogRml4IG1lbW9yeSBsZWFrIGluIGRpc21hbgogICBhZ2VudC4KCjIwMDctMDYtMDUgMTQ6NTIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFN1cHBvcnQgcGVyLXRyYXAgZm9ybWF0IHNwZWNpZmljYXRpb25zCgoyMDA3LTA2LTA1IDA2OjU3ICBtYWdmcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBORVdTOiBtaXNjOiBBZGQgY29uZmlnIHJlcmVhZGluZyBzdXBwb3J0IHRvIHRoZSBzdWJhZ2VudAogICBnZW5lcmF0ZWQgYnkgbmV0LXNubXAtY29uZmlnIC0tY29tcGlsZS1zdWJhZ2VudAoKMjAwNy0wNi0wNCAyMjoyOSAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFNpbXBsaWZ5IHRoZSBkZXRlY3Rpb24gb2YgbGlicmFyaWVzIG5lZWRlZCBmb3IKICAgZ2V0aG9zdGJ5bmFtZQoKMjAwNy0wNi0wNCAyMjowNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIHNubXBfc2Vzc19hZGRfZXggdG8gY29uc2lzdGVudGx5IGNsb3NlIGFuZAogICBkZWxldGUgdGhlIHRyYW5zcG9ydCBhcmd1bWVudCBvbiBmYWlsdXJlLCBlYXJsaWVyIHRoZSBsaXZlbmVzcyBvZgogICB0aGUgdHJhbnNwb3J0IGFyZ3VtZW50IHdhcyB1bmRlY2lkZWQuCgoyMDA3LTA2LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgZGlzdC9tYWtlcmVsZWFzZSwgdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Q6IHN1cHBvcnQgYSAtbiBmbGFnIHRvIFJVTlRFU1RTIHRvIHByaW50IHRoZSB0ZXN0CiAgIG51bWJlciBmb3VuZCBpbiB0aGUgdGVzdCBmaWxlIGFzIG9wcG9zZWQgdG8gdGhlIG51bWVyaWNhbCBjb3VudAoKMjAwNy0wNi0wNCAxMzowOSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzNzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogTW92ZQogICB2YXJpYWJsZSBkZWNsYXJhdGlvbiBhdCB0aGUgdG9wIG9mIG5ldHNubXBfdWRwX3NlbmR0bwoKMjAwNy0wNi0wNCAxMjo1MiAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzMzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWFrZSBzdXJlCiAgIHR5cGUgbmZkc190IGlzIGRlZmluZWQKCjIwMDctMDYtMDQgMTI6MTMgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzMDogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkCiAgIGNvbmZpZ3VyZSBjaGVjayBmb3IgZ2FpX3N0cmVycm9yKCkKCjIwMDctMDYtMDQgMTA6MzUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjI2OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtYWtlIHN1cmUKICAgSUZfTkFNRVNJWkUgaXMgZGVmaW5lZAoKMjAwNy0wNi0wNCAxMDoyOCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIyMzogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkCiAgIGNvbmZpZ3VyZSBjaGVjayBmb3IgbmV0bGluayBzb2NrZXQKCjIwMDctMDYtMDQgMDk6NDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhbHNvIHNraXAgdGhpcyB0ZXN0IG9uIElSSVg2NAoKMjAwNy0wNi0wMiAxNjoxMyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4IGNvbXBpbGF0aW9uIG9uIElSSVgKCjIwMDctMDYtMDIgMDg6MjQgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBhcGk6IERvIG5vdCB1c2UgZ2V0c2VydmJ5bmFtZSB0byBmaW5kIGRlZmF1bHQgcG9ydAogICBudW1iZXJzLCBqdXN0IGhhcmRjb2RlIHRoZW0gYW5kIGxldCB0aGUgdXNlciBvdmVycmlkZSB0aGVtIGlmCiAgIG5lZWRlZC4KCjIwMDctMDYtMDEgMjI6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogTGluayBsaWJkbCBhZ2FpbnN0IGxpYm5ldHNubXBtaWJzIGluc3RlYWQgb2YKICAgc25tcGQuCiAgIEZpeGVzIHRoZSBidWlsZCBvbiAoc29tZSkgU29sYXJpcyBzeXN0ZW1zLgoKMjAwNy0wNi0wMSAyMjozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTCBjb25maWd1cmUgY2hlY2sgb24gSVJJWAogICAocmVncmVzc2lvbiBmcm9tIHIxNjQ1MSkKCjIwMDctMDYtMDEgMTQ6MzMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IFdpdGhkcmF3IGRlcHJlY2F0ZWQgb3B0aW9ucy4KICAgKFRocmVlIGFuZCBhIGhhbGYgeWVhcnMnIHdhcm5pbmcgc2hvdWxkIGJlIGVub3VnaCBmb3IgYW55b25lISkKCjIwMDctMDUtMzEgMjM6NTEgIHRhbmRlcnMKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IExpbmsgbGlia3ZtIGFuZCBsaWJ3cmFwIHRvIGxpYm5ldHNubXBhZ2VudAogICBpbnN0ZWFkIG9mIHNubXBkLgogICBGaXhlcyB0ZXN0ICM0NCAoUGVybCBzdWJhZ2VudCkgb24gc3lzdGVtcyB1c2luZyBvbmUgb2YgdGhvc2UKICAgbGlicmFyaWVzLgoKMjAwNy0wNS0zMSAyMzo0MiAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1vdmUgc3lzT1JMYXN0Q2hhbmdlIGZyb20gbWliSUkvc3lzdGVtX21pYiB0bwogICBtaWJJSS9zeXNPUlRhYmxlIGluIG9yZGVyIHRvIGtlZXAgdGhlIGRhdGEgYW5kIHRoZSB1c2UgdG9nZXRoZXIuCgoyMDA3LTA1LTMxIDE0OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBsb2dnaW5nIG9mIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uLgoKMjAwNy0wNS0zMSAxMDoxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBSZW1vdmUgYm9ndXMgZGVidWcgb3V0cHV0LgoKMjAwNy0wNS0zMSAwOTo0OCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgY29kZS4KCjIwMDctMDUtMzEgMDk6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZFQVRVUkU6IDExNTk5NDc6IEFsbG93IGNvbnRyb2wgb2YgdHJhcGhhbmRsZQogICBkYXRhIGZvcm1hdAoKMjAwNy0wNS0zMCAyMjo1MyAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBlcmwvQVNOL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL09JRC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogQUlYOiBidWlsZCBmaXhlcyBmb3IgZW1iZWRkZWQgUGVybAoKMjAwNy0wNS0zMCAyMjozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEhQLVVYIDExLnggYW5kIElSSVggNi41IGJ1aWxkIGZpeCAocmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5CiAgIHIxNjQ1MSkKCjIwMDctMDUtMjkgMjM6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogbWFrZSB1c2Ugb2YgQUNfUFJPR19TRUQvQUNfUFJPR19HUkVQIGFuZCAvIHRvCiAgIGZ1cnRoZXIgbWluaW1pemUgc2VkL2dyZXAgcHJvYmxlbXMKCjIwMDctMDUtMjkgMjI6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSB0aGUgZGVmYXVsdF90YXJnZXQgYXJndW1lbnQgaWYgaXQgaXMKICAgbm9uLU5VTEwsIG5vdCBpZiBpdCBpcyBOVUxMLgoKMjAwNy0wNS0yOSAxMDozMCAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgbW9yZSBuZXQtc25tcCBzcGVjaWFscyBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdHMgdG8gZWFzZSBtYWludGVuYW5jZS4KICAgQWxzbyBjaGFuZ2UgcmVjZW50bHkgYWRkZWQgU1RSVUNUX1NPQ0tBRERSX1NUT1JBR0VfSEFTX1NTX0ZBTUlMWS4KCjIwMDctMDUtMjkgMTA6MjcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgcmVjZW50IG1mZCByZXdyaXRlcwoKMjAwNy0wNS0yOSAxMDoyMiAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgbW9yZSBuZXQtc25tcCBzcGVjaWFscyBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdHMgdG8gZWFzZSBtYWludGVuYW5jZS4KICAgQWxzbyBjaGFuZ2Ugd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggZm9yIGNvbnNpc3RlbmN5LgoKMjAwNy0wNS0yOCAyMzozMCAgbWFnZnIKCiAgICogIFBPUlRJTkcsIGFjY29uZmlnLmgsIGFjaW5jbHVkZS5tNCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgCiAgICAgICBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgoKMjAwNy0wNS0yOCAxNjozMSAgZHRzMTIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogMTQwNzQ3NjogUmVuYW1lICdzdHJpY3RDb21tZW50VGVybScKICAgdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGJlaGF2aW91ci4KCjIwMDctMDUtMjggMTU6MjUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiAxMDQxODg4OiBDaGVjayBkaXJlY3RvcnkgcGF0aHMgZm9yCiAgIGNvbmZpZyBmaWxlcy4KCjIwMDctMDUtMjggMTM6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiA4NTE4ODc6IFJlcG9ydCByYW5nZSBpbmZvcm1hdGlvbiBmb3IKICAgaW52YWxpZCBTRVQgcmVxdWVzdHMuCgoyMDA3LTA1LTI4IDEyOjA4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE3MTk3MzA6IGZyb20gYXBlcnNzb246IHN1cHBvcnQgZm9yCiAgIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQgaXBBZGRyZXNzVGFibGUKICAgUGFydCAyIChTb2xhcmlzLXNwZWNpZmljIG5ldyBmaWxlcykKCjIwMDctMDUtMjggMTI6MDIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmg6CgogICBORVdTOiBMaW51eDogUEFUQ0g6IDE3MjQ2MDI6IGZyb20gbWl0c3VydV9jaGluZW46IG1mZC1iYXNlZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZSBpbXBsZW1lbnRhdGlvbgoKMjAwNy0wNS0yOCAxMjowMCAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9lbnVtcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX29pZHMuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDExOjU5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICBORVdTOiBMaW51eDogUEFUQ0g6IDE3MjQ2MDI6IGZyb20gbWl0c3VydV9jaGluZW46IG1mZC1iYXNlZAogICBpcERlZmF1bHRSb3V0ZXJUYWJsZSBpbXBsZW1lbnRhdGlvbgoKMjAwNy0wNS0yOCAxMDowOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBEb2N1bWVudCB0aGUgLUNFIG9wdGlvbi4KCjIwMDctMDUtMjcgMjE6NDIgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBTb21lIGxhbWUgbGlua2VycyAoZS5nLiBvbiBIUC1VWCAxMS4yMy9JQTY0KSBuZWVkIHF1aXRlIGEgYml0IG9mCiAgIGhlbHAgdG8gc3VjY2Vzc2Z1bGx5IGxpbmsgdGhlIFBlcmwgbW9kdWxlcy4KCjIwMDctMDUtMjcgMjE6MzMgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIENIQU5HRVM6IHNubXB3YWxrOiBQQVRDSDogMTcyMzYyMDogU3BlY2lmeSBhbiBleHBsaWNpdCBlbmQtcG9pbnQKICAgZm9yIHRoZSB3YWxrLgogICBBbiBhbHRlcm5hdGl2ZSAobW9yZSBmbGV4aWJsZSkgYXBwcm9hY2ggdG8gdGhlIHByb3Bvc2VkIHBhdGNoLAogICBidXQgb25lIHRoYXQKICAgcHJvdmlkZXMgZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5LiBBbHNvIGFkZHJlc3NlcyBGZWF0dXJlIFJlcXVlc3QKICAgIzcyMjc4NC4KCjIwMDctMDUtMjcgMjA6NTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGQgZGVzY3JpcHRpb25zIHRvIEFDX0RFRklORTsgZHJvcCBvYnNvbGV0ZSBBQ19DSEVDS19MSUIobSwKICAgYXNpbikuCgoyMDA3LTA1LTI3IDE5OjI4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDQ1NDAyODogRGV0ZWN0IGVtcHR5IE1JQiBpbmRleCBmaWxlcy4KCjIwMDctMDUtMjcgMTk6MDYgIGR0czEyCgogICAqICBhZ2VudC9zbm1wZC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBGRUFUVVJFUzogMTAxOTQyOTogU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIHZpYQogICBpbml0Z3JvdXBzKDMpCgoyMDA3LTA1LTI3IDA2OjI3ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE3MTk3MzA6IGZyb20gYXBlcnNzb246IHN1cHBvcnQgZm9yCiAgIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQgaXBBZGRyZXNzVGFibGUKCjIwMDctMDUtMjcgMDY6MjAgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIGdyYW1tYXIgZml4CgoyMDA3LTA1LTI2IDE2OjQxICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9idWlsZC5wbCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzIgSVB2NiBidWlsZCBmaXhlcy4gSVB2NiBub3cgcmVxdWlyZXMgUFNESy4KCjIwMDctMDUtMjYgMTU6MTYgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJUHY2IGJ1aWxkIGZpeGVzIGZvciBidWlsZC5iYXQsIENvbmZpZ3VyZSBhbmQgUkVBRE1FLndpbjMyLgoKMjAwNy0wNS0yNSAyMzowMyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4LCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnRydTY0OgoKICAgRG9jdW1lbnRhdGlvbiB1cGRhdGUgdy5yLnQuIHJlY2VudCBjaGFuZ2VzIChtaWJJSS9pcHY2IGFuZCBBSVgKICAgc2hhcmVkIGxpYnJhcnkgYnVpbGRpbmcpLgoKMjAwNy0wNS0yNSAxODo1NCAgcnN0b3J5CgogICAqIGRpc3QvY3Zzc2hvdzoKCiAgIHVwZGF0ZSBmb3IgbmV3IHVybCBmb3JtYXQgaW4gc3ZuIGVudHJpZXMKCjIwMDctMDUtMjUgMTU6MjggIHRhbmRlcnMKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgU29tZSBzeXN0ZW1zIChlLmcuIEhQLVVYIDExLjIzL0lBNjQpIGN1cnJlbnRseSBzdGlsbCBuZWVkCiAgICJuZXQtc25tcC1jb25maWcgLS1saWJzIiAoaW5zdGVhZCBvZiBqdXN0IC0tbmV0c25tcC1saWJzKSBmb3IKICAgbGlua2luZwogICBsaWJuZXRzbm1wIHRvIGEgUGVybCBtb2R1bGUuCgoyMDA3LTA1LTI0IDIzOjU1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IG9ubHkgZW5hYmxlIG1pYklJL2lwdjYgdGhyb3VnaCAtLWVuYWJsZS1pcHY2IG9uCiAgIHN5c3RlbXMgaXQgYnVpbGRzIHByb3Blcmx5IG9uIChMaW51eCBhbmQgKkJTRCkKCjIwMDctMDUtMjQgMjM6MTUgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgU29tZSBzeXN0ZW1zIChlLmcuIEhQLVVYIDExLjIzL0lBNjQpIGN1cnJlbnRseSBzdGlsbCBuZWVkCiAgICJuZXQtc25tcC1jb25maWcgLS1saWJzIiAoaW5zdGVhZCBvZiBqdXN0IC0tbmV0c25tcC1saWJzKSBmb3IKICAgbGlua2luZyBsaWJzbm1wYWdlbnQgdG8gYSBQZXJsIG1vZHVsZS4KCjIwMDctMDUtMjQgMjI6MDEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIENvcnJlY3Qgb2J2aW91c2x5IGJyb2tlbiB1c2Ugb2YgdGhlIEtMT09LVVAgbWFjcm8gdG8gYmUKICAgY29uc2lzdGVudCBhdCBsZWFzdAoKMjAwNy0wNS0yNCAyMDo1MSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNy5oOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogYWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdXBjb21pbmcgRnJlZUJTRCA3CgoyMDA3LTA1LTI0IDE0OjA2ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCBsaWJjdXJyZW50IHRvIDIwIHRvIGxlYXZlIHNwYWNlIGZvciA1LjQueCByZWxlYXNlcwoKMjAwNy0wNS0yNCAxMjo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBsaWJyYXJ5IGxpbmtpbmcgb24gSFAtVVggMTEuMjMvSUE2NAoKMjAwNy0wNS0yMyAxOTowNSAgdGFuZGVycwoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBhZ2VudC9NYWtlZmlsZS5pbiwgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuaW4sIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IEJVRzogMTYxOTgyNzogbGluayBuZXQtc25tcCBsaWJyYXJpZXMgYW5kIGJpbmFyaWVzCiAgIGFnYWluc3QgdGhlIG5ldC1zbm1wIGxpYnJhcmllcyB0aGV5IHJlYWxseSBkZXBlbmQgb24KICAgLSByZWZsZWN0IGxpYnJhcnkgaW50ZXJkZXBlbmRlbmNpZXMgYXQgbGluayB0aW1lCiAgIC0gZml4IGRlcGVuZGVuY2llcyBvbiBsaWJjcnlwdG8sIGxpYnBrY3MxMSBhbmQgbGlia3N0YXQKICAgLSBpbnN0YWxsIGxpYnJhcmllcyBpbiBjb3JyZWN0IG9yZGVyIChpbXBvcnRhbnQgZm9yIGxpYnRvb2wKICAgcmVsaW5raW5nKQogICBORVdTOiBQZXJsOiBsaW5rIFBlcmwgbW9kdWxlcyBhZ2FpbnN0IHRoZSBleGFjdCBzZXQgb2YgbGlicmFyaWVzCiAgIHRoZXkgZGVwZW5kIG9uCgoyMDA3LTA1LTIyIDE2OjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIHN2biBleHBvcnQgaW5zdGVhZCBvZiBjaGVja291dAoKMjAwNy0wNS0yMiAwMDowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpZ25vcmUgd2luRXh0RExMIGluIGNvbW1lbnQgY2hlY2sKCjIwMDctMDUtMjEgMjM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jOgoKICAgLy8gLT4gQyBjb21tZW50CgoyMDA3LTA1LTIxIDIzOjMzICB0YW5kZXJzCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4xMC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOS5oOgoKICAgc3luYyB3aXRoIDUuNCwgdGhlc2UgYXJlIG9ic29sZXRlIG5vdwoKMjAwNy0wNS0yMSAyMzoxMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogRGlzYWJsZSBpbmxpbmluZyBvbiBzb2xhcmlzIGFzIHRoZXJlIGFyZSBzb21lCiAgIGxpbmtpbmcgZXJyb3JzIHRoYXQgc2hvdyB1cCBpZiB0aGUgaW5saW5lIHN1cHBvcnQgaXMgbGVmdAogICBlbmFibGVkLgoKMjAwNy0wNS0yMSAwNjowNSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQXQgbGVhc3QgU3VuIEMgNS43IGZhaWxzIGlmIG9uZSB0cmllcyB0bwogICBhY2Nlc3MgX19mdW5jX18gaW4gYSBleHRlcm4gaW5saW5lIGZ1bmN0aW9uLCBzbyB0ZXN0IGZvciB0aGF0CiAgIGNhc2UuCgoyMDA3LTA1LTIwIDIxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IEJVRzogMTYxOTgyNzogbGluayBhZ2FpbnN0IG5lZWRlZCBleHRlcm5hbAogICBsaWJyYXJpZXMgYXQgbGlicmFyeSBsaW5rIHRpbWUgKHdoZXJlIHRoZXkgYXJlIHJlZmVyZW5jZWQpLAogICByYXRoZXIgdGhhbiBhcHBsaWNhdGlvbiBsaW5rIHRpbWUuCiAgIEFscmVhZHkgY292ZXJzIG1vc3Qgb2YgbGlibmV0c25tcG1pYnMnIGV4dGVybmFsIGRlcGVuZGVuY2llcy4KICAgRml4ZXMgYnVpbGQgaXNzdWVzIG9uIHNvbWUgcGxhdGZvcm1zIChlLmcuIGJ1aWxkaW5nIHdpdGggc2hhcmVkCiAgIGxpYnJhcmllcyBvbiBBSVgpLiBUZXN0ZWQgb24gZGlmZmVyZW50IHZlcnNpb25zIG9mIExpbnV4LAogICBTb2xhcmlzLCBIUC1VWCwgQUlYIGFuZCBJUklYLgoKMjAwNy0wNS0xOSAxNToyNyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IENoZWNrIGZvciBzdXBwb3J0IG9mIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zCiAgIGluc3RlYWQgb2YgbmVzdGVkIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIHdoZW4gZGV0ZXJtaW5pbmcgaWYKICAgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgd29yawoKMjAwNy0wNS0xOSAwODo0MCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB1c2Ugb2YgdGhlIEM5OSBwcmVkZWZpbmVkIHZhcmlhYmxlCiAgIF9fZnVuY19fIGluIGFkZGl0aW9uIHRvIHRoZSBHQ0Mgc3ltYm9sIF9fRlVOQ1RJT05fXyB0byBnZXQgdGhlCiAgIG5hbWUgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24KCjIwMDctMDUtMTggMTg6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzIxMDk2OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiByZW1vdmUKICAgdW51c2VkIHZhcmlhYmxlIHN0YXRzIGZyb20ga2VybmVsIGV4dHJhY3Rpb24gZm9yIGJldHRlcgogICBwb3J0YWJpbGl0eS4KCjIwMDctMDUtMTggMTg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzE5MjU0OiBmcm9tICJDaHJpc3RhbiBKdW5nIjogdXBkYXRlCiAgIEhSRlNfaWdub3JlIGxpc3QgdG8gY3VycmVudCBsaW51eCBsaWtlbHlob29kcwoKMjAwNy0wNS0xOCAxODowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MTkyNTM6IGZyb20gIkNocmlzdGlhbiBKdW5nIjogZml4CiAgIHNraXBORlNJbkhvc3RSZXNvdXJjZXMgc28gaXQgZG9lcyBub3QgYnJlYWsgb24gdGhlIHNlY29uZCB3YWxrIG9mCiAgIHRoZSB0YWJsZS4KCjIwMDctMDUtMTggMTc6NTUgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZXJhbiBhdXRvaGVhZGVyIGFuZCBhZGp1c3RlZCBhY2NvbmZpZy5oIGFmdGVyIGNoYW5nZXMgaW4gcjE2Mzg3CgoyMDA3LTA1LTE4IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTU0MDY6IGZyb20gbWl0c3VydV9jaGluZW46IHJlZ2lzdHJhdGlvbgogICBvcmRlcmluZyBmaXhlcyBmb3IgaWNtcFN0YXRzVGFibGUKCjIwMDctMDUtMTggMTc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxNTM5NTogZml4IGljbXAgdGFibGUgZXJyb3JzIGluIG5ldyBpY21wCiAgIGNvZGUKCjIwMDctMDUtMTggMTc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIAoKMjAwNy0wNS0xOCAxNTowNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IEFJWDogZml4IGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgYnVpbGRpbmcgaW5zdGVhZCBvZiBmb3JjaW5nCiAgIHN0YXRpYwoKMjAwNy0wNS0xOCAxNDoxOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX0NIRUNLX01FTUJFUlMgaW5zdGVhZCBvZgogICBBQ19DSEVDS19TVFJVQ1RfRk9SIHdoZW4gY2hlY2tpbmcgZm9yIHN0cnVjdCBpcHN0YXQgbWVtYmVycyBpbgogICBvcmRlciB0byBtYWtlIGNvbmZpZ3VyZS5pbiBzbWFsbGVyCgoyMDA3LTA1LTE4IDEwOjIyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBDb3JyZWN0IHRoZSBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGZvcgogICBob3N0L2hyX3N0b3JhZ2UKCjIwMDctMDUtMTggMDk6NTcgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBEbyBub3QgdGVybWluYXRlIG9uIFNJR0NITEQgc2luY2UgZGFzaCBhbmQKICAgc291bWUgYm91cm5lIHNoZWxscyB3aWxsIGV4aXQgdGhlIG1haW4gc2hlbGwgd2hlbiBhIHN1YnNoZWxsCiAgIHRlcm1pbmF0ZXMgaW4gdGhhdCBjYXNlLgoKMjAwNy0wNS0xOCAwOToyMiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFVuZG9pbmcgYWNjaWRlbnRhbCBjaGFuZ2UgY29tbWl0dGVkIGluIHIxNjM3My4KCjIwMDctMDUtMTcgMjM6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzM3OiBJbXBsZW1lbnQgX3Nlc3Nfb3BlbiBpbiB0ZXJtcwogICBvZiBzbm1wX3Nlc3NfYWRkCgoyMDA3LTA1LTE3IDIyOjE2ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYyMDQyNDogRml4IG5vdGlmaWNhdGlvbiBzZW5kaW5nIHNvIHRoYXQKICAgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiBvZiBwb3J0IDE2MiBzaG91bGQgYmUgdW5uZWNlc3NhcnkKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTYyMDQyNDogRml4IG5vdGlmaWNhdGlvbiByZWNlcHRpb24gc28KICAgdGhhdCBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBhcHBzOiBQQVRDSDogMTYyMDQyNDogRml4IG5vdGlmaWNhdGlvbiBzZW5kaW5nIHNvIHRoYXQKICAgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiBvZiBwb3J0IDE2MiBzaG91bGQgYmUgdW5uZWNlc3NhcnkKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MjA0MjQ6IEhvbm9yCiAgIE5FVFNOTVBfRFNfTElCX0RFRkFVTFRfUE9SVCBvdmVyIHRoZSBkZWZhdWx0IHN5c3RlbQoKMjAwNy0wNS0xNyAyMTo1MyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxMDYzMjogZnJvbSBtYXZhcmxleTogZml4IG1lbW9yeSBsZWFrIG9uCiAgIGJyb2tlbiBjb250YWluZXIgaW5zZXJ0aW9ucyBmb3IgdGhlIGlwQWRkcmVzc1RhYmxlCgoyMDA3LTA1LTE3IDE4OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTcxOTI0NDogZml4IG1mZCBnZW5lcmF0aW5nIG1hcCBmdW5jdGlvbgoKMjAwNy0wNS0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaDogMTcwODI0MzogZnJvbSBuaG9ybWFuOiBpbXBsZW1lbnQgdGhlCiAgIGlwRGVmYXVsdFJvdXRlVGFibGUgb24gbGludXgKCjIwMDctMDUtMTcgMTY6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IHBvcnRzOiBwYXRjaDogMTcwNjM0NDogZnJvbSBuYXlsb3I6IGZpeCBjb21waWxhdGlvbiB3aXRoCiAgIGN5Z3dpbgoKMjAwNy0wNS0xNyAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzAwMTU3OiBmcm9tIGFmcmlrYTogZml4ZXMgb3JkZXJpbmcgb2YgZXhlYwogICB0b2tlbnMgaW4gdGhlIHJlc3VsdGluZyBtaWIgdHJlZQoKMjAwNy0wNS0xNyAxNTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE2MTcyNTU6IGZpeCBsZW5ndGggb2YgdGhlIGhpc3RvcnkgYXJyYXkKICAgdG8gbWF0Y2ggY29kZS4KCjIwMDctMDUtMTcgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDEyMjU0NDA6IEFwcGx5IGludGVudCBvZiBwYXRjaDogdG8gZGVsYXkKICAgc2lnaHVwIHRpbGwgaXQgaXMgc2FmZS4KICAgQ0hBTkdFUzogc25tcHRyYXBkOiBwYXRjaDogMTIyNTQ0MDogQXBwbHkgaW50ZW50IG9mIHBhdGNoOiB0bwogICBkZWxheSBzaWdodXAgdGlsbCBpdCBpcyBzYWZlLgoKMjAwNy0wNS0xNyAxMzozNSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgY29uZmlnX2Vycm9yIGluc3RlYWQgb2YgY29uZmlnX3JlcXVpcmUgb2YKICAgYSBib2d1cyBmaWxlLyNlcnJvciB0byBnZW5lcmF0ZSBlcnJvciBtZXNzYWdlcyBhdCBjb25maWd1cmUgdGltZS4KCjIwMDctMDUtMTcgMDQ6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAxNjQ1Njk4OiBmaXggNjQtYml0IHNpZ25lZCBpbnRlZ2VyCiAgIGVuY29kaW5nCgoyMDA3LTA1LTE2IDIzOjUzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIENIQU5HRVM6IEhQLVVYOiBIUC1VWCBuZWVkcyBfUkVFTlRSQU5UIGRlZmluZWQgdG8gcGljayB1cAogICBzdHJ0b2tfci4KICAgT3RoZXJ3aXNlLCBhdCBsZWFzdCBmb3IgNjQtYml0IGNvZGUsIHN0cnRva19yIHdpbGwgbm90IHdvcmsKICAgYW5kIHdpbGwgbWFrZSBuZXQtc25tcCBzZWdmYXVsdC4KCjIwMDctMDUtMTYgMjM6MzkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggcGF0Y2ggMTYyNTA2OSAocjE2MzY1KSB0byBub3QgYnJlYWsgdGhlIGJ1aWxkIG9uIFNvbGFyaXMKICAgMi42LzcKCjIwMDctMDUtMTUgMTc6MzMgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgLSBhZGQgd2FybmluZyBpZiBzdGFyIG5vdCBhdmFpbGFibGUKICAgLSBmaXggcGF0dGVybiB0byBleGNsdWRlIC5zdm4gZGlycyBmcm9tIHRhcmJhbGxzCgoyMDA3LTA1LTE1IDE1OjU1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHdhcm4gaWYgc3RhciBub3QgYXZhaWxhYmxlCgoyMDA3LTA1LTE1IDE0OjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgZml4IHR5cG8KCjIwMDctMDUtMTQgMjE6NDkgIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIENGTEFHUyB0byBsaW5rIGxpbmUKCjIwMDctMDUtMTQgMjE6NDggIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIENGTEFHUyB0byBsaW5rIGxpbmUKCjIwMDctMDUtMTQgMTU6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNjI1MDY5OiBzcGVlZCBpbXByb3ZlbWVudHMgZm9yIHNvbGFyaXMKICAgcm91dGluZyB0YWJsZSBhY2Nlc3MKCjIwMDctMDUtMTQgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTU5NTU2ODogZnJvbSBjeXJpbF9tYXJnYXJpYTogZml4CiAgIGRlbGVnYXRlZCBTRVQgcmVxdWVzdHMgZnJvbSBhZ2VudHggc3ViYWdlbnRzCgoyMDA3LTA1LTE0IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIHRvIHBvaW50IHRvIHdpa2kgYW5kIGEgZmV3IG1vcmUgY3ZzIC0+IHN2biBjaGFuZ2VzCgoyMDA3LTA1LTEzIDE0OjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVhZCB0aGUgY29uZmlnIHBhcmFtZXRlcnMgZGVmVGFyZ2V0IGFuZAogICBkZWZEb21haW4gZnJvbSBzbm1wLmNvbmYgYXMgd2VsbCBhcyBmcm9tIDxhcHBsaWNhdGlvbj4uY29uZgoKMjAwNy0wNS0xMiAxMToxNyAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERlYWxsb2NhdGUgdGhlIF9taWJpbmRleGVzIGNhY2hlIGluCiAgIHNodXRkb3duX21pYiB0byBtYWtlIGZvciBhIGNsZWFuZXIgZXhpdCBvZiB0aGUgbGlicmFyeQoKMjAwNy0wNS0xMiAxMToxNCAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERlYWxsb2NhdGUgdGhlIGNvbmZtaWJzIGFuZCBjb25mbWliZGlycwogICB2YXJpYWJsZXMgaW4gc2h1dGRvd25fbWliIHRvIG1ha2UgZm9yIGEgY2xlYW5lciBleGl0IG9mIHRoZQogICBsaWJyYXJ5CgoyMDA3LTA1LTExIDIxOjA2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjg3MzM2OiBTdGFydCB1c2luZyB0aGUgZW5oYW5jZWQKICAgcmVhZF9jb25maWcgaW50ZXJmYWNlCgoyMDA3LTA1LTExIDIwOjMzICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMiBvZiB0aGUgcGF0Y2ggLSBXaGVuIHJlZ2lzdGVyaW5nCiAgIG11bHRpcGxlIHByZW1pYiBoYW5kbGVycyBvbmx5IHRoZSBsYXN0IG9uZSB3YXMgcmVnaXN0ZXJlZCBwcmVtaWIsCiAgIHRoZSBvdGhlcnMgd2VyZSByZWdpc3RlcmQgYXQgdGhlIG5vcm1hbCB0aW1lLiBUaGlzIHBhdGNoIHB1dHMgYWxsCiAgIHJlZ2lzdHJhdGlvbiBpbiBvbmUgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgcHJvYmxlbWF0aWMgdmFsdWUgYXMKICAgYW4gYXJndW1lbnQgYW5kIG1ha2VzIHRoZSBvbGQgZnVuY3Rpb25zIHRoaW4gd3JhcHBlcnMgb2YgdGhlIG5ldwogICBvbmUKCjIwMDctMDUtMTEgMjA6MjQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRTogc25tcGxpYjogUEFUQ0ggMTY4NzMyOTogQXBwbGllZCBwYXJ0IDMgb2YgdGhlIHBhdGNoIC0gdXNlCiAgIHRoZSBzYW1lIGFsZ29yaXRobSB0byBkZXRlcm1pbmUgd2hhdCB0byB1bnJlZ2lzdGVyIGFzIGlzIHVzZWQgdG8KICAgZGV0ZXJtaW5lIHdoYXQgdG8gcmVnc3RlcgoKMjAwNy0wNS0xMSAxNjozMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBEb24ndCBsb2cgaG9zdC9ocl9wcm9jIGV2ZW50cyBpbiB0aGUgc25tcGQgZG9tYWluCgoyMDA3LTA1LTExIDE2OjI3ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIERlY29yYXRlIG1vcmUgZGVidWcgbGluZXMgd2l0aCB0aGUgdGFnIHRoYXQgY29udHJvbHMgdGhlIGxvZwoKMjAwNy0wNS0xMSAxNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjI4NjEzOiBSZXN0b3JlIG1lbVRvdGFsRnJlZS4wIG9uIFNvbGFyaXMKCjIwMDctMDUtMTAgMjE6NTIgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW4sIHB5dGhvbi9zZXR1cC5weToKCiAgIE5FV1M6IHB5dGhvbjogUEFUQ0g6IDE3MTYxMTQ6IExldCBweXRob24gYnVpbGQgaW4gc291cmNlIHRyZWUKICAgUGF0Y2ggcHJvdmlkZWQgYnkgSm9jaGVuIEZyaWVkcmljaCAoRGViaWFuIHBhdGNoICMzOCkuCgoyMDA3LTA1LTEwIDA1OjE4ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMSBvZiB0aGUgcGF0Y2ggLSBsZXNzZW5zIHRoZSBzY29wZSBvZgogICB0aGUgbHRtcDIgdmFyaWFibGUKCjIwMDctMDUtMDkgMjM6NTcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBkb2N1bWVudCBvcHRpbWl6ZWQgSVJJWCBjcHUgc3RhdHMKCjIwMDctMDUtMDkgMjM6NDkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmg6CgogICBORVdTOiBpcml4OiBQQVRDSDogMTcwOTc0ODogT3B0aW1pemVkIElSSVggY3B1IHN0YXRzCgoyMDA3LTA1LTA5IDIxOjIzICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXBkYXRlIHRvIHNob3cgc3ZuIHJlcG8gdG9vCgoyMDA3LTA1LTA5IDE1OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGljbXBTdGF0c1RhYmxlIGlzIG9ubHkgaW1wbGVtZW50ZWQgZm9yIExpbnV4CgoyMDA3LTA1LTA4IDE5OjQ4ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZXZlcnQgbWlzdGFrZW5seSBjb21taXR0ZWQgZXh0cmEgdHJhY2UgbG9ncwoKMjAwNy0wNS0wNyAyMDo0NiAgaGFyZGFrZXIKCiAgICogIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB1cGRhdGUgYWdlbnQ6OmRlZmF1bHRfc3RvcmUgcGVybCBtb2R1bGUgZm9yIG5ldyBkZWZzCgoyMDA3LTA1LTA3IDIwOjI0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgbW9yZSBzdm4gY29udmVyc2lvbiBmaXhlcwoKMjAwNy0wNS0wNyAyMDoyMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE5FV1M6IHNubXBkOiBCVUc6IDE3MTI5ODg6IGRlZmF1bHQgYW5kIGNvbmZpZ3VyYWJsZSBtYXhpbXVtCiAgIG51bWJlciBvZiB2YXJiaW5kcyByZXR1cm5hYmxlIHRvIGEgR0VUQlVMSyByZXF1ZXN0CgoyMDA3LTA1LTA3IDIwOjA1ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgcmVuYW1lIG9mIGJyYW5jaCBkaXJzCgoyMDA3LTA1LTA3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYXR0ZW1wdGVkICh1bnRlc3RlZCkgdXBkYXRlCgoyMDA3LTA1LTA3IDEzOjU1ICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIGRvbid0IGRlbGV0ZSB0YXJiYWxsIGlmIHNjcCBmYWlscwoKMjAwNy0wNS0wNCAyMDoyNyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBTTk1QIFNFVCBmb3IgSVAgYWRkcmVzc2VzIG9uIDY0LWJpdAoKMjAwNy0wNS0wNCAxMDoyMiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgZHJhZ29uZmx5LmgKCjIwMDctMDUtMDMgMjM6MDEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5Lmg6CgogICBDSEFOR0VTOiBCVUc6IDE3MTA5MTA6IGluaXRpYWwgc3VwcG9ydCBmb3IgRHJhZ29uRmx5IEJTRAoKMjAwNy0wNS0wMyAyMjoxMCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeCBTTk1QIFNFVCBmb3IgSVAgYWRkcmVzc2VzIG9uIDY0LWJpdAogICBQYXRjaCBwcm9wb3NlZCBieSBKZWZmIExhbmdlLgoKMjAwNy0wNS0wMyAxNjowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIGVhcmx5IEFJWCk6IHVzZSB1aW50MzJfdCBpLnMuby4gX191aW50MzJfdAoKMjAwNy0wNS0wMiAxMzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCBzaW5nbGUtbGluZSBleHRlbmQgc2NyaXB0cy4KCjIwMDctMDUtMDEgMTk6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIHRlc3QgZm9yIElGQV9GX1RFTVBPUkFSWSBiZWZvcmUgdXNpbmcKICAgLSByZW1vdmUgcmVkdW5kYW50IGlmZGVmCgoyMDA3LTA1LTAxIDExOjM0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBTdXBwb3J0IGZvciBmb3J3YXJkaW5nIHRyYXBzIGJ5IE9JRCBzdWJ0cmVlLgogICAoQ29uc2lzdGVudCB3aXRoIHN1YnRyZWUtYmFzZWQgc2NyaXB0IHByb2Nlc3NpbmcpLgoKMjAwNy0wNC0zMCAxNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDMwMDQ6IENvbnNvbGlkYXRlIHNubXA2IGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBOZWlsIEhvcm1hbiwgcGx1cyBzb21lIGV4dHJhIHRpZHlpbmcgdXAuCgoyMDA3LTA0LTMwIDE0OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMjM2NjogU3VwcG9ydCBmb3IgaWNtcFN0YXRzVGFibGUKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTmVpbCBIb3JtYW4KCjIwMDctMDQtMzAgMTQ6MzEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMjM2MTogUmVhZCBzdGF0cyBmcm9tIC9wcm9jL25ldC9zbm1wNgoKMjAwNy0wNC0zMCAxNDoxNCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4gSVB2NiBzdXBwb3J0IGlzIG5vdCBlbmFibGVkLgoKMjAwNy0wNC0zMCAxMzoyNiAgZHRzMTIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAwNzM3OiBUaWR5IHVwIHNldFNlcmlhbE5vCiAgIGltcGxlbWVudGF0aW9ucy4KCjIwMDctMDQtMzAgMTM6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAwNzMyOiBGaXggZGVidWcgb3V0cHV0IHN0YXRlbWVudHMuCgoyMDA3LTA0LTMwIDEzOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3MzA6IFJlbW92ZSB1bnVzZWQgZXh0ZXJuIGRlY2xhcmF0aW9uLgoKMjAwNy0wNC0zMCAxMTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjk4MTg0OiBSZWdpc3RlciBub24tZGVmYXVsdCBjb250ZXh0CiAgIGludGVnZXJzIGFzIHdyaXRhYmxlLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXJrIE5heWxvci4KCjIwMDctMDQtMzAgMTE6MjYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY5ODE3OiBJbXByb3ZlZCBSRkMgNDI5MyBzdXBwb3J0LgogICBJbmNsdWRlcyBub24tdW5pY2FzdCBhbmQgcmFuZG9tbHkgY2hvc2VuIElQIGFkZHJlc3Nlcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgVmFydW4gQ2hhbmRyYW1vaGFuCgoyMDA3LTA0LTMwIDExOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjkyNzY4OiBGaXggY29weWluZyBvZiBub24tb2N0ZXQtYWxpZ25lZAogICBJUCBhZGRyZXNzIHByZWZpeGVzLgoKMjAwNy0wNC0zMCAxMDo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3MDUxMTogSW1wbGVtZW50IG5ldHdvcmsgY29ubmVjdGlvbgogICBwcm9jZXNzIElEIG9iamVjdHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFZhcnVuIENoYW5kcmFtb2hhbgoKMjAwNy0wNC0zMCAxMDo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBGaXggZGVjbGFyYXRpb24gb2Ygc25tcF9zZXNzX3JlYWRfZXh0ZCgpCgoyMDA3LTA0LTMwIDEwOjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzI1OiBGaXggcHJvYmxlbSB3aXRoIG9wZXJhdG9yCiAgIHByZWNlZGVuY2UuCgoyMDA3LTA0LTMwIDEwOjIxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjg3MzE5OiBEZWNsYXJlIHNubXBfc2Vzc19yZWFkX2V4dGQoKQoKMjAwNy0wNC0zMCAxMDoxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTg6IE1ha2UgX3Nlc3Nfc2VscG9sX2luZm8gc3RhdGljLgoKMjAwNy0wNC0zMCAxMDowOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTc6IFJlbW92ZSBhbiB1bnVzZWQgbG9jYWwgdmFyaWFibGUKCjIwMDctMDQtMzAgMTA6MDcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTY6IERvbid0IGRyb3AgY29uc3QgZnJvbSBjYXN0cy4KCjIwMDctMDQtMjcgMTA6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBCcmluZyBkeW5hbWljIG1vZHVsZSB1bmxvYWQgcHJvY2Vzc2luZyBtb3JlIGludG8gbGluZSB3aXRoCiAgICJub3JtYWwiIE1JQiBtb2R1bGVzLiBTdWdnZXN0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KICAgU2VlIGNvZGVycyB0aHJlYWQgInNodXRkb3duX2ZvbyBvciBkZWluaXRfZm9vIi4KCjIwMDctMDQtMjcgMTA6MTcgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBVcGRhdGUgcG9zdC1yZWxlYXNlIGFubm91bmNlbWVudCBpbnN0cnVjdGlvbnMuCgoyMDA3LTA0LTI0IDEyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEZpeCBpbmNvbXBsZXRlIE9JRCBoYW5kbGluZyBvZiBzaW5nbGUtbGluZSBleHRlbmQgc2NyaXB0cy4KICAgUmVwb3J0ZWQgYnkgTWF4IG9uIGNvZGVycyBsaXN0LCA3dGggQXByaWwuIFNlZSB0aHJlYWQKICAgIi4uLiBzZWdmYXVsdCAuLiB3aGVuIGF0dGVtcHRpbmcgU05NUCBHRVQgb24gZXh0ZW5kIG9yIGV4ZWMgaXRlbSIKCjIwMDctMDQtMjAgMDg6MzAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGJlaGF2aW91ciBvZiBhIGxvYWQgdGhyZXNob2xkIG9mIDAuCiAgIFJlcG9ydGVkIGJ5IEZvbmcgVHN1aS4KCjIwMDctMDQtMjAgMDg6MjEgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIExvbmctdGVybSBsb2FkIGF2ZXJhZ2UgaXMgY2FsY3VsYXRlZCBvdmVyIDE1IG1pbnV0ZXMsIG5vdCAxMC4KICAgUmVwb3J0ZWQgYnkgRm9uZyBUc3VpCgoyMDA3LTA0LTE5IDEyOjUzICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgVHdlYWsgQ2hhbmdlTG9nIGluc3RydWN0aW9ucyBmb3IgU1ZOCgoyMDA3LTA0LTEwIDE0OjE2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIERldGVjdCBPSUQgcmV0cmFja2luZyAoYXMgd2VsbCBhcyBzaW1wbGUgcmVwZXRpdGlvbnMpIHdoZW4KICAgYnVsa3dhbGtpbmcgYW4gT0lEIHRyZWUuCiAgIFNlZSB1c2VycyB0aHJlYWQgIm1pc3NpbmcgaW5kaWNlcyBpbiBidWxrd2FsayByZXN1bHQiLgoKMjAwNy0wNC0xMCAxMTo0OSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgQ2xhcmlmeSBjb3B5cmlnaHQgc3RhdHVzIG9mIFdpbjMyIEFQSSBkZWZpbml0aW9ucy4KCjIwMDctMDQtMTAgMTE6MjcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4Lmg6CgogICBDbGFyaWZ5IGNvcHlyaWdodCBzdGF0dXMgb2YgQlNELWRlcml2ZWQgVENQVFYqIGRlZmluaXRpb25zLgoKMjAwNy0wNC0wOSAxNDowMiAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICAtIHJlbW92ZSBkZWJ1Z2dpbmcKICAgLSBjaGVjayByYyBmb3IgdGFyLCBnemlwIGFuZCBzY3Agc3RlcHMKCjIwMDctMDQtMDYgMTg6MzggIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgc3ZuIGVxdWl2YWxlbnQgb2YgY3ZzdXAKCjIwMDctMDQtMDMgMDg6NTQgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRW1waGFzaXNlIHRoZSB1c2Ugb2YgU05NUHYzIGluIERpc01hbiBtb25pdG9yaW5nLgogICBGaXggdGhlIHN5bnRheCBvZiBub24tZXhpc3RhbmNlL3ZhbHVlLWNoYW5nZSB0ZXN0cy4KCjIwMDctMDQtMDIgMTQ6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEwNDYzMjc6IFJlc2V0ICJpbmNsdWRlQWxsRGlza3MiIGZsYWcgd2hlbgogICByZWxvYWRpbmcuCgoyMDA3LTA0LTAyIDE0OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjAyMjg2OiBEb24ndCBsZXQgdGFibGUgaG9sZXMgYmxvY2sgbGF0ZXIKICAgcm93cy4KCjIwMDctMDQtMDIgMTM6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEwNzM3ODI6IFJlc3RvcmUgUGVyZlN0YXQgdmFsdWVzIGZvciBGcmVlQlNECiAgIDUueCBzeXN0ZW1zLgogICBJdCdzIHVuY2xlYXIgd2h5IHRoZSAibmV3IiBjYWxjdWxhdGlvbiB3YXMgYSkgcHJvcG9zZWQsIGIpCiAgIHdpdGhkcmF3biwKICAgYW5kIGMpIHdoYXQgd2FzIHdyb25nIHdpdGggdGhlIHByZXZpb3VzIGNhbGN1bGF0aW9uICh3aGljaCBzZWVtcwogICB0bwogICBtYXRjaCB0aGUgb3V0cHV0IG9mICdwcycpCgoyMDA3LTA0LTAyIDEzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDkwMjYxMDogRG9uJ3QgZGlzY2FyZCBwZW5kaW5nIGRhdGEgZm9sbG93aW5nCiAgIGEgVFJBUC4KCjIwMDctMDQtMDIgMTI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogOTAyODAxOiBGaXggb3JkZXJpbmcgb2YgU01VWC1yZWdpc3RlcmVkCiAgIHN1YnRyZWVzLgoKMjAwNy0wNC0wMiAxMjozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjg1MDY3OiBNb3JlIHByZWNpc2UgaGFuZGxpbmcgb2YKICAgU05NUHYzLWFkbWluIE1JQiB0YWJsZXMuCiAgIFRoaXMgYWN0dWFsbHkgZml4ZXMgdGhyZWUgc2VwYXJhdGUgcHJvYmxlbXM6CiAgICogIEEgR0VUIHJlcXVlc3QgZm9yICd2YWNtQWNjZXNzU3RhdHVzLiJncm91cCIuIiIuMy40JyB3aWxsICAgCiAgICAgIHN1Y2NlZWQgICAgKHNpbmNlIFZBQ00gY2hlY2tzIGFjY2VwdCB0aGUgZ2l2ZW4gc2VjdXJpdHkgbGV2ZWwKICAgICAgKm9yKmhpZ2hlciopICAyMDA3LTA0LTAyIDEyOjI2ICBkdHMxMgoKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDaGVjayB0aGF0IEdFVCByZXF1ZXN0cyBtYXRjaCBhIHZhbGlkIE9JRC4KICAgKE90aGVyd2lzZSBhIHJlcXVlc3QgZm9yIGhyU3RvcmFnZXtDb2x1bW59LntpbmRleH0ue2FueXRoaW5nfQogICB3aWxsIGlnbm9yZSB0aGUgZXh0cmEgc3ViaWRzLCBhbmQgcmV0dXJuIHN1Y2Nlc3MpCgoyMDA3LTA0LTAyIDEyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmM6CgogICBQcmV2ZW50IGNyYXNoIHdoZW4gd2Fsa2luZyAoaW52YWxpZD8pIEV2ZW50LU1JQiBPYmplY3RzIFRhYmxlLgoKMjAwNy0wNC0wMiAxMTozMCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcyBpbiB0aGUgcmUtd29ya2VkIG1ha2VyZWxlYXNlIHNjcmlwdC4KCjIwMDctMDMtMjkgMTI6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggc3ludGF4IGVycm9yICgiPT0iIGlzIGJhZCkKCjIwMDctMDMtMjcgMDg6NTUgIGR0czEyCgogICAqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZWFkIHVzZXItcHJvbXB0ZWQgdmFsdWVzIGZyb20gb3JpZ2luYWwgc3RkaW4gKG5vdCAvZGV2L251bGwpCgoyMDA3LTAzLTI3IDA4OjM4ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFjY2VwdCAnMmMnIGFzIGEgdmFsaWQgcmVzcG9uc2Ugd2hlbiBjaG9vc2luZyB0aGUgZGVmYXVsdCB2ZXJzaW9uCgoyMDA3LTAzLTI3IDA4OjI5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGNvbmZpZ3VyZTogQlVHOiAxNTY3MzI0OiBDbGFyaWZ5IHByb21wdGluZyBmb3IKICAgdXNlci1zdXBwbGllZCB2YWx1ZXMuCiAgIE5vdyBvbmx5IHJlbWVtYmVycyAoYW5kIHVzZXMpIHByZXZpb3VzIHZhbHVlcyB3aGVuIGV4cGxpY2l0bHkKICAgdG9sZCB0byBkbyBzbywKICAgZS5nLiBjb25maWd1cmUgLUMKCjIwMDctMDMtMjcgMDg6MjMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGluY29uc2lzdGVuY3kgaW4gcGF0Y2ggIzE2MjcwNDkgLSA8cG9sbC5oPiB2cyA8c3lzL3BvbGwuaD4KCjIwMDctMDMtMjUgMjI6MzEgIGR0czEyCgogICAqICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBWYXJpYWJsZS1sZW5ndGggc3RyaW5nIHZhbHVlcyBhcmUgbW9yZSBsaWtlbHkgdGhhbiBmaXhlZCBsZW5ndGguCgoyMDA3LTAzLTI1IDIyOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiA4MzM2NzM6IE1vcmUgZm9jdXNlZCBzaXplIGNoZWNrcy4KCjIwMDctMDMtMjUgMjE6MjUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2NzcwNjM6IENoZWNrIGZvciBmYWlsZWQgbWFsbG9jIGNhbGxzLgoKMjAwNy0wMy0yNSAxOTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIENoZWNrIFNFVCByZXF1ZXN0cyBhZ2FpbnN0IHRoZSBjb3JyZWN0IHR5cGUgKElQIEFkZHJlc3MgIT0gT2N0ZXQKICAgU3RyKQoKMjAwNy0wMy0yNSAxODo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2ODUwODE6IENoZWNrIGZvciB2YWxpZCBPSUQgb24gRnJlZS9VbmRvCiAgIHBhc3Nlcy4KCjIwMDctMDMtMjMgMDk6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgQ0hBTkVHUzogc25tcGxpYjogQlVHOiAxNjg2Mzg0OiBEb2N1bWVudCBub24tdXNlIG9mICdyZW1vdGVfcG9ydCcKICAgZmllbGQuCgoyMDA3LTAzLTIzIDA5OjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIEFsbG93IHNwYWNlIGZvciBleHRlcm5hbCBpbmRleGVzIHdoZW4gc2F2aW5nIHRhYmxlIGVudHJpZXMuCiAgIChTZWUgcGF0Y2ggIzE2NDIyNTUpCgoyMDA3LTAzLTIzIDA5OjE0ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDIyNTU6IEhhbmRsZSBzYXZpbmcgbG9uZwogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUgZW50cmllcy4KCjIwMDctMDMtMjMgMDk6MDkgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjgxOTc3OiBBZGQgY2FsbGJhY2tzIHByaW9yIHRvIHJlYWRpbmcKICAgY29uZmlnLgoKMjAwNy0wMy0yMyAwOTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3NjQ3ODogZml4IHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzcwogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjc2NDc2OiBmaXggdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzCgoyMDA3LTAzLTIzIDA5OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY1MzY3MDogQ29uc2lzdGVudCBTTk1QdjMgYmVoYXZpb3VyCiAgIHdoZW4gb3BlbmluZyBzZXNzaW9ucy4KCjIwMDctMDMtMjMgMDg6NTcgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjI3MDQ5OiBOZXcgQVBJIHRvIGhhbmRsZSBsYXJnZSBudW1iZXJzCiAgIG9mIGZpbGUgZGVzY3JpcHRvcnMuCgoyMDA3LTAzLTIyIDE5OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4MTAzMDogQmV0dGVyIGhhbmRsaW5nIG9mIGVtcHR5CiAgIGFwcHR5cGUgY29uZmlncy4KCjIwMDctMDMtMjIgMTk6MTIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsICAgCiAgICAgIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2Nzg3ODg6IEJldHRlciBoYW5kbGluZyBvZiBTTVVYIHNvY2tldAogICBkZXNjcmlwdG9ycy4KCjIwMDctMDMtMjIgMTk6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODMwNTQ6IHNldCB1ZHBFbmRwb2ludEluc3RhbmNlIHRvCiAgIGlkZW50aWZ5IGRpZmZlcmVudCBwcm9jZXNzZXMuCgoyMDA3LTAzLTIxIDEyOjM1ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBEZWNsYXJlIE9JRCBjb25zdGFudHMgYXMgc3VjaCAocmF0aGVyIHRoYW4gQVBJIGNhbGxzKS4KICAgUHJvcG9zZWQgYnkgQWxleCBCdXJnZXIKCjIwMDctMDMtMjAgMjA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTY2NjczNzogaW5jbHVkZSBpcHY2IGNvdW50cyBpbgogICB1ZHBJbkRhdGFncmFtcywgdWRwTm9Qb3J0cywgdWRwSW5FcnJvcnMsIHVkcE91dERhdGFncmFtcwoKMjAwNy0wMy0xOSAyMjowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5jOgoKICAgdXNlIHBtRnJlZVJlc3VsdCgpIGluc3RlYWQgb2YgZnJlZSgpCgoyMDA3LTAzLTE5IDA5OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDMtMTYgMTQ6MDQgIGR0czEyCgogICAqICBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TLCBkaXN0L2NoYW5nZWxvZ2ZpeCwgZGlzdC9tYWtlcmVsZWFzZSwgICAKICAgICAgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIENvbnZlcnQgYnVpbGQgc3lzdGVtIHRvIFNWTiB2ZXJzaW9uLgoKMjAwNy0wMy0xNSAxMDo1OSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTY4MTA3MzogI2lmZGVmIGJhc2VkIGNvbmZpZ19lcnJvciBpbnN0ZWFkCiAgIG9mIHNwZWNpYWwgY2FzZXMgaW4gY29uZmlndXJlCgoyMDA3LTAzLTE1IDEwOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAzLTE0IDIzOjMxICB0YW5kZXJzCgogICAqICBSRUFETUUuaXJpeCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmg6CgogICBORVdTOiBJUklYOiBQQVRDSDogMTY3NTg2OTogZnJvbSBiYmljZTogQ1BVIHN0YXRpc3RpY3MgZm9yIElSSVgKICAgYmFzZWQgb24gUENQCgoyMDA3LTAzLTE0IDIyOjA5ICB0YW5kZXJzCgogICAqICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY4MTA0MzogZnJvbSBtYWdmcjogY2xlYW4gdXAgaGVscGVyCiAgIGluY2x1ZGVzCgoyMDA3LTAzLTE0IDIxOjU0ICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjgxMDM1OiBmcm9tIG1hZ2ZyOiBpbXByb3ZlIG5ldC1zbm1wLWNvbmZpZwogICAvYmluL3NoIGNvbXBhdGliaWxpdHkKCjIwMDctMDMtMTQgMTg6MzEgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjc4MzAwOiBmcm9tIG1hZ2ZyOiBjb21waWxlLXN1YmFnZW50CiAgIGRvZXNuJ3QgY2FsbCBzaHV0ZG93bl8gbWV0aG9kcwoKMjAwNy0wMy0xNCAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NDQyODA6IERvbid0IGF1dG9tYXRpY2FsbHkgcHJvYmUgZm9yCiAgIHYzIEVuZ2luZUlEcy4KCjIwMDctMDMtMTMgMTA6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENoZWNrIGZvciB6ZXJvLXNpemUgcHNldWRvLWZpbGVzeXN0ZW1zLiBSZXBvcnQgdGhlbSBhcyBlbXB0eQogICByYXRoZXIgdGhhbiBmdWxsLCBzbyB0aGV5IHdvbid0IGJlIHRyZWF0ZWQgYXMgYW4gZXJyb3IuCgoyMDA3LTAzLTEzIDA1OjU5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaDoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzA1OiBmcm9tIG1hZ2ZyOiBEZWFsbG9jYXRlIHRoZSBjYWNoZSBpbgogICBoYXJkd2FyZS9jcHUvY3B1IG9uIHNodXRkb3duIChoZWFkZXIgcGFydCkKCjIwMDctMDMtMTIgMjM6MDkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDY6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGxvZyBpbgogICBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nCgoyMDA3LTAzLTEyIDIzOjA0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzA1OiBmcm9tIG1hZ2ZyOiBEZWFsbG9jYXRlIHRoZSBjYWNoZSBpbgogICBoYXJkd2FyZS9jcHUvY3B1IG9uIHNodXRkb3duCgoyMDA3LTAzLTEyIDIyOjU3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwMjogZnJvbSBtYWdmcjogbmV0c25tcF9taWJpbmRleF9sb2FkIGxlYWtzCiAgIG1lbW9yeQoKMjAwNy0wMy0xMiAyMjo1MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwMTogZnJvbSBtYWdmcjogZGVhbGxvY2F0ZSBkb21haW4gcmVnaXN0cnkKICAgYXQgc2h1dGRvd24KCjIwMDctMDMtMTIgMjI6MzEgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgyOTg6IGZyb20gbWFnZnI6IGNvbXBpbGUtc3ViYWdlbnQgY2hlY2tzIGZvcgogICBiYWQgSEFWRV9TSUdOQUxfSAoKMjAwNy0wMy0xMiAyMTo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjkwNDg6IEFkZCBzdXBwb3J0IGZvcgogICBpcHY2SW50ZXJmYWNlSWRlbnRpZmllcgoKMjAwNy0wMy0xMiAyMTozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxMzcyODogUmVmZXJlbmNlIGluZGV4IHZhbHVlcyBpbiBkZWJ1ZwogICBvdXRwdXQgY29ycmVjdGx5LgoKMjAwNy0wMy0xMiAyMTozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTEwMjA1ODogU2tpcCBub24tbW91bnRlZCBkaXNrcyAoZS5nLiBzd2FwCiAgIHBhcnRpdGlvbnMpCgoyMDA3LTAzLTEyIDIxOjMwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2ODE5MzogVXBkYXRlIHJlZ2lzdHJhdGlvbiBvZgogICBSZWFzbU1heFNpemUgc3VwcG9ydC4KCjIwMDctMDMtMTIgMjE6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2ODE5MzogRml4IGNoZWNrIGZvciB2NiBSZWFzbU1heFNpemUKICAgc3VwcG9ydC4KCjIwMDctMDMtMTIgMTk6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4OTUyOiBJZ25vcmUgem9tYmllIHByb2Nlc3Nlcy4KCjIwMDctMDMtMTIgMTk6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2NTk4NTogSW1wbGVtZW50IGlwUmVhc21UaW1lb3V0CiAgIFRob3VnaCB0aGlzIHJlZ2lzdGVycyBhbiBpbnN0YW5jZSwgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgc2NhbGFyCiAgIG9iamVjdAoKMjAwNy0wMy0xMiAxOTo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0hFUzogMTY2NTU0MzogSGFuZGxlIFZBQ00gY2hlY2tzIGNvcnJlY3RseS4KICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NjU1NDk6IEhhbmRsZSBjcmVhdGluZyBWQUNNIGVudHJpZXMKICAgY29ycmVjdGx5LgogICBbQm90aCBwYXRjaGVzIGFyZSByZXF1aXJlZCBmb3IgY29ycmVjdCBvcGVyYXRpb25dCgoyMDA3LTAzLTEyIDE5OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjU5NjIzOiBIYW5kbGUgU01VWCBwZWVycyB3aXRoIGFuIGVtcHR5CiAgIHBhc3N3b3JkLgoKMjAwNy0wMy0xMiAxOTo0NCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY1Nzc0MTogSGFuZGxlIDY0LWJpdCB0eXBlcyB2aWEgcGFzcwogICBtZWNoYW5pc20uCgoyMDA3LTAzLTEyIDE5OjQwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogVXNlIHRoZSBjb3JyZWN0IGVuZ2luZUlEIHdoZW4KICAgc2VuZGluZyB2MyB0cmFwcy4KCjIwMDctMDMtMTIgMTk6MzIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIRVM6IDE2NDIwNzE6IERvbid0IGZpZGRsZSB3aXRoIHRoZSBzdG9yYWdlCiAgIG9mIHByZS1leGlzdGluZyB1c2Vycy4KCjIwMDctMDMtMTIgMTk6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQxODY1OiBEb24ndCBkb3VibGUgY2hlY2sgc25tcFRyYXBPSUQKICAgaW4gdGhlIGZpbHRlciB0YWJsZS4KCjIwMDctMDMtMTIgMTk6MjUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjM5NzI2OiBSZXBvcnQgcGh5c2ljYWwgbWVtb3J5CiAgIGNvcnJlY3RseSBvbiAqQlNECgoyMDA3LTAzLTA5IDIxOjMxICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3NDI5OTogZnJvbSBtYWdmcjogTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgem9uZQogICB2YXJpYWJsZSBpbiBkdW1wX3JlYWxsb2Nfb2lkX3RvX2luZXRhZGRyZXNzCgoyMDA3LTAzLTA5IDIxOjI5ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc0MzAyOiBmcm9tIG1hZ2ZyOiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSBsZW4KICAgdmFyaWFibGUgaW4gY29udmVydF92MnBkdV90b192MQoKMjAwNy0wMy0wOCAxNTo1MiAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg6CgogICBJbmNsdWRlIEhvc3QgUmVzb3VyY2VzIE1JQiBvbiBOZXRCU0QgYW5kIE9wZW5CU0QKCjIwMDctMDMtMDcgMDk6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzQyOTg6IGZyb20gbWFnZnI6IFJlbW92ZSB1bnVzZWQgc2lua3BvcnQKICAgdmFyaWFibGUKCjIwMDctMDMtMDYgMTM6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDExNTk5MDg6IEZpeCBtZW1vcnkgbGVhawoKMjAwNy0wMy0wMiAyMjo0MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL01TRzAwMDAxLmJpbjoKCiAgIG5vIGVvbC1zdHlsZSBmb3IgYmluYXJ5IGZpbGVzCgoyMDA3LTAzLTAyIDIyOjI2ICB0YW5kZXJzCgogICAqIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGF+OgoKICAgZG9uJ3Qgc2hpcCBlZGl0b3IgYmFja3VwIGNvcGllcwoKMjAwNy0wMy0wMiAxNjoyMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL01TRzAwMDAxLmJpbjoKCiAgIGZsYWcgYXMgYmluYXJ5CgoyMDA3LTAzLTAyIDEyOjQ0ICB0YW5kZXJzCgogICAqIENvZGluZ1N0eWxlOgoKICAgZml4IHR5cG8KCjIwMDctMDMtMDIgMDk6NTcgIGR0czEyCgogICAqIFRPRE86CgogICBNaW5vciB0d2VhayAtIHBsYXlpbmcgd2l0aCBTVk4gYXMgbXVjaCBhcyBhbnl0aGluZy4uLi4KCjIwMDctMDMtMDEgMjM6NTcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoYXQgd2UgbW92ZWQgdG8gU1ZOCgoyMDA3LTAyLTI4IDE1OjI3ICBkdHMxMgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2csIE5FV1M6CgogICBDaGVja3BvaW50IHN1bW1hcnkgb2YgQ1ZTIGNoYW5nZXMsIHByZXBhcmF0b3J5IGZvciB0aGUgU1ZOCiAgIHN3aXRjaC4KCjIwMDctMDItMjcgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBCVUc6IDE2NjYwMDU6IEZhaWwgdG8gd2FsayBpcHY2SW50ZXJmYWNlVGFibGUgb24gTGludXgKCjIwMDctMDItMjcgMTM6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDE2NjgxNzE6IHNraXAgdW5rbm93biBjb2xzIGluIG1pbi9tYXggcmFuZ2UgZm9yIHRhYmxlcywgaW5zdGVhZCBvZiBlcnJvcgoKMjAwNy0wMi0yNyAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oOgoKICAgYWRkIGhlYWRlciBmb3IgZWFzaWVyIGNvbmZpZ3VyZSAtLXdpdGgtbWliLW1vZHVsZQoKMjAwNy0wMi0yNiAxNDo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBSZS1jb3JyZWN0IGludGVycHJldGF0aW9uIG9mICJudWxsIE9JRCIgaW4gdGhlIEFnZW50WCBzcGVjcy4KICAgKGZvciB0aGUgbGFzdCB0aW1lLCBJIHRydXN0ISkKCjIwMDctMDItMjYgMTQ6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oOgoKICAgRml4IHJlZmVyZW5jZSB0byBOZXQtU05NUCBpbmNsdWRlIGxvY2F0aW9ucwoKMjAwNy0wMi0yNiAxMjo0NyAgZHRzMTIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICAgIFNOTVAvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgUHJvbXB0aW5nIGZvciBhIHNpbmdsZSBkaXJlY3RvcnksIG5vdCBhbiBhcnJheS4KCjIwMDctMDItMjYgMTE6MzIgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZiwKICAgICBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAxNDI5NDcyOiBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBpbnN0YW5jZXMgKGFuZCBpbnZhbGlkIG9iamVjdHMpCgoyMDA3LTAyLTI2IDExOjI5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIEZpeCBpbnZhbGlkIG1pYjJjIGRpcmVjdGl2ZS4KCjIwMDctMDItMjYgMTE6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE0MTYyNzY6IEhhbmRsZSBkZXBlbmRlbmN5IG9uIE1JQiBwYXJzaW5nIEFQSS4KCjIwMDctMDItMjMgMjE6NTMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhZGQgcXVvdGVzIHRvIGZpeCBzaGVsbCBzeW50YXggZXJyb3Igd2hlbiBlbXB0eQoKMjAwNy0wMi0yMiAyMjozNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIExhc3QgY29tbWl0IGJyb2tlIHRoZSBidWlsZC4gTm93IGVzY2FwZSBiYWNrc2xhc2hlcyBwcm9wZXJseS4KCjIwMDctMDItMjIgMTU6MzggIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxMjQ3MTY0OiBEb2N1bWVudCB1c2Ugb2YgT0lEIG1hY3JvcwoKMjAwNy0wMi0yMiAwMDoyOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywKICAgICB1Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBBSVg6IFBBVENIOiAxNjY1MDc5OiBmcm9tICJNaWNoYWVsIEt1a2F0IjogQUlYIHBhdGNoZXMgZm9yIGNwdSBzdGF0cyBhbmQgcHJvY2VzcyBtb25pdG9yaW5nCgoyMDA3LTAyLTIxIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBsYW1lLW1ha2Ugc3lzdGVtcyB0aGF0IGNhbid0IGhhbmRsZSB3aGl0ZXNwYWNlIHRlcm1pbmF0aW5nIHdyYXBwZWQgbGluZXMKCjIwMDctMDItMjEgMTU6MzMgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wOgoKICAgQ0hBTkdFUzogV2luMzI6IEJVRzogMTY2Mjk4NzogY29tcGlsZSBlcnJvciBvbiBDeWd3aW4KCjIwMDctMDItMjEgMTM6NTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgdG9vbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTY2MDA2MTogVmFsaWRhdGUgZW5naW5lSURzIG1vcmUgc3RyaWN0bHkuCgoyMDA3LTAyLTIxIDEzOjQ5ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEuZGVmLCBzbm1wLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDE0MDc0NzY6IENsYXJpZnkgTUlCIHBhcnNpbmcgdG9nZ2xlIG9wdGlvbnMgYW5kIE1JQiBjb21tZW50IGhhbmRsaW5nLgoKMjAwNy0wMi0yMSAxMzozNyAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxMDk2MTY2OiBIYW5kbGUgLS13aXRob3V0LWxvZ2ZpbGUgY29ycmVjdGx5LgoKMjAwNy0wMi0xOSAxNjozNCAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIE1lbnRpb24gcmVtb3ZhbCBmcm9tIENWUyBvZiBkZWxldGVkIGZpbGVzCgoyMDA3LTAyLTE5IDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgUmV3b3JrIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zIHRvIHRha2UgYWNjb3VudCBvZiAibWFrZXJlbGVhc2UiIHNjcmlwdAoKMjAwNy0wMi0xOSAxMDo0OSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIERvbid0IGFzc3VtZSBsb2NhbCB1c2VybmFtZXMgbWF0Y2ggQ1ZTIGFjY291bnQgbmFtZXMuCgoyMDA3LTAyLTE5IDEwOjQxICBkdHMxMgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgSW1wcm92ZSBsYXlvdXQgb2YgQ0hBTkdFUyBpbmZvcm1hdGlvbi4KCjIwMDctMDItMTkgMTA6MDYgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRG9uJ3QgaW52b2tlICd2ZXJzaW9udGFnJyBmb3IgdGFnZ2luZyB0aGUgQ1ZTIHRyZWUuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHRoaXMgYW55IG1vcmUuICAoVXNlICdtYWtlcmVsZWFzZScgaW5zdGVhZCkKCjIwMDctMDItMTkgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBEb24ndCBmYWlsIHNpbGVudGx5IHdoZW4gY2FsbGVkIHRvIHRhZyB0aGUgQ1ZTIHRyZWUuCiAgIFJldHVybiBpbmRpY2F0aW9uIG9mIGZhaWx1cmUgdG8gdGhlIGNhbGxpbmcgYXBwbGljYXRpb24gKGUuZy4gbWFrZSkKCjIwMDctMDItMTYgMTI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUmV2ZXJ0IHRvIHByZXZpb3VzICJudWxsIE9JRCIgaW50ZXJwcmV0YXRpb24gKGJ1dCB3aXRoIHRoZSBjb3JyZWN0IGVuY29kaW5nKS4KCjIwMDctMDItMTUgMTE6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MDAyNjE6IEhhbmRsZSBub24teDg2IC9wcm9jL2NwdWluZm8gZm9ybWF0CiAgIChBIHdvcmthcm91bmQsIHJhdGhlciB0aGFuIGEgZml4IC0gd2UgcmVhbGx5IG5lZWQgdG8gcGFyc2UgdGhlc2UKICAgIG90aGVyIGZvcm1hdHMgcHJvcGVybHkgaW4gdGhlIGluaXQgcm91dGluZSkKCjIwMDctMDItMTUgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ29ycmVjdCBtaXNpbnRlcnByZXRhdGlvbiBvZiAibnVsbCBPSUQiIGluIEFnZW50WCBzcGVjcy4KCjIwMDctMDItMTUgMDk6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlamVjdCBvdmVybHktc2hvcnQgVHJhcCBPSURzLgogICBEb24ndCBjcmFzaCBvdXQgY29tcGxldGVseSBvbiBmYWlsZWQgdjE8LT52MiB0cmFwIGNvbnZlcnNpb25zLgoKMjAwNy0wMi0xMiAxMjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjMzNTk1OiBGaXggQWdlbnRYIGhhbmRsaW5nIG9mIENvdW50ZXI2NCB2YWx1ZXMKCjIwMDctMDItMDkgMjE6MTUgIGR0czEyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMzk3ODk1OiBpbmNsdWRlIG1pc3NpbmcgaW50ZXJmYWNlIGRlY2xhcmF0aW9ucwoKMjAwNy0wMi0wOCAxNzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2ggZnJvbSBXb2p0ZWsgSmF3b3IgdG8gaGFuZGxlIHJvdyBkZWxldGlvbiBpc3N1ZXMgaW4gZGF0YXNldCB0YWJsZXMKCjIwMDctMDItMDcgMTc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oLCBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0CjoKCiAgIGFkZGVkIHRoZSBmbG93IGxhYmxlIG1pYiwgd2hpY2ggdGhlIHR1bm5lbC1taWIgcmVmZXJzIHRvCgoyMDA3LTAyLTA1IDIzOjAyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgcG9ydGFiaWxpdHkgZml4ZXMKCjIwMDctMDItMDUgMjI6NTAgIHRhbmRlcnMKCiAgICogZGlzdC9jaGVjay1hcGktY2hhbmdlOgoKICAgdXNlIC9iaW4vc2ggdW5sZXNzIGJhc2ggZmVhdHVyZXMgYXJlIHJlYWxseSBuZWVkZWQKCjIwMDctMDItMDUgMjE6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBub3RlIHRoYXQgY3VycmVudCBzaG91bGQgYmUgYnVtcGVkIGJ5IDUgd2hlbiBidW1wZWQKCjIwMDctMDItMDUgMjE6NDkgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSBub3RlIHRoYXQgY3VycmVudCBzaG91bGQgYmUgYnVtcGVkIGJ5IDUgd2hlbiB1cGRhdGVkCiAgIC0gYWRkIHBvaW50ZXIgdG8gbmV3IGNoZWNrLWFwaS1jaGFuZ2VzIHNjcmlwdAoKMjAwNy0wMi0wNSAyMTo0NiAgcnN0b3J5CgogICAqIGRpc3QvY2hlY2stYXBpLWNoYW5nZToKCiAgIHNpbXBsaXN0aWMgbmV3IHNjcmlwdCB0byBoZWxwIGNoZWNrIGZvciBhcGkgY2hhbmdlcyBiZXR3ZWVuIHJlbGVhc2VzCgoyMDA3LTAyLTA1IDIxOjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0Lmg6CgogICBtYWtlIG5ldyBzdHJ1Y3QgbWVtYmVyIGNvbmRpdGlvbmFsLCBzaW5jZSB1c2UgaXMgY29uZGl0aW9uYWwKCjIwMDctMDItMDUgMjE6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgbW92ZSBmdW5jdGlvbiBjYWxsIG91dCBvZiBhc3NlcnQKCjIwMDctMDItMDUgMTU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NDE4OTU6IEV4dGVuZCBzaG9ydCB2aWV3IG1hc2tzIChhcyBwZXIgUkZDIHNwZWNzKQogICBQYXRjaCBzdXBwbGllZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAyLTA1IDE0OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM5MzYwOiBGaXggc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZSByb3cgY3JlYXRpb24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDItMDUgMTE6MDEgIGR0czEyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBjb21waWxhdGlvbiBpZiBMT0NLX1BFUl9DQUxMQkFDS19TVUJJRCBub3QgZGVmaW5lZC4KICAgUmVwb3J0ZWQgYnkgRW1pIFlhbmFnaQoKMjAwNy0wMi0wNSAwOTo0OCAgZHRzMTIKCiAgICogRkFROgoKICAgU3BlbGxpbmcgY29ycmVjdGlvbjogJ3N1cGVyY2VkZWQnIC0+ICdzdXBlcnNlZGVkJwogICAoT2gsIHRoZSBzaGFtZSBvZiBpdCEpCgoyMDA3LTAxLTMxIDEzOjUxICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE2NDc5NzY6IEN5Z3dpbi9NaW5HVyBXaW5kb3dzIGJ1aWxkIGZhaWxzIGR1ZSB0byBsaWJ0b29sIGVycm9yCgoyMDA3LTAxLTMwIDEzOjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiB5ZXQgYW5vdGhlciBmaXggdG8gYWRkcmVzcyBidWlsZCBpc3N1ZXMgd2l0aCBldGh0b29sIChvbiBSSDkpLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0zMCAwOToxMCAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB3aGVuIHN5bWxpbmsgZml4IGlzL2lzbid0IGFwcHJvcHJpYXRlLiAgU3luY2ggd2l0aCBXaWtpLgoKMjAwNy0wMS0yOSAxMToxMiAgZHRzMTIKCiAgICogRkFROgoKICAgQXV0aGVudGljYXRlZCBTTk1QdjMgcmVxdWVzdHMgc3RpbGwgbmVlZCBhIHVzZXJuYW1lLiAgKFN5bmNoIHdpdGggV2lraSkKCjIwMDctMDEtMjkgMTE6MDMgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCjoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTI4IDEzOjM2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBiYWQgdGVzdAoKMjAwNy0wMS0yOCAxMzowNiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW5hbWUgdmFyaWFibGUgdG8gcmVzb2x2ZSBuYW1lIGNsYXNoIGFuZCB0byB1bmJyZWFrIG5pZ2h0bHkgYnVpbGRzIG9uIFNvbGFyaXMKCjIwMDctMDEtMjggMTI6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjcgMTQ6NDAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCB0eXBvCgoyMDA3LTAxLTI3IDE0OjIzICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjYgMTE6MTUgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2U6CgogICBtb3JlIEJvdXJuZSBzaGVsbCBjb21wYXRpYmlsaXR5IGZpeGVzCgoyMDA3LTAxLTI1IDIyOjQxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogZml4IGNvbmZpZ3VyZSB3YXJuaW5nIGZvciBzeXMvY29uZi5oCgoyMDA3LTAxLTI1IDIyOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZToKCiAgIHJlcGxhY2UgYnkgbW9yZSByZWFzb25hYmxlIGNvbnRlbnQKCjIwMDctMDEtMjUgMjI6MDUgIHRhbmRlcnMKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGZpeCB0eXBvCgoyMDA3LTAxLTI1IDIxOjMxICB0YW5kZXJzCgogICAqIFJFQURNRS5pcml4OgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2NDQ3MzU6IGZyb20gIkJyZW50IEJpY2UiOiBhZGQgZ2NjIGJ1aWxkIGluc3RydWN0aW9ucyBmb3IgSVJJWAoKMjAwNy0wMS0yNSAyMToxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDQ3MTQ6IGZyb20gIkxlbGFuZCBXYWxsYWNlIjogcmVwbGFjZSBsYXN0IHJlbWFpbmluZyBpbnN0YW5jZSBvZiBkZXByZWNhdGVkIGNvcHlfd29yZCBieSBjb3B5X253b3JkCgoyMDA3LTAxLTI1IDE1OjMwICB0YW5kZXJzCgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseQosIG5zYi1wYWNrYWdlLCBuc2ItcGxhdGZvcm06CgogICBtYW55IEJvdXJuZSBzaGVsbCBwb3J0YWJpbGl0eSBmaXhlcwoKMjAwNy0wMS0yNCAxNjozOSAgZHRzMTIKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2UsIG5zYi1wbGF0Zm9ybToKCiAgIFByZS1Qb3NpeCBCb3VybmUgc2hlbGwgY29tcGF0YWJpbGl0eS4KCjIwMDctMDEtMjQgMTQ6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFR3ZWFrIGRlYnVnIG91dHB1dAoKMjAwNy0wMS0yNCAxMzo1OCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgU2hlbGxzY3JpcHQgcG9ydGFiaWxpdHkuICAoRXZlcnl0aGluZyBoYXMgL2Jpbi9zaCkKCjIwMDctMDEtMjQgMTM6NDkgIGR0czEyCgogICAqIGRpc3QvOiBjdnNzaG93LCBjdnN1cCwgbnNiLWNvbmZpZywKICAgICBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2UsCiAgICAgbnNiLXBsYXRmb3JtOgoKICAgSW1wcm92ZSBzaGVsbC1zY3JpcHQgcG9ydGFiaWxpdHkuIChFdmVyeXRoaW5nIGhhcyAvYmluL3NoISkKCjIwMDctMDEtMjQgMTM6NDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBfY2xpZW50LmM6CgogICBFeHRyYSBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDA3LTAxLTI0IDEzOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgUHJlbGltaW5hcnkgdGFibGUgdW5yZWdpc3RyYXRpb24gQVBJLgoKMjAwNy0wMS0yNCAxMzoxMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBNb3ZlIGhvc3RuYW1lIHRyYW5zbGF0aW9uIGludG8gdGhlIHRyYW5zcG9ydC1zcGVjaWZpYyBsaWJyYXJ5IHJvdXRpbmVzLgogICAoV2hlcmUgaXQgYmVsb25ncyEpCgoyMDA3LTAxLTI0IDEzOjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEJhc2ljIGZyYW1ld29yayBmb3IgdHJhbnNwb3J0LXNwZWNpZmljIHRyYW5zbGF0aW9uIG9mIGhvc3RuYW1lcy4KCjIwMDctMDEtMjQgMTI6MjcgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgU3VwcHJlc3MgYXNzb3J0ZWQgd2FybmluZ3MuCgoyMDA3LTAxLTI0IDEyOjE4ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG1ha2Ugc3VyZSB1aW50cHRyX3QgaXMgYWx3YXlzIGRlZmluZWQgYXMgdW5zaWduZWQuIFNwb3R0ZWQgYnkgRGF2aWQgRm9yZC4KCjIwMDctMDEtMjMgMjI6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGRvbid0IHRyeSB0byByZW1vdmUgYSByb3cgdGhhdCB3YXMgbmV2ZXIgaW5zZXJ0ZWQKCjIwMDctMDEtMjMgMjI6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCB0cnkgdG8gcmVtb3ZlIGEgcm93IHRoYXQgd2FzIG5ldmVyIGluc2VydGVkCgoyMDA3LTAxLTIzIDE2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MzkyODI6IFNhdmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0UGFyYW1zVGFibGUgc2V0dGluZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzNzI4NzogSGFuZGxlIG11bHRpcGxlIHRhcmdldCB0YWdzIGNvcnJlY3RseS4KICAgRml4IHByb3ZpZGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMjMgMTY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTYzNzI4NzogSGFuZGxlIG11bHRpcGxlIHRhcmdldCB0YWdzIGNvcnJlY3RseS4KICAgRml4IHByb3ZpZGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMjMgMTU6NDQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjM0NjIwOiBGaXggbGVha3MgZnJvbSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gZmFpbHVyZS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNDo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVRzogMTYzODIyNTogRml4IGludGVycHJldGF0aW9uIG9mIHRyYW5zcG9ydCBhZGRyZXNzIGRhdGEuCiAgIChLZWVwIHRoaXMgY29uc2lzdGVudCB3aXRoIHNubXBVRFBEb21haW4uYykKICAgVGhpcyBkb2VzIG5vdCBmZWVsIHRoZSByaWdodCB3YXkgdG8gaGFuZGxlIHRoaXMhCgoyMDA3LTAxLTIzIDE0OjEwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBCcmluZyB0cmFwIGhhbmRsaW5nIGluIGxpbmUgd2l0aCBSRkMgMjU3Ni8zNTg0IC0gZHJvcCBTTk1QdjEgdHJhcHMKICAgY29udGFpbmluZyBDb3VudGVyNjQgdmFyYmluZHMuICBSZXF1ZXN0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMjIgMjI6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NDE5NzI6IGZyb20gbWFnZnI6IGFkZCBtaXNzaW5nIGNvbnN0CgoyMDA3LTAxLTIyIDE2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2NDEzMzI6IEluY2x1ZGUgbWlzc2luZyBhZ2VudCBjb25maWcgZGVmaW5pdGlvbnMuCgoyMDA3LTAxLTIyIDE2OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgZml4IHR5cG8gb3ZlcndyaXRpbmcgY29udGFpbmVyIG5hbWUKCjIwMDctMDEtMjIgMTY6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MTY4NTogSGFuZGxlIHVucmVzcG9uc2l2ZSBBZ2VudFggc3ViYWdlbnRzIG1vcmUgcmVsaWFibHkuCiAgIEZpeCBwcm92aWRlZCBieSBKb3NlZiBNb2VsbGVycwoKMjAwNy0wMS0yMiAxNTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MDExNDogRG9uJ3Qgc3RvcmUgdHJhaWxpbmcgbnVsbCBjaGFyYWN0ZXIuCiAgIFJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMTkgMTY6NTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgTkVXUzogQlVHUyAxNjMzNDgzOiBTdXBwb3J0IENQVSBIQUwgb24gRnJlZUJTRDQueAogICAoYmVmb3JlIENQVSBkZWZpbml0aW9ucyB3ZXJlIG1vdmVkIHRvIDxzeXMvcmVzb3VyY2UuaD4pCgoyMDA3LTAxLTE5IDE2OjUzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IEZyZWVCU0Q6IEJVRzogMTYzMzQ4MzogU3VwcG9ydCBDUFUgSEFMIG9uIEZyZWVCU0Q0LngKICAgKGJlZm9yZSBDUFUgZGVmaW5pdGlvbnMgd2VyZSBtb3ZlZCB0byA8c3lzL3Jlc291cmNlLmg+KQoKMjAwNy0wMS0xOSAxNjoxNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiAqbW92ZSogKHJhdGhlciB0aGFuIGNvcHkpIGdsb2JhbCB2YXJpYWJsZXMKICAgZnJvbSBzbm1wdHJhcGQgdG8gbGlibmV0c25tcHRyYXBkCgoyMDA3LTAxLTE5IDE0OjE4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IExpbnV4OiBmaXggZXRodG9vbCBjb25maWd1cmUgY2hlY2sgZm9yIHJlY2VudCBzeXN0ZW1zIChlLmcuIEZDNiwgUkhFTDUpLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0xOSAxMToyNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCBjb25maWd1cmUgY2hlY2sgZm9yIGhhc21udG9wdCB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbXMgdGhhdCBsYWNrIGl0CgoyMDA3LTAxLTE4IDEyOjUwICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogbW92ZSBnbG9iYWwgdmFyaWFibGVzIGZyb20gc25tcHRyYXBkIHRvIGxpYm5ldHNubXB0cmFwZAoKMjAwNy0wMS0xOCAxMToxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRyb3AgIi1lIi9wcmludEV2ZW50TnVtYmVycyBzdXBwb3J0IGZvciBzbm1wdHJhcGQgKG9ic29sZXRlLCBkZXByZWNhdGVkIGFuZCBicmVha3MgbGlicmFyeSBsYXllcmluZykKCjIwMDctMDEtMTYgMTA6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIFJlc2V0ICdzZW5kJyBmbGFnIHRvIGNvbnNpZGVyIGVhY2ggc2luayBpbmRpdmlkdWFsbHkuCiAgIFJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMTYgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBzZW5kaW5nIG1pc21hdGNoZWQgdHJhcHMgKHYxIHRyYXAgb24gdjIgc2luaykuCiAgIFJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDEtMTYgMDk6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgRG9uJ3QgaGFyZGNvZGUgdGhlIHNpemUgb2YgY291bnRlcjY0IHN0cnVjdHVyZSAobWF5IGJlIHdyb25nIG9uIDY0LWJpdCBib3hlcykKCjIwMDctMDEtMTYgMDk6MDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA3LTAxLTExIDIyOjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBDSEFOR0VTOiBzbm1wbGliOiBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogaW50cm9kdWNlIG5ldHNubXBfbWt0ZW1wIHRvIHByZXZlbnQgbGlibmV0c25tcGFnZW50IGZyb20gZGVwZW5kaW5nIG9uIGxpYm5ldHNubXBtaWJzCgoyMDA3LTAxLTExIDIxOjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIGF1dG9jb25mIHJlcSB0byAyLjYxCgoyMDA3LTAxLTExIDIxOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICAgIHNubXBTVEREb21haW4uYywgc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBEb21haW4uYywKICAgICBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wX3NlcnZpY2UuYywKICAgICBzbm1wX3RyYW5zcG9ydC5jOgoKICAgUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIG1ha2UgdGhlIHRyYW5zcG9ydCBzeXN0ZW1zIEMrKyBjb21wYXRpYmxlCgoyMDA3LTAxLTExIDA5OjE3ICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgRml4IHNvbWUgbWFuZ2xlZCB0ZXh0LgoKMjAwNy0wMS0xMCAyMDo1OCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDE2MTQxMDQ6IGJyb2tlbiBzbm1wZCg4KSBtYW51YWwgcGFnZSBpbiA1LjQKCjIwMDctMDEtMDkgMjE6NTAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogSUYtTUlCIGZpeDogYWRkIG1pc3NpbmcgcmV0dXJuIGF0IGVuZCBvZiBnZXRfaWZfc3RhdHMKCjIwMDctMDEtMDggMDg6MzAgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6IGJ1aWxkIGxpYnJhcmllcyBpbiB0aGUgY29ycmVjdCBvcmRlciAobGlibmV0c25tcGFnZW50IGJlZm9yZSBsaWJuZXRzbm1waGVscGVycyBiZWZvcmUgbGlibmV0c25tcG1pYnMpCgoyMDA3LTAxLTA3IDE5OjQ3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaDoKCiAgIGFkZCBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBuZXRzbm1wX3JlZ2lzdGVyX3NlcnZpY2VfaGFuZGxlcnMgKGZyb20gbWFnZnIpCgoyMDA3LTAxLTA2IDAwOjU0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IEJVRzogMTYyNjE1Mzogbm8gaHJTV1J1biBpbmZvcm1hdGlvbnMgb24gU29sYXJpcyB6b25lcwogICBQYXRjaCBwcm92aWRlZCBieSBLbGF1cyBNdWVobGZlbGQKCjIwMDctMDEtMDYgMDA6MzAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTQ1MDY2OTogUEFUQ0g6IDE2Mjc5NDk6IGZyb20gbWFydGluOTg3OiBhIHBlcmwgYWdlbnR4IGNvbnN1bWVzIG1lbW9yeQoKMjAwNy0wMS0wMyAyMjo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTAyIDIzOjMzICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBCVUc6IENvdmVyaXR5ICMxNzM6IHJlbW92ZSBzdXBlcmZsdW91cyBOVUxMIGNoZWNrIChhbHJlYWR5IGRlcmVmZXJlbmNlZCBlYXJsaWVyIGFueXdheSkKCjIwMDctMDEtMDIgMjM6MDggIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG9ubHkgbG9nIGEgbWVzc2FnZSB3aGVuIHRoZSBtaWJfaW5kZXhlcyBkaXJlY3RvcnkgaXMgKnJlYWxseSogY3JlYXRlZAoKMjAwNy0wMS0wMiAyMjo1MyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEJVRzogQ292ZXJpdHkgIzE3ODogbmV2ZXIgcGFzcyBhIE5VTEwgb2lkX2Fycl9sZW4gcG9pbnRlciB0byBfX2NvbmNhdF9vaWRfc3RyICh3aGljaCBkZXJlZmVyZW5jZXMgaXQpCgoyMDA3LTAxLTAyIDIyOjA4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE5MzogcHJvcGVybHkgaW5pdGlhbGl6ZSBzZXNzaW9uIHBvaW50ZXIgYmVmb3JlIHVzZQoKMjAwNy0wMS0wMiAyMDoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgYmFjayBvdXQgcHJldmlvdXMgYmFkIGNoYW5nZSB0byBhZ2VudCByZWdpc3RyeQoKMjAwNy0wMS0wMiAxOTo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MDE0NTM6IGZyb20gIlJvYmVydCBXaWxjb3giOiBEeW5hbWljIE1lbW9yeSBmYWlsdXJlIGhhbmRsaW5nIGltcHJvdmVtZW50cwoKMjAwNy0wMS0wMiAxOTo1MiAgdGFuZGVycwoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjAxNDUzOiBmcm9tICJSb2JlcnQgV2lsY294IjogRHluYW1pYyBNZW1vcnkgZmFpbHVyZSBoYW5kbGluZyBpbXByb3ZlbWVudHMKCjIwMDctMDEtMDIgMTc6NTYgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgTERfUlVOX1BBVEggY29tbWVudCBmb3IgcHl0aG9uCgoyMDA3LTAxLTAyIDE3OjM4ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHVwZGF0ZSB0byBhdXRvY29uZiAyLjYxCgoyMDA3LTAxLTAyIDE3OjIzICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9rZnJlZWJzZC5oOgoKICAgTkVXUzogUG9ydHM6IFBBVENIOiAxNjIzODc0OiBmcm9tICJQZXRyIFNhbGluZ2VyIjogYWRkIEdOVS9rRnJlZUJTRCBzdXBwb3J0CgoyMDA3LTAxLTAyIDE3OjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhZGQgd29ya2Fyb3VuZCBmb3IgQUNfRlVOQ19HRVRNTlRFTlQoKSBidWcgaW4gYXV0b2NvbmYgMi42MGIgYW5kIDIuNjEgKHNlZSBEZWJpYW4gYnVncyAjNDAzMjQzLCAjNDAzMDc5KQoKMjAwNy0wMS0wMiAxNjo0OCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAxNTgyOTcyOiBIYW5kbGUgQHdoaWxlQC9AZW5kQCBwcm9wZXJseS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRG91Z2xhcyBEZWFuCgoyMDA3LTAxLTAyIDE2OjAwICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE2MDAxNzE6IFN1cHBvcnQgbG9uZ2VyIGNvbW11bml0eSBzdHJpbmdzIGluIFZBQ00gY29uZmlnLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2JlcnQgV2lsY294CgoyMDA3LTAxLTAyIDExOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNTQ2ODE3OiBGaXggc25tcEVudGVycHJpc2UgdmFyYmluZCB3aGVuIGZvcndhcmRpbmcgdjEgdHJhcHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFBhYmxvIFBhc3NlcmEuCgoyMDA3LTAxLTAyIDEwOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTYyNTEzNTogY29uZmlndXJlIGxvY2F0aW9uIG9mIHB5dGhvbiBpbnRlcnByZXRlcgogICBQcm92aWRlZCBieSBBbmRyZXcgTGFuZ21lYWQKCjIwMDctMDEtMDIgMTA6MzQgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICBORVdTOiBjb25maWd1cmU6IFBBVENIIDE2MjUxMzU6IGNvbmZpZ3VyZSBsb2NhdGlvbiBvZiBweXRob24gaW50ZXJwcmV0ZXIKICAgUHJvdmlkZWQgYnkgQW5kcmV3IExhbmdtZWFkCgoyMDA3LTAxLTAyIDEwOjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTYyNDQwNjogb3B0aW9uIHRvIGhhcmRjb2RlIGxvY2F0aW9uIG9mIG1vdW50IHRhYmxlCiAgIFN1Ym1pdHRlZCBieSBKb2NoZW4KCjIwMDctMDEtMDEgMTc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYwMTE4OCwgQlVHOiAxNjAwNDMyOiBIYW5kbGUgc2lnbmFscyBwcm9wZXJseSB3aGVuIHJlc3RhcnRpbmcgdGhlIGFnZW50LgogICBGaXggcHJvdmlkZWQgYnkgTG9pYyBEb21haWduZS4KCjIwMDctMDEtMDEgMTc6MzUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBIYW5kbGUgbm9uLXdyaXRhYmxlIE1JQiBpbmRleGVzIChlLmcuIHJ1biBhcyBub24tcHJpdmlsZWdlZCB1c2VyKQoKMjAwNy0wMS0wMSAxNjowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYwo6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSEVTIDE1OTI3MDY6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsb25pbmcgdmFyYmluZHMuCiAgIEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBTdGV2ZW4gRG9yaWdvdHRpLgoKMjAwNy0wMS0wMSAxNjowOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE1OTI3MDY6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsb25pbmcgdmFyYmluZHMuCiAgIEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBTdGV2ZW4gRG9yaWdvdHRpLgoKMjAwNy0wMS0wMSAxNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgTkVXUzogYWdlbnQ6IFBBVENIIDE1ODUxNDY6IEV4dGVuZCByYW5nZSBvZiBhdmFpbGFibGUgZXJyb3IgY29kZXMKICAgU3VibWl0dGVkIGJ5IEFudGhvbnkgTm92YXRzaXMuCgoyMDA3LTAxLTAxIDE1OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE1NDg2NzA6IEZpeCByYW5nZSBjaGVja3MgZm9yIHVuc2lnbmVkIGludGVnZXJzCiAgIEZyb20gS2V2aW4gSHVtcGhyaWVzLiBTZWUgaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM4MzM4MAoKMjAwNy0wMS0wMSAxNToxNiAgZHRzMTIKCiAgICogYXBwcy86IHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jOgoKICAgTW92ZSBnbG9iYWwgJ2ZhaWx1cmVzJyB2YXJpYWJsZSBjbG9zZXIgdG8gd2hlcmUgaXQgaXMgdXNlZC4KICAgQ0hBTkdFUzogYXBwczogUEFUQ0g6IDE1Mjk1MjM6IENsb3NlIFNOTVAgc2Vzc2lvbiBvbiBmYWlsdXJlLgoKMjAwNy0wMS0wMSAxNDozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBwb3RlbnRpYWwgZG91YmxlIGRlbGV0ZS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMDEgMTQ6MjIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmM6CgogICBNYWludGFpbiBNSUIgZGlyZWN0b3J5IGluZGV4IGZpbGVzIHVuZGVyIC92YXIvbmV0LXNubXAKICAgKGluIGxpbmUgd2l0aCBGaWxlIEhpZXJhcmNoeSBTdGFuZGFyZCBzcGVjaWZpY2F0aW9ucykKICAgU2VlIGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz0zODk0MzQKICAgYW5kIGRpc2N1c3Npb24gIk1JQnMgaW4gbmV0LXNubXAiIG9uIGNvZGVycyBsaXN0IChPY3QgMjAwNikKCjIwMDctMDEtMDEgMTE6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIEVuc3VyZSBzeXNPUkRlc2NyaXB0aW9ucyBhcmUgbnVsbC10ZXJtaW5hdGVkLCBzbyB0aGV5IGNhbiBiZQogICBzYWZlbHkgcGFzc2VkIHRvICdzdHJkdXAoKScuICBSZXBvcnRlZCBieSBXb2xmZ2FuZyBQZWRvdC4KCjIwMDYtMTItMjkgMTc6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFN5bmNocm9uaXNlIHdpdGggV2lraSB2ZXJzaW9uLgoKMjAwNi0xMi0yOCAyMzoyOSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjE2OTEyOiBmcm9tICJNYWdudXMgRnJvbXJlaWRlIjogZml4IG1lbW9yeSBsZWFrIGluIHNubXBfdWRwX3RyYW5zcG9ydAoKMjAwNi0xMi0yOCAyMzowMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTYyMzQ0NzogZnJvbSAiSHJ2b2plIEhhYmphbmljIjogaHJTV1J1biBmaXg6IDxleGl0ZWQ+IGluc3RlYWQgb2YgZW5kT2ZUYWJsZSBmb3IgdGVybWluYXRlZCBwcm9jZXNzZXMKCjIwMDYtMTItMjcgMTk6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZml4IGV4dGVybmFsIHJlZmVyZW5jZSB0byBORVRTTk1QX0tMT09LVVAgb24gSFAtVVggMTAuMjAgKG1heWJlIG90aGVycykKCjIwMDYtMTItMjYgMTY6NTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMTYyMjA4MDogZnJvbSBHcnVlbmluZ2VyIEE6IHBhc3MgV2luMzIgaGFuZGxlcyByZW1haW4gb3Blbi4KCjIwMDYtMTItMTcgMTg6MDEgIGFsZXhfYgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLWFwcHMuaW4sIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLAogICAgIHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQWRkIGdkaTMyLmxpYiB0byBmaXggbGlua2luZyBwcm9ibGVtIHdoZW4gdXNpbmcgdGhlIHN0YXRpYyB2ZXJzaW9uIG9mIHRoZQogICBTU0wgbGlicmFyaWVzLiAgVGhhbmtzIHRvIFNpbW9uIEVkd2FyZHMgZm9yIHRoZSBmaXguCgoyMDA2LTEyLTE3IDE2OjUxICBhbGV4X2IKCiAgICogRkFROgoKICAgVXBkYXRlIFdpbmRvd3MgaW5mbyBpbiB0aGUgRkFRCgoyMDA2LTEyLTEyIDIzOjUzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMTU4MTI5NDogZnJvbSAiTWljaGFlbCBUYXRhcmlub3YiOiBob3N0LXJlc291cmNlcyBpbXByb3ZlbWVudHMKCjIwMDYtMTItMTIgMjE6MjcgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgcmUtYWRkIFVEUF9BRERSRVNTRVNfSU5fSE9TVF9PUkRFUgoKMjAwNi0xMi0xMiAyMTowMSAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHN5bmMgd2l0aCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAoKMjAwNi0xMi0xMiAyMDozMSAgdGFuZGVycwoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBDSEFOR0VTOiBXaW4zMjogZml4IHdpbjMyL0NvbmZpZ3VyZSAtLXdpdGgtaXB2NgoKMjAwNi0xMi0xMiAxODoxMCAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIE5FV1M6IFdpbjMyOiBmaXggQUVTIHN1cHBvcnQKCjIwMDYtMTItMTIgMDM6MDEgIGFsZXhfYgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIEFkZCB2ZXJzaW9uIHRvIEZBUS5odG1sLgoKMjAwNi0xMi0wOSAxNzoxMSAgYWxleF9iCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtYWtlX2luZGV4LnBsLCBtYW5fc2VjdGlvbnMudHh0CjoKCiAgIC1DcmVhdGUgaHRtbCBwYWdlcyBmb3IgQUxMIG1hbiBwYWdlcy4KICAgLUltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGNyZWF0aW5nIHRoZSBpbmRleC5odG1sIGZpbGUuCgoyMDA2LTEyLTA5IDE3OjA2ICBhbGV4X2IKCiAgICogbG9jYWwvOiBodG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLCBodG1sLXRleHRmaWxlLWZpeC5wbAo6CgogICBBZGQgdGlkeSBjb21tYW5kIGxpbmUgb3B0aW9uIGFuZCBhZGQgbWlzc2luZyBSRUFETUUgZmlsZXMuCgoyMDA2LTEyLTA5IDAwOjE2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZGFyd2luOC5oLCBkYXJ3aW45Lmg6CgogICBDSEFOR0VTOiBNYWNPU1g6IFBBVENIOiAxNjAwNDUzOiBmcm9tICJDaHJpcyBKYWxiZXJ0IjogT1MgWCBjb21waWxlLXRpbWUgZW5kaWFuIGRldGVybWluYXRpb24KCjIwMDYtMTItMDggMjI6NDcgIHRhbmRlcnMKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IHNvbWUgbW9yZSBwb3N0LXJlbGVhc2UgdGFza3MKCjIwMDYtMTItMDggMjI6MjYgIHRhbmRlcnMKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zCiwgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIG1hbi9uZXRzbm1wX2RlYnVnLjMKLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zCiwgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMKLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMwosIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMKLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMKLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMKLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMKLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMwosIG1hbi9uZXRzbm1wX3dhdGNoZXIuMywgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtCiwgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0KLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzdC9NYWtlZmlsZSwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNS5kZXYgKQoKMjAwNi0xMi0wOCAyMjoyMCAgdGFuZGVycwoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZml4IGRpc3QvTWFrZWZpbGUgbXVuZ2luZwoKMjAwNi0xMi0wOCAxNDozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgTkVXUzogQlVHOiAxNjExNTI0OiBmaXggdGNwIGNvbm5lY3Rpb24gdGFibGUgZmQgbGVhawoKMjAwNi0xMi0wOCAxMzoxNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbToKCiAgIHJldmVydCB1bmluZm9ybWVkIHZlcnNpb24gY2hhbmdlCgoyMDA2LTEyLTA3IDIxOjUwICB1aWQzOTAzOQoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbSwgU05NUC54cywKICAgICB0L2NvbmYudDoKCiAgIGNsZWFuIHVwIGNvbXBpbGUgYW5kIGZpeCB0ZXN0cwoKMjAwNi0xMi0wNyAxNjo0OCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNvbW1lbnQgZml4CgoyMDA2LTEyLTA3IDE1OjUyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfbWFjaC5jLAogICAgIGNwdS9jcHVfbWFjaC5oOgoKICAgTkVXUzogTWFjT1NYOiBQQVRDSDogMTYwMDUyMjogZnJvbSAiQmlsbCBGZW5uZXIiOiBDUFUgSEFMIGltcGxlbWVudGF0aW9uIGZvciBtYWNoL2RhcndpbgoKMjAwNi0xMi0wNyAxMzoxMCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjA0NTgwOiBTTk1QKDMpIG1hbnVhbCBwYWdlIGNvcnJlY3Rpb25zIChzcG90dGVkIGJ5IHRlay1vcHMpCgoyMDA2LTEyLTA2IDIwOjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgdmFyaW91cyBhc3BlY3RzIG9mIHBvc3QtcmVsZWFzZSB0aGluZ3MgdG8gZG8KCjIwMDYtMTItMDYgMTU6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhZGQgbmVlZGVkIGhlYWRlcgoKMjAwNi0xMi0wNiAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTU1ODgyMzogZml4IGlwQWRkcmVzc1RhYmxlIG1lbW9yeSBsZWFrCgoyMDA2LTEyLTA2IDE1OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYzoKCiAgIE5FV1M6IEJVRzogMTU5NjYzODogbWVtb3J5IGxlYWsgaW4gaXBDaWRyUm91dGVUYWJsZSwgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA2LTEyLTA2IDE0OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgdHdlYWsvYWRkIGRlYnVnIG1zZ3MgaW4gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2lmaW5kZXhfZ2V0CgoyMDA2LTEyLTA1IDIzOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIGZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDA2LTEyLTA1IDIzOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQlVHOiAxNjAwMDkzOiBhdXRvY29uZiAyLjYwIGJyZWFrcyB0aGUgYnVpbGQKCjIwMDYtMTItMDQgMTc6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjaGFuZ2UgdG9wIHRleHQgdG8gcmVtb3ZlIGhpc3Rvcnkgc2VjdGlvbiB3aGljaCB3YXMgb3V0IG9mIGRhdGUKCjIwMDYtMTItMDMgMjM6MjAgIGFsZXhfYgoKICAgKiB3aW4zMi86IGRpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMjogIFdvcmtzcGFjZSBjb21waWxlIGZpeCwgYnVpbGQgaW5zdHJ1Y3Rpb25zIHVwZGF0ZS4KCjIwMDYtMTEtMjQgMTc6NTMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40ICkKCjIwMDYtMTEtMjQgMTc6NTIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNi0xMS0yNCAxNzo0OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMzIC0+IFY1LjQKCjIwMDYtMTEtMjQgMDk6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTI0IDA5OjQzICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40ICkKCjIwMDYtMTEtMjQgMDk6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXIgdG8gZml4IE1TVkMgaXNzdWVzCgoyMDA2LTExLTI0IDA4OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSBDT0RJTkcgc2VjdGlvbi4KICAgSSdtIHN1cmUgdGhlcmUgYXJlIG1vcmUgY2hhbmdlcyB0aGF0IGNvdWxkIHVzZWZ1bGx5IGJlIG1hZGUsCiAgIGJ1dCBMaWZlJ3MgVG9vIFNob3J0LiAgIE9LLCBXZXMgLSBpdCdzIGFsbCB5b3Vycy4uLi4KCjIwMDYtMTEtMjQgMDc6MzggIGR0czEyCgogICAqIFJFQURNRToKCiAgIFR3ZWFrIHdlYiBsaW5rcyBzbGlnaHRseSwgYW5kIG1lbnRpb24gdGhlIFdpa2kuCgoyMDA2LTExLTI0IDA3OjA5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jIHVwZGF0ZSBiYXNlZCBvbiBwZXJsIGNoYW5nZXMKCjIwMDYtMTEtMjQgMDY6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIERyb3Agb2Jzb2xldGUgZW50cmllcy4KCjIwMDYtMTEtMjQgMDY6MjMgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIENPTVBJTElORyBzZWN0aW9uLgoKMjAwNi0xMS0yNCAwNjowMiAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgcmVzdCBvZiB0aGUgQUdFTlRTIHNlY3Rpb24uCgoyMDA2LTExLTI0IDA1OjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBDb21taXQgcmV2aXNpb25zIHRvIHRoZSBNSUJTIGFuZCAobW9zdCBvZikgdGhlIEFHRU5UUyBzZWN0aW9ucy4KICAgNDMgcGFnZXMgZG93biwgMTggdG8gZ28uLi4uCgoyMDA2LTExLTI0IDA1OjEzICB0YW5kZXJzCgogICAqIEZBUToKCiAgIGFkZCBzb21lIG1vcmUgd29ya2luZyBwbGF0Zm9ybXM7IHBlcmwgLT4gUGVybAoKMjAwNi0xMS0yNCAwMzoyMSAgZHRzMTIKCiAgICogRkFROgoKICAgUmV2aXNpb24gb2YgdGhlIGZpcnN0IHRocmVlIHNlY3Rpb25zIChHRU5FUkFMLCBBUFBMSUNBVElPTlMsIFBFUkwpLgogICBQcm9iYWJseSByYWNpbmcgYSBsb3NpbmcgYmF0dGxlIGFnYWluc3QgcGFja2FnaW5nIHRoZSB1cGNvbWluZyByZWxlYXNlIQoKMjAwNi0xMS0yMyAxOTozMCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHVwZGF0ZXMgYW5kIGNsZWFudXAgZm9yIDUuNAoKMjAwNi0xMS0yMyAxNzoxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjAxMjYxOiBmcm9tICJTdGVwaGVuIEouIEZyaWVkbCI6IHVwZGF0ZSBSRUFETUUuc211eAoKMjAwNi0xMS0yMyAxNjozOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBtaXNjOiBSUE0gc3BlYyBmaWxlIGZpeGVzIGZvciA2NC1iaXQgcGxhdGZvcm1zCgoyMDA2LTExLTIzIDAxOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFJlbW92ZSBpcnJlbGV2YW50IGNvbW1lbnRzIChsZWZ0IG92ZXIgZnJvbSB0aGUgZGV2ZWxvcG1lbnQgcGhhc2UpLgoKMjAwNi0xMS0yMiAxNjowNiAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHVzZSAtLXdpdGhvdXQgZm9yIHBlcmwgbm93IGlmIG9mZgoKMjAwNi0xMS0yMiAxNTo1NCAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpbmFsIHZlcmlzb24gY2hhbmdlCgoyMDA2LTExLTIyIDE1OjI1ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHJldmVydCB0byBjb3JyZWN0IHZlcnNpb24KCjIwMDYtMTEtMjIgMTU6MjMgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSByZW1vdmUgYmFkIHBhdGNoIHJlZmVyZW5jZQogICAtIGVuYWJsZSBQZXJsIGJ5IGRlZmF1bHQsIGJ1dCBhbGxvdyBmb3IgLS13aXRob3V0IHBlcmxfbW9kdWxlc3xlbWJlZGRlZF9wZXJsCiAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCBmb3IgbG9jYWwgZGVmaW5lcwoKMjAwNi0xMS0yMiAwODo0OSAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ2xhcmlmaWNhdGlvbiBvZiB0aGUgYmVoYXZpb3VyIG9mIG9iamVjdHMgaW4gdGhlIG1lbW9yeSAmIHN5c3RlbVN0YXRzIGdyb3VwcywKICAgYW5kIG9iamVjdHMgdXNlZCBmb3IgcmVwb3J0aW5nL2ZpeGluZyBlcnJvcnMuCgoyMDA2LTExLTIyIDA3OjA3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbjoKCiAgIG1hbmFsaWFzIGFsd2F5cy1tYWRlIGZpeDsgbm93IHRvdWNoZXMgYSB0ZW1wIGZpbGUgKGFuZCBjbGVhbnMgbGF0ZXIpCgoyMDA2LTExLTIyIDA1OjI1ICB0YW5kZXJzCgogICAqIC5jdnNpZ25vcmU6CgogICBhZGQgbmV3ICdtaycgc3ViZGlyCgoyMDA2LTExLTIyIDA1OjI0ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIG5ldyBtYW51YWwgcGFnZXMKCjIwMDYtMTEtMjIgMDU6MDMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU5ODk2NjogZnJvbSAiUGV0ZXIgRWNrZWwiOiBGaXggYnVnICMxNTk4OTI3OiAjZWxpZiBidWlsZCBmaXgKCjIwMDYtMTEtMjIgMDQ6NTggIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE1OTg5Njg6IGZyb20gIlBldGVyIEVja2VsIjogRml4IGJ1ZyAjMTU4Nzc1OTogc25tcHRyYXBkIGRvZXNuJ3QgcmVjb2duaXplIC1BIG9wdGlvbgoKMjAwNi0xMS0xOCAwOTo1NiAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4ZXMgZm9yIE5vbmUgcmV0dXJuIHRweWUgYW5kIG9jdGV0IHZhbCBoYW5kbGluZwoKMjAwNi0xMS0xOCAwNzoyOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMzICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMyIC0+IFY1LjQucmMzCgoyMDA2LTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMS0xOCAwNzoxMyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzMgKQoKMjAwNi0xMS0xOCAwNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBmaXggbWlzc2luZyBtZW1DYWNoZWQuMCBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMKCjIwMDYtMTEtMTYgMjA6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggcGVybCBDQyBleHRyYWN0aW9uIHRvIGFsbG93IGZvciBwYXRocwoKMjAwNi0xMS0xNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCBwZXJsIENDIGV4dHJhY3Rpb24gdG8gYWxsb3cgZm9yIHBhdGhzCgoyMDA2LTExLTE2IDEzOjM4ICB0YW5kZXJzCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgbWFudWFsIHBhZ2VzIHRvIHRoZSBidWlsZCBwcm9jZXNzCgoyMDA2LTExLTE2IDAxOjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBwcm9wZXJseSBwcm90ZWN0IG5saXN0IGNvZGUgdG8gZml4IGJ1aWxkIGlzc3VlcyB3LyAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0xNSAxNjoyMiAgdGFuZGVycwoKICAgKiBtYW4vOiBlbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCBmaXhwcm9jLjEuZGVmLAogICAgIG1pYjJjLXVwZGF0ZS4xLmRlZiwgbmV0LXNubXAtY29uZmlnLjEuZGVmLAogICAgIHRrbWliLjEuZGVmLCB0cmFwdG9lbWFpbC4xLmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTU3NzkxMzogYWRkIG1pc3NpbmcgbWFudWFsIHBhZ2VzIGZvciBleGVjdXRhYmxlcywgc3VwcGxpZWQgYnkgRGViaWFuCgoyMDA2LTExLTE1IDE1OjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIFVwZGF0ZSB0byB0aGUgbmV3IHN5bnRheCBvZiB0aGUgc25tcG5ldHN0YXQgcmV3cml0ZS4gSW5zcGlyZWQgYnkgRGViaWFuLgoKMjAwNi0xMS0xNSAxNDo0NSAgdGFuZGVycwoKICAgKiBtYW4vc25tcHNldC4xLmRlZjoKCiAgIGZvcm1hdCBmaXggKGZyb20gRGViaWFuIHBhdGNoIDA3X2RvY2ZpbGVzLnBhdGNoKQoKMjAwNi0xMS0xNSAxMTozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIFB1dCBkZXNjcmlwdGlvbiBvbiBhIHNpbmdsZSBsaW5lLiBUYWtlbiBmcm9tIERlYmlhbiBwYXRjaCAwN19kb2NmaWxlcy5wYXRjaAoKMjAwNi0xMS0xNCAxNjowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgRml4IGluaXRpYWxpc2F0aW9uIHByb2JsZW0gKHdoaWNoIHJlc3VsdHMgaW4gdGhlIGFnZW50IGZhaWxpbmcKICAgdG8gc3RhcnQgb24gRnJlZUJTRCBzeXN0ZW1zLCB3aGVuIHJ1biBhcyBhbiB1bnByaXZpbGVnZWQgdXNlcikuCgoyMDA2LTExLTE0IDE1OjQ0ICB0YW5kZXJzCgogICAqIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGF+OgoKICAgZG8gd2UgYWdyZWUgdG8gbm90IHNoaXAgZWRpdG9yIGJhY2t1cCBjb3BpZXM/CgoyMDA2LTExLTE0IDAzOjE4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgdWRwVGFibGUgcmVxdWlyZXMgL2Rldi9rbWVtIGFjY2VzcyBvbiBJUklYIGFuZCBUcnU2NCBVbml4CgoyMDA2LTExLTE0IDAxOjU2ICB0YW5kZXJzCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE1OTYwMjg6IGZyb20gIlN0ZXBoZW4gSi4gRnJpZWRsIjogY29uc3QgZml4ZXMgZm9yIHRoZSBtaWJfYXBpKDMpIG1hbnVhbCBwYWdlCgoyMDA2LTExLTEzIDE2OjE3ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIENIQU5HRVM6IHBlcmw6IG1ha2UgcGVybHRlc3QgZml4ZXMgZm9yIFNvbGFyaXMgMi42IGFuZCBlYXJsaWVyCgoyMDA2LTExLTEzIDE1OjU0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogU05NUC5wbSBmaXhlcyBmb3IgNjQtYml0IHBsYXRmb3JtcwoKMjAwNi0xMS0xMyAxNTo0OSAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgSFAtVVgKCjIwMDYtMTEtMTMgMTU6MjYgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgRHJvcCBEYXRhOjpEdW1wZXIgc2luY2UgUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aCBJUklYIDYuNSBkb2Vzbid0IGluY2x1ZGUgaXQuCgoyMDA2LTExLTEzIDE0OjUxICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEcm9wIHVubmVlZGVkIGRlcGVuZGVuY3kgb24gRGF0YTo6RHVtcGVyLgoKMjAwNi0xMS0xMyAxNDo0NiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgSVJJWAoKMjAwNi0xMS0xMiAxNzo1MyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwKICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIHdhcm5pbmdzIGFib3V0IGNvbXBpbGluZyB3aXRoIHRoZSBTTk1QIGxpYnJhcnkgRExMLgoKMjAwNi0xMS0xMCAwMzoyNCAgdGFuZGVycwoKICAgKiBSRUFETUUub3NYOgoKICAgcmVtb3ZlIC0tZW5hYmxlLW1pbmktYWdlbnQgcmVjb21tZW5kYXRpb24gYmVjYXVzZSAtLXdpdGhvdXQta21lbS11c2FnZSBubyBsb25nZXIgcmVxdWlyZXMgaXQKCjIwMDYtMTEtMTAgMDE6MjEgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFJlZmVyZW5jZSB0aGUgY29ycmVjdCBtYW4gcGFnZSBmb3Igc25tcF90cmFwX2FwaSBhbGlhc2VzLgogICBSZXBvcnRlZCBhbmQgZml4ZWQgYnkgQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTEtMDggMDg6MjQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzEgLT4gVjUuNC5yYzIKCjIwMDYtMTEtMDggMDc6NTYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTA4IDA3OjU1ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMiApCgoyMDA2LTExLTA4IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgUGF0Y2ggZnJvbSBSb2JlcnQgdG8gY2hlY2sgcHJvY2Vzc2VkIGZsYWcgYmVmb3JlIHByb2NlZWRpbmcKCjIwMDYtMTEtMDcgMTU6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgRml4IGR1cGxpY2F0ZSBjYXNlIHN0YXRlbWVudHMgKGFuZCBpbmRpY2F0ZSB3aGljaCBhcmUgdGhlIGRlcHJlY2F0ZWQgb2JqZWN0cykKCjIwMDYtMTEtMDcgMTQ6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgQ2xhcmlmeSBtZWFuaW5nIG9mIG1lbSpUZXh0IG9iamVjdHMgKGFuZCBkZWZpbmUgbmV3IGNvbnNpc3RlbnQgdmVyc2lvbnMpLgoKMjAwNi0xMS0wNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGQgYSBtaXNzaW5nIHBhcmVuIHRvIGEgZGVzY3JpcHRpb24gZmllbGQKCjIwMDYtMTEtMDcgMDY6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBNYWtlZmlsZS5pbiwKICAgICBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgcGF0Y2ggdG8gZml4IHNlZCB1c2FnZSBvbiBzeXN0ZW1zIHdpdGggYSB2ZXJ5IG9sZCBzZWQKCjIwMDYtMTEtMDYgMTU6NTAgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBtZW50aW9uIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTA2IDE1OjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcEFkZHIuYwosIGlwdjYuYywgdGNwVGFibGUuYywgdWRwVGFibGUuYywKICAgICB2YXJfcm91dGUuYzoKCiAgIGltcHJvdmVkIGtsb29rdXAgZXJyb3IgaGFuZGxpbmcKCjIwMDYtMTEtMDYgMTU6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBSRUFETUUuYWl4LCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQva2VybmVsLmg6CgogICBDSEFOR0VTOiBzbm1wZDogYnVpbGQgZml4IGZvciAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0wNiAwNzoxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHNoIGRvZXNuJ3QgbGlrZSAiPT0iLCBvZiBjb3Vyc2UuCgoyMDA2LTExLTA2IDAzOjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgc2tpcCBwcm94eSB0ZXN0cyBmb3IgVENQIGJlY2F1c2UgdGhlIHByb3h5IGNvZGUgZG9lc24ndCBzdXBwb3J0IFRDUCB5ZXQKCjIwMDYtMTEtMDMgMTc6MzkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNThhZ2VudGF1dGh0cmFwLCBUMDY1YWdlbnRleHRlbmQsCiAgICAgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgQ0hBTkdFUzogbWlzYzogIm1ha2UgdGVzdCIgZml4ZXMgZm9yIG5vbi1VRFAgdHJhbnNwb3J0cwoKMjAwNi0xMS0wMyAwODo0MCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgY2xpZW50X2ludGYuYzoKCiAgIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBweXRob24gaW50ZXJmYWNlCgoyMDA2LTExLTAyIDE1OjMwICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIG5ldyBtYW4gcGFnZSBhbGlhc2VzCgoyMDA2LTExLTAxIDE1OjUzICB0YW5kZXJzCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZyBzaGFsbCBvbmx5IGRvY3VtZW50IGNoYW5nZXMgb2YgdGhlIGJyYW5jaCBpdCdzIGNvbnRhaW5lZCBpbgoKMjAwNi0xMS0wMSAwODozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIENIQU5HRVM6IEJVRzogMTU4NTgxNTogZml4IG1mZCBiaXRzIGxlbmd0aCBjYWxjdWxhdGlvbgoKMjAwNi0xMC0zMSAxNDoyOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMxICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlNCAtPiBWNS40LnJjMQoKMjAwNi0xMC0zMSAxMjo1MSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTAtMzEgMTI6NTEgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMxICkKCjIwMDYtMTAtMzEgMTI6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgcmVtb3ZlIHRoZSBrbG9va3VwIGRlZmluZSBhcyAoMCkgc2luY2UgRGF2ZSBmb3VuZCBkZWZpbml0ZSBzcG90cyB3aGVyZSB0aGlzIHdhcyB1bnNhZmUKCjIwMDYtMTAtMzEgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgUGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGF0dGVtcHQgdG8gZml4IGxhY2sgb2Yga21lbSBzdXBwb3J0IGZvciB2YXJpb3VzIHBsYXRmb3JtcyB3aGVuIGttZW0gaXNuJ3QgYXZhaWxhYmxlCgoyMDA2LTEwLTMxIDA3OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggYSBwcm9ibGVtIHdpdGggdGhlIG1hbiBnZW5lcmF0aW9uIHBhdGNoIGFzIHBvaW50ZWQgb3V0IGJ5IENocmlzIEphbGJlcnQKCjIwMDYtMTAtMzEgMDc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgbWlub3IgcGF0Y2ggZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBsbXNlbnNvcnMgMjQwIGNsYXNzIG1hY2hpbmVzCgoyMDA2LTEwLTMwIDEzOjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1lbVRvdGFsRnJlZSBzaG91bGQgcmVwb3J0IHRvdGFsIHZpcnR1YWwgaW5zdGVhZCBvZiBwaHlzaWNhbCBtZW1vcnkKCjIwMDYtMTAtMzAgMDk6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBtZW0gSEFMIGZpeGVzIGZvciBJUklYCgoyMDA2LTEwLTMwIDA3OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB1c2UgZ2VuZXJhdGVkIGFsaWFzIG1hbiBwYWdlcwoKMjAwNi0xMC0yOCAxODoyMyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIC0tZGlzYWJsZS1lbWJlZGRlZC1wZXJsIC0td2l0aG91dC1wZXJsLW1vZHVsZXMgZm9yIE1pbkdXIC8gQ3lnd2luLgoKMjAwNi0xMC0yNyAxMzoxOSAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9idWlsZC5wbCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4KLCB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluCjoKCiAgIC1BbGxvdyBidWlsZGluZyBvZiBhcHBsaWNhdGlvbnMgd2l0aCBsaWJyYXJ5IERMTCBpbiBidWlsZC5iYXQgYnVpbGQgc3lzdGVtLgogICAtRml4IERMTCBleHBvcnQvaW1wb3J0IHZhcmlhYmxlcyBmb3IgbGlicmFyeSBETEwKCjIwMDYtMTAtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa2luZyBvZmYgb2YgYSBjbGlmZgoKMjAwNi0xMC0yNyAwNzozMiAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBjbGllbnQucHkKCjIwMDYtMTAtMjcgMDI6MDQgIHRhbmRlcnMKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICBDSEFOR0VTOiBtaXNjOiBCVUdTOiAxNTg1MjUwOiBkb24ndCB1c2UgZGVwcmVjYXRlZCBvcHRpb25zIGluIHN0YXJ0IHNjcmlwdAoKMjAwNi0xMC0yNiAxNzo1MCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6ICBBZGQgYSBjb3VwbGUgREVCVUcgbGluZXMuCgoyMDA2LTEwLTI2IDE3OjE1ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBXaW4zMjogUkVBRE1FIHVwZGF0ZSwgYnVpbGQgc3RlcHMgdXBkYXRlLgoKMjAwNi0xMC0yNiAwOToyMSAgdGFuZGVycwoKICAgKiBDb2RpbmdTdHlsZToKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMTAtMjYgMDQ6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciBmaXhlcyBmb3IgImNvbmZpZ3VyZSAtLWhlbHAiIG91dHB1dCwgZXNwZWNpYWxseSBmb3IgTUlCIG1vZHVsZXMKCjIwMDYtMTAtMjYgMDM6MjQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IE1hY09TWDogYnVpbGQgZml4IGZvciBtaWJJSS91ZHBUYWJsZQoKMjAwNi0xMC0yNSAxMTo1MSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIE5FVFNOTVBfIHByZWZpeCBtaXNzaW5nIGZvciBPUEVOU1NMLgoKMjAwNi0xMC0yNSAwOToxNiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHBlcmwvT0lEL09JRC54cywKICAgICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC54cywKICAgICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogcmVuYW1lIGluaXRfbWliIHRvIG5ldHNubXBfaW5pdF9taWIgdG8gYXZvaWQgc3ltYm9sIGNsYXNoIHdpdGggSFAtVVgncyBsaWJubQoKMjAwNi0xMC0yMyAxNDowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgQUlYIHNoaXBzIGhvc3QgYnkgZGVmYXVsdAoKMjAwNi0xMC0yMiAxODowMSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0RldmVsb3Blcl9GQVEuaHRtbCwgaHRtbGhlbHAvRkFRLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIGluc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgVXBkYXRlIFdpbmRvd3MgYmluYXJ5IGJ1aWxkIGZpbGVzLgoKMjAwNi0xMC0yMSAwOTo0MiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHdpbkV4dERMTCB1cGRhdGUuCgoyMDA2LTEwLTIxIDA5OjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZWFkbWUgdXBkYXRlIGZvciB3aW5FeHRETEwsIGNoYW5nZSBjb21tYW5kIGxpbmUgZm9yIHdpbkV4dERMTC4KCjIwMDYtMTAtMjEgMDc6MDcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENvZGUgY2xlYW51cC4gIEFkZCBzdXBwb3J0IGZvciB4U25tcEV4dGVuc2lvblF1ZXJ5RXggZm9yIFNFVC9HRVRORVhULgoKMjAwNi0xMC0yMSAwNTo0NSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogc25tcHNldCBzdHJpbmcsIERMTCBsb2FkaW5nIGFuZCBzbm1wd2FsayBmaXhlcy4KCjIwMDYtMTAtMjEgMDU6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgcmVtb3ZlIG5vdC1leGlzdGVudCBTQlNNIGRlZmluaXRpb24gZnJvbSB0ZXN0IGNhc2VzCgoyMDA2LTEwLTIwIDE3OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTQgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUzIC0+IFY1LjQucHJlNAoKMjAwNi0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggZnJvbSBBbmRlcnMgUGVyc3NvbiB0byBjaGFuZ2UgdF91c2NhbGFyX3QgdG8gc29tZXRoaW5nIG1vcmUgcG9ydGFibGUgKHVpbnQzMl90KQoKMjAwNi0xMC0yMCAxMzo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2RzX2FnZW50LmgsCiAgICAgbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBEb2N1bWVudCB0aGUgbmVlZCB0byB1cGRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgcGVybCBpbnRlcmZhY2VzCiAgIHdoZW4gY2hhbmdlcyBhcmUgbWFkZS4KCjIwMDYtMTAtMjAgMDg6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIHVzZSBjcHVfbnVsbCBmb3IgYWxsIGRhcndpbiwgdW50aWwgY29kZSB3b3JrcwoKMjAwNi0xMC0yMCAwODoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X25saXN0LmMsIGNwdV9zeXNjdGwuYwo6CgogICBDbGFyaWZ5IGNvbW1lbnRzIHRvIHJlZmxlY3QgcmVhbGl0eS4KCjIwMDYtMTAtMjAgMDg6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBmaXggc3ludGF4IGVycm9yOyBtYWtlIHN1cmUgd2UgZ2V0IGNwdV9udWxsIGZvciBkYXJ3aW42LzcsIGNwdV9zeXNjdGwgZm9yIGRhcndpbjgrCgoyMDA2LTEwLTIwIDA3OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICB1c2UgY3B1X251bGwgZm9yIGRhcndpbjcgYW5kIGRhcndpbjYKCjIwMDYtMTAtMjAgMDE6NDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBvcGVuYnNkNCBhbmQgZGFyd2luIHNob3VsZCB1c2UgY3B1X3N5c2N0bAoKMjAwNi0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTAtMTkgMjI6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlNCApCgoyMDA2LTEwLTE5IDE2OjQ0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYzoKCiAgIGZpeCB1cCBoZWFkZXIgaW5jbHVzaW9uIGEgYml0CgoyMDA2LTEwLTE5IDE1OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICB0ZXN0IGZvciBkYXJ3aW5nIGJlZm9yZSBmcmVlYnNkLCBzaW5jZSBkYXJ3aW4gZGVmaW5lcyBmcmVlYnNkCgoyMDA2LTEwLTE5IDE0OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgZml4IGJyb2tlbiBiYWQgZXZpbCBpZlRhYmxlLmggdXNhZ2UKCjIwMDYtMTAtMTkgMTM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfZGVmcy5oLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmM6CgogICBkb24ndCBsZXQgaWZUYWJsZS5oIHJlZGVmaW5lIHJhbmRvbSBzeW1ib2xzIGFmZmVjdGluZyBvdGhlciBjb2RlCgoyMDA2LTEwLTE5IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBsaWJoZWxwZXJzIGZyb20gdGhlIGxpbmsgbGluZSBvZiBsaWJhZ2VudHMKCjIwMDYtMTAtMTkgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCB0cmFuc3BvcnQgc29jayBwYXRjaAoKMjAwNi0xMC0xOSAwNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3OTM2NDogZnJvbSBqYWxiZXJ0OiBVcGRhdGVkIGRhcndpbiBwYXRjaCB0byBmaXggY29tcGlsYXRpb24gb24gVGlnZXIgYW5kIExlYXBvcmQKCjIwMDYtMTAtMTggMTY6NTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBGaW5pc2ggYWRkaW5nIHN1cHBvcnQgZm9yIERMTHMgdGhhdCBzdXBwb3J0IG11bHRpcGxlCiAgIHJhbmdlcy4KCjIwMDYtMTAtMTggMTQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5jLAogICAgIG10ZUV2ZW50Q29uZi5oLCBtdGVPYmplY3RzQ29uZi5jLCBtdGVPYmplY3RzQ29uZi5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIENsZWFubHkgaGFuZGxlIHJlLWxvYWRpbmcgIm1vbml0b3IiIChhbmQgcmVsYXRlZCkgZGlyZWN0aXZlcy4KCjIwMDYtMTAtMTggMTQ6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgSGFuZGxlIGludmFsaWQgcGF5bG9hZCBvYmplY3QgT0lEcy4KCjIwMDYtMTAtMTggMTI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ2xlYW5seSBoYW5kbGUgcmUtbG9hZGluZyAiZXh0ZW5kIiBkaXJlY3RpdmVzLgoKMjAwNi0xMC0xOCAwNzo0NSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICAtIHVzZXIgL3Vzci9iaW4vZW52IGZvciBwb3J0YWJpbGl0eQogICAtIG9ubHkgdGVzdCBmb3IgdGFyIGlmIHdlJ3JlIGdvaW5nIHRvIHVzZSBpdAoKMjAwNi0xMC0xOCAwMzoyOSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5ldyBwYXNzX3BlcnNpc3QgZXJyb3IgbWVzc2FnZXMgaW50cm9kdWNlZCBieSBwYXRjaCAxNTY4MTUwCgoyMDA2LTEwLTE3IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUub3NYOgoKICAgdXBkYXRlIGZyb20gQ2hyaXMgSmFsYmVydAoKMjAwNi0xMC0xNyAyMDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMTU2NTcwMzogcGF0Y2ggdG8gZml4IHJhcGlkIHJlZ2lzdHJhdGlvbnMvZGVyZWdpc3RyYXRpb24gaXNzdWVzCgoyMDA2LTEwLTE3IDIwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSCAxNTYyNjg4OiBmaXggcGluZy9yZWF0dGFjaCBhZ2VudHggY29kZQoKMjAwNi0xMC0xNyAyMDowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMTU2MjE2ODogY2hlY2sgZm9yIGEgc29jayBmZCBsZXNzIHRoYW4gMC4KCjIwMDYtMTAtMTcgMTk6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwo6CgogICB1c2luZyB2Zm9yayBhbmQgbmFtZWQgcGlwZXM6IE5FV1M6IHNubXBkOiBQQVRDSDogMTU1MTk0ODogZnJvbSBhcHJvZW1lbDogTWFrZSBwYXNzX3BlcnNpc3QgdXNhYmxlIG9uIHVDbGludXgKCjIwMDYtMTAtMTcgMTk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTY4MTUwOiBmcm9tIGdhdmluX2hhbjogRXh0ZW5kIHBhc3NfcGVyc2lzdCBlcnJvciBtZXNzYWdlcyB0aGF0IGNhbiBiZSBwYXNzZWQgYmFjayBmcm9tIHRoZSBzY3JpcHQKCjIwMDYtMTAtMTcgMTk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU3MDY1MDogZnJvbSAiQmVub2l0IEFtaWF1eCI6IGNyZWF0ZSBhIGxvZ2dpbmcgc2h1dGRvd24gZnVuY3Rpb24gdG8gcHJvcGVybHkgY2xlYW4gdXAgbG9nIHJlZ2lzdHJhdGlvbnMgaWYgbmVlZGVkLgoKMjAwNi0xMC0xNyAxOTowNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTcwNjUwOiBmcm9tICJCZW5vaXQgQW1pYXV4IjogbWFrZSBkZWxldGUgdGFibGUgZnVuY3Rpb24gcHVibGljCgoyMDA2LTEwLTE3IDE4OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxNTc1OTM3OiBmcm9tIG1hcnRpbjk4NzogZml4IHVzZW51bWVyaWMgb3V0cHV0IGluIGFzeW5jIHZhcmJpbmRzIHNvIHRoZXkgcmV0dXJuIE9JRHMgaW5zdGVhZCBvZiBlbXB0eSBzdHJpbmdzLgoKMjAwNi0xMC0xNyAxODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3NTk4NDogZnJvbSBydHlsZTogYmxvY2sgU0lHSFVQIGR1cmluZyByZWNvbmZpZwoKMjAwNi0xMC0xNyAxODozNCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIHJlbW92ZSBjb3JyZWN0IHN1YiBkaXJlY3RvcnkKCjIwMDYtMTAtMTcgMTg6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS54cywgZ2VuLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkc19hZ2VudC5oIGRlZmluZXMKCjIwMDYtMTAtMTcgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCBnZW4sIHRlc3QucGw6CgogICBzdXBwb3J0IGxhdGVzdCBoMnhzOyBORVdTOiBwZXJsOiB1cGRhdGUgZGVmYXVsdF9zdG9yZSBtb2R1bGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgYy1iaW5kaW5nIHRva2VucwoKMjAwNi0xMC0xNyAxNjowNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgY29uZmlnIGdlbmVyYXRlZCBmaWxlcyBvbiBhIG1ha2UgZGlzdGNsZWFuCgoyMDA2LTEwLTE3IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgcHJvcGVybHkgZml4IHRoZSBzZWQgaXNzdWVzIHdpdGhvdXQgcmVtb3ZpbmcgZnVuY3Rpb25hbGl0eSBieSB1c2luZyBmaWxlcyBpbnN0ZWFkIG9mIHNlZCBleHByZXNzaW9ucwoKMjAwNi0xMC0xNyAxNDowOCAgdGFuZGVycwoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIG1ha2Uga2xvb2t1cCBkZWJ1Z2dpbmcgbGVzcyB2ZXJib3NlCgoyMDA2LTEwLTE3IDEzOjMyICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgYWRkIGtsb29rdXAgZGVidWdnaW5nCgoyMDA2LTEwLTE3IDEwOjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHN0aWxsIGJ1aWxkIGlmIGtlcm5lbCBzeW1ib2xzIHVuZGVmaW5lZAoKMjAwNi0xMC0xNyAwOToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBBc3NvY2lhdGUgZXJyb3JzIGZyb20gZGVsZWdhdGVkIHJlcXVlc3RzIHdpdGggdGhlIGNvcnJlY3QgdmFyYmluZCwKICAgYW5kIGZpeCBwcm9ibGVtcyB3aXRoIGZhaWxlZCBwcm94aWVkIHJlcXVlc3RzIHRpbWluZyBvdXQuCiAgIFJlcG9ydGVkIGJ5IFBhYmxvIFBhc3NlcmEgIChTZWUgY29kZXJzIGxpc3QgLSA1dGggT2N0IGZmKQoKMjAwNi0xMC0xNyAwOToxMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogLS1lbmFibGUtYXMtbmVlZGVkIHdpbGwgdHJ5IHRvIGxpbmsgYnVpbHQgbGlicmFyaWVzIGFnYWluc3QgbmVlZGVkIGxpYnJhcmllcyBhdCBsaWJyYXJ5IGxpbmsgdGltZSwgcmF0aGVyIHRoYW4gYXBwbGljYXRpb24gbGluayB0aW1lLgoKMjAwNi0xMC0xNyAwNzo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSAnY29tcGlsZXIgb3B0aW9ucycgaGVhZGVyIGluIGhlbHAgb3V0cHV0CgoyMDA2LTEwLTE3IDA3OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGJhY2sgb3V0IGhvc3QvaHJfc3dydW4gcGFydCBvZiB0aGUgQUlYIGp1bWJvIHBhdGNoIHNpbmNlIGl0IG92ZXJ3cm90ZSBhIG1vcmUgY29tcGxldGUsIHdvcmtpbmcgaW1wbGVtZW50YXRpb24gd2l0aCBhIHNlZ2ZhdWx0aW5nIG9uZQoKMjAwNi0xMC0xNiAxNjozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBDSEFOR0VTOiBJUklYOiBwcm9wZXIgaW1wbGVtZW50YXRpb24gZm9yIFVDRC1TTk1QLU1JQjo6bGFUYWJsZSAoYXZvaWRpbmcgbmxpc3QpCgoyMDA2LTEwLTE2IDExOjQzICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCB0ZXN0cy90ZXN0LnB5OgoKICAgbnVtZXJpYyBhbmQgT0lEIHNldHMgd2l0aCB0ZXN0aW5nCgoyMDA2LTEwLTE2IDA4OjU0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIGRpc2FibGluZyBubGlzdCBzaG91bGRuJ3QgZGlzYWJsZSBwZXJmc3RhdAoKMjAwNi0xMC0xNiAwODoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZGVhbCB3aXRoIG1pc3NpbmcgQVJQVEFCX1NJWkVfU1lNQk9MCgoyMDA2LTEwLTE2IDA3OjU0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaDoKCiAgIENIQU5HRVM6IFRydTY0OiAtIGZpeCAiYXV0b19ubGlzdCBmYWlsZWQgb24gYXJwdGFiX3NpemUgYXQgbG9jYXRpb24gMCIgZXJyb3JzCgoyMDA2LTEwLTE1IDE3OjIzICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMIGZpeGVzIGZvciBzbm1wd2FsayAvIHNubXBnZXRuZXh0LgoKMjAwNi0xMC0xNSAxNDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERvbid0IG1vYW4gYWJvdXQgbm9ybWFsIGNvbm5lY3Rpb24tYmFzZWQgdHJhbnNwb3J0IGFjdGl2aXR5CiAgIChhbmQgKmRvKiBtb2FuIHNlbnNpYmx5IGFib3V0IGZhaWxlZCBzZW5kcykuCgoyMDA2LTEwLTE1IDE0OjQzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFN0b3JlIFRDUC9JUHY0IGFkZHJlc3MgaW5mb3JtYXRpb24gaW4gdGhlIHNhbWUgZm9ybWF0IGFzIFVEUC9JUHY0LgogICBUaGlzIGFsbG93cyB0aGUgY29tbXVuaXR5IC0+IHNlY3VyaXR5IG5hbWUgbWFwcGluZyB0byB3b3JrIGNvcnJlY3RseS4KICAgRml4ZXMgQnVnICMxNTcxOTQ1LgogICAgICBBIGJldHRlciAobW9yZSBtb2R1bGFyKSBzb2x1dGlvbiB3b3VsZCBiZSBwcmVmZXJhYmxlIChzZWUgZGlzY3Vzc2lvbnMKICAgb24gdGhlIG1haWxpbmcgbGlzdHMpLCBidXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgYWxsb3cgNS40IHRvIHByb2NlZWQuCgoyMDA2LTEwLTE1IDEwOjAzICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAga2xvb2t1cCB0YWtlcyB0aHJlZSBhcmd1bWVudHMsIG5vdCBvbmUKCjIwMDYtMTAtMTQgMTQ6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGtlcm5lbC5oLAogICAgIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHByZXBhcmUgZm9yIDY0LWJpdCBubGlzdCBjaGFuZ2VzCgoyMDA2LTEwLTE0IDEwOjM3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgRml4IE9JRCBzZXRzLCBtZW1vcnkgbGVha3MuCgoyMDA2LTEwLTE0IDA2OjQ5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiBVc2UgYWxhcm0gaW5zdGVhZCBvZiB0aHJlYWQgZm9yIHRyYXBzLiAgVmFyaW91cyB0cmFwCiAgIGZpeGVzLgoKMjAwNi0xMC0xMyAxNjoxMyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEFkZCB0cmFwIHN1cHBvcnQgZm9yIHJlbWFpbmluZyB0eXBlcywgZml4CiAgIEFTTl9JUEFERFJFU1MgR0VUIHN1cHBvcnQuCgoyMDA2LTEwLTEzIDE1OjE2ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYsIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgc211eHNvY2tldCBuZWVkcyB0byBiZSBhbiBJUHY0IGFkZHJlc3MKCjIwMDYtMTAtMTMgMTQ6NDkgIGR0czEyCgogICAqIFJFQURNRS5vc1g6CgogICBVcGRhdGUgd2l0aCByZWNlbnQgYnVpbGQgcmVwb3J0cyBmcm9tIENocmlzIEphbGJlcnQuCgoyMDA2LTEwLTEzIDE0OjQ1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFN2M3VzbWNvbmZpZ2FnZW50LAogICAgIFN2YW55Y29uZmlnOgoKICAgc211eHNvY2tldCBuZWVkcyB0byBiZSBhbiBJUHY0IGFkZHJlc3MKCjIwMDYtMTAtMTMgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgSGFuZGxlIGVycm9ycyBmcm9tIHJlY3YoKSAtIHNlZSBCdWcgIzE1Mjc5MzAKCjIwMDYtMTAtMTMgMTQ6MjUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRXhwbGljaXRseSByZWZlcmVuY2VkIFZOQU1FIHRva2VuIHdoZW4gZGVzY3JpYmluZyAidmlldyIgdG9rZW4gdXNhZ2UuCiAgIChTdWdnZXN0ZWQgYnkgSm9obiBSb3VpbGxhcmQpCgoyMDA2LTEwLTEzIDEzOjUwICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHJlbW92ZSBORVRTTk1QX0RTX0FHRU5UX0ggd2hpY2ggaXNuJ3QgYSBkZWZhdWx0IHN0b3JlIHZhcmlhYmxlCgoyMDA2LTEwLTEzIDA3OjE0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZpeCBzeW50YXggdHlwbwoKMjAwNi0xMC0xMyAwMjoxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGRvbid0IGNvbW1pdCBib29sZWFuIGxvZ2ljIGxhdGUgYXQgbmlnaHQKCjIwMDYtMTAtMTMgMDE6MjggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ2xhcmlmeSB0aGUgcGFyc2luZyBvZiBib29sZWFuICJtb25pdG9yIiBleHByZXNzaW9ucy4KCjIwMDYtMTAtMTIgMTU6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIHVzZSBtZW1vcnlfZGFyd2luIGZvciBkYXJ3aW43CgoyMDA2LTEwLTEyIDE1OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBFbnN1cmUgaW50ZXJuYWwgcXVlcnkgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgKGFuZCBhY3RpdmUpCiAgICpiZWZvcmUqIG1vbml0b3IgZGlyZWN0aXZlcyBhdHRlbXB0IHRvIHVzZSBpdC4KCjIwMDYtMTAtMTIgMTU6MTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBidWlsZCBmaXggZm9yIHN5c3RlbXMgd2l0aCBubyBSVEhPU1RfU1lNQk9MIG9yIG5vIFJUTkVUX1NZTUJPTCAobGlrZSBBSVgpCgoyMDA2LTEwLTEyIDA5OjEyICB0YW5kZXJzCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTEwLTEyIDA5OjAzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgQ0hBTkdFUzogQUlYOiB1c2UgY29ycmVjdCBBUlBUQUJfU1lNQk9MIGFuZCBBUlBUQUJfU0laRV9TWU1CT0wKCjIwMDYtMTAtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIENIQU5HRVM6IEFJWDogQlVHIDEyMDUzMDA6IG5saXN0IGVycjogbmVpdGhlciBucHJvYyBub3IgX25wcm9jIGZvdW5kIChzYW1lIGZvciBydF90YWJsZSwgcnRoYXNoc2l6ZSwgcnRob3N0LCBydG5ldCkKCjIwMDYtMTAtMTIgMDQ6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBTdXBwcmVzcyB0aGUgc3Vic3RpdHV0aW9uIG9mIHRoZSBsaXN0IG9mIG1vZHVsZSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgcHVyZWx5IGEgdGVtcG9yYXJ5IHN0b3AtZ2FwIGZpeCwgdG8gaGFuZGxlIHNlZCBjb21tYW5kcyB3aGljaAogICBjaG9rZSBvbiBvdmVyLWxvbmcgc3Vic3RpdHV0aW9ucy4gIEEgYmV0dGVyIGFwcHJvYWNoIGlzIG5lZWRlZC4KCjIwMDYtMTAtMTIgMDQ6NDAgIGR0czEyCgogICAqIE5FV1M6CgogICBEb2N1bWVudCBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciAoaW5jbHVkaW5nIGJlaGF2aW91ciBjaGFuZ2VzKS4KCjIwMDYtMTAtMTIgMDM6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiBhc3NpZ25tZW50cyB0byBtdGVUcmlnZ2VyVmFsdWVJRAogICAgICAgW0J1ZyAjMTU3NDcxMywgUGF0Y2ggIzE1NzQ3NDMsIGZyb20gUm9zcyBUeWxlcl0KCjIwMDYtMTAtMTIgMDI6NTQgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgVHdlYWtzIGZvciBEYXJ3aW4gOSBzdXBwb3J0IC0gW1BhdGNoICMxNTc1NDMzLCBmcm9tIENocmlzIEphbGJlcnRdCgoyMDA2LTEwLTEyIDAyOjQ0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44Lmg6CgogICBVcGRhdGVkIHN5c3RlbSBoZWFkZXIgZmlsZSBmb3IgRGFyd2luOCAtIFtQYXRjaCAxNTc1NDMwLCBieSBDaHJpcyBKYWxiZXJ0XQoKMjAwNi0xMC0xMiAwMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgbWVtb3J5Lmg6CgogICBJbmNsdWRlIHRoZSBhcHByb3ByaWF0ZSBIQUwgbW9kdWxlcyBmb3IgRGFyd2luIChEYXJ3aW45KSBzeXN0ZW1zLgogICBTdXBwbGllZCBieSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMC0xMSAwOToyMSAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIGFkZCBub3RlIHRoYXQgLS1lbmFibGUtbWZkLXJld3JpdGVzIGlzIG5lZWRlZCBmb3IgZXhwZXJpbWVudGFsIGlmLW1pYiBwb3J0cwogICAtIHJlbW92ZSBsaW5lIG9uIHBhdGNoIHRvIHByZXZpb3VzbHkgdW5yZWxlYXNlIGNvZGUKCjIwMDYtMTAtMTEgMDk6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGZyZWVic2QuaCwgb3BlbmJzZC5oOgoKICAgaW5jbHVkZSBpZi1taWIgcmV3cml0ZXMgaWYgbWZkIHJld3JpdGVzIGlzIGRlZmluZWQKCjIwMDYtMTAtMTEgMDg6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBpbmNsdWRlIGlmLW1pYiByZXdyaXRlcyBpZiBtZmQgcmV3cml0ZXMgaXMgZGVmaW5lZAoKMjAwNi0xMC0xMCAxNzoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQcml2b3h5V2luZG93T3Blbj8gTXVzdCBoYXZlIGJlZW4gbWlzc2luZyBhIG1ham9yIGZlYXR1cmUgYWRkaXRpb246LSkKCjIwMDYtMTAtMTAgMTU6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTEwLTEwIDE0OjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE1Njk1MzcsMTU2OTUzOTogbmV3IFVEUC1NSUIgYW5kIFRDUC1NSUIgaW1wbGVtZW50YXRpb24gKGVuYWJsZSB0aHJvdWdoIC0td2l0aC1taWItbW9kdWxlcz11ZHAtbWliLHRjcC1taWIpCgoyMDA2LTEwLTEwIDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTcwOTgyIFNvbGFyaXMgSUYtTUlCOiBTdXBwb3J0IGZvciBJUHY2LW9ubHkgaW50ZXJmYWNlcwoKMjAwNi0xMC0xMCAwNzozMiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHByZWFkNjQgKEFJWCkgYW5kIG5saXN0NjQgKElSSVgpCgoyMDA2LTEwLTEwIDA2OjE2ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgbWlzc2luZyBTVFJVQ1RfTkxJU1Q2NF9IQVNfTl9WQUxVRSB2YXJpYWJsZSBzbyB0aGF0IHRoZSB0ZXN0IHJlc3VsdCBpcyBhY3R1YWxseSBzYXZlZAoKMjAwNi0xMC0xMCAwMzo1MiAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggc2hlbGwgc3ludGF4IGVycm9ycyByZXBvcnRlZCBieSBSaWNoYXJkIENob25hawoKMjAwNi0xMC0wOSAwNjoxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIG1vcmUgcm9idXN0IFNvbGFyaXMgQ1BVIHRlc3Rpbmc6IHRoZSBpbmRleCBmb3IgdGhlIGZpcnN0IENQVSBtYXkgdmFyeSBhY3Jvc3Mgc3lzdGVtcyAoQ1BVIDAgPSBpbmRleCA3NjgsIENQVSAxID0gaW5kZXggNzY5IGV0Yy4pCgoyMDA2LTEwLTA5IDA0OjIxICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgb24gREVCVUdNU0cqCgoyMDA2LTEwLTA4IDEzOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBjcHUvY3B1X3BzdGF0LmM6CgogICBBY3RpdmF0ZSBwc3RhdC1iYXNlZCBDUFUgaGFuZGxpbmcgb24gSFAtVVggc3lzdGVtcy4KCjIwMDYtMTAtMDggMTM6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIERvbid0IHJlZGVmaW5lIGFuIGV4aXN0aW5nIHRva2VuIHdpdGhvdXQgdW5kZWZpbmluZyBpdCBmaXJzdC4KCjIwMDYtMTAtMDggMTM6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRW5zdXJlIHRoYXQgaGlzdG9yaWNhbCBkYXRhIGlzIGF2YWlsYWJsZSBiZWZvcmUgd2UgYXR0ZW1wdCB0byB1c2UgaXQuCgoyMDA2LTEwLTA3IDE0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIEZpeCBzaXplIGNoZWNrIGZvciBzcGVjaWFsaXNlZCBpbnRlZ2VyLWJhc2VkIGFzc2lnbm1lbnRzLgogICAoQnVnICMxNTcyMzk0IC0gcGF0Y2ggcHJvdmlkZWQgYnkgUGhpbCBXaWxzb24pCgoyMDA2LTEwLTA3IDA2OjQ5ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUzc29sYXJpc3N3YXA6CgogICBBZGp1c3QgdG8gY2hhbmdlcyBpbiBjZXJ0YWluIEhvc3RSZXMgaW5kZXhpbmcuCgoyMDA2LTEwLTA1IDE1OjQ0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFdoYXQncyBhIHN0cmF5IHVuZGVyc2NvcmUgaGVyZSBvciB0aGVyZSBiZXR3ZWVuIGZyaWVuZHM/CgoyMDA2LTEwLTA1IDA4OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tzdGF0LmM6CgogICBEZWJ1Z2dpbmcgY29kZS4KCjIwMDYtMTAtMDUgMDg6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdGhlIHVzZSBvZiBDUFUgaW5kZXhpbmcuCgoyMDA2LTEwLTA0IDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X251bGwuYwo6CgogICBBbGxvdyBzeXN0ZW1zIHdpdGhvdXQgYW4gZXhwbGljaXQgSEFMIG1lbW9yeSBtb2R1bGUgdG8gY29tcGlsZQogICAoZXZlbiBpZiB0aGUgYWdlbnQgY2FuJ3QgcmVwb3J0IHRoZSByZWxldmFudCBzdGF0aXN0aWNzKS4KCjIwMDYtMTAtMDQgMTQ6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfa3N0YXQuYzoKCiAgIEluY2x1ZGUga3N0YXQtYmFzZWQgQ1BVIHByb2Nlc3Npbmcgb24gU29sYXJpcyBzeXN0ZW1zLCBhbmQgYW1lbmQgdGhpcyBjb2RlCiAgIHRvIGFjdHVhbGx5IGNvbXBpbGUvd29yay4gIChNdWNoIG9mIHRoaXMgc3VwcGxpZWQgYnkgQnJ1Y2UgU2hhdykKCjIwMDYtMTAtMDMgMTE6MzAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGVzdCBmb3IgdGhlIGFjdHVhbCBiZWhhdmlvdXIgb2YgLVV4IC1EeD14LCBhbmQgb25seSB1c2UgdGhpcyBpZiBpdCB3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDYtMTAtMDEgMDg6NDMgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMjogIEFkZCBOU0lTIGluc3RhbGxlciBvcHRpb24gZm9yIGluc3RhbGxpbmcgd2luRXh0RExMIHZlcnNpb24gb2YKICAgc25tcGQuZXhlCgoyMDA2LTEwLTAxIDA2OjQyICBhbGV4X2IKCiAgICogTkVXUywgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYwo6CgogICBXaW4zMjogIEFkZCB0cmFwIHN1cHBvcnQgdG8gd2luRXh0RExMIGFuZCBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNi0wOS0yOSAxOTowMCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogIFJlbW92ZSB3aW5FeHRETEwgc25tcGQuY29uZiBvcHRpb24sIGFkZCBTTk1QIHYyIHN1cHBvcnQuCgoyMDA2LTA5LTI5IDEzOjI4ICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgdGVzdHMvdGVzdC5weToKCiAgIHRlc3QgZml4CgoyMDA2LTA5LTI5IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudF9pbnRmLmMsIGNsaWVudF9pbnRmLmM6CgogICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDYtMDktMjkgMTM6MTggIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICB0ZXN0aW5nIHVwZGF0ZXMKCjIwMDYtMDktMjkgMTM6MDMgIGhhcmRha2VyCgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnQucHksCiAgICAgbmV0c25tcC9jbGllbnRfaW50Zi5jLCBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBzdXBwb3J0IGZvciBhIGdlbmVyaWMgd2FsayB3cmFwcGVyCgoyMDA2LTA5LTI5IDEyOjMxICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgdGVzdHMvdGVzdC5weToKCiAgIGNsZWFudXAKCjIwMDYtMDktMjggMTg6NTAgIG1hcnoKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBhZGRlZCAnc2V0JyBtZXRob2QsIGZpeGVzL2FkZGl0aW9ucyB0byByZWFkbWUKCjIwMDYtMDktMjcgMjM6MDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYzoKCiAgIENIQU5HRVM6IE1hY09TWDogUEFUQ0g6IDE1NjY3Nzc6IGZyb20gamFsYmVydDogYnVpbGQgZml4ZXMgZm9yIG1lbW9yeV9kYXJ3aW4uYwoKMjAwNi0wOS0yNyAxNToyMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIHJld29yZGluZwoKMjAwNi0wOS0yNyAxNDozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTIgLT4gVjUuNC5wcmUzCgkKMjAwNi0wOS0yNyAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMjcgMTQ6MjggIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMyApCgoyMDA2LTA5LTI3IDE0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeDpjZmxhZ3MgLT46Y2NmbGFncwoKMjAwNi0wOS0yNyAxMzozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NjY1MjM6IGZyb20gYXBlcnNzb246IE1lbW9yeSBsZWFrIGluIGlmLW1pYiAoU29sYXJpcykKICAgLSB0YWtlIGFkdmFudGFnZSBvZiBpZl9uYW1ldG9pbmRleCgpIHdoZW4gcG9zc2libGUKICAgLSBncmFiIHRoZSBJUHY2IGludGVyZmFjZSBJZGVudGlmaWVyIGlmIGF2YWlsYWJsZQoKMjAwNi0wOS0yNyAxMDo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICAtIHVwZGF0ZSBmb3IgbmV3IHJlYXNtX21heCB2NC92NiBzcGxpdAogICAtIGFkZCAnbCcgdG8gcHJpbnRmIHNwZWMgZm9yIHNpemVfdCBwYXJhbQoKMjAwNi0wOS0yNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgbGFyZ2VmaWxlIHN1cHBvcnQgb24gc29sYXJpcyBhbmQgZGlzYWJsZSBlbWJlZGRlZCBwZXJsIHdoZW4gb24KCjIwMDYtMDktMjcgMDk6NTEgIHRhbmRlcnMKCiAgICogRkFROgoKICAgdXBkYXRlIHBsYXRmb3JtIGxpc3QKCjIwMDYtMDktMjcgMDY6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRob3V0LXB5dGhvbi1tb2R1bGVzCgoyMDA2LTA5LTI2IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIG9wZW5ic2Q0IHRvIHN5c2N0bCBpbnRlcmZhY2UgbGlzdAoKMjAwNi0wOS0yNiAxNTo0NCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYWRkIHN1cHBvcnQgZm9yIG9wZW5ic2Q0CgoyMDA2LTA5LTI2IDE1OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgYWRkIHN1cHBvcnQgZm9yIG9wZW5ic2Q0CgoyMDA2LTA5LTI2IDE0OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29uc2lzdGVudGx5IHNheSAiUGVybCIsIG5vdCAicGVybCIuCgoyMDA2LTA5LTI2IDE0OjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IG5lZWQgdG8gZG91YmxlIGNsZWFuIHB5dGhvbgoKMjAwNi0wOS0yNiAxNDoxOSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGhvdXQtcGVybC1tb2R1bGVzCgoyMDA2LTA5LTI2IDEyOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgSW5jbHVkZSBzb21lIChwcm9iYWJseSBub3QgYWxsKSBuZWNlc3NhcnkgaGVhZGVyIGZpbGVzLgoKMjAwNi0wOS0yNiAxMjoyMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4ZWQgcHl0aG9uIG1ha2UgY2xlYW4gd2hlbiBubyBweXRob24gc3VwcG9ydCB3YXMgcmVxdWVzdGVkCgoyMDA2LTA5LTI2IDA5OjM5ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHNldCB1cCBzeW1saW5rcyBiZWZvcmUgcnVubmluZyBjb25maWd1cmUgdG8gc3Vydml2ZSB0aGUgbmV3IHBlcmwgdGVzdHMKCjIwMDYtMDktMjYgMDk6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlIHRoZSBwZXJsIHRlc3RzIHRvIGFsbG93IGZvciBzeW1saW5rcwoKMjAwNi0wOS0yNiAwOTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXhlZCBycG0gY2hlY2tzLi4uICBvcHBwcwoKMjAwNi0wOS0yNiAwOTowOSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZG9jdW1lbnRlZCBBSVggc2VkIGlzc3VlcwoKMjAwNi0wOS0yNiAwNzo0OSAgbWFyegoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50LnB5LAogICAgIG5ldHNubXAvY2xpZW50X2ludGYuYywgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgY2xlYW51cCwgd2VpcmQgbGVhZiBvYmogaGFuZGxpbmcsIGFkZGVkIHNubXBnZXRidWxrCgoyMDA2LTA5LTI1IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUyICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMSAtPiBWNS40LnByZTIKCjIwMDYtMDktMjUgMjE6NDkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTI1IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTIgKQoKMjAwNi0wOS0yNSAyMTozNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGZpeGVkIHN5bnRheCBlcnJvcgoKMjAwNi0wOS0yNSAxNzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJhbiBhdXRvaGVhZGVyCgoyMDA2LTA5LTI1IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVcGRhdGUgZm9yIGEgLS13aXRoLXB5dGhvbi1tb2R1bGVzIGZsYWc7IHdpbGwgcnVuIGludG8gc29tZSBvZiB0aGUgc2FtZSBidWlsZC1pbi1wbGFjZSBpc3N1ZXMgdGhhdCBwZXJsIGhhcyBidXQgaXQncyBhIHN0YXJ0CgoyMDA2LTA5LTI1IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBweXRob24vUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzCgoyMDA2LTA5LTI1IDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE1NTkzNTg6IGZyb20gdHJhbWtlcjogY2hlY2sgc2NhbmYgcmVzdWx0cyBmb3IgZGlza2lvIHNjYW5uaW5nCgoyMDA2LTA5LTI1IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxNTY0MjMzOiBIYXZlIGNvbmZpZ3VyZSB0ZXN0IGZvciBycG0gaGVhZGVycyBub3QganVzdCB0aGUgbGlicmFyaWVzCgoyMDA2LTA5LTI1IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IHdhcm4gYWJvdXQgZXhjbHVkaW5nIHJlcXVpcmVkIG1vZHVsZXMgd2hlbiB0aGUgY3VycmVudCBmaWxlIGlzIGRlZmF1bHRfbWlicwoKMjAwNi0wOS0yNSAxNDozMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU2NTI5MzogZnJvbSBhZHA6IFVEUElQdjYgdHJhbnNwb3J0IHJlcG9ydHMgd3JvbmcgcG9ydCBudW1iZXIKCjIwMDYtMDktMjUgMTA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdGVzdHMgdG8gc2VlIGlmIHdlJ3JlIGluIHRoZSBtYWluIHNvdXJjZSB0cmVlIHNvIHdlIGNhbiBpbnN0YWxsIHRoZSBwZXJsIG1vZHVsZXMgb3Igbm90CgoyMDA2LTA5LTI1IDA5OjI1ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgYnVsa3dhbGsudCwgY29uZi50LAogICAgIGdldC50LCBnZXRuZXh0LnQsIG1pYi50LCBtaWJsb2FkLnQsCiAgICAgbm90aWZ5LnQsIHNlc3Npb24udCwgc2V0LnQ6CgogICBNYWtlIHBlcmwgdGVzdCBzdWl0ZSB3b3JrIGV2ZW4gaWYgbmV0LXNubXAgaXNuJ3QgaW5zdGFsbGVkIHlldC4KCjIwMDYtMDktMjUgMDg6NDggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgTmV0U05NUDo6YWdlbnQgdGVzdHMgbmVpdGhlciBuZWVkIGNvbmZpZyBub3IgTUlCcwoKMjAwNi0wOS0yNSAwODoyMSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBleGNsdWRlIENWUyBmaWxlcyBmcm9tIG5pZ2hseSB0YXJiYWxscwoKMjAwNi0wOS0yNSAwNzozMCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgY2xpZW50X2ludGYuYywKICAgICB0ZXN0cy90ZXN0LnB5OgoKICAgYWRkaW5nIGdldGJ1bGssIHJlbW92aW5nIHNvbWUgZGVidWcKCjIwMDYtMDktMjUgMDU6MzUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIERvbid0IG1peCB0YWJzIGFuZCBzcGFjZXMgZm9yIGluZGVudGF0aW9uLiBDb252ZXJ0IGFsbCAocmFyZWx5IHVzZWQpIHRhYnMgdG8gc3BhY2VzLgoKMjAwNi0wOS0yNSAwMTo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaAosIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIERpc3Rpbmd1aXNoIGJldHdlZW4gIk9JRC4qIiBhbmQgIk9JRCoiIHdpbGRjYXJkIHN5bnRheCAoZXhjbHVzaXZlIGFuZAogICBpbmNsdXNpdmUgc3VidHJlZSBtYXRjaGVzIHJlc3BlY3RpdmVseSkuCgoyMDA2LTA5LTI1IDAxOjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYKOgoKICAgSW1wbGVtZW50IChhbmQgZG9jdW1lbnQpICJPSUQuKiIgc3ludGF4IGZvciBzdWJ0cmVlIG1hdGNoaW5nLgoKMjAwNi0wOS0yNCAxNToyOCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTCAtIEZpeCBidWcgd2l0aCBzZXQgcmVxdWVzdHMsIHN0YXJ0IHRvIGFkZCBTTk1QdjIgc3VwcG9ydC4KCjIwMDYtMDktMjMgMDA6MTMgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIE9JRC5wbSB0ZXN0cyBzaG91bGRuJ3QgZGVwZW5kIG9uICppbnN0YWxsZWQqIE1JQnMKCjIwMDYtMDktMjIgMTQ6MTggIHRhbmRlcnMKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIHNvbWUgbml0LXBpY2tpbmcKCjIwMDYtMDktMjIgMTM6NTYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFNOTVAucG0gcGVybCB0ZXN0cyBzaG91bGRuJ3QgZGVwZW5kIG9uICppbnN0YWxsZWQqIE1JQnMKCjIwMDYtMDktMjIgMTI6NDcgIG1hcnoKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIFJFQURNRSBlZGl0cwoKMjAwNi0wOS0yMiAxMjowMyAgbWFyegoKICAgKiBweXRob24vUkVBRE1FOgoKICAgbW9kcyB0byBSRUFETUUgd2l0aCBzb21lIHVzYWdlIGluZm8KCjIwMDYtMDktMjIgMTA6MjUgIGhhcmRha2VyCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBwcm9wZXIgbmFtaW5nCgoyMDA2LTA5LTIyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBweXRob24vOiBMSUNFTlNFLCBSRUFETUU6CgogICBhZGRlZCBhIHJlYWRtZSBhbmQgbGljZW5zZSBmaWxlCgoyMDA2LTA5LTIyIDEwOjIwICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZGF0ZSB1cGRhdGUKCjIwMDYtMDktMjIgMDc6NTggIG1hcnoKCiAgICogcHl0aG9uLzogc2V0dXAucHksIG5ldHNubXAvX19pbml0X18ucHksCiAgICAgbmV0c25tcC9jbGllbnQucHksIG5ldHNubXAvY2xpZW50X2ludGYuYywKICAgICBuZXRzbm1wL3Rlc3RzL19faW5pdF9fLnB5LCBuZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmYsCiAgICAgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgQWRkaW5nIGluaXRpYWwgYWxwaGEgc3VwcG9ydCBmb3IgbmV0LXNubXAgcHl0aG9uIGJpbmRpbmcKCjIwMDYtMDktMjIgMDQ6NDcgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgRG9uJ3QgZmFpbCBvbiAiTE9HX0VSUiIuCgoyMDA2LTA5LTIyIDAzOjI5ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90Lzogbm90aWZ5LnQsIHN0YXJ0YWdlbnQucGw6CgogICBmaXggU05NUC5wbSBub3RpZnkgdGVzdCAoc3RhcnQgc25tcHRyYXBkIHdpdGggdmFsaWQgb3B0aW9ucykKCjIwMDYtMDktMjEgMDk6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgV2luZG93cyBidWlsZCBmaXhlcy4KCjIwMDYtMDktMjEgMDc6NDMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaDoKCiAgIFN5bmMgc3RydWN0IG5ldHNubXBfdHJhcGRfaGFuZGxlcl9zIHdpdGggdGhlIGxpYnJhcnkgY29kZSBhZ2FpbiAoYWRkICJmbGFncyIpLgoKMjAwNi0wOS0yMSAwNjowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBmaXggcG90ZW50aWFsIHNlZ2ZhdWx0IGludHJvZHVjZWQgYnkgcGF0Y2ggMTU2MTI3NwoKMjAwNi0wOS0yMSAwNToyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+IGZvciBTTk1QX1NUUk9STlVMTAoKMjAwNi0wOS0yMSAwMzo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICpyZWFsbHkqIGtlZXAgcHJlWC9yY1ggaW4gdmVyc2lvbiBzdHJpbmdzCgoyMDA2LTA5LTIwIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgY2hhbmdlIGFnZW50eCBzb2NrZXQgZGVmaW5lIHRvIE5FVFNOTVBfIHByZWZpeGVkCgoyMDA2LTA5LTIwIDEzOjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQ2hlY2sgaW5jb21pbmcgdHJhcCBPSURzIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgdHJhcGhhbmRsZSBPSUQKICAgKGJ1dCBub3QgdGhlIG90aGVyIHdheSByb3VuZCEpCgoyMDA2LTA5LTIwIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNoYW5nZSBwcmUgdGFncyB0byAwLiB0byBhdm9pZCBiYWRseSBnZW5lcmF0ZWQgdmVyc2lvbiBudW1iZXJzCgoyMDA2LTA5LTIwIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYXV0b21hdHRlZCB0ZXN0aW5nIG9mIHRoZSBwcm9kdWNlZCB0YXItYmFsbAoKMjAwNi0wOS0xOSAyMjoyMyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGZpeCBwYXRoIHRvIGV4dHJhY3RuZXdzCgoyMDA2LTA5LTE5IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBjb25maWd1cmUsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUxICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjMgLT4gVjUuNC5wcmUxCgoyMDA2LTA5LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTEgKQoKMjAwNi0wOS0xOSAxNzoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgY2F2ZSB0byBwdXR0aW5nIGluIHNvbWUgYnVmZmVyIHNwYWNlIGZvciBsaWJjdXJyZW50OyA1LjMgd2FzIDEwIGFuZCBpbmNyZW1lbnRzIG9mIDUgbWFrZSBpdCBlYXN5LCBzbyA1IGl0IGlzLgoKMjAwNi0wOS0xOSAxNzowOCAgaGFyZGFrZXIKCiAgICogZGlzdC86IGV4dHJhY3RuZXdzLCBtYWtlcmVsZWFzZToKCiAgIHlldCBtb3JlIHVwZGF0ZXMgZm9yIG1ha2luZyByZWxlYXNlcwoKMjAwNi0wOS0xOSAxNjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciB1ZHAgZG9tYWluczogcmVtb3ZlIHJlcXVpcmVtZW50IGZvciBpbmV0X2F0b24gd2hpY2ggb24gc29tZSBzeXN0ZW1zIGV4aXN0cyBpbiBsaWJyZXNvbHYKCjIwMDYtMDktMTkgMTY6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgdWRwIGRvbWFpbiBmaXhlcwoKMjAwNi0wOS0xOSAxNjowNCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGJ1aWxkIGZpeCBmb3IgSVJJWCB3aXRoIFNHSSdzIGNjCgoyMDA2LTA5LTE5IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oCiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgTkVXUzogc25tcHRyYXBkOiB0aGUgdHJhcGhhbmRsZSBkaXJlY3RpdmUgbm93IHN1cHBvcnRzIGEgLXQgc3dpdGNoIHRvIGluZGljYXRlIG1hdGNoaW5nIGFueSBPSUQgaW4gdGhlIHRyZWUgYmVsb3cgdGhlIHNwZWNpZmllZCBPSUQKCjIwMDYtMDktMTkgMTU6MTggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgY2xlYW5lZCB1cCBwZXJsIHZhcnMgZm9yIHN1cHBvcnQgb24gb2xkZXIgcGVybCB2ZXJzaW9ucwoKMjAwNi0wOS0xOSAxNDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggZXJyb3IgbG9naWMgaW4gcGVybCB0ZXN0cwoKMjAwNi0wOS0xOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzbWFydCBkZXRlY3Rpb24gb2YgYXZhaWxhYmxlIHBlcmwgc3VwcG9ydAoKMjAwNi0wOS0xOSAxMToyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcGVybCBjYyB0ZXN0IHRvIGFsbG93IGZvciBkYXNoIG9wdGlvbnMKCjIwMDYtMDktMTkgMTA6NTggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlcG9ydCB0aGUgYXBwcm9wcmlhdGUgcHJlZml4IG1hdGNoIHdoZW4gb25lIE9JRCBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIuCiAgIFRoZSBwcmV2aW91cyBjb2RlIHRyZWF0ZWQgdGhpcyBhcyBhIG5vbi1tYXRjaCAocmV0dXJuaW5nIDApLgogICBJJ20gbm90IGF0IGFsbCBjb252aW5jZWQgYnkgdGhlICIrMSIgaGFuZGxpbmcgZWl0aGVyLgoKMjAwNi0wOS0xOSAxMDoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhbm90aGVyIGF0dGVtcHQgdG8gZml4IHRoZSBpdGVtcyBjYWxjdWxhdGlvbiB3aXRob3V0IHBvcHBpbmcgYSBtYXJrCgoyMDA2LTA5LTE5IDA5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTUwNzI1OiBmcm9tICdXYXluZSBHbGFudHonOiBBIG5ldyB1aW50IGluc3RhbmNlIGhlbHBlciB0byBtYXRjaCB0aGUgZXhpc3RpbmcgaW50LCBsb25nIGFuZCB1bG9uZyBoZWxwZXJzCgoyMDA2LTA5LTE5IDA5OjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTUyNzkzMDogZml4IHNtdXggYXV0aGVudGljYXRpb24KCjIwMDYtMDktMTkgMDk6MTcgIGhhcmRha2VyCgogICAqIGRpc3QvOiBSRUxFQVNFLUlOU1RSVUNUSU9OUywgZXh0cmFjdG5ld3M6CgogICByZW1vdmUgZnJvbSB1c2VyIHN0cmluZ3MgaW4gTkVXUyBhbmQgQ0hBTkdFUyBsaW5lcwoKMjAwNi0wOS0xOSAwODowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIHJlbW92ZSByb2JlcnQncyBzZWxmLWNhbGxlZCBoYWNrIGZvciBtYWtpbmcgc25tcHRyYXBkIGhhbmRsZSBwYXJ0aWFsIE9JRHMuICBBcyBhZ3JlZWQgdG8gb24gY29kZXJzIHRoaXMgY2FuJ3QgYmUgZG9uZSBhcyBpcyBiZWNhdXNlIGl0IGNvbXBsZXRlbHkgY2hhbmdlcyBleGlzdGluZyB1c2FnZS4gIEEgbmV3IG1lY2hhbmlzbSBpcyBuZWVkZWQgdG8gc3VwcG9ydCB0aGlzIGJlaGF2aW91ciBzbyBpdCBkb2Vzbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYml0eSB3aXRoIHBvdGVudGlhbCBzZWN1cml0eSByYW1pZmljYXRpb25zCgoyMDA2LTA5LTE5IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiAxMjgyNTY2OiBmcm9tIG1hZ2ZyIHRvIHJld29yayB0cmFuc3BvcnQgY3JlYXRpb24gdG8gYWxsb3cgZm9yIGFsdGVybmF0aXZlIGludGVycHJldGF0aW9ucyBvZiB0aGUgYWRkcmVzcyBhbmQgYSBtb3JlIGZsZXhpYmxlIHRyYW5zcG9ydCByZWdpc3RyYXRpb24gc3lzdGVtCgoyMDA2LTA5LTE5IDA2OjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTU2MTI3NzogdXNlIG5ldC5pcHY2Lm5laWdoLmxvLmJhc2VfcmVhY2hhYmxlX3RpbWVfbXMgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGJhc2VfcmVhY2hhYmxlX3RpbWUKCjIwMDYtMDktMTkgMDQ6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50LmMsIG10ZU9iamVjdHMuYwo6CgogICBEb24ndCByZS1pbml0aWFsaXNlIGJ1aWx0LWluIEV2ZW50LU1JQiBldmVudHMsIGV0Yy4KCjIwMDYtMDktMTkgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBGaXJzdCBzdGVwcyBpbiBzdXBwb3J0aW5nIHNpbmdsZS1pbnN0YW5jZSByZWdpc3RyYXRpb25zLgoKMjAwNi0wOS0xOCAyMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMTQ3NDQ2ODogaWZDb25uZWN0b3JQcmVzZW50IGFsd2F5cyByZXR1cm5zIDAKCjIwMDYtMDktMTggMjA6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgbW9kaWZpZWQgdGhlIGhvc3QgcmVzb3VyY2VzIHNraXAgTkZTIHBhdGNoIHRvIGZpeCBhIGJ1ZyBhbmQgdG8gdXNlIHRoZSBkZWZhdWx0IHN0b3JhZ2UgY29uZmlnIGluc3RlYWQKCjIwMDYtMDktMTggMjA6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1MjQ3NTU6IGZyb20gYXBlcnNzb24gdG8gYmV0dGVyIHN1cHBvcnQgdGhlIFVEUFRhYmxlIGZvciB1bmtub3duIGFkZHJlc3MgdHlwZXMKCjIwMDYtMDktMTggMjA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1MzQ4Nzc6IGZyb20gYnVja2ggdG8gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIE5GUyBlbnRyaWVzIGluIHRoZSBob3N0IHJlc291cmNlcyBoclN0b3JhZ2VUYWJsZS4gIFNlZSB0aGUgc2tpcE5GU0luSG9zdFJlc291cmNlcyB0b2tlbiBpbiB0aGUgc25tcGQuY29uZiBmaWxlIGZvciBkZXRhaWxzLgoKMjAwNi0wOS0xOCAyMDowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IGFjY2VwdGlsZSBORVdTIHRva2VucwoKMjAwNi0wOS0xOCAxNzozMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IHRoZSBuZXcgQ1ZTIE5FV1MgdGFnIHN5c3RlbQoKMjAwNi0wOS0xOCAxNjowNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTkVXUzogc25tcHRyYXBkOiAtIFBBVENIOiAxNTM2NzczOiBzdXBwb3J0IHBhcnRpYWwgb2lkIG1hdGNoaW5nCgogICBXZSBjYW4gc3RpbGwgYWRkL3JlcXVpcmUgYSBzcGVjaWFsIHRva2VuL3N5bnRheCBmb3IgdGhpcyBhZnRlciBwcmUxCiAgIGlmIHRoaXMgd2FzIHRoZSBjb25zZW5zdXMuCgoyMDA2LTA5LTE4IDE1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgZml4IHJlY2VudCBidWlsZCBpc3N1ZXMgb24gU29sYXJpcyA3IChwYXRjaCBwcm92aWRlZCBieSBBbmRlcnMgUGVyc3NvbikKCjIwMDYtMDktMTggMDc6MTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBhZGQgZGVidWdnaW5nLCBmaXggc29tZSBmaWd1cmVzCgoyMDA2LTA5LTE4IDAyOjA4ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvTUFOSUZFU1Q6CgogICBhZGQgTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQgZmlsZXMKCjIwMDYtMDktMTggMDE6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oOgoKICAgTW92ZSB1cCBhbmQgcmVuYW1lIHRoZSAjaWZuZGVmIHRvIHByZXZlbnQgZHVwbGljYXRlIGluY2x1ZGUuIEZpeGVzIGNvbXBpbGUgZXJyb3JzIHdydC4gQ291bnRlcjY0IG9uIFNvbGFyaXMgNyBhbmQgZWFybGllci4KCjIwMDYtMDktMTYgMTY6MzMgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUgdXBkYXRlIGZvciB3aW5FeHRETEwuCgoyMDA2LTA5LTE2IDE1OjIyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW5kb3dzIHdpbkV4dERMTDogVXNlIHJlZ2lzdHJ5IGVudHJpZXMgZm9yIFdpbmRvd3MgU05NUCBleHRlbnNpb24gdG8gZ2V0CiAgIHRoZSBsaXN0IG9mIERMTHMgdG8gbG9hZC4KCjIwMDYtMDktMTYgMTM6NDkgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FVFNOTVBfIGRlZmluZSBmaXhlcy4KCjIwMDYtMDktMTYgMTI6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBjaGVjayBmb3IgPHN5cy9zeXN0ZW1jZmcuaD4gKEFJWCkKCjIwMDYtMDktMTYgMTE6MDEgIHRhbmRlcnMKCiAgICogd2luMzIvOiBjb25maWcuaC5ib3JsYW5kLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBmaXggc29tZSBORVRTTk1QX05FVFNOTVBfKiAiZG91YmxlIHJlbmFtZSIgZXJyb3JzIGZvciBXaW5kb3dzCgoyMDA2LTA5LTE2IDEwOjU2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcmV2ZXJ0IHRvIChsb2NhbCkgT0xEX0hFSU1EQUwgZGVmaW5lCgoyMDA2LTA5LTE2IDEwOjIzICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgRE9OVF9VU0VfTkxJU1QKCjIwMDYtMDktMTYgMTA6MTAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA5LTE2IDA4OjQ0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiwgbGlic25tcC5kZWYuaW46CgogICBXaW5kb3dzIE1TVkMgUGVybCBjb21waWxlIGZpeGVzLgoKMjAwNi0wOS0xNiAwODoxOSAgYWxleF9iCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTDoKCiAgIEZpeCBmb3IgYnVpbGRpbmcgdW5kZXIgV2luZG93cyAoTVNWQykuCgoyMDA2LTA5LTE1IDA5OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgYWN0aXZhdGUgbWVtb3J5IEhBTCBjb2RlIGZvciBJUklYCgoyMDA2LTA5LTE1IDA5OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jOgoKICAgaW5pdGlhbCBJUklYIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDktMTUgMDc6NDggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgPHN5cy9zeXNnZXQuaD4gKElSSVgpCgoyMDA2LTA5LTE1IDA3OjE0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBpbnRyb2R1Y2UgbmV0c25tcF9vc19rZXJuZWxfd2lkdGgoKSB0byBiZSBhYmxlIHRvIGRldGVjdCA2NGJpdCBrZXJuZWxzIGF0IHJ1bnRpbWUKCjIwMDYtMDktMTUgMDY6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3Igc3lzL3N5c3RlbWNmZy5oIChBSVgpIGFuZCBzeXMvc3lzdGVtaW5mby5oIChJUklYKQoKMjAwNi0wOS0xNSAwNTo0NiAgdGFuZGVycwoKICAgKiBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICBzbm1wbGliL3NjYXBpLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgICB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlCiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCB3aW4zMi9Db25maWd1cmU6CgogICBtb3JlIHJlbmFtZXMgYW5kIGZpeGVzCgoyMDA2LTA5LTE1IDA0OjE1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBzeW50YXggZXJyb3IgdGhhdCBicm9rZSB0aGUgU29sYXJpcyBidWlsZAoKMjAwNi0wOS0xNSAwMzo0NCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCB3cm9uZyByZW5hbWVzCgoyMDA2LTA5LTE1IDAzOjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgcmVzdHJpY3QgSVBfUEtUSU5GTyBjb2RlIHRvIExpbnV4CgoyMDA2LTA5LTE1IDAyOjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggc3ludGF4IGVycm9ycyB3aGljaCBicm9rZSB0aGUgYnVpbGQgb24gU29sYXJpcwoKMjAwNi0wOS0xNCAyMTowMyAgYWxleF9iCgogICAqIHdpbjMyLzogY29uZmlnLmguYm9ybGFuZCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoYW5nZSBOZXQtU05NUCBkZWZpbmVzIHRvIHVzZSBORVRTTk1QXyBwcmVmaXguCgoyMDA2LTA5LTE0IDE3OjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgICAgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsCiAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywKICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbXRfc3VwcG9ydC5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wa2NzLmMsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywKICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYwosIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgICAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgQWx3YXlzIHVzZSB0aGUgbmV3IG5ldC1zbm1wLWNvbmZpZy5oIGRlZmluaXRpb25zIGZyb20gd2l0aGluIHRoZSBORVRTTk1QXwogICBuYW1lc3BhY2UuCgoyMDA2LTA5LTE0IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgZmlyc3QgcGFzcyBhdCBleHRyYWN0aW5nIE5FV1MvQ0hBTkdFUyBmaWxlcyBmcm9tIGN2cyBsb2dzCgoyMDA2LTA5LTE0IDE2OjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZGV0ZWN0IHNvbGFyaXMgaWJkL2lwLnR1bi9hdGggaW50ZXJmYWNlIHR5cGVzIHByb3Blcmx5CgoyMDA2LTA5LTE0IDE1OjI4ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBtZW50aW9uIFNvbGFyaXMgaWYtbWliIHJld3JpdGUKCjIwMDYtMDktMTQgMTU6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFtubyBsb2cgbWVzc2FnZV0KCjIwMDYtMDktMTQgMTU6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTkVXUzogUEFUQ0hFUzogMTUwOTk0MzogcmVzcG9uc2VzIHdpbGwgZ2V0IHNlbnQgZnJvbSB0aGUgb3JpZ2luYWwgZGVzdCBJUCBhZGRyZXNzIHdoZW4gcG9zc2libGUuCgoyMDA2LTA5LTE0IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogUEFUQ0hFUzogMTU1NDgyNzogZnJvbSBydHlsZTogZml4IGhhbmRsaW5nIG9mIGZhaWxlZCBwcm94eSBTRVQgcmVxdWVzdHMKCjIwMDYtMDktMTQgMTM6NTcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jCjoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNTU3NTE0IGZyb20gcnR5bGU6IERvIG5vdCBhdHRlbXB0IHRvIGNvbGxlY3QgZGF0YSBkdXJpbmcgU0VUIHByb2Nlc3NpbmcuCgoyMDA2LTA5LTE0IDEzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhc3MgMiBhdCBnZXR0aW5nIGF1dG8tYnVpbGQgc3VwcG9ydCBmb3IgLnNvIGZpbGVzLiAgSSdtIG5vdyBjb252aWVuY2VkIGl0J3MgY2xvc2UgdG8gaW1wb3NzaWJsZSB0byBkbyBjb3JyZWN0bHkgd2l0aCBkZXBlbmRlbmN5IGlzc3VlcyBhbmQgbm8gc3VwcG9ydCBmb3IgcmVjdXJzaXZlIGZ1bmN0aW9ucyBpbiBzaAoKMjAwNi0wOS0xNCAxMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIHNvbGFyaXMgc3VwcG9ydCBmb3IgaWYtbWliIDY0Yml0IGNvdW50ZXJzCgoyMDA2LTA5LTE0IDEwOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpcEFkZHIuYywgdmFyX3JvdXRlLmMKOgoKICAgdXNlIG5ldyBkYXRhIGFjY2VzcyByb3V0aW5lIGZvciBzb2xhcmlzLCBpZiByZXdyaXRlIGluIGVmZmVjdAoKMjAwNi0wOS0xNCAxMDozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICB1c2UgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMgdG8gZGVjaWRlIGFib3V0IGlmLW1pYiBzdXBwb3J0CgoyMDA2LTA5LTE0IDEwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBzb2xhcmlzIHN1cHBvcnQgZm9yIGlmLW1pYiA2NGJpdCBjb3VudGVycwoKMjAwNi0wOS0xNCAxMDoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvY29uZiAmJiBhdXRvaGVhZGVyCgoyMDA2LTA5LTE0IDEwOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdHlwZSBjaGVjayBmb3Igc29sYXJpcyBDb3VudGVyNjQKCjIwMDYtMDktMTQgMTA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgc3BsaXQgcmVhc21fbWF4IGludCB0d28gdmFycyAodjYvdjYpCgoyMDA2LTA5LTE0IDA3OjUxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaDoKCiAgIGRlZmluZSBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUwoKMjAwNi0wOS0xNCAwNzo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIG1pYklJL2lmVGFibGUuaDoKCiAgIE9ubHkgdHJ5IHRvIHVzZSBtZmQgY29kZSBpZmYgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMgaXMgZGVmaW5lZAoKMjAwNi0wOS0xNCAwNzo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgZGVmaW5lZCBmb3IgbmV3IGlmT3BlclN0YXR1cyB2YWx1ZXMKCjIwMDYtMDktMTQgMDI6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMKLCBsb2NhbC9taWIyYy5yb3cuY29uZjoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIGEgc2luZ2xlLXJvdyBoZWxwZXIuCgoyMDA2LTA5LTEzIDEwOjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIHBhc3Mgb25lIGF0IHNwZWNpZnlpbmcgZGxscyB0byBidWlsZCB2aWEgbW9kdWxlcy4gIERvIG5vdCB1c2UgdGhpcyB5ZXQgYXMgdGhlcmUgYXJlIGNvbmZsaWN0IGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgd29ya2VkIG91dAoKMjAwNi0wOS0xMiAxODozMiAgYWxleF9iCgogICAqIE5FV1MsIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMKLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwKICAgICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbmRvd3M6IG5ldyB3aW5FeHRETEwgZXh0ZW5zaW9uIG1vZHVsZSB0byBhbGxvdyBzbm1wZCB0byBsb2FkIFdpbmRvd3MKICAgU05NUCBzZXJ2aWNlIGV4dGVuc2lvbiBETExzIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgSE9TVC1SRVNPVVJDRVMtTUlCCiAgIGFuZCBvdGhlciBNSUJzIHByb3ZpZGVkIHdpdGggV2luZG93cy4KCjIwMDYtMDktMTIgMTY6MTUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENBTl9VU0VfU1lTQ1RMIC0+IE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKCjIwMDYtMDktMTIgMTU6NDIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciBmaXhlcwoKMjAwNi0wOS0xMiAxNTozNSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBzZWRzY3JpcHQuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42Lmg6CgogICBORVdTOiBtaXNjOiAtIE1vc3QgbmV0LXNubXAgc3BlY2lmaWMgZGVmaW5lcyBhcmUgbm93IChhbHNvKSBhdmFpbGFibGUgdW5kZXIgYSBwcm9wZXIgTkVUU05NUF8gcHJlZml4LiBUaGUgb2xkZXIsIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nIG5hbWVzIGFzIHdlbGwgYXMgdGhlIGF1dG9jb25mIHZhcmlhYmxlcyBjYW4gbm93IGJlIHR1cm5lZCBvZmYgYnkgYSBzcGVjaWFsIGRlZmluZS4KCjIwMDYtMDktMTIgMTA6MzMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIE5FV1M6IGFnZW50OiAtIFtCVUdTOiAxNDI3NDEwXSBTZXQgYXV0aCBlbmdpbmVJRCBmb3IgU05NUHYzIHRyYXBzLgogICAocmF0aGVyIHRoYW4gc2VuZGluZyBhIHRyYXAgd2l0aCBubyBhdXRoIGVuZ2luZUlEKQoKMjAwNi0wOS0xMiAxMDozMCAgZHRzMTIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiAtIFtCVUdTIDE0MTY0ODFdIFN1cHBvcnQgc3BlY2lmeWluZyBhbiBleHBsaWNpdCBsaW5rZXIuCiAgIERlZmF1bHRzIHRvICRDQyBpZiBub3QgZXhwbGljaXRseSBzZXQuCgoyMDA2LTA5LTEyIDEwOjI3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IGFnZW50OiAtIFtCVUdTIDE1MDIyNjddIEJ1aWxkIGFjY2VzcyBsaXN0IGluIHRoZSBjb3JyZWN0IG9yZGVyLgoKMjAwNi0wOS0xMiAwNjowNiAgdGFuZGVycwoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGVuYWJsZSBlbWJlZGRlZCBQZXJsIGFuZCB0aGUgUGVybCBtb2R1bGVzIGJ5IGRlZmF1bHQKCjIwMDYtMDktMDggMDg6NDMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBORVdTOiBtaWIyYzogLSBbQlVHUzogMTQ3OTkxNl0gUmVzdG9yZSBjb25zaXN0ZW5jeSBpbiByb3cgY3JlYXRpb24gY29kZS4KCjIwMDYtMDktMDggMDU6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgTkVXUzogc25tcGQ6IC0gW0JVR1M6IDE1MzU5MDNdIFN1cHBvcnQgc3BhY2VzIHdpdGhpbiBzZWN1cml0eSBuYW1lcwoKMjAwNi0wOS0wNyAyMDo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXgsIEkgdGhpbmssIHRoZSBidWxrd2FsayBwcm9ibGVtczsgYWxsIHRlc3RzIHBhc3MuICBJIGJlbGlldmUgdGhlIHBhdGNoIGlzIHRoZSBjb3JyZWN0IGNvbWJpbmF0aW9uIGJldHdlZW4gdGhlIHR3byBkaWZmZXJlbnQgcGF0Y2hlcyAodGhlIG9sZCBvbmUgYW5kIHRoZSBuZXcgb25lKSB0aGF0IHNob3VsZCBmaXggYm90aCBwcm9ibGVtcy4gIE5FV1M6IHBlcmwgLSBGaXhlZCB0aGUgcGVybCBidWxrd2FsayBmdW5jdGlvbgoKMjAwNi0wOS0wNyAwOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIHdoaWNoIGJyb2tlIHBlcnNpc3RlbmNlCgoyMDA2LTA5LTA3IDA5OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBVc2UgdGhlIGNvcnJlY3QgQVBJIGNhbGwgZm9yIHJlbWVtYmVyaW5nIGEgbmV3bHktY3JlYXRlZCByb3cuCiAgIChTcG90dGVkIGJ5IFpoYW5nIENodWFuKS4KCjIwMDYtMDktMDcgMDQ6MzcgIGR0czEyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBORVdTOiBzbm1wZGY6IC0gW0JVR1M6IDE1MTU1MDddIEhhbmRsZSBmYWlsZWQgcmVxdWVzdHMgYmV0dGVyCiAgIChEb24ndCBnbyBpbnRvIGFuIGluZmluaXRlIGxvb3AhKQoKMjAwNi0wOS0wNyAwNDozMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgICBzbm1wbGliL21pYi5jOgoKICAgTkVXUzogc25tcGxpYiAtIFtCVUdTOiAxNTM3NDU5LCBCVUdTOiAxNTQwNzQ1XSBGaXggbWlzc2luZyBNSUIgcGFyc2luZyB0b2tlbnMKCjIwMDYtMDktMDcgMDQ6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBORVdTLAogICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50CjoKCiAgIFJldmVydCBkZWZhdWx0IGJlaGF2aW91ciBvZiBjb252ZW5pZW5jZSBhY2Nlc3MgY29udHJvbCBkaXJlY3RpdmVzCiAgIHRvIG1hdGNoaW5nIGFsbCBjb250ZXh0LiAgQW4gZXhwbGljaXQgY29udGV4dCBmaWVsZCB3aWxsIGJlIHRha2VuCiAgIGFzIGFuIGV4YWN0IG1hdGNoLCB1bmxlc3MgaXQgZW5kcyBpbiAnKicuCgoyMDA2LTA5LTA2IDEwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmg6CgogICBmaXggc29tZSBtaXNzaW5nIHN0YXRzIGluIGlmVGFibGUvaWZYVGFibGUKCjIwMDYtMDktMDYgMDY6NDUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgYWRkIG5vdGUgb24gZXhwZXJpbWVudCBGcmVlQlNEL09wZW5CU0QgaWZYVGFibGUgc3VwcG9ydAoKMjAwNi0wOS0wNiAwNjo0MiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIEZyZWVCRFMgYW5kIE9wZW5CU0QgZm9yIGlmLW1pYgoKMjAwNi0wOS0wNSAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBkZWFsIHcvcHJldiBwdHJzIHRvbwoKMjAwNi0wOS0wNSAwNzo1OCAgZHRzMTIKCiAgICogTkVXUywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCBuZXcgYWNjZXNzIGNvbnRyb2wgKGFuZCBjb250ZXh0KSBiZWhhdmlvdXIuCgoyMDA2LTA5LTA1IDA1OjQ5ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50OgoKICAgRXhwbGljaXRseSBhdXRob3Jpc2UgYWxsIGNvbnRleHRzLgogICAoVGhpcyByZXN1bHRzIGZyb20gYSBtaW5vciBhbHRlcmF0aW9uIGluIGJlaGF2aW91ciBmb2xsb3dpbmcgYW5vdGhlciBjb2RlCiAgICBjaGFuZ2UsIGJ1dCBmZWVscyBtb3JlIHNlY3VyZSB0aGFuIGF1dG9tYXRpY2FsbHkgb3BlbmluZyB1cCBhbGwgY29udGV4dHMKICAgIGJ5IGRlZmF1bHQuICBUaG91Z2ggSSdtIGhhcHB5IHRvIGJlIHBlcnN1YWRlZCBvdGhlcndpc2UuLi4pCgoyMDA2LTA5LTA1IDAyOjQ0ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgKGFnYWluKQoKMjAwNi0wOS0wNSAwMTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudF9taWJzLmgsIGFnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgKOgoKICAgSW5jbHVkZSBOZXQtU05NUCBleHRlbnNpb24gYWNjZXNzIHRhYmxlIChhbmQgTUlCKSBpbiB0aGUgZGVmYXVsdCBidWlsZC4KCjIwMDYtMDktMDUgMDE6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIG5zVmFjbUFjY2Vzc1RhYmxlIG5vdCBiZWluZyBpbmNsdWRlZC4KICAgKGFuZCBzaW1pbGFyIGZvciB1c21Vc2VyVGFibGUgLSBhIGNsZWFuZXIgY2hlY2sgdGhhbiBiZWZvcmUpCgoyMDA2LTA5LTA1IDAxOjI4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmMsIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIFN1cHBvcnQgbWFuaXB1bGF0aW9uIG9mIHRoZSBOZXQtU05NUCBleHRlbnNpb24gYWNjZXNzIHRhYmxlLgoKMjAwNi0wOS0wNSAwMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBTdXBwb3J0IGJvdGggZXhhY3QgYW5kIGNvbnRleHQgcHJlZml4IG1hdGNoZXMgZm9yIHRoZSBjb252ZW5pZW5jZSBkaXJlY3RpdmVzCiAgIChhcyB3ZWxsIGFzICdhdXRoYWNjZXNzJykuCgoyMDA2LTA5LTA1IDAxOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHJvdyBjcmVhdGlvbi9kZWxldGlvbi4KICAgU3VwcHJlc3MgdmFyaW91cyBtaW5vciB0eXBlIG1pc21hdGNoZXMuCgoyMDA2LTA5LTA0IDE2OjA3ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIChwcmVsaW1pbmFyeSkgaW5mb3JtYXRpb24gb24gbmV3IE5FVC1TTk1QLVZBQ00tTUlCCgoyMDA2LTA5LTA0IDE2OjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlOgoKICAgdHdlYWsgLmN2c2lnbm9yZSBmaWxlcyBmb3IgbmV3IHVkcC1taWIvdGNwLW1pYgoKMjAwNi0wOS0wNCAxNTo1NSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA2LTA5LTA0IDA3OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBUZWxsIGEgZnVzc3kgY29tcGlsZXIgKFMvVywgbm90IGh1bWFuKSB0byBzaHV0IHVwLgoKMjAwNi0wOS0wNCAwNjozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBhZ2VudC9leHRlbmQuYywKICAgICB1Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBEcm9wIHRoZSBvbGQgVUNEIGV4dGVuc2libGUgbW9kdWxlIGZyb20gdGhlIGRlZmF1bHQgYnVpbGQuCiAgIFJlbHkgb24gdGhlIHJld29ya2VkIChjYWNoZWQsIHZhbGlkIHN5bnRheCkgImV4dGVuZCIgbW9kdWxlIGluc3RlYWQuCgoyMDA2LTA5LTA0IDA0OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jCjoKCiAgIFN1cHBvcnQgcmVnaXN0ZXJpbmcgVkFDTSBleHRlbnNpb25zIGluIGEgbm9uLWRlZmF1bHQgY29udGV4dAogICAoc3VjaCBhcyB1c2VkIGJ5ICdzbm1wdHJhcGQnKQoKMjAwNi0wOS0wNCAwNDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFN1cHBvcnQgbm9uLWRlZmF1bHQgY29udGV4dHMgd2l0aCB0aGUgYXV0aCogY29udmVuaWVuY2UgZGlyZWN0aXZlcy4KCjIwMDYtMDktMDQgMDQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVHdlYWsgdmFyaWFibGUgbmFtZXMgdG8gYmUgbGVzcyBjb25mdXNpbmcuCiAgICgiYXV0aHR5cGUiIG5vdyBoYXMgYSBzcGVjaWZpYyBtZWFuaW5nLCBjb250cmFyeSB0byB0aGUgdXNlIGhlcmUpLgoKMjAwNi0wOS0wMSAxNzozNCAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggY3Zzcm9vdAoKMjAwNi0wOS0wMSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCAtWQoKMjAwNi0wOS0wMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1ha2Ugc25tcGQgc3VwcG9ydCB0aGUgLVkgY29uZmlnIGZsYWcgbGlrZSB0aGUgb3RoZXIgY29tbWFuZHMgZG8KCjIwMDYtMDktMDEgMTU6MzEgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBVcGRhdGUgdG8gNS40LmRldgogICAtIGludHJvZHVjZSAle2xpYmN1cnJlbnR9CiAgIC0gdXNlIG5ldyBkaXNtYW4vZXZlbnQgbmFtZQogICAtIGFkZDogUkVBRE1FLmFpeCBSRUFETUUub3NYIFJFQURNRS50cnU2NCBSRUFETUUuaXJpeCBSRUFETUUuYWdlbnQtbWlicwogICAgIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQKICAgLSBhZGQgbmV3IE5ldFNOTVA6OmFnZW50OjpTdXBwb3J0CgoyMDA2LTA5LTAxIDEwOjU4ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gbm90ZSBuZXcgbWliMmMuZW11bGF0aW9uLmNvbmYKICAgLSBub3RlIG5ldyBsaW51eCBpcHY2IGF3YXJlIGRlZmF1bHQgbWlicwogICAtIGV4cGFuZCBzY29weSBvZiBub3RlIG9uIGZpeGVzIHRvIG5vbi1saW51eCBpcGFkZHJlc3Mgc2l6ZQoKMjAwNi0wOS0wMSAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgdGNwIGFuZCB1ZHAgbWliIHRhYmxlcyB0byBsaW51eCBtaWJJSSBtb2R1bGUgbGlzdAoKMjAwNi0wOS0wMSAxMDo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgZml4IGJ5dGVvcmRlciBwcm9ibGVtcwoKMjAwNi0wOS0wMSAxMDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgLSBvbmx5IGxvZyBlcnJvciBvbmNlIGlmIHdlIGNhbid0IG9wZW4gL3Byb2MvbmV0L3RjcDYKICAgLSBhZGQgYWJpbGl0eSB0byBvbmx5IGxvYWQgaXB2NCBkYXRhCgoyMDA2LTA5LTAxIDEwOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIGZpeCBieXRlb3JkZXIgcHJvYmxlbXMKCjIwMDYtMDktMDEgMTA6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvICdieXRlc3dhcCcgaGV4LXN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhZGRyZXNzCgoyMDA2LTA5LTAxIDA3OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCB1ZHBUYWJsZS5jLAogICAgIHZhcl9yb3V0ZS5jOgoKICAgbW9yZSBpcCBhZGRyZXNzIHNpemUgZml4ZXMKCjIwMDYtMDktMDEgMDU6NDEgIHRhbmRlcnMKCiAgICogcGVybC86IFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIGFnZW50L2FnZW50LnhzCjoKCiAgIGFsaWduIHRoZSBuZXRzbm1wX29pZCBzdHJ1Y3QgZGVmaW5pdGlvbiAob2lkLCBzaXplX3QhKSB3aXRoIHRoZSBvbmUgZnJvbSBOZXRTTk1QOjpPSUQKCjIwMDYtMDktMDEgMDI6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeCwgUkVBRE1FLnNvbGFyaXMsIFJFQURNRS50cnU2NDoKCiAgIGFkZCBub3RlcyBvbiBJUHY2CgoyMDA2LTA4LTMxIDE3OjQzICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggdHlwbwoKMjAwNi0wOC0zMSAxNzoxNSAgdGFuZGVycwoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBPSUQgbGVuIHNob3VsZCBiZSBhIHNpemVfdAoKMjAwNi0wOC0zMSAxNTo0NyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgY29ycmVjdCBzb2NrYWRkcl9zdG9yYWdlLltfX11zc19mYW1pbHkgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlndXJlIHRlc3QuIE1ha2VzIHRoZSBVRFBJUHY2IHRyYW5zcG9ydCBjb2RlIHdvcmsgb24gYXQgbGVhc3QgQUlYIGFuZCBUcnU2NCBVbml4LgoKMjAwNi0wOC0zMSAxNTo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWNjb25maWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNvY2thZGRyX3N0b3JhZ2UuW19fXXNzX2ZhbWlseSB1c2VkIGluIHRoZSBVRFBJUHY2IHRyYW5zcG9ydCBjb2RlCgoyMDA2LTA4LTMxIDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBmaXggSXBBZGRyZXNzIGxlbmd0aHMgb24gbm9uLUxpbnV4IDY0Yml0IHBsYXRmb3JtcwoKMjAwNi0wOC0zMSAwMTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgYWRkIG1pc3Npbmcgc2VtaWNvbG9uIChldmVuIG9uZS1saW5lIHBhdGNoZXMgY2FuIGVhc2lseSBicmVhayB0aGUgYnVpbGQgOy0pKQoKMjAwNi0wOC0zMCAxNzozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIGNvdmVydGl5IGJ1ZyAxMjc6IGRvdWJsZSBjaGVjayBuYW1lX3AgcG9pbnRlciBhY3R1YWxseSBnb3QgZmlsbGVkIGJlZm9yZSAgdXNpbmcgaXQKCjIwMDYtMDgtMzAgMTc6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBtYWtlIHN1cmUgc25tcF9sb2dfb3B0aW9ucyBjaGVja3MgZm9yIE5VTExzIG9mIGFyZ3YgaW4gaWxsZWdhbCBjYWxscyAoc2hvdWxkIG5ldmVyIGhhcHBlbikKCjIwMDYtMDgtMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGNvdmVydHkgYnVnIDU5OiBkb3VibGUgY2hlY2sgc3lzdGVtIGhhbmRsZXMgaW50L3VpbnQgY29udmVyc2lvbnMgcHJvcGVybHkKCjIwMDYtMDgtMzAgMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBjb3ZlcnR5IGJ1ZyAxNTU6IGZyZWUgZmlsZSBwb2ludGVyIGR1cmluZyBpcHY2IGZvcndhcmRpbmcKCjIwMDYtMDgtMzAgMTc6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGNvdmVydHkgYnVnIDE1NjogZnJlZSByZXNvdXJjZXMgZHVyaW5nIG1pYiBwYXJzaW5nIGZhaWx1cmVzCgoyMDA2LTA4LTMwIDE3OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBjb3ZlcnR5IGJ1ZyA2MDogZG91YmxlIGNoZWNrIHRoYXQgc3lzdGVtcyBoYW5kbGUgbmVnYXRpdmUgcmV0dXJucyB0byB1bnNpZ25lZCB2YXJpYWJsZXMgcHJvcGVybHkKCjIwMDYtMDgtMzAgMDg6MzUgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggcHJpbnRpbmcgb2Ygb3BhcXVlIGZsb2F0IGFuZCBkb3VibGUgY29tcGlsZSB3YXJuaW5ncwoKMjAwNi0wOC0zMCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYzoKCiAgIFNpbXBsZSBTRVQgc3VwcG9ydCBmb3IgdGhlIE5ldC1TTk1QIFZBQ00gZXh0ZW5zaW9ucy4KCjIwMDYtMDgtMzAgMDg6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgUGVyc2lzdGVudCBzdG9yYWdlIGZvciBOZXQtU05NUCBWQUNNIGV4dGVuc2lvbiBhdXRodHlwZXMuCgoyMDA2LTA4LTI5IDE3OjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGdlbmVyaWMgSVB2NiBzdGFjayBkZXRlY3Rpb24sIGUuZy4gZm9yIFNvbGFyaXMKCjIwMDYtMDgtMjkgMDk6MDUgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgRml4IGluY29uc2lzdGVudCBuYW1pbmcuCgoyMDA2LTA4LTI5IDA2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEd1YXJkIGFnYWluc3QgbWlzc2luZyAob3IgaW5jb21wbGV0ZSkgQ1BVIGhpc3Rvcnkgc3RhdHMuCgoyMDA2LTA4LTI5IDA2OjE5ICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgZml4IHNvbWUgYmFzaWMgc21pbGludCBjb21wbGFpbnRzCgoyMDA2LTA4LTI5IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgsCiAgICAgbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBQcm92aXNpb25hbCAocmVhZC1vbmx5KSBpbXBsZW1lbnRhdGlvbiBvZiBhIE1JQiBmb3IgdGhlIE5ldC1TTk1QCiAgIGFjY2VzcyBjb250cm9sIGV4dGVuc2lvbnMuCgoyMDA2LTA4LTI5IDAzOjExICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBHZXQtTmV4dCBwcm9jZXNzaW5nIGRpZG4ndCBoYW5kbGUgdXBkYXRpbmcgdGhlIGluZGV4IGxpc3QgZm9yIG11bHRpLWluZGV4ZWQKICAgdGFibGVzIHByb3Blcmx5LiAgSXQgd29ya2VkIE9LIGZvciB0aGUgZmlyc3QgY2FuZGlkYXRlIGZvdW5kLCBidXQgc3Vic2VxdWVudAogICAoYmV0dGVyKSBjYW5kaWRhdGVzIG9ubHkgdXBkYXRlZCB0aGUgZmlyc3QgaW5kZXggdmFsdWUuCiAgICAgVGhpcyBjb2RlIGlzIHNsaWdodGx5IGxlc3MgZWZmaWNpZW50LCBidXQgd29ya3MgYXMgZXhwZWN0ZWQuCgoyMDA2LTA4LTI5IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9saW51eC5jLCB2bXN0YXRfbGludXguaAo6CgogICBTaGlwIG9sZGVyIHZtc3RhdCBpbXBsZW1lbnRhdGlvbiBjb2RlIC0gYWxsb3cgYWRtaW5zIHRoZSBvcHRpb24gb2YgcmV2ZXJ0aW5nLgoKMjAwNi0wOC0yOSAwMzowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X25saXN0LmMsIGNwdV9zeXNjdGwuYwo6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygc2luZ2xlLUNQVSBzeXN0ZW1zLgogICBEb24ndCBjcmVhdGUgbmV3IENQVSBlbnRyaWVzIHdoZW4gbG9hZGluZyBzdGF0cy4KICAgW0Rvbid0IGNvbW1pdCBmcm9tIG1vcmUgdGhhbiBvbmUgd29ya2luZyBzeXN0ZW0sIERhdmUhXQoKMjAwNi0wOC0yOSAwMjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBLZWVwIGJyYWNlcyBiYWxhbmNlZCAtIGl0IG1ha2VzIHRyYWNpbmcgY29kZSAqc28qIG11Y2ggZWFzaWVyIQoKMjAwNi0wOC0yNyAxNDozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIHVkcFRhYmxlIHJlcXVpcmVzIC9kZXYva21lbSBhY2Nlc3MgKHJvb3Q6c3lzdGVtKSBvbiBBSVgKCjIwMDYtMDgtMjcgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgaG9zdC9ocl9wcm9jLmMsCiAgICAgaG9zdC9ocl9wcm9jLmg6CgogICBVc2UgSEFMIENQVSBpbnRlcmZhY2UgZm9yIGJvdGggVUNELXNwZWNpZmljIGFuZCBIb3N0UmVzIHByb2Nlc3NvciBtb2R1bGVzLgoKMjAwNi0wOC0yNyAxMDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBFbnN1cmUgdGhhdCBzb21lIGZvcm0gb2YgSEFMIENQVSBtb2R1bGUgaXMgaW5jbHVkZWQgZm9yIGFsbCBzeXN0ZW1zLgoKMjAwNi0wOC0yNyAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X251bGwuYywgY3B1X251bGwuaDoKCiAgIER1bW15IEhBTCBDUFUgbW9kdWxlLCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IHVzZSBhbnkgb2YgdGhlCiAgIHN1cHBvcnRlZCBpbnRlcmZhY2VzLgoKMjAwNi0wOC0yNyAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIEhhbmRsZSBob2xlcyBpbiB0aGUgdGFibGUgcHJvcGVybHkuCgoyMDA2LTA4LTI3IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tlcm5kYXRhLmMsCiAgICAgY3B1X3BlcmZzdGF0LmMsIGNwdV9wc3RhdC5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHNpbmdsZS1DUFUgc3lzdGVtcy4KICAgRG9uJ3QgY3JlYXRlIG5ldyBDUFUgZW50cmllcyB3aGVuIGxvYWRpbmcgc3RhdHMuCgoyMDA2LTA4LTI3IDA5OjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBSZXBvcnQgcHJvY2Vzc29yIHN0YXR1cwoKMjAwNi0wOC0yNiAxNjoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbWFrZSBhdXRvaGVhZGVyIHByb3RlY3QgUEFDS0FHRV8qIHZhcmlhYmxlcwoKMjAwNi0wOC0yNSAxNjoyMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBTdjN1c21jb25maWdhZ2VudCwKICAgICBTdmFueWNvbmZpZzoKCiAgIEZpeCBzbXV4c29ja2V0IGNvbmZpZyB0byBwb2ludCB0byAvc211eF9zb2NrZXQgaW5zdGVhZCBvZiAvZGV2L251bGwgdG8gYXZvaWQgcmVtb3ZpbmcgL2Rldi9udWxsIHdoZW4gcnVubmluZyBhcyByb290LgoKMjAwNi0wOC0yNSAwOTo0MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDbGFyaWZ5IGRpc2N1c3Npb24gb2YgdmlldyBtYXNrcy4gIFRoYW5rcyB0byBEb21pbmlxdWUgQmFzdGllbi4KCjIwMDYtMDgtMjUgMDc6MjAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhbGxvdyBmb3Igd2hpdGVzcGFjZSBpbiBQZXJsIGNjIChlLmcuIG9uIElSSVggNi41KQoKMjAwNi0wOC0yNSAwNjo1NSAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBwcm9wZXJseSBjYXN0IHdoZW4gcHJpbnRpbmcgcG9pbnRlcnMKCjIwMDYtMDgtMjUgMDY6MzUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIG5ldHNubXBfdHJhcGRfY2hlY2tfYXV0aCgpIG9ubHkgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQKCjIwMDYtMDgtMjUgMDU6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4OiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCjIwMDYtMDgtMjUgMDQ6NTEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5oOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF90cmFwZF9jaGVja19hdXRoKCkKCjIwMDYtMDgtMjUgMDQ6NDYgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICNpbmNsdWRlICJtaWJJSS92YWNtX2NvbmYuaCIgZm9yIHZhY21fc3RhbmRhcmRfdmlld3MKCjIwMDYtMDgtMjUgMDQ6MzggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBwcmludCBvaWQgYXMgdW5zaWduZWQgbG9uZwoKMjAwNi0wOC0yNSAwMjo1NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgbWFrZSBzdXJlIHdlIGNhbiBmdWxmaWxsIGV4dGVybmFsIGxpYnJhcnkgZGVwZW5kZW5jaWVzCgoyMDA2LTA4LTI1IDAyOjQxICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBpbml0aWFsaXplIHZhcmlhYmxlcwoKMjAwNi0wOC0yNSAwMjozMyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBwcm9wZXIgdHlwZXMgaW4gZm9ybWF0IHN0cmluZwoKMjAwNi0wOC0yNSAwMTo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAiLVV4IiBiZWZvcmUgIi1EeD14IiBmb3IgZ2NjIHRvIGF2b2lkIGFubm95aW5nIGNvbXBpbGVyIHdhcm5pbmdzCiAgIG9uIHBsYXRmb3JtcyB0aGF0IGFscmVhZHkgZGVmaW5lIHggKHRvIDEpLgoKMjAwNi0wOC0yNCAxNzo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHVzZSBuZXcgc25tcF9jc3RyY2F0CgoyMDA2LTA4LTI0IDE3OjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSW50cm9kdWNlIHNubXBfY3N0cmNhdCB0aGF0IHRha2VzIGEgKGNoYXIgKikgYXMgdGhlIGxhc3QgYXJndW1lbnQsCiAgIGNhc3RzIGl0IHRvIGEgKGNvbnN0IHVfY2hhciAqKSBhbmQgY2FsbHMgc25tcF9zdHJjYXQuIFNpbXBsaWZpZXMgY29kZQogICBhbmQgZml4ZXMgYSAqbG90KiBvZiBjb21waWxlciB3YXJuaW5ncy4KCjIwMDYtMDgtMjQgMTY6MDQgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIC0gcG9pbnRlciBzaXplIGZpeGVzIGZyb20gZGFyaXgKICAgLSBpbml0aWFsaXplIHZhcmlhYmxlcwogICAtIHByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nCgoyMDA2LTA4LTI0IDE1OjQ1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZQoKMjAwNi0wOC0yNCAxMzoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOC0yNCAxMzoyMSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgSEFWRV9QRVJMX0VWQUxfUFYgdW5kZWYgZm9yIHdob2V2ZXIgZm9yZ290IHRvIGFkZCBpdAoKMjAwNi0wOC0yNCAxMzoxOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgY29uZmlnX2Vycm9yIGFuZCBjb25maWdfd2FybmluZyBlbXB0eSBtYWNyb3MKCjIwMDYtMDgtMjQgMDk6MTQgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZy4KCjIwMDYtMDgtMjQgMDg6NDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgS2VlcCBwcmludGluZyBzb21lIGtub3ctdG8tYmUtc21hbGwgc2l6ZV90IHZhbHVlcyBhcyBpbnRlZ2VycywgYnV0IHByb3Blcmx5CiAgIGNhc3QgdGhlbSB0byBxdWlldCB0aGUgY29tcGlsZXIuCgoyMDA2LTA4LTI0IDA3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgdXNlIG5ldyBpbnRlcmZhY2Vfc3lzY3RsIGZvciBPcGVuQlNEIDIsIEZyZWVCU0QgNC02CgoyMDA2LTA4LTI0IDA3OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX29wZW5ic2QuYywKICAgICBpbnRlcmZhY2Vfc3lzY3RsLmMsIGludGVyZmFjZV9zeXNjdGwuaDoKCiAgIHJlbW92ZSBPUyBzcGVjaWZpYyBmaWxlIGluIGZhdm9yIG9mIG1ldGhvZCBzcGVjaWZpYyBmaWxlcwoKMjAwNi0wOC0yNCAwNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tzdGF0LmMsIGNwdV9ubGlzdC5jCiwgY3B1X3BzdGF0LmMsIGNwdV9zeXNjdGwuYzoKCiAgIEluY2x1ZGUgZGVzY3JpcHRpb25zIGZvciBpbmRpdmlkdWFsIENQVSBlbnRyaWVzLgoKMjAwNi0wOC0yNCAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tlcm5kYXRhLmgsCiAgICAgY3B1X2tlcm5kYXRhLmM6CgogICBJbXBsZW1lbnRhdGlvbiBmb3IgRHluaXggKGFuZCBzaW1pbGFyKSBzeXN0ZW1zLgoKMjAwNi0wOC0yNCAwNTo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYzoKCiAgIFJlbWVtYmVyIHRoZSBudW1iZXIgb2YgQ1BVcyBkZXRlY3RlZC4KICAgKFE6IHdoYXQgdG8gZG8gaWYgdGhpcyBjaGFuZ2VzPykKCjIwMDYtMDgtMjMgMTc6MzMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcuIEZpeGVzIDY0LWJpdCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDYtMDgtMjMgMTc6MTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgQUNfUFJPR19FR1JFUCBhbmQgdXNlICRFR1JFUCBpbnN0ZWFkIG9mIGVncmVwCgoyMDA2LTA4LTIzIDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBzdHJ1Y3QgdHlwZSBpbiBjYXNlCgoyMDA2LTA4LTIzIDE2OjM1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDYtMDgtMjMgMTY6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgYmFjayBjaGVjayBmb3Igc2VkCgoyMDA2LTA4LTIzIDEzOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBza2lwIGlmQ29ubmVjdG9yUHJlc2VudC9pZkxpbmtVcERvd25UcmFwRW5hYmxlIGlmIG5vIGRhdGEKCjIwMDYtMDgtMjMgMTI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGNvcnJlY3Qgc2NhbGUgd2hlbiB1c2luZyBpZlNwZWVkIGFzIGlmSGlnaFNwZWVkCgoyMDA2LTA4LTIzIDExOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICB1c2UgaWZTcGVlZCBpZiBpZkhpZ2hTcGVlZD09MAoKMjAwNi0wOC0yMyAwODo1MyAgdGFuZGVycwoKICAgKiBzbm1wbGliLzogY29udGFpbmVyLmMsIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgICBkYXRhX2xpc3QuYywga2V5dG9vbHMuYywgbWliLmMsIG9pZF9zdGFzaC5jCiwgc2NhcGkuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jLCB0ZXh0X3V0aWxzLmMsCiAgICAgdG9vbHMuYzoKCiAgIENhc3QgYXdheSBjb21waWxlciB3YXJuaW5ncy9lcnJvcnMgYXQgYSBsb3Qgb2YgcGxhY2VzLgoKMjAwNi0wOC0yMyAwNjowMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIGFjdGl2YXRlIGNwdSBIQUwgY29kZSBmb3IgQUlYIDQueAoKMjAwNi0wOC0yMyAwMzoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IGNoZWNrIHR3aWNlIGZvciBzZWQuCgoyMDA2LTA4LTIzIDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIE1vcmUgcG9ydGFibGUgaGFuZGxpbmcgb2Ygc3RyaW5nIGFzc2lnbm1lbnRzLgogICBSZW1vdmUgQysrLXN0eWxlIGNvbW1lbnRzLgoKMjAwNi0wOC0yMyAwMzowNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtb3JlIHdoaXRlc3BhY2UgaXNzdWVzIGluIG1pYiBtb2R1bGUgY29uZmlnCgoyMDA2LTA4LTIyIDE0OjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgaGFyZHdhcmUvY3B1Lmg6CgogICBhY3RpdmF0ZSBtZW0vY3B1IEhBTCBjb2RlIGZvciBBSVgKCjIwMDYtMDgtMjIgMDk6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYzoKCiAgIFVzZSBjb3JyZWN0IEFQSSBjYWxscy4KCjIwMDYtMDgtMjIgMDc6MDAgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgVXBkYXRlIGZvciA1LjQgYW5kIGVtYmVkZGVkIFBlcmwuCgoyMDA2LTA4LTIyIDA2OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa3N0YXQuaCwgY3B1X3BlcmZzdGF0LmgKLCBjcHVfcHN0YXQuaDoKCiAgIE1pc3NpbmcgSEFMIENQVSBBUEktc3BlY2lmaWMgaGVhZGVyIGZpbGVzCgoyMDA2LTA4LTIyIDA2OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgSGFuZGxlIGNoYW5nZSBpbnRyb2R1Y2VkIHdpdGggTmV0QlNEIDMuMC4KICAgc3lzY3RsKCBLRVJOX0NQX1RJTUUgKSBub3cgcmV0dXJucyA2NC1iaXQgdmFsdWVzLgoKMjAwNi0wOC0yMiAwNToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiBFdmVudC1NSUIgbW9kdWxlIHRlcm1pbm9sb2d5LgoKMjAwNi0wOC0yMiAwMzozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEltcHJvdmUgcm9idXN0bmVzcyBvZiB0aGUgZW1iZWRkZWQgcGVybCBjaGVja3MuCgoyMDA2LTA4LTIyIDAyOjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ2hhbmdlICIjaWYgZnJlZWJzZDQiIHRvICIjaWZkZWYgZnJlZWJzZDQiIHRvIG1hdGNoIGN1cnJlbnQgLURmcmVlYnNkND1mcmVlYnNkNC4KCjIwMDYtMDgtMjIgMDI6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd3J1bi5jCiwgbWliSUkvcm91dGVfaGVhZGVycy5oOgoKICAgQ2hhbmdlICIjaWYgc29sYXJpczIiIHRvICIjaWZkZWYgc29sYXJpczIiIHRvIG1hdGNoIGN1cnJlbnQgLURzb2xhcmlzMj1zb2xhcmlzMi4KCjIwMDYtMDgtMjEgMTc6NDcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAiLVUiIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZCB3aXRoIFN1bidzIGNjLgoKMjAwNi0wOC0yMSAxNzoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIFBlcmxfZXZhbF9wdiAodGhlIHVwcGVyLWNhc2UgdmFyaWFudCkgbmVlZHMgdGhyZWUgYXJndW1lbnRzIGluc3RlYWQgb2YgdHdvLgoKMjAwNi0wOC0yMSAxNzowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFlldCBhbm90aGVyIGF0dGVtcHQgdG8gZml4IHRoZSBQQVJUSUFMVEFSR0VUT1MgKGUuZy4gc29sYXJpczIpIGRlZmluaXRpb25zLgoKMjAwNi0wOC0yMSAxNjozMyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlcGxhY2VtZW50IGZvciBuZXdTVnV2KCkgYmVjYXVzZSBwZXJsIGRpZG4ndCBoYXZlIGl0IHVudGlsIDUuNi4wCgoyMDA2LTA4LTIxIDE1OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmV3b3JkaW5nIG9mIHBlcmwgY2MgY2hlY2sgZXJyb3JzLgoKMjAwNi0wOC0yMSAxNDowNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hhbmdlIHRoZSBPUyBkZWZpbmUgdG8gcmVkZWZpbmUgYXMgdGhlIHNhbWUgbmFtZQoKMjAwNi0wOC0yMSAwOTo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGFkZCBwZXJsIGNjIGNoZWNrcyBmb3IgZW1iZWRkZWQgcGVybAogICAtIGludHJvZHVjZSAtLWRpc2FibGUtcGVybC1jYy1jaGVja3MgdG8gZGlzYWJsZSB0aGVzZSB0ZXN0cwoKMjAwNi0wOC0yMSAwOTo0MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUuaW4KCjIwMDYtMDgtMjEgMDM6NTMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGZpeCBjb25maWdfYXJjaF9yZXF1aXJlCiAgIC0gcmVtb3ZlIG9ic29sZXRlIEFDX0VYRUVYVAoKMjAwNi0wOC0yMSAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBBY3RpdmUgSEFMIENQVSBtb2R1bGUgZm9yICpCU0Qgc3lzdGVtcy4KCjIwMDYtMDgtMjEgMDI6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBSZXRyaWV2ZSBhbmQgcmVwb3J0IG1lbW9yeS1yZWxhdGVkIHN0YXRpc3RpY3MuCiAgIChTdGlsbCBub3QgY29udmluY2VkIHRoZXNlIHJlYWxseSBiZWxvbmcgaGVyZS4uLi4pCgoyMDA2LTA4LTIxIDAyOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUmV0cmlldmUgQ1BVIHN0YXRzIGNvcnJlY3RseS4KCjIwMDYtMDgtMTggMTU6MjggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcGVybCAtVjpjYwoKMjAwNi0wOC0xOCAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0Lmg6CgogICBVc2UgdGhlIEhBTCBDUFUgbW9kdWxlcyB0byBpbXBsZW1lbnQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cy4KICAgSW5pdGlhbGx5IG9ubHkgdXNlZCBieSBMaW51eCBzeXN0ZW1zLCBidXQgdGhpcyBjb2RlIGlzIG5vdwogICBmdW5kYW1lbnRhbGx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudC4KCjIwMDYtMDgtMTggMDg6NTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg6CgogICBBZGRpdGlvbmFsIGZpZWxkcyBmb3IgQ1BVLXJlbGF0ZWQgKHNvcnQtb2YpIGhpc3RvcnksIGV0Yy4KCjIwMDYtMDgtMTggMDg6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa2VybmRhdGEuYywKICAgICBjcHVfa3N0YXQuYywgY3B1X2xpbnV4LmMsIGNwdV9ubGlzdC5jLAogICAgIGNwdV9ubGlzdC5oLCBjcHVfcGVyZnN0YXQuYywgY3B1X3BzdGF0LmMsCiAgICAgY3B1X3N5c2N0bC5jLCBjcHVfc3lzY3RsLmg6CgogICBQcm92aXNpb25hbCBoYXJkd2FyZS1hYnN0cmFjdGlvbiBtb2R1bGVzIGZvciBhc3NvcnRlZCBDUFUgc3RhdGlzdGljcy4KICAgKGluY2x1ZGluZyBtdWx0aS1DUFUgaW5mb3JtYXRpb24pCgoyMDA2LTA4LTE4IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIHlldCBtb3JlIHBvdGVudGlhbCBwZXJsIGZpeGVzCgoyMDA2LTA4LTE4IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1vcmUgcG90ZW50aWFsIHBlcmwgZml4ZXMKCjIwMDYtMDgtMTggMDc6NDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB1c2UgInBlcmwgLVY6Y2MiIHRvIGZpbmQgUGVybCdzIGNjCgoyMDA2LTA4LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvbW1lbnRpbmcgYW5kIGEgYml0IG9mIHNwYWNpbmcgaW4gdGhlIG1vZHVsZSBsaXN0IGNvZGUKCjIwMDYtMDgtMTcgMTc6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhY2NvbmZpZy5oLAogICAgIGFnZW50L3NubXBfcGVybC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIG1ha2UgY29uZmlndXJlIGJhaWwgd2hlbiBlbWJlZGRlZCBwZXJsIGZ1bmN0aW9uIGNhbiBub3QgYmUgZm91bmQgOyBmaXggdGhlIGZhY3QgdGhhdCAzIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIG5vdCAyIGFuZCB3b3JrIGFyb3VuZCBhdXRvY29uZiB1cHBlci1jYXNlIG9ubHkgZGVmaW5lcyB0aGF0IGNhdXNlcyB0aGUgZXhpc3RpbmcgYnJva2VuLXBlcmwgcHJvYmxlbTsgTkVXUyAtIHBlcmw6IGZpeCB0aGUgJ2Jyb2tlbiBwZXJsJyBpc3N1ZSB3aXRoIGVtYmVkZGVkIHBlcmwKCjIwMDYtMDgtMTcgMTY6MTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBic2RpMy5oLCBic2RpNC5oLCBkYXJ3aW4uaAosIGRhcndpbjcuaCwgZHluaXguaCwgZnJlZWJzZDMuaCwKICAgICBmcmVlYnNkNC5oLCBmcmVlYnNkNS5oLCBmcmVlYnNkNi5oLCBnZW5lcmljLmgKLCBocHV4LmgsIG1pbmd3MzJtc3ZjLmgsIG5ldGJzZC5oLAogICAgIG9wZW5ic2QuaCwgb3NmNS5oOgoKICAgIiNkZWZpbmUgeCB4IiBpbnN0ZWFkIG9mICIjZGVmaW5lIHggMSIgZm9yIGFsbCBwbGF0Zm9ybSBuYW1lcwoKMjAwNi0wOC0xNyAwODo0NCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTQ5OiBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDA2LTA4LTE3IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmg6CgogICBEcm9wIERpc01hbiBFdmVudCBNSUIgcmUtd3JpdGUgd2FybmluZy4KCjIwMDYtMDgtMTcgMDg6MTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE1OTogcG90ZW50aWFsIHJlc291cmNlIGxlYWsgYWZ0ZXIgbWFsbG9jIGZhaWx1cmUKCjIwMDYtMDgtMTcgMDg6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBCVUc6IENvdmVyaXR5ICM1NjogZG9uJ3QgY29udGludWUgaWYgbWFsbG9jIGZhaWxzCgoyMDA2LTA4LTE3IDA3OjUwICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgQlVHOiBDb3Zlcml0eSAjNTY6IGRvbid0IGNvbnRpbnVlIGFmdGVyIGZhaWxlZCBtYWxsb2MKCjIwMDYtMDgtMTcgMDc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTc0OiBkb24ndCByZXR1cm4gcHRyIHRvIGZyZWVkIG1lbW9yeQoKMjAwNi0wOC0xNyAwMTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBGaXggdmFyaWFibGUgdHlwZXMgdG8gbWF0Y2ggcGFyYW1ldGVyIHVzYWdlLiAgU3BvdHRlZCBieSBTY290dCBNb3luZXMuCgoyMDA2LTA4LTE2IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpc3N1ZSB3aXRoIE9TIG5hbWUgYmVpbmcgZGVmaW5lZCBhcyAxCgoyMDA2LTA4LTE2IDE2OjA4ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXBkYXRlIGZvciByZXdvcmtlZCBTb2xhcmlzIGhlYWRlcnMKCjIwMDYtMDgtMTUgMjI6NTQgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcGQuOC5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBmaXggdHlwbwoKMjAwNi0wOC0xNSAxNDoyMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgRml4IGVtYWlsIGFkZHJlc3MKCjIwMDYtMDgtMTUgMDg6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2xlYW4gdXAgdGhlIHRtcCBjcmVhdGVkIGZpbGUKCjIwMDYtMDgtMTUgMDc6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4ZWQgY29uZmlnX2FyY2hfcmVxdWlyZQoKMjAwNi0wOC0xNSAwNzoyNiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgZm9yY2UgIiN1bmRlZiBJRk5FVF9ORUVEU19LRVJORUwiIG9uIEZyZWVCU0QgNS54IG9ubHkKCjIwMDYtMDgtMTUgMDc6MDcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBzb2xhcmlzMi4xMC5oLCBzb2xhcmlzMi43LmgKLCBzb2xhcmlzMi44LmgsIHNvbGFyaXMyLjkuaDoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBoZWFkZXIgZmlsZXMKCjIwMDYtMDgtMTUgMDU6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBhdm9pZCBjb21tZW50IGluc2lkZSBjb21tZW50CgoyMDA2LTA4LTE1IDAxOjQ4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzCgoyMDA2LTA4LTE0IDIwOjI1ICBoYXJkYWtlcgoKICAgKiBhY2luY2x1ZGUubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBDbGVhbmVkIHVwIHRoZSBkZWJ1Z2dpbmcgY29kZSBmb3IgdGhlIG1vZHVsZSBzZWN0aW9uCiAgICAgLSBBZGRlZCBhIEFDX01TR19NT0RVTEVfREJHIG1hY3JvIHRvIGNsZWFuIHVwIHRoZSB6aWxsaW9ucyBvZiBpZnMKICAgLSBSZXdvcmtlZCB0aGUgbTQgcXVvdGluZyBvZiB0aGUgc2VjdGlvbiB0byBvbmx5IGNoYW5nZXF1b3RlIHdoZW4KICAgICBhY3R1YWxseSBuZWVkZWQsIHJhdGhlciB0aGFuIGRvaW5nIHRoZSByZXZlcnNlIGFuZCBoYXZpbmcgdG8gY2hhbmdlCiAgICAgdG8gIm5vcm1hbCIgcXVvdGluZyB3aGVuIGEgbWFjcm8gY2FsbCBpcyBuZWVkZWQuCgoyMDA2LTA4LTE0IDE2OjI5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZnJlZWJzZDQuaCwgZnJlZWJzZDUuaCwKICAgICBmcmVlYnNkNi5oOgoKICAgc2ltcGxpZnkvYWdncmVnYXRlIEZyZWVCU0QgaGVhZGVycwoKMjAwNi0wOC0xNCAxNTo1NyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IHNvbGFyaXMuaCwgc29sYXJpczIuMy5oLAogICAgIHNvbGFyaXMyLjQuaCwgc29sYXJpczIuNS5oLCBzb2xhcmlzMi42Lmg6CgogICBSZXdvcmsgb2YgaGVhZGVyIGZpbGVzIGZvciBTb2xhcmlzLiBzb2xhcmlzLmggbm93IGNvdmVycyBTb2xhcmlzIDcgYW5kIHVwIChpbmNsdWRpbmcgYW55IGZ1dHVyZSB2ZXJzaW9ucykgd2hpbGUgc29sYXJpczIuWzMtNl0uaCBjb3ZlcnMgbGVnYWN5IHN1cHBvcnQuCgoyMDA2LTA4LTE0IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUKCjIwMDYtMDgtMTQgMTM6MjQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICB1cGRhdGVkIFVDRCByZWZlcmVuY2VzIHRvIE5ldC1TTk1QLCB1cGRhdGVkIGNvbnRhY3QgaW5mbwoKMjAwNi0wOC0xNCAxMzoyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgTmV3IGNvbmZpZ3VyZSBiYXNlZCBkZWZhdWx0X21vZHVsZXMuaCBmaWxlIHRvIGRlY2lkZSB3aGljaCBtb2R1bGVzIHRvCiAgIGJ1aWxkIGludG8gdGhlIGFnZW50LgogICBORVdTOiBzbm1wZCAtLSBBZ2VudCBidWlsZHMgZGVmYXVsdCBtb2R1bGUgbGlzdCBmcm9tIGEgZGVmYXVsdF9taWJzLmggcmF0aGVyIHRoYW4gYSBoYXJkIGNvZGVkIGNvbmZpZ3VyZSBsaXN0CgoyMDA2LTA4LTE0IDEzOjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgdXBkYXRlZCByZWZlcmVuY2VzIHRvIFVDRCB0byBOZXQtU05NUCwgdXBkYXRlZCBjb250YWN0IGluZm8KCjIwMDYtMDgtMTEgMTg6MTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBtYW4vc25tcGQuOC5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBJbnRyb2R1Y2UgLS13aXRoLWFnZW50eC1zb2NrZXQ9RklMRSBjb25maWd1cmUgb3B0aW9uLiBIZWxwcyBwYWNrYWdlcnMgdG8gKnByb3Blcmx5KiBjdXN0b21pemUgdGhhdCBwYXRoIChub3QgZW5jb3VyYWdlZCwgYnV0IHF1aXRlIGNvbW1vbikuCgoyMDA2LTA4LTExIDA3OjU2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB2c25wcmludGYoKSBuZWVkcyB0byBiZSBmb2xsb3dlZCBieSB2YV9lbmQKCjIwMDYtMDgtMTEgMDY6NDUgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGRvbid0IGNhbGwgdmFfZW5kKCkgaWYgd2UndmUgb25seSBtZW1jcHkoKWVkCgoyMDA2LTA4LTExIDAyOjU5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBzaW1wbGUgYXR0ZW1wdCB0byBmaXggcmVjZW50bHkgaW50cm9kdWNlZCB2YV9jb3B5KCkgYnVpbGQgaXNzdWVzCgoyMDA2LTA4LTEwIDA3OjExICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXBvcnQgYSBmYWlsdXJlIHRvIGJ1aWxkIHRoZSBQRFUuICAoUmVmIEJ1ZyAjMTM5OTM3MCkKCjIwMDYtMDgtMTAgMDE6NTggIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBXaXRoIGZlYXIgYW5kIHRyZXBpZGF0aW9uLCByZW1vdmUgdGhlIHdhcm5pbmdzIGFnYWluc3QgdXNlIG9mIEFnZW50WC4KICAgRG9vbWVkLCB3ZSdyZSBhYWFhbGwgZG9vb29vbWVkLi4uLgoKMjAwNi0wOC0wOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9NQU5JRkVTVDoKCiAgIHVwZGF0ZWQgdG8gY29ycmVjdCBsaXN0CgoyMDA2LTA4LTA5IDEwOjEzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgYW5vdGhlciBwYXNzIGF0IHBlcmwvQ1BBTiBzcGVjaWZpYyB2ZXJzaW9uaW5nIGNoZWNrcwoKMjAwNi0wOC0wOSAwOTo1NyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGFsbG93IGZvciB2ZXJ5IG1pbm9yIGRldmlhdGlvbnMgaW4gcGVybCBDUEFOIHNvdXJjZSB2ZXJzaW9ucyBmcm9tIG5ldC1zbm1wIHZlcnNpb25zCgoyMDA2LTA4LTA5IDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgbWFqb3IgdXBkYXRlIGZvciBDUEFOIHJlbGVhc2UKCjIwMDYtMDgtMDkgMDk6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIG1hdGNoIDUuMyB0cmVlIGZvciBvcmRlcmluZwoKMjAwNi0wOC0wOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgdXBkYXRlIGZvciByZWNlbnQgbmVlZGVkIHRlc3RpbmcgZmlsZXMKCjIwMDYtMDgtMDggMTc6NTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBidWlsZCBmaXgKCjIwMDYtMDgtMDggMTU6MTYgIHRhbmRlcnMKCiAgICogYWNpbmNsdWRlLm00OgoKICAgTW92ZSBvdXIgb3duIG00IG1hY3JvcyBmcm9tIGFjbG9jYWwubTQgaW50byBhY2luY2x1ZGUubTQgYW5kIHByb3Blcmx5IHF1b3RlIHRoZW0uIEZvbGxvd3MgbGlidG9vbC9hdXRvbWFrZSByZWNvbW1lbmRhdGlvbnMgYW5kIGFsbG93cyB0byByZWdlbmVyYXRlIGFjbG9jYWwubTQgKGNvbnRhaW5pbmcgbGlidG9vbC5tNCkgYnkgY2FsbGluZyBhY2xvY2FsIHdoaWNoIEkndmUganVzdCBkb25lLiBJbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggIzIxLgoKMjAwNi0wOC0wOCAxNTowNyAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBtaW5vciBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOC0wOCAxNTowMiAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00OgoKICAgTW92ZSBvdXIgb3duIG00IG1hY3JvcyBmcm9tIGFjbG9jYWwubTQgaW50byBhY2luY2x1ZGUubTQgYW5kIHByb3Blcmx5IHF1b3RlIHRoZW0uIEZvbGxvd3MgbGlidG9vbC9hdXRvbWFrZSByZWNvbW1lbmRhdGlvbnMgYW5kIGFsbG93cyB0byByZWdlbmVyYXRlIGFjbG9jYWwubTQgKGNvbnRhaW5pbmcgbGlidG9vbC5tNCkgYnkgY2FsbGluZyBhY2xvY2FsIHdoaWNoIEkndmUganVzdCBkb25lLiBJbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggIzIxLmFjaW5jbHVkZS5tNAoKMjAwNi0wOC0wOCAwNjoxOCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIKCjIwMDYtMDgtMDggMDY6MTggIHRhbmRlcnMKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBIQVZFX0xJQk5NIGluIG9yZGVyIHRvIG1ha2UgYXV0b2hlYWRlciB3b3JrIGFnYWluCgoyMDA2LTA4LTA3IDE1OjUzICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlCiwgTkVXUywgbHRtYWluLnNoOgoKICAgbGlidG9vbCB1cGRhdGUgdG8gMS41LjIyIChmcm9tIDEuNCkuIFN1cGVyc2VkZXMgcGF0Y2ggMTQ5Njk0NSBhbmQgZml4ZXMgYnVnIDE1MTgxMTcgKHByb2JhYmx5IHBsdXMgYSBmZXcgbW9yZSkuCgoyMDA2LTA4LTA3IDA4OjMzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBbHJlYWR5IHJhbmRvbWl6ZSB0aGUgaW5pdGlhbCBwb3J0IHdlIHRyeS4gTG93ZXJzIHRoZSBjaGFuY2Ugb2YgY29sbGlzaW9ucyBpZiBtdWx0aXBsZSB0ZXN0IHN1aXRlcyBydW4gaW4gcGFyYWxsZWwuCgoyMDA2LTA4LTA3IDA1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBleHBsaWNpdCBjYXN0IHRvIGtlZXAgY29tcGlsZXIgaGFwcHkKCjIwMDYtMDgtMDcgMDM6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHR5cG8uICBTcG90dGVkIGJ5IExlbyBMZWkKCjIwMDYtMDgtMDUgMTc6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYzoKCiAgIEJ1aWxkIGZpeGVzIGZvciBBSVggSE9TVC1SRVNPVVJDRVMtTUlCIHN1cHBvcnQKCjIwMDYtMDgtMDUgMTI6MTcgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlicGVybC5zbyB0byBMRF9SVU5fUEFUSAoKMjAwNi0wOC0wNCAxNTozNiAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBFNDUwIHJlcG9ydGluZyBQUyB0ZW1wcyBhcyB2b2x0YWdlLCBvdGhlciBwcm9ibGVtcwoKMjAwNi0wOC0wMyAxODowMiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG92ZXJyaWRlIExEX1JVTl9QQVRIIGZvciB0aGUgcGVybCBtb2R1bGVzIHRvIGF2b2lkIGRlcGVuZGVuY2llcyBvbiB0aGUgYnVpbGQgZGlyZWN0b3J5IChwYXRjaCBmcm9tIGRhcml4KQoKMjAwNi0wOC0wMSAwNDo0MyAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgb25lIG1vcmUgY29ycmVjdGlvbgoKMjAwNi0wNy0zMSAyMjo1MiAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0wNy0zMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWlibG9hZC50OgoKICAgZml4IGEgdGVzdCB0aGF0IG1heSBzdWNjZWVkIHdoZW4gaXQgc2hvdWxkbid0CgoyMDA2LTA3LTMxIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBnZXR0YWJsZSBwYXRjaAoKMjAwNi0wNy0zMSAxNjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBmaXggZ2V0YnVsayBhdCBlbmQtb2YtbWlidmlldyBib3VuZGFyaWVzCgoyMDA2LTA3LTMxIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgdXBkYXRlIGFnYWluIHRvIG1vc3QgcmVjZW50CgoyMDA2LTA3LTMxIDE1OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gdGhlIGxhdGVzdCB2ZXJzaW9uLgoKMjAwNi0wNy0zMSAxNTo0MCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHZlcnNpb24gdGFnIGRveHlnZW4gZmlsZXMKCjIwMDYtMDctMzEgMTU6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA2LTA3LTMxIDEzOjMxICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIHNubXB0cmFwZCBhdXRob3JpemF0aW9uIHVuY29uZGl0aW9uYWxseSBvZiB1c2luZyBBZ2VudFggKGZpeGVzIGJ1ZyAxNTI3NjYxKQoKMjAwNi0wNy0zMSAwNzoyNSAgbWFyegoKICAgKiBkb2MvcmZjLzogYWdlbnR4L3JmYzI3NDEudHh0LCBtaXNjL3JmYzM1MTIudHh0LAogICAgIG1pc2MvcmZjMzU4NC50eHQsIHNtaVYyL3JmYzI1NzgudHh0LAogICAgIHNtaVYyL3JmYzI1NzkuZXJyYXRhLCBzbWlWMi9yZmMyNTc5LmVycmF0YX4sCiAgICAgc21pVjIvcmZjMjU3OS50eHQsIHNtaVYyL3JmYzI1ODAudHh0LAogICAgIHNubXBWMS9yZmMxMTU1LnR4dCwgc25tcFYxL3JmYzExNTcudHh0LAogICAgIHNubXBWMS9yZmMxMjEyLnR4dCwgc25tcFYxL3JmYzEyMTMudHh0LAogICAgIHNubXBWMi9yZmMxOTAxLnR4dCwgc25tcFYyL3JmYzE5MDIudHh0LAogICAgIHNubXBWMi9yZmMxOTAzLnR4dCwgc25tcFYyL3JmYzE5MDQudHh0LAogICAgIHNubXBWMi9yZmMxOTA1LnR4dCwgc25tcFYyL3JmYzE5MDYudHh0LAogICAgIHNubXBWMi9yZmMxOTA3LnR4dCwgc25tcFYyL3JmYzE5MDgudHh0LAogICAgIHNubXBWMi9yZmMyMDg5LnR4dCwgc25tcFYzL3JmYzM0MTAuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDEwLnR4dCwgc25tcFYzL3JmYzM0MTEudHh0LAogICAgIHNubXBWMy9yZmMzNDEyLnR4dCwgc25tcFYzL3JmYzM0MTMuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDEzLnR4dCwgc25tcFYzL3JmYzM0MTQuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDE0LnR4dCwgc25tcFYzL3JmYzM0MTUuZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDE1LnR4dCwgc25tcFYzL3JmYzM0MTYudHh0LAogICAgIHNubXBWMy9yZmMzNDE3LnR4dCwgc25tcFYzL3JmYzM0MTguZXJyYXRhLAogICAgIHNubXBWMy9yZmMzNDE4LnR4dDoKCiAgIGFkZGluZyByZmNzIGFuZCBlcnJhdGEgdG8gZGlzdHJpYnV0aW9uCgoyMDA2LTA3LTMxIDA1OjQzICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIERvbid0IGNhdGNoICIuLi4gc25tcG5ldHN0YXQgZmluZHMgLi4uIiAodGVzdCA1OCkgYXMgYW4gZXJyb3IuCgoyMDA2LTA3LTMwIDE3OjI4ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIENhdGNoICJQZXJtaXNzaW9uIGRlbmllZCIgZXJyb3JzLCBlLmcuIGR1cmluZyAibWFrZSBpbnN0YWxsIi4KCjIwMDYtMDctMzAgMTY6MDggIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2F0Y2ggIkNhbid0IGZpbmQgLi4uIiBlcnJvcnMsIGUuZy4gZnJvbSBsZAoKMjAwNi0wNy0zMCAxNTo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcGFzcyBMREZMQUdTIHRvIGFsbG93IGZvciBub24tc3RhbmRhcmQgbGliY3J5cHRvIGxvY2F0aW9uCgoyMDA2LTA3LTI5IDE2OjU4ICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgKGNvcnJlY3RseSkgbWFrZSB1c2Ugb2YgcmVjZW50bHkgaW50cm9kdWNlZCBTTk1QX1NUUk9STlVMTCh4KQoKMjAwNi0wNy0yOSAxNjoxOCAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIG1ha2UgdXNlIG9mIHJlY2VudGx5IGludHJvZHVjZWQgU05NUF9TVFJPUk5VTEwoeCkKCjIwMDYtMDctMjggMDU6MjMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgU3VwcG9ydCBzZXR0aW5nIHRoZSBwZXJzaXN0ZW50IG1hc2sgdmlhIGNvbmZpZ3VyZS4gIChiYXNlZCBvbiBQYXRjaCAjMTQzNzM4NSkKCjIwMDYtMDctMjggMDQ6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAnLWFzLW5lZWRlZCcgc3VwcG9ydCBmb3IgbGlua2luZyBsaWJyYXJpZXMuICAoUGF0Y2hlcyAjMTM5ODg3MyAmIDE0OTM1MjIpCgoyMDA2LTA3LTI4IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgSnVtYm8gcGF0Y2ggZm9yIGltcHJvdmVkIEFJWCA1Lnggc3VwcG9ydC4gIChQYXRjaCAjMTQ4NjMwNykKICAgTm90ZSB0aGF0IHRoZSBtZW1vcnktcmVsYXRlZCBwcm9jZXNzaW5nIChob3N0L2hyX2ZzdG9yYWdlLmMpCiAgIGlzIG5vdyBtb3N0bHkgaGFuZGxlZCBieSBoYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jCgoyMDA2LTA3LTI3IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHBhdGNoIGZyb20gSnVsaWVuIFBpbm9uIHRvIGZpeCBhIGZldyB0a21pYiBwcm9ibGVtcwoKMjAwNi0wNy0yNyAwODo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBTdXBwb3J0IGZvciBIRlMgc3lzdGVtcywgcGx1cyBORlMgZml4ZXMgZm9yIERhcndpbi4gIChQYXRjaCAjMTUyMDI4OSkKCjIwMDYtMDctMjcgMDY6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUHJldmVudCBwb3RlbnRpYWwgY3Jhc2ggaW4gRGFyd2luLiAgKFBhdGNoICMxNTIwMjg2KQoKMjAwNi0wNy0yNyAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBTdXBwb3J0ICctLXdpdGhvdXQta21lbS11c2FnZScgb24gbm9uLUxpbnV4IHN5c3RlbXMuICAoUGF0Y2ggIzE1MjAyNzgpCgoyMDA2LTA3LTI3IDA1OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5jbHVkZSAncGtjcycgaW4gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gY29tcGlsZS4gIChQYXRjaCAjMTUxNDg2NykKCjIwMDYtMDctMjcgMDU6MTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBBY2NlcHQgLVogMCB2YWx1ZXMgZm9yIGVuZ2luZUJvb3QvZW5naW5lVGltZS4gIChQYXRjaCAjMTUxMDAzMikKCjIwMDYtMDctMjcgMDQ6MzcgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBTdXBwb3J0IHJ1bm5pbmcgdHJhcCByZWNlaXZlciBhcyBub24tcm9vdCB1c2VyL2dyb3VwLiAgKFBhdGNoICMxNDk3NDY3KQoKMjAwNi0wNy0yNyAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQXR0ZW1wdCB0byB1c2UgdGhlIG1vc3QgdXAtdG8tZGF0ZSBzeXNjdGwgQVBJcy4gIChQYXRjaCAjMTQ4MjE2OSkKCjIwMDYtMDctMjYgMDg6NTggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZiwKICAgICBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBHZW5lcmF0ZSBwcm9wZXIgY29kZSBmb3Igbm9uLWludGVnZXIgdmFsdWUgb2JqZWN0cywgYW5kIGRldGVybWluZQogICB0aGUgZmlyc3QgYW5kIGxhc3QgYWNjZXNzaWJsZSBjb2x1bW4gb2JqZWN0cy4gIChQYXRjaCAjMTQyNzcxMikKCiAgIFE6IElzIGl0IHdvcnRoIHB1bGxpbmcgc29tZSBvZiB0aGlzIGNvZGUgb3V0IGludG8gYSBzZXBhcmF0ZSBtaWIyYwogICAgICB1dGlsaXR5IGZpbGUsIHNpbmNlIG11Y2ggb2YgdGhlIHByb2Nlc3NpbmcgaXMgZWZmZWN0aXZlbHkgaWRlbnRpY2FsCiAgICAgIGluIGFsbCB0aHJlZSBjYXNlcz8KCjIwMDYtMDctMjYgMDQ6NTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBIYW5kbGUgbG9uZyAoZHluYW1pYy1idWZmZXJlZCkgbWVzc2FnZXMgY29ycmVjdGx5LiAgKEJ1ZyAjMTUxNjA0NSkKCjIwMDYtMDctMjYgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIEVuc3VyZSB0aGUgc2VjTW9kZWwgaXMgaW5pdGlhbGlzZWQgZm9yIFNOTVB2MyBub3RpZmljYXRpb25zLiAoQnVnICMxNTE3NDU0KQoKMjAwNi0wNy0yNiAwNDoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgT25seSBzb3J0IHJlbG9jYXRhYmxlIGV4dGVuc2lvbiBlbnRyaWVzLiAgVGhvc2UgaW4gdGhlIG1haW4gZXh0VGFibGUKICAgZG9uJ3QgaGF2ZSBhbiBPSUQgdG8gc29ydCBvbiwgc28gYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgc2NyYW1ibGUKICAgdGhlbSBpbnRvIGEgcmFuZG9tIG9yZGVyLiAgKEJ1ZyAjMTUwNjcwNykKCjIwMDYtMDctMjUgMDg6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmgsIGhyX25ldHdvcmsuaCwKICAgICBocl9vdGhlci5oLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuaCwKICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuaDoKCiAgIEluZGljYXRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIEhvc3RSZXMgbW9kdWxlcy4gIChCdWcgIzE1MDUzMjUpCgoyMDA2LTA3LTI1IDA4OjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEVuc3VyZSB0aGF0IElQIEFkZHJlc3MgdmFsdWVzIGFyZSByZXBvcnRlZCBhcyA0LW9jdGV0CiAgIHZhbHVlcyBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcy4gIChCdWcgIzE1MDQ1MDEpCgoyMDA2LTA3LTI1IDA2OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgSGFuZGxlIG1hbGZvcm1lZCBEaXNwbGF5IEhpbnRzIHNlbnNpYmx5LCByYXRoZXIgdGhhbgogICBnb2luZyBpbnRvIGFuIGluZmluaXRlIGxvb3AuICAoQnVnICMxNDU5NjY1KQoKMjAwNi0wNy0yNSAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRG9uJ3QgYXNzdW1lIHRoYXQgYWxsIHJlcXVlc3RzIGFyZSBuZWNlc3NhcmlseSB2YWxpZC4gKEJ1ZyAjMTQ0NTExNikKCjIwMDYtMDctMjUgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSB0aGUgZGVmaW5lZCBkZWZhdWx0IHBvcnQgKGlmIHNwZWNpZmllZCkgZm9yIG51bWVyaWMgSVB2NgogICBhZGRyZXNzZXMsIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgU05NUF9QT1JULiAgKEJ1ZyAjMTQ0NTA4OSkKCjIwMDYtMDctMjUgMDM6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgRG9uJ3QgY2hva2Ugb24gbWlzc2luZyBsYWJlbHMgKEJ1ZyAjMTQyOTQ2OSkKCjIwMDYtMDctMjUgMDI6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEluY2x1ZGUgbWlzc2luZyBmbGFncyBwYXJhbWV0ZXIgKEJ1ZyAjMTQyMjcwOCkKCjIwMDYtMDctMjUgMDE6MzEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSBicm9rZW4gYXNzZXJ0aW9uIChCdWcgIzEzOTkzNzApCgoyMDA2LTA3LTI1IDAxOjExICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHYzLmM6CgogICBSZS1maXggdW5zaWduZWQgY29tcGFyaXNvbnMgYWdhaW5zdCAwIChCdWcgIzEzOTc4OTEpCiAgIGluY2x1ZGluZyBmaXggZm9yIHRlc3QgIzI0CgoyMDA2LTA3LTI1IDAxOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBGaXggc2lnbmVkbmVzcyBvZiByZXR1cm4gdmFsdWVzIChCdWcgIzEzOTc5MDYpCgoyMDA2LTA3LTE4IDA3OjAzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZjoKCiAgIFNOTVBfVFlQRURFRl9NQUxMT0MgLT4gU05NUF9NQUxMT0NfVFlQRURFRgoKMjAwNi0wNy0xMyAxNDozMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG5ld3MgdXBkYXRlIGZvciByZWNlbnQgZmVhdHVyZXMKCjIwMDYtMDctMTMgMDg6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2FsbGJhY2sgc3VwcG9ydCBmb3IgZ2V0dGFibGUoKS4KICAgICAtIG5vdCBleHRlbnNpdmVseSB3ZWxsIHRlc3RlZCwgYnV0IGl0IGRvZXMgd29yawoKMjAwNi0wNy0xMiAwMjo0MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggaWZJbk9jdGV0cyBzdGF0aXN0aWNzIG9uIFNvbGFyaXMgKHBhdGNoIDE1MjA2MDMgZnJvbSBKb2huIEdyZWVuKQoKMjAwNi0wNy0wNyAxNTowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0eXBvIGZpeAoKMjAwNi0wNy0wNyAxNDo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEYXZlJ3MgcGF0Y2ggdG8gcmVtb3ZlIGhvc3QgbWliIHN1cHBvcnQgZm9yIHdpbmRvd3MgYnkgZGVmYXVsdAoKMjAwNi0wNy0wNyAxNDo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgRGF2ZSdzIHBhdGNoIGZvciBjb21waWxhdGlvbiBmaXhlcyBmb3Igd2luZG93cwoKMjAwNi0wNy0wNyAxNDo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gTWF0aGV3IEJpZWxlamVza2kgdG8gZnJlZSB1c2VyIGxpc3QgYW5kIGVuZ2luZSB0aW1lIGNhY2hlIGF0IHNodXRkb3duCgoyMDA2LTA3LTA3IDE0OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4IHBvc3NiaWxlIG51bGwgZGVyZWZlbmNlLCBub3RlZCBvbiBjb2RlcnMKCjIwMDYtMDctMDYgMTU6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICBhZGp1c3QgT0lEIGZvciBTb2xhcmlzIHN3YXAgc3BhY2Ugc2l6ZQoKMjAwNi0wNy0wNiAxNTowMSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggYXNzaWdubWVudCBpbiByZWFkX2NvbmZpZ19zdG9yZV9kYXRhX3ByZWZpeCgpIGZvciBBU05fSVBBRERSRVNTCgoyMDA2LTA3LTA1IDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICAtIGFkZCB3YXJuaW5nIGNvbW1lbnQgZm9yIGRlcHJlY2F0ZWQgb2JqZWN0cwogICAtIHNob3J0ZW4gc2NhbGFyIG5vZGUgY29tbWVudHMgYnkgYSBsaW5lCiAgIC0gc2hvcnRlbiBjb2x1bW4gbm9kZSBjb21tZW50cwoKMjAwNi0wNy0wNSAxNDo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCB1bnNpZ25lZCB0byBhc250eXBlcwoKMjAwNi0wNy0wNSAxNDoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgYWRkICogbmV4dCB0byBzY2FsYXIgZW51bSBkZWZ2YWwKCjIwMDYtMDctMDUgMTQ6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIC0gJ292ZXJyaWRlJyBhbmQgJ2FkZF9yb3cnIGRlZmF1bHQgdG8gY29tbWVudGVkIG91dAogICAtIGFkZCBtaXNzaW5nIHR5cGUgaW5mbyB0byBvdmVycmlkZQogICAtIG1ha2UgY29uZiBmaWxlIGhlYWRlciBtaWIyYyBjb21tZW50cyBzbyBpdCdzIG5vdCBpbmNsdWRlZCBpbiBvdXRwdXQKCjIwMDYtMDctMDUgMDc6NDIgIHJzdG9yeQoKICAgKiBtaWJzLzogRElTTUFOLU5TTE9PS1VQLU1JQi50eHQsIERJU01BTi1QSU5HLU1JQi50eHQsCiAgICAgRElTTUFOLVRSQUNFUk9VVEUtTUlCLnR4dDoKCiAgIHVwZGF0ZSBmcm9tIFJGQyA0NTYwCgoyMDA2LTA3LTAzIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBQcm9wZXJseSBoYW5kbGUgc25tcCBlbnVtcyB1c2luZyB0aGUgd29yZCAiZGVwcmVjYXRlZCIKCjIwMDYtMDctMDMgMjA6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIGFwcHJvcHJpYXRlbHkgbWFyayBkZXByZWNhdGVkIHRhYmxlIG9iamVjdHMKCjIwMDYtMDYtMzAgMjI6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBzdXBwb3J0IGZvciBvcHRpb25hbCBmaWxlcyAoZG9uJ3QgZXhpc3QgaW4gZXZlcnkgYnJhbmNoKQoKMjAwNi0wNi0zMCAyMTo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGRveHlnZW4uY29uZiBzdXBwb3J0CgoyMDA2LTA2LTMwIDIxOjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgY2hlY2sgZm9yIGZpbGUgZXhpc3RlbmNlCgoyMDA2LTA2LTMwIDIxOjA3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZXhpdCB3aXRoIHRoZSBjdnMgY29tbWl0IHN0YXR1cyBpZiBydW4KCjIwMDYtMDYtMzAgMTU6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgYmV0dGVyIGVudiBuYW1lIGZvciBub3QgY2hlY2tpbmcgdGhlIHZlcnNpb24KCjIwMDYtMDYtMzAgMTU6MTcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHZlcnNpb24gY2hhbmdpbmcgc3VwcG9ydDsgbm93IGluIG1ha2VyZWxlYXNlCgoyMDA2LTA2LTMwIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHRhZyBzdXBwb3J0IGZyb20gdmVyc2lvbnRhZzsgbm93IGluIG1ha2VyZWxlYXNlCgoyMDA2LTA2LTMwIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgbXVjaCBiZXR0ZXIgc3VwcG9ydCBmb3IgY3ZzIGNvbW1pdCwgdmVyc2lvbiBudW1iZXJpbmcsIGV0YwoKMjAwNi0wNi0zMCAxNToxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHZhcmlvdXMgZml4ZXMgYW5kIGltcHJvdmVtZW50cwoKMjAwNi0wNi0zMCAxNToxMyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBBU04vQVNOLnBtLCBBU04vTWFrZWZpbGUuUEwKLCBBbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgT0lEL01ha2VmaWxlLlBMLAogICAgIE9JRC9PSUQucG0sIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvU05NUC5wbSwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0KLCBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvYWdlbnQucG0sCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBwZXJsIHZlcnNpb24gbnVtYmVyaW5nIGNoYW5nZXMKCjIwMDYtMDYtMzAgMTU6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvTWFrZWZpbGUuc3Vicy5wbDoKCiAgIFVwZGF0ZSB0byBjaGVjayBmb3IgQ1BBTiByZXF1aXJlZCBwZXJsIHZlcnNpb24gbnVtYmVycwoKMjAwNi0wNi0yOSAxNjo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgZmlyc3QgcGFzcyBhdCBhdXRvZ2VuZXJhdGluZyBvdmVycmlkZS90YWJsZS9hZGRfcm93IGVudHJpZXMgZm9yIGEgTUlCCgoyMDA2LTA2LTI3IDExOjQwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDYxYWdlbnRwZXJsLCBUMTE1YWdlbnR4cGVybDoKCiAgIHNldCBEWUxEX0xJQlJBUllfUEFUSCBmb3IgT1NYIGFuZCBTSExJQl9QQVRIIGZvciBIUC1VWAoKMjAwNi0wNi0yNyAxMTowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IG1vcmUgdWRwVGFibGUgYnl0ZS1vcmRlciBpc3N1ZXMgKGluZGljZXMpIG9uICpCU0QgYW5kIFNvbGFyaXMveDg2CgoyMDA2LTA2LTI3IDA5OjQyICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHJlbW92ZSBlbWJlZGVkIHBlcmwgaW5mbzsgYWRkIHBlcmwgYWdlbnR4IGluZm8KCjIwMDYtMDYtMjYgMTU6MjggIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGFkZCBuZXRzdGF0IHBhdGggZm9yIElSSVgKCjIwMDYtMDYtMjYgMDg6MzMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICB1ZHBUYWJsZSBieXRlLW9yZGVyIGZpeCAodmFsdWVzIG9ubHkpIGZvciBOZXRCU0QgYW5kIE9wZW5CU0QKCjIwMDYtMDYtMjUgMTQ6NDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgcHJlcGVuZCAoaW5zdGVhZCBvZiByZXBsYWNlKSBhIG5vbi1lbXB0eSBMRF9MSUJSQVJZX1BBVEg7IGZpeGVzIHRlc3QgZXJyb3JzIG9uIHN5c3RlbXMgdGhhdCByZWx5IG9uIGl0CgoyMDA2LTA2LTI1IDE0OjI1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgZml4IHRlc3QgZXJyb3Igb24gU29sYXJpcyBldGMuOiBvbmx5IHVzZSAiaWQgLXUiIG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGl0CgoyMDA2LTA2LTI1IDA4OjQzICBhbGV4X2IKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgICAgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwKLCBTTk1QL01ha2VmaWxlLlBMLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICAtJ3BlcmwgTWFrZWZpbGUuUEwgLU5FVC1TTk1QLUlOLVNPVVJDRT10cnVlJyB3YXMgbm90IHdvcmtpbmcuICBGaXg6IGNhbGwKICAgICduc2NvbmZpZycgLS12ZXJzaW9uIGluc2lkZSBvZiBJbml0TWFrZVBhcmFtcyBpbnN0ZWFkIG9mIENoZWNrX1ZlcnNpb24KICAgLVN1cHBvcnQgbW9kdWxlOiBOZXRTTk1QR2V0T3B0cyBjYWxsIHNob3VsZCBwYXNzIHBhcmVudCBmb2xkZXIgc28gbmV0LXNubXAtY29uZmlnCiAgICBjYW4gYmUgZm91bmQKICAgLVN1cHBvcnQvTWFrZWZpbGUuUEwgd2FzIG1pc3NpbmcgZnJvbSBNYWtlZmlsZS5tYWtlZmlsZXMKCjIwMDYtMDYtMjQgMDk6MDAgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIC1Ta2lwIHZlcnNpb24gY2hlY2sgZm9yIFdpbjMyIE1TVkMKICAgLWFkZCBUcmFwUmVjZWl2ZXIgdG8gTWFrZWZpbGUubWFrZWZpbGVzCiAgIC1tYWtlLXBlcmwtbWFrZWZpbGVzOiAgcmVuYW1lIGZpbGVzIEFGVEVSIGNsb3NpbmcgdGhlbSwgbm90IGJlZm9yZQoKMjAwNi0wNi0yMyAxMjo1MCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGNoZWNrIGZvciAxMjcuMC4wLjEuLCBub3QganVzdCAsIHRvIGlkZW50aWZ5IGJ5dGUtb3JkZXIgaXNzdWVzCgoyMDA2LTA2LTIzIDA5OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBDbGVhbiBmaXhpbmcgb2Ygb3JkZXJpbmcgcHJvYmxlbXMgd2l0aCBrZXJuZWwgc3RvcmFnZSBvZiBVRFAgdmFsdWVzCgoyMDA2LTA2LTIzIDA4OjUyICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgRG9jdW1lbnQgY3VycmVudCBiZXN0LXByYWN0aXNlIGZvciBhbm5vdW5jaW5nIG5ldyByZWxlYXNlcwogICAoaW5jbHVkaW5nIHByZS1yZWxlYXNlcyBhbmQgcmVsZWFzZSBjYW5kaWRhdGVzKS4KICAgU2F5IHdoYXQgd2UgZG8sIHJhdGhlciB0aGFuIGRvIHdoYXQgd2Ugc2F5LgoKMjAwNi0wNi0yMyAwNToxOSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZml4IHR5cG9zCgoyMDA2LTA2LTIzIDAyOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggZWFybGllciAiZG9uJ3QgcmV2ZXJzZSBhZGRyZXNzIGJ5dGUgb3JkZXIgZm9yIHNvbGFyaXMgKHNwZWNpZmljYWxseSB4ODYpIGZvciBsb2NhbCBhZGRyZXNzZXMiIHBhdGNoIHRoYXQgYnJva2UgYnl0ZSBvcmRlciBmb3IgYWxsIHBsYXRmb3JtcwoKMjAwNi0wNi0yMCAxNTozNSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX1BSRUZJWCBhbmQgc3dpdGNoIHRvIC0tcHJlZml4PS91c3Igbm93IHRoYXQgd2Ugc3VwcG9ydCBERVNURElSIGZvciBldmVyeXRoaW5nOyBlLmcuIHRvIGF2b2lkIHRoYXQgdGhlIGluc3RhbGxhdGlvbiBlbmRzIGluIC9kZXN0ZGlyL2Rlc3RkaXIKCjIwMDYtMDYtMjAgMTQ6NDYgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW50cm9kdWNlIE5TQl9FWFRSQV9JTlNUQUxMIHRvIGJlIGFibGUgdG8gcGFzcyBleHRyYSBhcmdzIHRvICJtYWtlIGluc3RhbGwiCgoyMDA2LTA2LTIwIDEyOjEyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGV4cG9ydGluZwoKMjAwNi0wNi0yMCAwNTo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBzZXQgTERfTElCUkFSWV9QQVRIIHRvIG1ha2Ugc3VyZSB0aGF0IE5ldFNOTVA6OmFnZW50J3MgYWdlbnQuc28gY2FuIGxvYWQgKHVuaW5zdGFsbGVkKSBsaWJuZXRzbm1wKi5zbzsgb3RoZXJ3aXNlIHRlc3QgZmFpbHMgYXQgbGVhc3Qgb24gRnJlZUJTRAoKMjAwNi0wNi0xNSAxNToxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBzdXBwcmVzcyBzdGRlcnIgd2FybmluZ3MgZm9yICJwcyAtZSIgaW4gb3JkZXIgdG8gZml4IFtmYWxzZV0gbmlnaHRseSBidWlsZCBlcnJvciBtZXNzYWdlcyBvbiBTRiBDRiBob3N0IGFscGhhLWxpbnV4MQoKMjAwNi0wNi0xNSAwNjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkZCBPcGVuQlNEIGFuZCBOZXRCU0QgdG8gdGhlIGxpc3Qgb2Ygc3lzdGVtcyB0aGF0IHJlcXVpcmUgcm9vdCBwcml2aWxlZ2VzIGZvciB1ZHBUYWJsZSAoYWNjb3JkaW5nIHRvIERhdmUncyB0ZXN0aW5nKQoKMjAwNi0wNi0xMyAxNDo1OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgc2V0IE5FVFNOTVBfRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgKG5lZWRlZCBmb3IgZS5nLiBTb2xhcmlzIDIuNikKCjIwMDYtMDYtMTMgMDU6NDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IGJ1ZyAxNTA1MzQxOiBhZ2VudCBzZWdmYXVsdHMgb24gU29sYXJpcyB3aXRoIC1EQUxMCgoyMDA2LTA2LTEyIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY29tbWl0IHRoZSBkb3h5Z2VuLmNvbmYgZmlsZQoKMjAwNi0wNi0xMiAxNjo0MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW50cm9kdWNlICJuZXQtc25tcC1jb25maWcgLS1wZXJscHJvZyIgYW5kIHVzZSBpdCBpbiB0aGUgIkFnZW50WCBzdWJhZ2VudCBpbiBwZXJsIiB0ZXN0CgoyMDA2LTA2LTEyIDE2OjAwICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIGludHJvZHVjZSAibmV0LXNubXAtY29uZmlnIC0tcGVybHByb2ciIGFuZCB1c2UgaXQgaW4gdGhlICJBZ2VudFggc3ViYWdlbnQgaW4gcGVybCIgdGVzdAoKMjAwNi0wNi0xMiAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRlZmluZSBtZmRfKl9yb3dyZXFfZnJvbV9pbmRleCBpZiBwZXJzaXN0ZW50IGVuYWJsZWQKCjIwMDYtMDYtMTIgMTU6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIGluY2x1ZGUgaXBhZGRyIGluc3RlYWQgb2YgcmVkZWZpbmluZyBjb25zdGFudHMKCjIwMDYtMDYtMTIgMTU6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgYWRkIGNvbW1lbnQgdy9pbnRlZ2VyIHZhbHVlIGZvciBlYXN5IGdyZXBwaW5nCgoyMDA2LTA2LTEyIDEzOjIzICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIHJvdXRlLmM6CgogICBhZGQgc3lzL3R5cGVzLmggdG8gZml4IE9TIFggYnVpbGQKCjIwMDYtMDYtMTIgMTM6MDUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICAtIGZpeCBiYWQgcGFyYW1ldGVyIGluIHNjYWxhciByZWdpc3RyYXRpb24KICAgLSBrZWVwIHNjYWxhciB2YWx1ZSBmcmVzaCB1c2luZyB0YWJsZSBjYWNoZSArIGNhY2hlIGhlbHBlcgoKMjAwNi0wNi0xMiAxMzowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGFkZCBhY2Nlc3MgdG8gdGFibGUgY2FjaGUKCjIwMDYtMDYtMTIgMTA6MzAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIGZpeCBmb3IgbmV3IGZhaWx1cmUgZXJyb3IgY29kZQoKMjAwNi0wNi0xMiAxMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGJ1ZyByZXBvcnRlZCBieSBSb2JlcnQgV2lsY294OiByZXR1cm4gbm8gYWNjZXNzIGluc3RlYWQgb2Ygbm90IHdyaXRhYmxlIG9uIFZBQ00gZGVuaWFscwoKMjAwNi0wNi0xMiAwOTowMCAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGZpbmFsbHkgYSB3b3JraW5nIHZlcnNpb24gb2YgdGhlIHZlcnNpb24gd29ya2luZyBjaGVjawoKMjAwNi0wNi0xMiAwODo1NCAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGZpeCBwcmVYIHZlcnNpb24gbnVtYmVycyBiZWZvcmUgY2hlY2tpbmcKCjIwMDYtMDYtMTIgMDg6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsCiAgICAgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBjaGVjayB0aGUgcGVybCBtb2R1bGUgdmVyc2lvbiBudW1iZXIgYWdhaW5zdCB0aGUgbmV0LXNubXAgdmVyc2lvbiBudW1iZXIKCjIwMDYtMDYtMTIgMDE6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFkZCBtYW51YWwgc3RlcCB0byB1cGRhdGUgdmVyc2lvbiBudW1iZXIgaW4gZG94eWdlbi5jb25mCgoyMDA2LTA2LTEyIDAxOjE2ICB0YW5kZXJzCgogICAqIGRveHlnZW4uY29uZjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA2LTA2LTEwIDA1OjU3ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIGZpeCBzeW50YXggZXJyb3IgaW50cm9kdWNlZCBpbiBsYXN0IGNvbW1pdAoKMjAwNi0wNi0wOSAxMzo0MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTA2LTA5IDA1OjU2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgLSBkb24ndCBmcmVlIHBkdSBpZiBpdCdzIG5vdCBhIGNsb25lCiAgIC0gaWZkZWYgbW9yZSBjb2RlIG5vdCB1c2VkIGlmIHNubXB2MSBkaXNhYmxlZAoKMjAwNi0wNi0wNyAwNToyNCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcGF0Y2ggZnJvbSBEYXZlIHRvIHByZXZlbnQgY3Jhc2ggd2l0aCAtRHJlZ2lzdGVyX21pYgoKMjAwNi0wNi0wNyAwNToxMyAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBpbmNsdWRlIG5ldGluZXQvaW4uaCBhbmQgYXJwYS9pbmV0LmggdG8gcGljayB1cCBudG9obCBvbiBocHV4MTAuMjAKCjIwMDYtMDYtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IGRvdWJsZS1mcmVlIG9mIGRlbGVnYXRlZCBjYWNoZQoKMjAwNi0wNi0wNSAxNDoyNyAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIGFkZCB2YWNtIHNldCB0ZXN0cwoKMjAwNi0wNi0wNSAxNDoyMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWc6CgogICBhZGQgKHJvfHJ3KWNvbW11bml0eSBjb25maWcgZm9yIHJ3IHZhY20gdGVzdAoKMjAwNi0wNi0wNSAxMTowNiAgcnN0b3J5CgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgYWRkIHNvbWUgdmFjbSBtYXRjaGluZyBkZWJ1ZyBtc2dzCgoyMDA2LTA2LTA1IDEwOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIC0gdXNlIG5ldyBhYmlsaXR5IHRvIHNjaGVkdWxlIGFsYXJtIGluIDAgc2VjIHRvIHJ1biBtdGUgdGlyZ2dlcnMgYXNhcCBhZnRlcgogICAgIHN0YXJ0dXAsIGluc3RlYWQgb2YgZHVyaW5nIGNvbmZpZyBmaWxlIHBhcnNpbmcKICAgLSBhZGQgbWlzc2luZyBcbiB0byBsb2cgbXNnCgoyMDA2LTA2LTA1IDEwOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIGFsbG93IGEgMCB0aW1lIGluIHNubXBfYWxhcm1fcmVnaXN0ZXIsIHRvIG1lYW4gcnVuIEFTQVAgKGkuZS4gMSB1c2VjKQogICAtIGFsbG93IHNlYy91c2VjIG9mIDAgaW4gc2FfdXBkYXRlX2VudHJ5LCBleGNlcHQgZm9yIFNBX1JFUEVBVCBjYXNlCgoyMDA2LTA2LTA1IDEwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICAtIGxvZyBlcnJvciAoYW5kIGRvbid0IGNyZWF0ZSBlbnRyeSkgaWYgc2VzcyB1c2VyIG5vdCBmb3VuZAogICAtIGxvZyBlcnJvciBpZiBhZ2VudFNlY05hbWUgKGRlZmF1bHQgdXNlcikgbm90IHNwZWNpZmllZAogICAtIGFkZCBtaXNzaW5nIFxuIHRvIGRlYnVnIG1zZwoKMjAwNi0wNi0wNSAwOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGNoYW5nZSBsZW4gdHlwZSB0byBzaXplX3QKCjIwMDYtMDYtMDUgMDk6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICBhZGQgY29udGFpbmVyIG5hbWVzCgoyMDA2LTA2LTAxIDA2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZW5mb3JjZSBNSUIgb2JqZWN0IGxlbmd0aHMKCjIwMDYtMDUtMjkgMDI6NDAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZnVydGhlciB0d2VhayB0aGUgZXJyb3IgcmVnZXgKCjIwMDYtMDUtMjkgMDE6MzUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsOgoKICAgcmUtZml4IG5ld2xpbmUgaXNzdWVzCgoyMDA2LTA1LTI4IDEzOjEzICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHRlbXBvcmFyeSB3b3JrYXJvdW5kIHRvIHByZXZlbnQgc25tcHRyYXBkIGVtYmVkZGVkIHBlcmwgY3Jhc2ggb24geDg2XzY0IChidWcgMTQ5NDg4MikKCjIwMDYtMDUtMjcgMjM6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgdXNlIENIRUNLT1JESUUgaW5zdGVhZCBvZiBDSEVDS0ZJTEUgd2hlbiBkb2luZyBtdWx0aXBsZSBjaGVja3MgKHdhcyBzdWNjZWVkaW5nIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUpLiAgQWxzbywgb3BlbiBlbWJlZGRlZCBwZXJsIExPRyBpbiBhcHBlbmQgbW9kZSBzbyBzZWNvbmQgcm91dGluZSBkb2Vzbid0IHRydW1wIHRoZSBmaXJzdAoKMjAwNi0wNS0yNyAyMjozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgaW5jbHVkZSBuZXRpbmV0L2luLmggYW5kIGFycGEvaW5ldC5oIHRvIHBpY2sgdXAgaHRvbmwsIGV0Yywgb24gaHB1eDEwLjIwCgoyMDA2LTA1LTI3IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB3YXkgc2ltcGxlIERFU1RESVIgc3VwcG9ydAoKMjAwNi0wNS0yNyAyMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgYSBmZXcgcGVvcGxlIGZyb20gcHJldmlvdXMgcGF0Y2hlcwoKMjAwNi0wNS0yNyAwNzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgc2V0IGxpYnRvb2wtbGlrZSBMRF9MSUJSQVJZX1BBVEggdG8gbWFrZSBzdXJlIHRoZSBwZXJsIGFnZW50IHN0YXJ0cyBwcm9wZXJseSAoZml4ZXMgYnVnIDE0OTU0MzMpCgoyMDA2LTA1LTI2IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZG9uJ3QgcmV2ZXJzZSBhZGRyZXNzIGJ5dGUgb3JkZXIgZm9yIHNvbGFyaXMgKHNwZWNpZmljYWxseSB4ODYpIGZvciBsb2NhbCBhZGRyZXNzZXMKCjIwMDYtMDUtMjYgMTU6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgcmVtb3ZlIGRvdWJsZSBlbnRyeSBjb21tZW50CgoyMDA2LTA1LTI2IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9uZSBpbnRwdHJfdCBjYXN0IGZyb20gYSBwb2ludGVyCgoyMDA2LTA1LTI2IDA5OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIGNvbmZpZ3VyZToKCiAgIGNoZWNrIGZvciB1aW50cHRyX3QgYW5kIGludHB0cl90CgoyMDA2LTA1LTI2IDA2OjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBBbm90aGVyIHByb3BlciBwb2ludGVyIGNhc3QKCjIwMDYtMDUtMjYgMDY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMsIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsCiAgICAgYWdlbnQvYWdlbnQueHM6CgogICBQYXRjaCBmcm9tIGRhcml4IHRvIHByb3Blcmx5IGNhc3QgcG9pbnRlcnMgdG8gYW4gSVYgaW5zdGVhZCBvZiBhbiBpbnQgdG8gZml4IDY0Yml0IGlzc3VlcwoKMjAwNi0wNS0yNiAwMTo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtYWtlIGRhZW1vbnMgYmluZCB0byBsb2NhbGhvc3QgYnkgZGVmYXVsdCBvbmx5IChmaXhlcyBidWcgMTQyNDI5MykKCjIwMDYtMDUtMjUgMTU6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBTTk1QX1BFUlNJU1RFTlRfRElSIGZvciBhbGwgYXBwcy9kYWVtb25zCgoyMDA2LTA1LTI1IDE1OjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzZXQgU05NUENPTkZQQVRIIGZvciBhbGwgYXBwcy9kYWVtb25zCgoyMDA2LTA1LTI1IDA5OjE0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgZG9uJ3Qgb3BlbiBkZWZhdWx0IHNtdXggcG9ydC9zb2NrZXQKCjIwMDYtMDUtMjUgMDg6MDUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M3VzbWNvbmZpZ2FnZW50LCBTdmFueWNvbmZpZzoKCiAgIGRvbid0IG9wZW4gZGVmYXVsdCBzbXV4IHBvcnQvc29ja2V0CgoyMDA2LTA1LTI0IDA4OjMyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGNhbGxpbmcgcGVybAoKMjAwNi0wNS0yNCAwODoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgZG91YmxlLWZvcmsgdGhlIHBlcmwgc3ViYWdlbnQgdG8gYXZvaWQgc2hlbGwgb3V0cHV0IGZyb20gam9iIGhhbmRsaW5nCgoyMDA2LTA1LTI0IDA2OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpbnRyb2R1Y2UgYWRkaXRpb25hbCB2YXJpYWJsZXMgZm9yIHN1YmFnZW50IHRlc3RzOiBBR0VOVFhfQ09ORklHX0ZJTEUsIFNOTVBfQUdFTlRYX1BJRF9GSUxFLCBTTk1QX0FHRU5UWF9MT0dfRklMRQoKMjAwNi0wNS0yNCAwNjozOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgbmV3IHRlc3Q6ICdBZ2VudFggc3ViYWdlbnQgaW4gUGVybCAodXNpbmcgTmV0U05NUDo6YWdlbnQpJwoKMjAwNi0wNS0yMiAxNTo0OCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2s6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zeXN0ZW0gaW4gcGFydGljdWxhciBhbmQgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNTo0MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX2RldmljZSBpbiBwYXJ0aWN1bGFyIGFuZCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjM2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwOgoKICAgdGhpcyB0ZXN0IHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZToKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N5c3RlbSBpbiBwYXJ0aWN1bGFyCgoyMDA2LTA1LTIyIDAzOjA4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3RvcmFnZSBpbiBwYXJ0aWN1bGFyCgoyMDA2LTA1LTE5IDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBmaXggZm9yIGJ1ZyAxMzEzNjY3IHJlbW92ZWQgc3luY2ggc2VuZCwgYWxsb3dpbmcgdXMgdG8gdW5jb21tZW50IHRoZQogICAgIGNvbW1lbnRlZCBvdXQgcGR1IGZyZWUgb24gZXJyb3IsIHBsdWdnaW5nIGEgbWVtb3J5IGxlYWsgaWRlbnRpZmllZAogICAgIG9uIGNvZGVycyBieSBkZXJla2wgYXQgYmx1ZXlvbmRlciBjbyB1awoKMjAwNi0wNS0xOSAxMDowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSB1c2UgbnJwcm9jcy0xIGFzIGluZGV4IGluc3RlYWQgb2YgaSwgd2hpY2ggd2lsbCBiZSBuZWdhdGl2ZSBpZiBjcHVpbmZvCiAgICAgZG9lc24ndCBjb250YWluIGEgJ3Byb2Nlc3NvcicgbGluZQoKMjAwNi0wNS0xNyAxNToxMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIG5lZWQgc3lzL3R5cGVzLmggYmVmb3JlIG5ldGluZXQvaW4uaCBvbiBzb21lIHBsYXRmb3JtcwoKMjAwNi0wNS0xMyAwMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVwZGF0ZSBDVlMgaG9zdCBuYW1lCgoyMDA2LTA1LTEyIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9TTk1QLnBtLCBTTk1QL1NOTVAueHMKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIC1XIGZsYWcgc3Vic3RpdGlvbiB0byBiZSBleGFjdCBtYXRjaCBvZiBmbGFncyB0byByZW1vdmUsIHJhdGhlciB0aGFuIHJlbW92aW5nIGFueSAtVyBmbGFnIGZvciBwb3J0YWJpbGl0eSByZWFzb25zCgoyMDA2LTA1LTEyIDA5OjEwICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1pc2MuIGFkZGl0aW9ucyBmb3IgbW9yZSBjb25maWd1cmF0aW9uIGNvbnRyb2wgb24gYnVpbGQgZmFybXMsIGluY2x1ZGluZyBlbWJlZGRlZCBwZXJsIGJ1aWxkaW5nCgoyMDA2LTA1LTEyIDA4OjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDYwdHJhcGRwZXJsLCBUMDYxYWdlbnRwZXJsOgoKICAgZml4IG5ld2xpbmUgaXNzdWVzCgoyMDA2LTA1LTEyIDA4OjEzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIFQxMTNhZ2VudHh0cmFwOgoKICAgZW5zdXJlIHRoZSB0ZXN0cyB3b3JrIGV2ZW4gaWYgVUNELVNOTVAtTUlCIGlzbid0IGluIGRlZmF1bHRzIE1JQlMgbGlzdAoKMjAwNi0wNS0xMiAwODoxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgaW50cm9kdWNlIGRlbGF5cyB0byBub3QgbG9zZSB0cmFwcwoKMjAwNi0wNS0xMiAwNzo1NCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgdXBkYXRlIFJFQURNRSBmb3IgQUlYIGJhc2VkIG9uIGJ1aWxkIHRlc3QgZXhwZXJpZW5jZSBvbiBBSVggNC4zLjMvNS4xLzUuMi81LjMKCjIwMDYtMDUtMDggMDM6MDcgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW50cm9kdWNlIE5TQl9MSUJXUkFQIHRvIGJlIGFibGUgdG8gc3BlY2lmeSAtLXdpdGhbb3V0XS1saWJ3cmFwPXh4eAoKMjAwNi0wNS0wOCAwMToxMSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW1vdmUgc211eCBmcm9tIE5TQl9ESVNUX01PRFVMRVMgKGl0J3MgYWxyZWFkeSBpbiBOU0JfRVhUUkFfTU9EVUxFUykKCjIwMDYtMDUtMDggMDA6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmg6CgogICBidWlsZCBmaXggZm9yIEM4OSBjb21waWxlcnMgKGUuZy4geGxjIG9uIEFJWCA0LjMuMyk6IG5vIHRyYWlsaW5nIGNvbW1hIGFmdGVyIGxhc3QgZW50cnkgb2YgYSAidHlwZWRlZiBlbnVtIgoKMjAwNi0wNS0wNSAxNjowMyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFraW5nIG9mIHRoZSBleGNlcHRpb24gcmVnZXgKCjIwMDYtMDUtMDUgMTU6MjggIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBJbml0aWFsIFJFQURNRSBmb3IgSVJJWAoKMjAwNi0wNS0wNSAxNDo1MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBwdXQgdGhlIHNucHJpbnRmIGxlbmd0aCBpbnRvIGEgZGVyZWZlcmVuY2VkIHBvaW50ZXIKCjIwMDYtMDUtMDQgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvdmVydGl5IDEzNTogZG91YmxlIGNoZWNrIG5ldHNubXBfb2lkX2ZpbmRfcHJlZml4IHJldHVybnMgYSBwb3NpdGl2ZSByZXN1bHQgKHNob3VsZCBvbmx5IGhhcHBlbiBpbiBicm9rZW4tdHJlZSBjYXNlcykKCjIwMDYtMDUtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgY292ZXJpdHkgIzEzNjogZnJlZSBtZW0gbGVhayBpbiByYXJlIGJhZC1hZ2VudHggcGFja2V0IGNhc2UKCjIwMDYtMDUtMDMgMTM6NTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIE5FV1M6CgogICBbIDE0ODEwMTIgXSBIUC1VWCAxMS4wLzExaTogaXBBZEVudEJjYXN0QWRkciB3cm9uZyAocGF0Y2ggc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKCjIwMDYtMDQtMzAgMjI6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgWyAxNDc4NjE2IF0gc25tcHVzbSBvdXRwdXRzIHRvIHN0ZGVyciBvbiBzdWNjZXNzCgoyMDA2LTA0LTMwIDIyOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFsgMTQ3OTA3MSBdIDY0IGJpdHMgY291bnRlciBvbiBMaW51eCAmIGdvb2QgcGFyc2luZyBvZiBkaXNrc3RhdHMgKGFnYWluKSBbbW9kaWZpZWRdIGZyb20gRmFicmljZSBCYWNjaGVsbGEKCjIwMDYtMDQtMjUgMTA6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIFsgMTQ2NjQ1MCBdIGZpeCBjb21waWxhdGlvbiB3aXRoIGxpbnV4L2V0aHRvb2wuICBJbiBvdGhlciB3b3JkczogdWdoIG5hc3R5IGJ1dCBuZWVkZWQgcGF0Y2gKCjIwMDYtMDQtMjUgMTA6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgbW9kaWZpZWQgdmVyc2lvbiBvZiBbIDE0NjY0NTEgXSBpcEFkZHJlc3Mgc2l6ZSB3aXRoIDY0Yml0IHRvIHVzZSBzaXplb2YoKSBmb3IgdGhlIGRhdGF0eXBlIGluIHF1ZXN0aW9uCgoyMDA2LTA0LTIxIDA1OjMwICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgU2tpcCBtaXNzaW5nIGVudHJpZXMgKHJhdGhlciB0aGFuIGNyYXNoaW5nIG91dCBjb21wbGV0ZWx5KQoKMjAwNi0wNC0yMCAxNzoyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliLzogY29udGFpbmVyLmMsIHNubXB1c20uYzoKCiAgIGZpeCB0eXBvcwoKMjAwNi0wNC0yMCAxNzoxMyAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgcmVwaHJhc2VkCgoyMDA2LTA0LTIwIDE2OjU1ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBjaGFuZ2VzIHNpbmNlIDUuMy4wLjEKCjIwMDYtMDQtMjAgMTY6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE2OjAzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjI3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gZml4IGJ1ZyAxNDczMjg5OiBSZS1pbml0IG9mIDUuMy4wLjEgZGFlbW9ucyBmYWlsIGFmdGVyIFNJR0hVUAoKMjAwNi0wNC0yMCAxNToyNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gZml4IGJ1ZyAxNDczMjg5OiBSZS1pbml0IG9mIDUuMy4wLjEgYWdlbnQgZmFpbHMgYWZ0ZXIgU0lHSFVQCgoyMDA2LTA0LTIwIDE1OjE1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIGFkZCBTSUdIVVAgdGVzdAoKMjAwNi0wNC0yMCAxNTowOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgSFVQUFJPRygpLCBIVVBBR0VOVCgpIGFuZCBIVVBUUkFQRCgpIGZvciB1cGNvbWluZyBTSUdIVVAgdGVzdHMKCjIwMDYtMDQtMTggMTI6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgQnVnICMxNDMyMTY1OiB0eXBvcyBpbiB0aGUgZmlsZW5hbWVzCgoyMDA2LTA0LTE4IDExOjAxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBidWcgMTQ1ODY4NTogbWFuIHBhZ2UgZm9yIHNldGFjY2VzcyB3YXMgbWlzc2luZyBhIHRva2VuIGluIHRoZSBzdW1tYXJ5IGxpbmUKCjIwMDYtMDQtMTggMTA6NTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGJ1ZyAxNDU4ODE4OiBhdXRoY29tbXVuaXR5IGFuZCBmcmllbmRzIHVzZSAtViBub3QgLXYgdG8gc3BlY2lmeSBhIHZpZXcKCjIwMDYtMDQtMTggMTA6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFsgMTM0MTA5OCBdIEZpeCBtaWIyYy5vbGQtYXBpLmNvbmYgb2lkIHN1ZmZpeGVzLCBzdWZmaXggbGVuZ3RocyBmcm9tIG5zaHVsbWFuCgoyMDA2LTA0LTE4IDEwOjMyICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICBTdXBwb3J0IGZ1bmN0aW9ucyBmb3IgZWFzaWVyIGVtYmVkZGVkIHBlcmwgaW50ZWdyYXRpb246IFsgMTM2OTk5NiBdIG1pYiB0byBwZXJsIHN1cHBvcnQgYnkgUGV0ZXIgTWFydGluCgoyMDA2LTA0LTE4IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvLmN2c2lnbm9yZSwKICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIGxvY2FsL21pYjJjLnBlcmwuY29uZjoKCiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBlYXNpZXIgZW1iZWRkZWQgcGVybCBpbnRlZ3JhdGlvbjogWyAxMzY5OTk2IF0gbWliIHRvIHBlcmwgc3VwcG9ydCBieSBQZXRlciBNYXJ0aW4KCjIwMDYtMDQtMTggMTA6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFsgMTQ2NTQ4NSBdIG5ldHNubXBfY29uZmlnX3JlbWVtYmVyX2ZyZWVfbGlzdCBtZW0gbGVhayBmcm9tIFJvYmVydCBXaWxjb3gKCjIwMDYtMDQtMTggMDY6NTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUC1GT1JXQVJELU1JQi50eHQsIElQLU1JQi50eHQsIHJmY2xpc3QKOgoKICAgdXBkYXRlIGZyb20gbmV3bHkgcHVibGlzaGVkIFJGQ3MKCjIwMDYtMDQtMTMgMTM6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFsgMTM2NDI0OCBdIEFkZCBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50IHBhcmFtZXRlcnM6IGdlbmVyYWwgcmV3b3JrIG9mIHRoZSBtYWluIHdyYXBwZXIgZm9yIGF1dG8tc3ViYWdlbnRzIGZyb20gbWFnZnIKCjIwMDYtMDQtMTMgMTM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgWyAxMzcxNzc4IF0gZGlza0lPVGFibGUgY29udGFpbnMgaW52YWxpZCBkYXRhIGZvciBzb21lIGRldmljZXMgb24gTGludXgKCjIwMDYtMDQtMTMgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgWyAxMzg2MjY0IF0gNS4yLjIgLSBmaXggTGludXggQ1BVIGNvdW50ZXJzIG9uIFNNUCBtYWNoaW5lcwoKMjAwNi0wNC0xMiAxMjoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4IHBhcnNpbmcgb2YgYWRkcmVzc2VzIHRoYXQgSSBicm9rZSB3aGVuIGltcGxlbWVudGluZyBwYXJzaW5nIG9mIGZpeGVkLXdpZHRoIHN0cmluZ3MKCjIwMDYtMDQtMTIgMTA6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IGEgYnVnIHJlcG9ydGVkIGluIDExMTg4MTQgd2hlcmUgaW5pdCBsZW5ndGggd2Fzbid0IGdldHRpbmcgaW5pdGlhbGl6ZWQgcHJvcGVybHkKCjIwMDYtMDQtMTIgMDk6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZpeGVzIGZvciBmaXhlZCBsZW5ndGggc3RyaW5nIHBhcnNpbmcKCjIwMDYtMDQtMTIgMDk6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwNi0wNC0xMiAwOToxOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4ZWQgbGVuZ3RoIHN0cmluZyBwYXJzaW5nCgoyMDA2LTA0LTExIDA0OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEJ1aWxkIGZpeCBmb3IgImNvbmZpZ3VyZSAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9Q2FsbGJhY2siIChmaXhlcyBmaXJzdCBwYXJ0CiAgIG9mIGJ1ZyAxNDY3NzI0KS4KICAgV2h5IGRvIHRlc3RzIDIxLTI1IGFuZCAzNC0zNSAoYWxsIGludm9sdmluZyBzbm1wdHJhcGQpIGZhaWwgaW4gNS4zKyAodW5saWtlCiAgIDUuMi54KSBpZiB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0IGlzbid0IGF2YWlsYWJsZT8KCjIwMDYtMDQtMTAgMDc6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgWyAxMzY0NjQ4IF0gRml4IHNlZ2ZhdWx0IG9uIHBlcmwgYXN5bmMgYnVsa3dhbGsgZnJvbSBPbGUgQmpvcm4KCjIwMDYtMDQtMTAgMDc6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFsgMTQxNTU4NiBdIDUuMy4wLjEgaG9zdC9ocl9zd3J1bi5jIHBhdGNoZXMgZm9yIEFJWCA0LDMvNS4yIGZyb20gSm9lIEJ1ZWhsZXIKCjIwMDYtMDQtMDkgMjE6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwgbWliSUkvaWZUYWJsZS5oCjoKCiAgIFsgMTQyNzc5MyBdIGlmKFgpVGFibGUgaW1wbGVtZW50YXRpb24gZm9yIE9wZW5CU0QgMy54IGZyb20gTm9ydGh0cm9OCgoyMDA2LTA0LTA5IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBbIDE0Mjk0NTUgXSBlbmRsZXNzIGxvb3AsIHRhYmxlX2l0ZXJhdG9yLCA1LjMgZnJvbSBLcmlzICh0aW5rZXIxMDUpCgoyMDA2LTA0LTA5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYzoKCiAgIFsgMTQ2MDA4MiBdIFtQQVRDSF06IEZpeCBleHRlcm5hbCBmZCBoYW5kbGluZyAoYW5vbikKCjIwMDYtMDMtMjcgMTY6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICByZW1vdmUgKHVzZWZ1bCkgIi1DcCAtQ3QiIHN0ZGVyciBvdXRwdXQgc2luY2UgaXQgaGFzIGJlZW4gc2VlbiB0byBpbnRlcmZlcmUgd2l0aCB0aGUgc3Rkb3V0IG1lc3NhZ2VzIHRvIGJlIGNoZWNrZWQKCjIwMDYtMDMtMjQgMDg6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgUmVjb2duaXNlIGZhaWxlZC9kdXBsaWNhdGUgcmVnaXN0cmF0aW9ucywgYW5kIGRvbid0IHBsb3VnaCBvbiByZWdhcmRsZXNzCgoyMDA2LTAzLTI0IDA4OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIERvbid0IGNob2tlIG9uIFNOTVB2MiBleGNlcHRpb25zCiAgIChTdGlsbCBuZWVkIHRvIGhhbmRsZSBTTk1QdjEgZXJyb3JzKQogICBGaXggYSBjb3VwbGUgb2YgbWlub3Igb3V0cHV0IHR5cG9zLgoKMjAwNi0wMy0yMyAxNjowMCAgdGFuZGVycwoKICAgKiBtYW4vbWliMmMuY29uZi41LmluOgoKICAgRml4IHNlY3Rpb24gb2YgbWliMmMuY29uZi41IChEZWJpYW4gcGF0Y2ggIzE2IGZyb20gNS4yLjItMykKCjIwMDYtMDMtMjMgMTE6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFBhdGNoIGZyb20gZGFyaXggdG8gb3B0aW9uYWxseSB0dXJuIG9mZiBjb25uZWN0aW9uIGxvZ2dpbmcgZm9yIHRjcF93cmFwcGVycwoKMjAwNi0wMy0xNiAwMTo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBSb290IHNlY29uZCBvdXRwdXQgdGFibGUgY29ycmVjdGx5CgoyMDA2LTAzLTE2IDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ29ycmVjdCBsb2dpYyBvZiBzdGFydHVwIHRlc3RzCgoyMDA2LTAzLTE1IDA4OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIEZpeCBTQ19BSU5GTyBzd2FwY3RsKCkgY2FsbC4KCjIwMDYtMDMtMTUgMDU6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgUmVjb2duaXNlIGJ1aWx0LWluIHZlcnN1cyBjb25maWctZGVmaW5lZCBub3RpZmljYXRpb25zLAogICBhbmQgc2V0IG93bmVyIGFjY29yZGluZ2x5LgoKMjAwNi0wMy0xMCAwNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBkb24ndCB1c2UgcGVyZmVjdGx5IGxlZ2FsIHBlcmwgc3RydWN0dXJlcyBpbiBDIGNvZGUKCjIwMDYtMDMtMDkgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTAzLTA5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBmaXggc2NoZWR1bGUgdHlwbwoKMjAwNi0wMy0wOSAxNDowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZnJlZSBtYWxsb2MgaW4gZXJyb3IgY29uZGl0aW9uIHdoZW4gZGVjb2RlIGZ1bmN0aW9uIG5vdCBzcGVjaWZpZWQKCjIwMDYtMDMtMDkgMTM6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wdjMuYzoKCiAgIGVuc3VyZSB0aGF0IGlmIG9wID09IHJlY2VpdmVkIG1lc3NhZ2UgdGhhdCB3ZSBoYXZlIGEgUERVIHRvbyAoYWx3YXlzIHdpbGwgYmUgdGhlIGNhc2UpCgoyMDA2LTAzLTA5IDEzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb250IGRlbHZlIGludG8gZnV0dXJlIGlmIHN0YXRlbWVudCB3aGVuIHNlc3Npb24gZmFpbHMgdG8gcHJvYmUKCjIwMDYtMDMtMDkgMTM6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGZyZWUgYSBwZHUgb24gdGhlIGVycm9yIGNhc2Ugb2Ygbm8gc2Vzc2lvbi4uLgoKMjAwNi0wMy0wOSAxMzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICByZXZlcnNlIGEgcGF0Y2ggdGhhdCB3YXMgdHJ5aW5nIHRvIGZyZWUgYW4gYXJyYXkKCjIwMDYtMDMtMDkgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBjb3Zlcml0eSA3NTogZW5zdXJlIGZyZWUgaW4gcmFyZSBjYXNlIHdoZXJlIG90aGVyIHNpZGUgb2YgdHJhbnNwb3J0IG5vdCBmb3VuZCAoc2hvdWxkbid0IGV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOSAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1pc2MgZXJyb3IgY2hlY2tpbmcgKHVubmVlZGVkIGJ5IG90aGVyIGxvZ2ljLCBidXQuLi4gIHdoeSBub3QpCgoyMDA2LTAzLTA5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IDM0OiBjaGVjayB0aGF0IHVzbSB3YXNuJ3QgYWN0dWFsbHkgaWxsZWdhbGx5IHBhc3NlZCBhIG51bGwgc2Vzc2lvbiAoc2hvdWxkIGhhdmUgYmVlbiBzdG9wcGVkIGxvbmcgYmVmb3JlIG5vdykKCjIwMDYtMDMtMDkgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgY292ZXJpdHkgbXVsdGlwbGU6IGNoZWNrIGEgZmV3IHBvaW50ZXJzIGZvciBudWxsIHJlZnMganVzdCBpbiBjYXNlCgoyMDA2LTAzLTA5IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdGV4dF91dGlscy5jLCB2YWNtLmM6CgogICBjb3Zlcml0eSA3OTogZnJlZSBtZW1vcnkgaW4gZXJyb3IgY29uZGl0aW9uIHNwb3RzCgoyMDA2LTAzLTA5IDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGFsbG93IGZvciBxdWVzdGlvbmFibHkgbGVnYWwgbnVsbCBjb21tdW5pdHkgc3RyaW5ncwoKMjAwNi0wMy0wOSAxMjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY292ZXJpdHkgNjE6IGNoZWNrIHJldHVybiB2YWx1ZSBmcm9tIGluIHRyZWUgdG8gZW5zdXJlIGl0J3Mgbm90IG5lZ2F0aXZlCgoyMDA2LTAzLTA5IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBjb3Zlcml0eSA4MDogZnJlZSB2Ymxpc3QgaW4gc29tZSBmYWlsdXJlIGNhc2VzCgoyMDA2LTAzLTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmM6CgogICBjb3Zlcml0eSA4MzogZnJlZSBtZW0gb24gc2hvdWxkLW5ldmVyLWdldC1oZXJlIHNwb3QKCjIwMDYtMDMtMDkgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGZyZWUgbWVtb3J5IG9uIG90aGVyIG1hbGxvYyBmYWlsdXJlcwoKMjAwNi0wMy0wOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIG1vcmUgY29tbWFuZCBsaW5lIGZsYWdzIGZvciBmYXN0ZXIgcGF0Y2ggYXBwbGljYXRpb24KCjIwMDYtMDMtMDkgMTA6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIGNoZWNrIGZvciBudWxsIG93bmVyIGluIDIgb3RoZXIgc3BvdHMKCjIwMDYtMDMtMDkgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGNvdmVyaXR5IDk3LzQ4OiBmcmVlIGxvc3QgbWVtb3J5IG9uIGlsbGVnYWwgdGFibGU7IGNoZWNrIGZvciBudWxsIHRoYXQgc2hvdWxkbid0IGV2ZXIgYmUKCjIwMDYtMDMtMDkgMTA6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGNvdmVyaXR5IDk2OiBmaXggcG90ZW50aWFsIGxlYWsgd2hlbiBtYWxsb2MgZmFpbHMKCjIwMDYtMDMtMDkgMTA6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYzoKCiAgIGZyZWUgYSBoYW5kbGVyIGlmIGEgc3Vic2VxdWVuY2UgbWFsbG9jIGZhaWxzCgoyMDA2LTAzLTA5IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBjb3Zlcml0eSA5OC0xMDA6IGZyZWUgc3VjY2VzcyBtYWxsb2NzIHdoZW4gb25lIGZhaWxzCgoyMDA2LTAzLTA5IDA5OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIGNvdmVyaXR5IDEwMi8xMDE6IGluIGNhc2Ugb2YgbWFsbG9jIGZhaWx1cmVzIGZyZWUgd2hhdCB5b3UgaGF2ZSBzdWNjZWVkIGluIG1hbGxvY2luZwoKMjAwNi0wMy0wOSAwOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG5ldmVyLXNob3VsZC1iZS1udWxsIGNvbmRpdGlvbnMgYXJlIHRydWUKCjIwMDYtMDMtMDkgMDk6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgY292ZXJpdHkgOTE6IGZyZWUgdmFyaW91cyBtZW1vcnkgYWxsb2NhdGlvbnMgd2hlbiBzdWJzZXF1ZW50IGFsbG9jYXRpb25zIGZhaWwKCjIwMDYtMDMtMDkgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBjb3Zlcml0eSAjNDE6IG5vdCBsaWtlbHkgYSByZWFsIG51bGwgZGVyZWYgZm9yIHZhbGlkIHVzZSBjYXNlczsgY2FzZXMuICBkb3VibGUgY2hlY2sgZm9yIGlzc3VlcyBhbnl3YXkKCjIwMDYtMDMtMDkgMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRnVsbGVyIGltcGxlbWVudGF0aW9uIG9mIG1lbW9yeSBIQUwgZm9yIFNvbGFyaXMgKDEwIGF0IGxlYXN0KQoKMjAwNi0wMy0wOSAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBjb3Zlcml0eSA1MDogZG91YmxlIGNoZWNrIHdlIGNvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbiB0byByZW1vdmUKCjIwMDYtMDMtMDkgMDg6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgY292ZXJpdHkgNTE6IGRvdWJsZSBjaGVjayB3ZSBjb3VsZCBmaW5kIHRoZSBleHRlbnNpb24gdG8gcmVtb3ZlCgoyMDA2LTAzLTA5IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGVuc3VyZSBpbGxlZ2FsIGNvbmZpZ3VyYXRpb24gb2YgdG9vIGxvbmcgT0lEcyBkb2Vzbid0IG9jY3VyCgoyMDA2LTAzLTA5IDA4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgY292ZXJpdHkgNjY6IGNoZWNrIHRoYXQgbnVsbCBpc24ndCB3cml0dGVuIGJleW9uZCBlbmQKCjIwMDYtMDMtMDkgMDg6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIGNvdmVyaXR5IDY3OiBlbnN1cmUgd2UgZG9uJ3Qgd3JpdGUgdGhlIG51bGwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlcgoKMjAwNi0wMy0wOSAwODowNyAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGEgc2NyaXB0IHRvIGhlbHAgYXV0b21hdHRlZCBwYXRjaCBtYW5hZ2VtZW50IGFuZCBhcHBseSBwYXRjaGVzIHRvIG11bHRpcGxlIGJyYWNoZXMgb2YgdGhlIG5ldC1zbm1wIHRyZWUKCjIwMDYtMDMtMDkgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgOTI6IGZyZWUgZGF0YSBzdHJ1Y3R1cmUgaW4gZXZlbnQgc29tZWhvdyBhbiB1bnN1cHBvcnRlZCBkYXRhIHR5cGUgaXMgcGFzc2VkIGluIChjYW4ndCBhY3R1YWxseSBoYXBwZW4gd2l0aCBjdXJyZW50IGNvZGUpCgoyMDA2LTAzLTA5IDA4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IDkzOiBmcmVlIHBvaW50ZXJzIHdoZXJlIG1hbGxvYyBzdWNjZWVkZWQgaWYgaXQgc3VkZGVubHkgc3RvcHBlZCBzdWNjZWVkaW5nCgoyMDA2LTAzLTA5IDA3OjMzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgdHlwbwoKMjAwNi0wMy0wOSAwNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIGNvdmVyaXR5ICMxMDU6IGZyZWUgc3RvcmFnZSBpbiBlcnJvciBsb29wCgoyMDA2LTAzLTA4IDIxOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBjb3Zlcml0eSA1MjogcmFyZSAobmV2ZXIpIGRlcmVmZXJlbmNlIGluIGlsbGVnYWwgY29kZSBjYXNlcy4KCjIwMDYtMDMtMDggMjE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgY292ZXJpdHkgMTA2OiByYXJlIG1lbW9yeSBsZWFrIG9uIGlsbGVnYWwgYWdlbnR4IHBkdSdzIGJlaW5nIHBhc3NlZCB0byB0aGUgY2xpZW50CgoyMDA2LTAzLTA4IDIxOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBjb3Zlcml0eSAxMTI6IGNsb3NlIGZpbGUgaGFuZGxlIGZvciAvcHJvYy9uZXQvYXJwCgoyMDA2LTAzLTA4IDIxOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTEzOiBmY2xvc2UgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgaW4gZXJyb3IgbG9vcAoKMjAwNi0wMy0wOCAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgY292ZXJpdHkgYnVnICM1MzogY2hlY2sgdGhhdCBjbG9zZV9hZ2VudHhfc2Vzc2lvbiB3YXNuJ3QgcGFzc2VkIGEgTlVMTCBzZXNzaW9uCgoyMDA2LTAzLTA4IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBjb3Zlcml0eSAjMTA3OiBmaXggcmFyZSBwZHUgbWVtb3J5IGxlYWsgd2hlbiBmdW5jdGlvbiBjYWxsZWQgaWxsZWdhbHkKCjIwMDYtMDMtMDggMTY6MDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgICphdCBsZWFzdCogaXNzdWUgYSBXQVJOSU5HIGlmIHdlJ2xsIGNyZWF0ZSBub24tcG9ydGFibGUgdGFyIGFyY2hpdmVzIGp1c3QgYmVjYXVzZSB0aGUgcmVsZWFzZSBtYW5hZ2VyIGZhaWxlZCB0byBpbnN0YWxsIHN0YXIuCgoyMDA2LTAzLTA4IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBjb3Zlcml0eSBidWcgIzEwODogc3RpbGwgc2hvdWxkIGZyZWUgbWVtb3J5IGluIHRoZSBuZXZlci1zaG91bGQtaGFwcGVuIGNhc2UKCjIwMDYtMDMtMDggMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgY292ZXJpdHkgIzEwOTogY2xvc2UgZmlsZSBwb2ludGVyIGluIGVycm9yIGNvbmR0aW9ucyB0byBhdm9pZCBwb3RlbnRpYWwgcmFyZSBsZWFrcwoKMjAwNi0wMy0wOCAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNvdmVyaXR5IGJ1ZyA4NSwgcjE1OiBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrCgoyMDA2LTAzLTA4IDE0OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgLSBjb3Zlcml0eSBidWcgNDAsIHJ1biAxNTogZml4IHBvdGVudGlhbCBudWxsIGRlcmVmZXJlbmNlCiAgIC0gbWlzYyBvdGhlciBjbGVhbnVwL2Vycm9yIGhhbmRsaW5nCiAgICAgLSByZWxlYXNlIG1lbW9yeSB0aGF0IHdvbid0IGJlIHVzZWQgYmVmb3JlIHJldHVybmluZyBlcnJvcnMKICAgICAtIGNoZWNrIGZvciBwb3RlbnRpYWwgbnVsbCByZXR1cm4gZnJvbSBmdW5jdGlvbgogICAgIC0gYXNzaWduIHZhbHVlcyB0byBjb3JyZWN0IHZhcmlhYmxlCgoyMDA2LTAzLTA4IDE0OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgY292ZXJpdHkgYnVnICMgMTI5OiBjaGVjayBzZXNzaW9uIG9wZW4gcmVzdWx0cyB3aGVuIGZvcndhcmRpbmcgYW5kIGJhaWwgaWYgZmFpbGVkIHRvIG9wZW4KCjIwMDYtMDMtMDggMTQ6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICBjb3Zlcml0eSBidWcgIyBjaGVjayBmb3IgbnVsbCBiZWZvcmUgZGVyZWZlcmVuY2luZwoKMjAwNi0wMy0wOCAxNDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMTU6IGNoZWNrIGZvciBtYWxsb2MgZmFpbHVyZSBiZWZvcmUgdXNpbmcgdGhlIHJlc3VsdHMKCjIwMDYtMDMtMDggMTM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMTY6IGNoZWNrIChhbnl3YXkpIGZvciBudWxsIGluIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBuZXZlciBiZSBudWxsCgoyMDA2LTAzLTA4IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzExNzogZG91YmxlIGNoZWNrIHRoYXQgcG9pbnRlciBpc24ndCBudWxsIGZvciBzYWZlIHByb2dyYW1taW5nIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOCAxMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgY292ZXJpdHkgYnVnICMxMTg6IGRvdWJsZSBjaGVjayB0aGF0IHBvaW50ZXIgaXNuJ3QgbnVsbCBmb3Igc2FmZSBwcm9ncmFtbWluZyAoc2hvdWxkIG5ldmVyIGhhcHBlbikKCjIwMDYtMDMtMDggMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjb3Zlcml0eSBidWcgIzEyMDogYXZvaWQgYSBwb3NzaWJsZSBkZWZlcmVuY2UgdG8gYSBmcmVlZCB2YXJpYWJsZQoKMjAwNi0wMy0wOCAxMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgY292ZXJpdHkgYnVnICMxMjI6IHJldHVybiBOVUxMIGFmdGVyIGZhaWxpbmcgdG8gb3BlbiB0cmFuc3BvcnQuCgoyMDA2LTAzLTA4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzEyMzogYXZvaWQgZG91YmxlIGZyZWUgZm9yIGxvbmcgT0lEIGNhc2VzIGR1cmluZyBnZXRuZXh0CgoyMDA2LTAzLTA4IDEwOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoZWNrIGZvciBzdGFyIGJlZm9yZSB1c2luZwoKMjAwNi0wMy0wOCAxMDo0OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB1c2Ugc3RhciBpZiBhdmFpbGFibGUKCjIwMDYtMDMtMDggMDY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYSB2ZXJ5IHJhcmUgb2lkIHBhcnNpbmcgYnVnIGZvciBzdHJpbmdzIGluIHRydW5jYXRlZCBPSURzCgoyMDA2LTAzLTA4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3dpbi5jOgoKICAgV2luZG93cyB2ZXJzaW9uIG9mIG1lbW9yeSBIQUwgaW50ZXJmYWNlCgoyMDA2LTAzLTA4IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEV4dHJhIHByb3RlY3Rpb24gd2hlbiBjb21waWxpbmcgdW5kZXIgV2luZG93cwoKMjAwNi0wMy0wNyAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBjb3Zlcml0eSBidWcgIzEwNDogcmFyZSBjYXNlIG1lbW9yeSBsZWFrIGlmIHlvdSdyZSBvdXQgb2YgbWVtb3J5IGluIHRoZSBmaXJzdCBwbGFjZQoKMjAwNi0wMy0wNyAyMjo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBjb3Zlcml0eSBidWdzICMxMTkgaW5pdGlhbGl6ZSAyIHBvaW50ZXJzIHRvIDAKCjIwMDYtMDMtMDcgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgYnVnICMxMzI6IGZyZWUgdmFyaW91cyBwb2ludGVycyBpbiBlcnJvciBsb29wcwoKMjAwNi0wMy0wNyAyMjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSBidWcgIzEzMzogZnJlZSBrZXkgYWZ0ZXIgbWFsbG9jIGluIGV4aXQgbG9vcCBhZnRlciBvcGVuc3NsIGZhaWxlZAoKMjAwNi0wMy0wNyAyMjoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgY292ZXJpdHkgYnVnICMxMzQ6IGZyZWUgbmV3cGR1IGR1cmluZyBhIHZhY20tbm90LWNvbmZpZ3VyZWQgYmFpbC1vdXQKCjIwMDYtMDMtMDYgMDg6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9keW5peC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBVcGRhdGUgTWVtb3J5IEhBTCBmcmFtZXdvcmsgdG8gc3VwcG9ydCBIb3N0UmVzIHN0b3JhZ2UKICAgaW5mb3JtYXRpb24sIGFuZCB0d2VhayBoclN0b3JhZ2VUYWJsZSBpbXBsZW1lbnRhdGlvbiB0byB1c2UgaXQuCiAgIFRoaXMgaGFzIGJlZW4gdGVzdGVkIG9uIHtGcmVlLE5ldCxPcGVufUJTRCwgTGludXggYW5kIEhQLVVYLgogICBJdCdzIHByb2JhYmx5IHN0aWxsIGJyb2tlbiBvbiBBSVgsIERhcndpbiwgRHluaXggYW5kIFNvbGFyaXMKICAgKGFuZCBhbnkgc3lzdGVtIG5vdCBleHBsaWNpdGx5IG1lbnRpb25lZD8pCgoyMDA2LTAzLTA2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEZpeCByZXRyaWV2YWwgb2YgZmlsZXN5c3RlbSBpbmZvcm1hdGlvbiBvbiBOZXRCU0QKCjIwMDYtMDMtMDYgMDM6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBTdXBwb3J0IFVDRCBtZW1vcnkvY3B1IE1JQnMgb24gT3BlbkJTRCAzLngKCjIwMDYtMDItMjcgMDQ6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBUd2VhayBVQ0QgbWVtb3J5IGNvbmZpZ3VyZSBwcm9jZXNzaW5nIHRvIHdvcmsgd2l0aCB0aGUgbW9zdCByZWNlbnQKICAgT3BlbkJTRCBhbmQgTmV0QlNEIHJlbGVhc2VzLCBhbmQgdG8gdXNlIHRoZSBtZW1vcnkgSEFMCgoyMDA2LTAyLTI3IDA0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFR3ZWFrIG1lbW9yeSBIQUwgY29uZmlndXJlIHByb2Nlc3NpbmcgdG8gd29yayB3aXRoIHRoZSBtb3N0IHJlY2VudAogICBPcGVuQlNEIGFuZCBOZXRCU0QgcmVsZWFzZXMKCjIwMDYtMDItMjcgMDQ6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS86IG1lbW9yeV9mcmVlYnNkLmMsCiAgICAgbWVtb3J5X25ldGJzZC5jOgoKICAgRml4IHByb2JsZW1zIHdpdGggbWVtb3J5IEhBTCBjb2RlIG9uICpCU0Qgc3lzdGVtcwoKMjAwNi0wMi0yNyAwNDowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYywgbWVtb3J5Lmg6CgogICBVcGRhdGUgVUNEIG1lbW9yeSBncm91cCB0byBtYWtlIHByb3BlciB1c2Ugb2YgbWVtb3J5IEhBTCByb3V0aW5lcwoKMjAwNi0wMi0yNyAwNDowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFVwZGF0ZSBkZWZpbml0aW9ucyB0byBtYXRjaCBuZXcgbWVtb3J5IEhBTCBjb2RlCgoyMDA2LTAyLTI0IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeS5jLAogICAgIHVjZC1zbm1wL21lbW9yeS5oOgoKICAgVXNlIG1lbW9yeSBIQUwgZm9yIHRoZSBVQ0QgbWVtb3J5IGdyb3VwIChhbGwgYXJjaGl0ZWN0dXJlcykuCiAgIFRoaXMgd2lsbCBwcm9iYWJseSBicmVhayB0aGUgYWdlbnQgb24gYWxsIGJhciBMaW51eCBzeXN0ZW1zCiAgIGFuZCBtYWtlIGV2ZXJ5b25lIChpbmNsdWRpbmcgVGhvbWFzKSB1bmhhcHB5LgogICBTbyB0aGUgY3ljbGUgb2YgbGlmZSBjb250aW51ZXMuICBPaCBGb3J0dW5hLi4uLgoKMjAwNi0wMi0yNCAwODoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBtZW1vcnkuaCwgbWVtb3J5L21lbW9yeV9haXguYwosIG1lbW9yeS9tZW1vcnlfZGFyd2luLmMsIG1lbW9yeS9tZW1vcnlfZHluaXguYywKICAgICBtZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgbWVtb3J5L21lbW9yeV9ocHV4LmMsCiAgICAgbWVtb3J5L21lbW9yeV9saW51eC5jLCBtZW1vcnkvbWVtb3J5X25ldGJzZC5jLAogICAgIG1lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRXh0ZW5kIG1lbW9yeSBIQUwgdG8gY292ZXIgYWxsICh3ZWxsLCBtb3N0KSBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KICAgTm90IHlldCB0ZXN0ZWQgb24gbW9zdCBvZiB0aGVzZSBzeXN0ZW1zLCBzbyB0aGVyZSBtYXkgZWFzaWx5IGJlIHByb2JsZW1zLgogICBCdXQgYXQgbGVhc3QgdGhpcyBzaG91bGQgc2VydmUgdG8ga2VlcCBUaG9tYXMgaGFwcHkuLi4uCgoyMDA2LTAyLTIyIDA4OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci86IGV4cEVycm9yVGFibGUuYywKICAgICBleHBFeHByZXNzaW9uLmMsIGV4cEV4cHJlc3Npb24uaCwgZXhwRXhwcmVzc2lvbkNvbmYuYwosIGV4cEV4cHJlc3Npb25Db25mLmgsIGV4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGV4cE9iamVjdC5jLCBleHBWYWx1ZS5jLCBleHBWYWx1ZS5oLAogICAgIGV4cFZhbHVlVGFibGUuYywgZXhwX2VudW0uaDoKCiAgIEltcHJvdmVkIGV4cHJlc3Npb24gcGFyc2luZywgYW5kIHByZWxpbWluYXJ5IGV2YWx1YXRpb24gb2YgZXhwcmVzc2lvbnMuCgoyMDA2LTAyLTIwIDE1OjQ0ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgUmVtb3ZlIGhpc3RvcmljIHJlZmVyZW5jZXMgdG8gdGFyIHByb2JsZW1zIChhdCBldmVuIG1vcmUgcGxhY2VzKQoKMjAwNi0wMi0yMCAxNTozOCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIFJlbW92ZSBoaXN0b3JpYyBwYXJhZ3JhcGggb24gdGFyIHByb2JsZW1zOi0pCgoyMDA2LTAyLTIwIDE1OjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAoZnVydGhlcikgY2xhcmlmeSB0aGUgb3JpZ2luYWwgR05VIHRhciBwcm9ibGVtcwoKMjAwNi0wMi0yMCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBzdGFyIGluc3RlYWQgb2YgdGFyIGZvciBjcmVhdGluZyBhcmNoaXZlcyB0byBnZXQgYXJvdW5kIGdudSB0YXIgaW5jb21wYXRpYmlsaXRpZXMKCjIwMDYtMDItMTcgMDc6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAtZml4IGJ1ZyAxMzk5NDIxOiA1LjIrOiB0dW5uZWwgbWliIGZhaWxzIHRvIGJ1aWxkIHcvIGlmLW1pYiByZXdyaXRlCgoyMDA2LTAyLTE2IDE1OjE5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgVDA0OXNubXB2M2luZm9ybQosIFQwNDlzbm1wdjNpbmZvcm1hdXRoLCBUMDQ5c25tcHYzaW5mb3JtcHJpdiwKICAgICBUMDUyc25tcHYyY2luZm9ybSwgVDA1N3RyYXBkYXV0aHRlc3QsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QyLCBUMDU3dHJhcGRhdXRodGVzdDMsCiAgICAgVDA1OXRyYXBkdHJhcGhhbmRsZSwgVDA2MHRyYXBkcGVybDoKCiAgIGFkZCAiLXQgJFNOTVBfU0xFRVAiIHRvIHNubXBpbmZvcm0gaW4gb3JkZXIgdG8gYXZvaWQgdGVzdCBmYWlsdXJlcyBvbiBzbG93IG1hY2hpbmVzIGV2ZW4gd2l0aCBhbiBpbmNyZWFzZWQgU05NUF9TTEVFUCAoZml4ZXMgYnVnIDE0MDM2ODgpCgoyMDA2LTAyLTE1IDE2OjI3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgICAgVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGRvbid0IGxldCBzbm1wdHJhcGQgb3BlbiBzeXN0ZW0gYWdlbnR4IHNvY2tldCBkdXJpbmcgdGVzdGluZyAoc2VlIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wMi0xNSAxNjowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybSwgVDA0OXNubXB2M2luZm9ybWF1dGgKLCBUMDQ5c25tcHYzaW5mb3JtcHJpdiwgVDA1MHNubXB2M3RyYXAsCiAgICAgVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwgVDA1M2FnZW50djF0cmFwCiwgVDA1NGFnZW50djJjdHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwKICAgICBUMDU3dHJhcGRhdXRodGVzdCwgVDA1N3RyYXBkYXV0aHRlc3QyLAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0MywgVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgVDA1OXRyYXBkdHJhcGhhbmRsZSwgVDA2MHRyYXBkcGVybDoKCiAgIGRvbid0IGxldCBzbm1wdHJhcGQgb3BlbiBzeXN0ZW0gYWdlbnR4IHNvY2tldCBkdXJpbmcgdGVzdGluZyAoc2VlIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wMi0xNSAxMDozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBnZXR0YWJsZTogIGZpeCByZXBlYXQgY291bnQgZm9yIFNOTVB2MSAmIGZpeCAtY29sdW1ucyB0byBhY3R1YWxseSB3b3JrCgoyMDA2LTAyLTE0IDA2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oOgoKICAgUmVnaXN0ZXIgaWZOdW1iZXIgYXMgYSBzY2FsYXIgb2JqZWN0LCBub3QgYW4gaW5zdGFuY2UsIHNvIHRoYXQKICAgaXQgaGFuZGxlcyBpbnZhbGlkIGluc3RhbmNlcyBwcm9wZXJseSwgYW5kIGZpeCBPSUQgcmVnaXN0cmF0aW9uLgoKMjAwNi0wMi0xMyAxNzo0MiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZSBQU0RLIGRvd25sb2FkIGluc3RydWN0aW9ucy4KCjIwMDYtMDItMTMgMTU6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oOgoKICAgZml4IGJ1ZyAxMzk5MzY5OiBpZk51bWJlciBicm9rZW4KCjIwMDYtMDItMTMgMTA6NDkgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGFkZCA1LjMuMC4xIHNlY3VyaXR5IGZpeCBhbmQgc211eCB0cmFwIHBhdGNoCgoyMDA2LTAyLTEzIDEwOjMyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgZml4IHRyYXAgcHJvY2Vzc2luZyBmcm9tIFNNVVggcGVlcnMgKHBhdGNoIDE0MzA4MjQgZnJvbSBEZWxsLCBzdWJtaXR0ZWQgYnkgU3VTRSkKCjIwMDYtMDItMTMgMDc6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGluY3JlYXNlIG51bWJlciBvZiByZXRyaWVzIGZvciBwb3J0IHByb2JpbmcgdG8gbG93ZXIgdGhlIGNoYW5jZSBmb3Igc3B1cmlvdXMgdGVzdCBmYWlsdXJlcwoKMjAwNi0wMi0xMSAxNTozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBzZXQgcGVyc2lzdGVudERpciBmb3Igc25tcHRyYXBkIGluIG9yZGVyIHRvIGF2b2lkIGJlaW5nIGludmFzaXZlIChzZWUgYnVncyAxNDAzNjg4LCAxNDI0MjkzKQoKMjAwNi0wMi0xMCAxNTo0NyAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICAgIGhlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gYSB0YW5nbGVkIHdlYiBvZiBmaXhlcyBmb3Igb3ZlcnJpZGUKICAgICAtIGJhY2sgb3V0IGZpeCBmb3IgNzExNDY1OiBvdmVycmlkZSBkaXJlY3RpdmUgaWdub3JlZCB3aXRoIHNubXBidWxrZ2V0CiAgICAgLSBhcHBseSBuZXcgZml4ZXMgZm9yIDcxMTQ2NSAoc2VlIGJ1ZyByZXBvcnQgZm9yIGdvcnkgZGV0YWlscykKICAgICAtIGFsc28gZml4IG92ZXJyaWRlIG9mIHRhYmxlIGluc3RhbmNlLCByZXBvcnRlZCBvbiBjb2RlcnMKICAgLSBhbmQsIHF1b3RpbmcgRGF2ZToKCiAgIEknbSBub3QgYXQgYWxsIHN1cmUgdGhhdCB0aGlzIGlzIG5lY2Vzc2FyaWx5IHRoZSBjb3JyZWN0IGZpeCwgYnV0CiAgIGl0IHdhc24ndCB2ZXJ5IGNsZWFyIGFzIHRvIGV4YWN0bHkgd2hhdCBpcyBiZWluZyBoYW5kbGVkIGhlcmUuCiAgIFRoaXMgY2hhbmdlIGNlcnRhaW5seSBhZGRyZXNzZXMgdGhlIGFib3ZlIGJ1ZyByZXBvcnQsIHdpdGhvdXQKICAgc2VlbWluZyB0byBicmVhayBhbnl0aGluZyBlbHNlLgoKICAgTGV0J3MgZ2l2ZSB0aGlzIHBhdGNoIHRpbWUgdG8gc2V0dGxlIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgY29kZSwKICAgYW5kIHRoZW4gY29uc2lkZXIgYmFjay1wb3J0aW5nIGl0IHRvIGVhcmxpZXIgbGluZXMuLi4uLgoKMjAwNi0wMi0wNiAxNTozNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBjaGVja3MgZm9yICJzdHJ1Y3Qgbmxpc3Q2NCIsIG9mZjY0X3QgYW5kIGxzZWVrNjQgKGZvciBJUklYIGFuZCBmcmllbmRzKQoKMjAwNi0wMi0wNCAxNDozMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBmYWlsICJtYWtlIiBvbiBTTk1QX0VSUl9OT0VSUk9SCgoyMDA2LTAyLTAzIDE3OjMyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBiYWNraW5nIG91dCBwcmV2aW91cyBwYXRjaCAod2hpY2ggYnJlYWtzIHRlc3QgIzI0ICJTTk1QdjMgdHJhcHMgcmVjZWl2ZWQgYW5kIHNlbnQgYnkgdG9vbHMiKSB1bnRpbCBzb21lb25lIGZpbmRzIHRoZSB0aW1lIHRvIHJldmlldyBpdCBhZ2FpbgoKMjAwNi0wMi0wMyAxNjozNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkOgoKICAgZml4IHR5cG8KCjIwMDYtMDItMDIgMTk6MzEgIGFsZXhfYgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGZvciBidWcgMTQyMDc1OC4gIE1pc3NpbmcgY2FsbCAodHlwbz8pIGZvciBGRF9aRVJPKCZleGNlcHRmZHMpLgoKMjAwNi0wMi0wMiAxNDowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHVzZSB0cmVlX2hlYWQgaWYgdHJlZV90b3Agd2FzIE5VTEwuIGhhbmRsZXMgYm90aCBPSUQgYW5kIG5hbWUgbG9va3VwcwoKMjAwNi0wMi0wMSAxODo1OCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBsbVNlbnNvcnMuYywgbG1TZW5zb3JzLmg6CgogICBpbmNvcnBvcmF0ZSBtYWpvciBwYXRjaGVzIGJ5IE1pa2UgRmlzaGVyIGFuZCBUb20gRS4gTGFja2xleQoKMjAwNi0wMi0wMSAwOTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHJldmVydCBjaGFuZ2VzIGZyb20gdmVyc2lvbiA1Ljg4LCB3aGljaCBicm9rZSBwYXJzaW5nIGZ1bGx5IHF1YWxpZmllZAogICAgIG5hbWVkIE9JRHMgKGVnIC5pc28ub3JnKS4gQW5vdGhlciBmaXggZm9yIHBhcnNpbmcgbnVtZXJpYyBPSURzIGJlZm9yZQogICAgIE1JQiBmaWxlcyBhcmUgbG9hZGVkIG5lZWRzIHRvIGJlIGludmVzdGlnYXRlZC4KCjIwMDYtMDEtMzEgMTA6MzEgIHRhbmRlcnMKCiAgICogbWFuLzogbWliMmMuZXh0cmFjdC5wbCwgc25tcG5ldHN0YXQuMS5kZWY6CgogICBmaXggbWFudWFsIHBhZ2UgZm9ybWF0dGluZyBlcnJvcnMgKERlYmlhbiBwYXRjaCAjMTcsIG9yaWdpbmFsIGF1dGhvciBOaWNvbGFzIEZyYW5jb2lzKQoKMjAwNi0wMS0zMSAwOToyNyAgYWxleF9iCgogICAqIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEZpeCBCZWdpbiBzb3VyY2UgLyBlbmQgc291cmNlIGxpbmVzLiAgQnVnIDE0MDQ0MDIuCgoyMDA2LTAxLTMxIDA0OjUxICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYwo6CgogICBGaXggYXNzb3J0ZWQgc2lnbmVkbmVzcyBtaXNtYXRjaGVzLgoKMjAwNi0wMS0zMSAwNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICAgIHNubXBVRFBEb21haW4uYywgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLAogICAgIHRvb2xzLmM6CgogICBGaXggYXNzb3J0ZWQgc2lnbmVkbmVzcyBtaXNtYXRjaGVzLgoKMjAwNi0wMS0zMCAwNDowNyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNjYXBpLmMsIHNubXB2My5jOgoKICAgRml4IGFzc29ydGVkIHVuc2lnbmVkIGNvbXBhcmlzb25zIGFnYWluc3QgMC4gIChTZWUgQnVnICMxMzk3ODkxKQoKMjAwNi0wMS0zMCAwMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ29ycmVjdCBpbXByb3BlciB1c2Ugb2YgJ25ldHNubXBfaGV4X3RvX2JpbmFyeScKICAgKE15IG1pc3Rha2UsIG5vdCBSYWRlaydzKQoKMjAwNi0wMS0zMCAwMzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgSGFuZGxlIGZ1bGwtbGVuZ3RoIElQdjYgYWRkcmVzc2VzLiAgRml4IHN1cHBsaWVkIGJ5IFJhZGVrIFZva8OhbAoKMjAwNi0wMS0zMCAwMTo1MiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIERvbid0IHNhdmUgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uIHVudGlsIHJ1bm5pbmcgdXNlci9ncm91cCBoYXZlIGJlZW4KICAgcmVzZXQuICBCYXNlZCBvbiBwYXRjaCAjMTM3MTA3OC4KCjIwMDYtMDEtMzAgMDE6NDUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFVwZGF0ZSBoYW5kbGluZyBvZiBlbmRPZk1pYlZpZXcgZXhjZXB0aW9ucy4gIFBhdGNoICMxMDQ3NzA2CgoyMDA2LTAxLTMwIDAxOjM1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTdXBwb3J0IGZvciByZWFkaW5nL3N0b3JpbmcgSVAgYWRkcmVzcyB2YWx1ZXMuICBFeHBhbmRlZCBmcm9tIHBhdGNoICMxMDc3MDAKCjIwMDYtMDEtMzAgMDE6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIERvbid0IHJlbGVhc2UgdGhlIHJlc3BvbnNlIFBEVSBwcmVtYXR1cmVseSwgYmVmb3JlIHRyeWluZyB0bwogICBleHRyYWN0IE9JRHMgZnJvbSBpdC4gIFBhdGNoICMxMjc3NTA4LgoKMjAwNi0wMS0zMCAwMToyNiAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGZpeCBQQVRIIHR5cG8KCjIwMDYtMDEtMjcgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgZG8gdW5kbyByZWYgY291bnQgdmlhIHJvd3JlcV9jdHgsIG5vdCBkYXRhX2xpc3QKCjIwMDYtMDEtMjcgMDk6MjYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL1NOTVAvU05NUC54cwosIHNubXBsaWIvc25tcF9hcGkuYywgcGVybC9TTk1QL1NOTVAucG06CgogICBIYW5kbGUgbm9uLWluY3JlYXNpbmcgT0lEcyBkdXJpbmcgYSAocGVybCkgYnVsa3dhbGsuCiAgIFBhdGNoICMxMzY0NjUwIGZyb20gT2xlIEJqw7hybiBIZXNzZW4KCjIwMDYtMDEtMjcgMDM6MDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIHZhbHVlcyBtb3JlIGdyYWNlZnVsbHkuCgoyMDA2LTAxLTI2IDA5OjAyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIEFwcGx5IFBhdGNoICMxMzk0MDY4IHRvIE1mRCBnZW5lcmF0ZWQgdGVtcGxhdGVzLgoKMjAwNi0wMS0yNSAwODoyNSAgZHRzMTIKCiAgICogZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMKLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMKLCBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9pbnQ2NC5jLAogICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90ZXh0X3V0aWxzLmMsCiAgICAgc25tcGxpYi90b29scy5jOgoKICAgQ29tcHJlaGVuc2l2ZSByZXZpZXcgb2YgaW4tbGluZSBkb2N1bWVudGF0aW9uLgogICBBIG1vc3QgaW1wcmVzc2l2ZSBlZmZvcnQgYnkgIE5hemltIEJhaXppZCAgKFBhdGNoICMxMzk0MDY4KQoKMjAwNi0wMS0yNSAwNzozNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERvbid0IGJlIGluIHN1Y2ggYSBydXNoIHRvIHJlbGVhc2UgTUlCIHJlZ2lzdHJhdGlvbiBzdHJ1Y3R1cmUuCiAgIFNlZSBQYXRjaCAjMTM4NjUyOAoKMjAwNi0wMS0yNSAwNzozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIEFkZGl0aW9uYWwgZGVidWdnaW5nIGluZm8KCjIwMDYtMDEtMjQgMDg6MjEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbGVhc2UgbWVtb3J5IGJlZm9yZSByZS1hbGxvY2F0aW5nIGl0LiAgU2VlIFBhdGNoICMxNDA3MTczCgoyMDA2LTAxLTI0IDA4OjAyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEltcHJvdmVkL2ZpeGVkIHBlcmwgd2FybmluZ3MuICBTZWUgUGF0Y2ggIzEzMzQ1OTgKCjIwMDYtMDEtMjQgMDY6NDAgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ2hlY2sgIlRpbWVTdGFtcCIgcmVmZXJlbmNlIGJlZm9yZSB1c2UgKGluIGxpbmUgd2l0aAogICB0aGUgb3RoZXIgb2NjdXJhbmNlcyBpbiB0aGlzIGZpbGUpLiAgU2VlIEJ1ZyAjMTM3NTI4MgoKMjAwNi0wMS0yNCAwNjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIENoZWNrIGZvciBtaXNzaW5nIG1vbml0b3JlZCB2YWx1ZXMgKHNlZSBCdWcgIzE0MDQ2MDUpCgoyMDA2LTAxLTI0IDA1OjQ3ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIERvbid0IG92ZXJyaWRlIGFuIGV4cGxpY2l0IERFRlBSSVZUWVBFIHNldHRpbmcsCiAgIGV2ZW4gaWYgdGhlIGxpYnJhcnkgZG9lc24ndCBzdXBwb3J0IGVuY3J5cHRpb24uCgoyMDA2LTAxLTI0IDAxOjUxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVwbGFjZSAiPT0iIGJ5ICI9IiB3aGVuIHVzaW5nICJ0ZXN0IiAocmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDYtMDEtMjMgMDc6MDUgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBOZXcgaGFuZGxlciB0byBmb3J3YXJkIHRyYXBzIHZpYSB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudC4KCjIwMDYtMDEtMjAgMTU6MTYgIHRhbmRlcnMKCiAgICogTkVXUywgYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgaW50cm9kdWNlIG5ldyBzbm1wdXNtIG9wdGlvbiAtQ3AgdG8gc2V0IHVzbVVzZXJQdWJsaWMgdmFsdWUKCjIwMDYtMDEtMjAgMDk6MDEgIGR0czEyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQKLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0LAogICAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgTW9kdWxhciBhcHByb2FjaCBmb3IgcHJvYmluZyB0byBkZXRlY3QgZnJlZSBwb3J0cy4gIFNlZSBCdWcgIzEzMzU3NjcKCjIwMDYtMDEtMTggMTY6MDYgIHRhbmRlcnMKCiAgICogTkVXUywgYXBwcy9zbm1wdXNtLmM6CgogICBBdm9pZCBleHBlbnNpdmUgZ2VuZXJhdGVfS3UoKSBpZiBuZXdwYXNzIGlzIGEgbG9jYWxpemVkIGtleSAoaW5zdGVhZCBvZiBhIHBhc3NwaHJhc2UpLiBNYWtlcyBhIGh1Z2UgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgdGhlbi4KCjIwMDYtMDEtMTggMTE6MzQgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgdXNlIGJhc2UgYXJjaCAoZWcgaTM4Niwgbm90IGk2ODYpOyB1c2UgUlBNX0JBU0UgZm9yIHRvcGRpcgoKMjAwNi0wMS0xOCAwODoyNyAgZHRzMTIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVnaXN0ZXIgUlBNcyBhcyBiZWluZyBidWlsdCBieSB0aGUgTmV0LVNOTVAgcHJvamVjdC4KCjIwMDYtMDEtMTggMDg6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgYmVlY3J5cHQtZGV2ZWwsIGVsZnV0aWxzLWxpYmVsZi1kZXZlbCB0byBCdWlsZFJlcXVpcmVzCgoyMDA2LTAxLTE4IDA3OjM1ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJlc3RvcmUgZmlsZSAobG9va3MgbGlrZSBWZXJzaW9uTXVuZ2UgbnVrZWQgaXQ/KTsgYnVtcCB2ZXJzaW9uIHRvIDUuNC5kZXYKCjIwMDYtMDEtMTggMDc6MTggIHRhbmRlcnMKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaXggdHlwbwoKMjAwNi0wMS0xNyAwNzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gb2Jzb2xldGUgKGFuZCBtaXNzaW5nKSByb3V0aW5lLiAgU2VlIEJ1ZyAjMTAxMTA1MQoKMjAwNi0wMS0xNyAwNjoyNiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVjb2duaXNlIHJhbmdlIHBhcnNpbmcgZXJyb3JzIHByb3Blcmx5LgoKMjAwNi0wMS0xNSAxMTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBiZXR0ZXIgY29vcGVyYXRpb24gZm9yIGludGVyZmFjZSB0YWJsZXMgdXNpbmcgc2hhcmVkIGNvbnRhaW5lcgogICAgIC0gdXNlIG9uZSBkaXJ0eSB2YXJpYWJsZQogICAgIC0gdXNlIG5ldyByZWYgY291bnRpbmcgdW5kbyBhbGxvYy9mcmVlIGZ1bmN0aW9uIGZyb20gaWZUYWJsZQoKMjAwNi0wMS0xNSAwNjoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgcmVtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyAoZG9uZSBlbHNld2hlcmUpCgoyMDA2LTAxLTE1IDA2OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gbW92ZSB1bmRvIGlmZW50cnkgaGFuZGxpbmcgaGVyZQogICAtIGFkZCByZWZlcmVuY2UgY291bnRpbmcgZm9yIHVuZG8KCjIwMDYtMDEtMTUgMDY6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyBpbnRvIGludGVyZmFjZQoKMjAwNi0wMS0xMyAxNzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWxsb3cgd3JpdGUgc3VwcG9ydCBmb3IgbmV3IHVzZXIgdG8gdGVzdCBwYXN3b3JkIGNoYW5nZXMKCjIwMDYtMDEtMTMgMTU6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGZpeCBiaXR3aXNlIHRlc3QgdG8gdXNlIGJpdHdpc2UgbWFjcm9zCgoyMDA2LTAxLTEzIDA4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZG9uJ3QgZG91YmxlIGFsbG9jYXRlIHVuZG8gaWZlbnRyeQoKMjAwNi0wMS0xMyAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSBtb3ZlIGFsbCByZWZzIHRvIHVuZG8gcHJvbWlzYyBtb2RlIGluc2lkZSBwcm9taXNjIHNldCBlbmFibGUgaWZkZWZzCiAgIC0gaWYgcHJvbWlzYyBtb2RlIHNldCBlbmFibGVkLCBtYWtlIHN1cmUgdG8gYWxsb2NhdGUgdW5kbyBpZmVudHJ5CgoyMDA2LTAxLTEzIDA3OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBjb3JyZWN0IHByb2MgcGF0aCBmb3IgYmFzZSByZWFjaGFibGUgdGltZQogICAtIHVzZSBjb3JyZWN0IGZsYWcgZm9yIGJhc2UgcmVhY2hhYmxlIGF2YWlsYWJpbGl0eQogICAtIGFjdHVhbGx5IHB1dCBiYXNlIHJlYWNoYWJsZSB0aW1lIGluIGlmZW50cnkgYWZ0ZXIgcmVhZGluZyBpdAoKMjAwNi0wMS0xMSAxNToyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgKOgoKICAgSVJJWCBhdFRhYmxlIGZpeDogdXNlIHN5c2N0bCgpIGluc3RlYWQgb2Ygbmxpc3QoKSB0byBzdXBwb3J0CiAgIElSSVggKmFuZCogSVJJWDY0IGtlcm5lbHMgYXQgb25jZSBhbmQgbm90IHJlcXVpcmUgL2Rldi9rbWVtIGFjY2VzcwogICAocHJvcG9zZWQgYnkgSGVydmUgQm91bG91aXMpCgoyMDA2LTAxLTExIDE0OjA5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBzL3RoZSBhZ2VudC9zbm1wdHJhcGQvCgoyMDA2LTAxLTExIDE0OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNi0wMS0xMSAxMzozNyAgdGFuZGVycwoKICAgKiBGQVE6CgogICBmaXggYWNjaWRlbnRhbCBtYW5nbGluZwoKMjAwNi0wMS0xMSAxMjo0MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIGJ1aWxkIGZpeDogI2luY2x1ZGUgPGxpbWl0cy5oPiB0byBjb3ZlciByZWNlbnRseSBpbnRyb2R1Y2VkIExPTkdfTUFYCiAgIC0gd3JhcCAiI2lmIEhBVkVfU1lTX1NUQVRfSCIgYXJvdW5kICIjaW5jbHVkZSA8c3lzL3N0YXQuaD4iCiAgIC0gcmVtb3ZlIG9sZCBjaGFuZ2Vsb2cgZnJvbSB0aGUgdG9wIG9mIHRoZSBmaWxlCgoyMDA2LTAxLTExIDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFNFVCBzdXBwb3J0IGZvciBtYW5pcHVsYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUgaXNuJ3QgcmVhbGx5IGltcGxlbWVudGVkCiAgIHByb3Blcmx5IChleGNlcHQgb24gQ3lnd2luKSwgc28gd2Ugc2hvdWxkbid0IHByZXRlbmQgaXQgaXMuCgoyMDA2LTAxLTExIDA4OjMyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFJlZHVjZSByZWxpYW5jZSBvbiAobm9uLXRocmVhZC1zYWZlKSBnZXRob3N0YnluYW1lLiAgU2VlIEJ1ZyAjODM5Njc1CgoyMDA2LTAxLTExIDA4OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEb3duZ3JhZGUgdXBwZXItYm91bmQgcGFyc2luZyBwcm9ibGVtcyB0byBhIHdhcm5pbmcgLSBrZWVwIFRyb2dMIGhhcHB5Oi0pCiAgIERvbid0IHRoaW5rIHRoZSBjaGVjayBpcyBxdWl0ZSByaWdodCB5ZXQgdGhvdWdoOi0oCgoyMDA2LTAxLTExIDA3OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCcmluZyBjb2RlIHRlbXBsYXRlIGludG8gbGluZSB3aXRoIGZpbmFsIGhlbHBlciBBUEkuCgoyMDA2LTAxLTExIDA3OjA5ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDb3JyZWN0IGEgbWlzbGVhZGluZyBjb21tZW50LgoKMjAwNi0wMS0xMSAwNzowMiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQXNzb2NpYXRlIE1JQiBub2RlIHR5cGVzIHdpdGggdGhlICpsYXN0KiBlbnRyeSBwYXJzZWQgZnJvbSB0aGUKICAgZGVmaW5pdGlvbiB2YWx1ZSwgbm90IHRoZSBmaXJzdC4gIEZpeGVzIHByb2JsZW0gd2l0aCBNSUIgZGVmaW5pdGlvbnMKICAgdGhhdCB1c2UgaW50ZXJtZWRpYXRlIHN1YmlkZW50aWZpZXJzIChzZWUgYnVnICM3NTk0MTIpCgoyMDA2LTAxLTExIDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfcmVtb3ZlX3JvdygpCgoyMDA2LTAxLTEwIDEzOjQ1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIGZpeCBmb3JtYXQgc3RyaW5nIGJ1ZyAocmVwb3J0ZWQgYnkgZGFyaXggb24gSVJDKQoKMjAwNi0wMS0xMCAwODozNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgcmV0cnkgIm91dCBvZiByYW5nZSIgcmVzcG9uc2VzIHVubGVzcyB0aGVyZSdzIGFjdHVhbGx5IGEgdmFsdWUKICAgdG8gYmUgb3V0IG9mIHJhbmdlLiAgVGhpcyBwcm92ZWQgdG8gYmUgdGhlIHVuZGVybHlpbmcgY2F1c2Ugb2YgR2V0QnVsawogICByZXF1ZXN0cyBmYWlsaW5nIHRvIGhhbmRsZSBpbnN0YW5jZS1iYXNlZCByZWdpc3RyYXRpb25zLCBzdWNoIGFzCiAgICJvdmVycmlkZSIgZGlyZWN0aXZlcyAoU2VlIEJ1ZyAjNzExNDY1KQoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAxLTEwIDAzOjA3ICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBDODkgY29tcGlsZXIgYnVpbGQgZml4IChidWcgMTM5ODU0NSkgcGFydCAyOiAiQSBkZWNsYXJhdGlvbiBjYW5ub3QgYXBwZWFyIGFmdGVyIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IGluIGEgYmxvY2suIgoKMjAwNi0wMS0wOSAxNzo0MSAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgQzg5IGNvbXBpbGVyIGJ1aWxkIGZpeCAoYnVnIDEzOTg1NDUpCgoyMDA2LTAxLTA5IDE3OjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgSVJJWCA2LjUgYnVpbGQgZml4OiBkb24ndCBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBiZWNhdXNlIGl0J3Mgbm90IG5lZWRlZCBhbmQgX0tNRU1VU0VSIGJyZWFrcyB0aGUgYnVpbGQKCjIwMDYtMDEtMDkgMTc6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IElSSVggNi41ICJwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmcgZm9yIHN5cy92bm9kZS5oIGFuZCBzeXMvaGFzaGluZy5oCgoyMDA2LTAxLTA5IDEzOjUzICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgZG9uJ3QgaWdub3JlIHVjZC1zbm1wLWNvbmZpZy5oLCBzaW5jZSBpdCdzIG5vIGxvbmdlciBhIGdlbmVyYXRlZCBmaWxlCgoyMDA2LTAxLTA5IDEzOjM4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmV2ZXJ0IHRvIC0tZGlzYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGJlaW5nIHRoZSBkZWZhdWx0IGFnYWluCgoyMDA2LTAxLTA5IDExOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgYWxsIGVyciBsb2dzIGluIHJlc3VsdHMKCjIwMDYtMDEtMDkgMDk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICByZXN0b3JlIGxvc3QgaWZMYXN0Q2hhbmdlIHRyYWNraW5nCgoyMDA2LTAxLTA5IDA3OjA2ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zCiwgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMwosIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zCiwgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwosIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMwosIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zCiwgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMKLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBBZGp1c3QgZG94eWdlbiAiZGVmZ3JvdXAiIGNvbW1lbnRzIHRvIGltcHJvdmUgYXV0by1nZW5lcmF0ZWQgbWFuIHBhZ2UgZm9ybWF0LgogICBTZWUgYnVnICM4MzUzMjEKCjIwMDYtMDEtMDkgMDU6MDEgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBmYWlsdXJlIHRvIHBhcnNlIHJhbmdlcyBjb3JyZWN0bHkgKEJ1ZyAjNDExNTk0Lzc1NzEyMSkKCjIwMDYtMDEtMDYgMTU6MTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCB1ZHBUYWJsZSBvbiBTb2xhcmlzL3g4NjogaG9zdCBieXRlIG9yZGVyIGZvciB1ZHBMb2NhbFBvcnQgKGJ1ZyAxMzkzMTk3KQoKMjAwNi0wMS0wNiAxMzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIGFkZCBpbnN0YW5jZSBoYW5kbGVyIGZvciBpbmV0Q2lkclJvdXRlTnVtYmVyCgoyMDA2LTAxLTA2IDA5OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBzdWJ0cmFjdCBtdWx0aWNhc3QgcGFja2V0cyBmcm9tIHRvdGFsIHBhY2tldHMgZm9yIHVuaWNhc3QgcGFja2V0cwogICAgICh0aGVyZSBpcyBubyBicm9hZGNhc3QgcGFja2V0IGNvdW50ZXIgdG8gc3VidHJhY3QpCgoyMDA2LTAxLTA1IDE2OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IG11bHRpcGxlIDxuZXRpbmV0L3RjcF92YXIuaD4gaW5jbHVzaW9uIChidWcgMTM5NjYzOSwgSVJJWCBidWlsZCBmaXgpCgoyMDA2LTAxLTA1IDE1OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBkb24ndCBzYXZlL3Jlc3RvcmUgcHJvbWlzY3VvdXMgbW9kZQoKMjAwNi0wMS0wNSAxNTo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSB1cGRhdGUgdG8gcmVwb3J0IHByb3BlciB2YWx1ZSBmcm9tIHByb21pc2N1b3VzIG1vZGUKCjIwMDYtMDEtMDUgMTU6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmg6CgogICAtIGNsZWFyIHByb21pc2N1b3VzIG1vZGUgZnJvbSBzZXR0YWJsZSBmbGFncwoKMjAwNi0wMS0wNSAxNTo0MSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGJ1bXAgbGlicmFyeSB2ZXJzaW9uIG51bWJlciBpbiBwcm92aWRlcwoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIC0gKGRpc3QvTWFrZWZpbGUpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNToyOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgTElCQ1VSUkVOVCB2ZXJzaW9uCgoyMDA2LTAxLTA1IDE1OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBkZWxldGUgdW51c2VkIGR1bW15IHZhciAoc3RydWN0IHNpemUgY2hhbmdlIG9rIGluIHVucmVsZWFzZWQgYnJhbmNoZXMpCgoyMDA2LTAxLTA1IDE1OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBwb2ludCBwcm9taXNjdW91cyBtb2RlIHJlZnMgdG8gaW50ZXJmYWNlIGVudHJ5IHZhbHVlCiAgIC0gcmVuYW1lIG9sZCB2YXIgKGRvbid0IGRlbGV0ZSwgc28gc3RydWN0IHNpemUgZG9lc24ndCBjaGFuZ2UpCgoyMDA2LTAxLTA1IDE1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgc2V0IHByb21pc2N1b3VzIGZsYWcgZm9yIGludGVyZmFjZXMKCjIwMDYtMDEtMDUgMTU6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2dzCgoyMDA2LTAxLTA1IDA4OjMwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBEaXNwbGF5IGNvcnJlY3QgTUlCIGdyb3VwIG5hbWVzIGluIGNvbW1lbnRzLiAgKEJ1ZyAjMTA3NjY1NSkKCjIwMDYtMDEtMDQgMTU6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmMsCiAgICAgbXRlT2JqZWN0c0NvbmYuYywgbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyQ29uZi5jCjoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA2LTAxLTAyIDE2OjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4IG1pbm9yIHR5cG9zCgoyMDA2LTAxLTAyIDE1OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLS1kaXNhYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYW5kIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHk9bm8gbm93IGFjdHVhbGx5ICpkaXNhYmxlKiBVQ0QtU05NUCBjb21wYXRpYmlsaXR5IGluc3RlYWQgb2YgZW5hYmxpbmcgaXQKCjIwMDUtMTItMzAgMjA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gc2V0IHVwIGxlbiBmb3IgcGFyc2UgaW5kZXggaGFjayBmb3IgZml4ZWQgbGVuZ3RoIHN0ci9vaWQgaW5kZXhlcwoKMjAwNS0xMi0zMCAyMDozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlIGluZGV4IGhhY2sgZm9yIG11bHRpcGxlIGZpeGVkIGxlbmd0aCBzdHIvb2lkIGluZGV4ZXMKCjIwMDUtMTItMzAgMTg6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIHN0ZXAgZm9yIGNyZWF0aW5nIHBhdGNoZXMgYnJhbmNoIGZvciBuZXcgcmVsZWFzZXMKCjIwMDUtMTItMzAgMTE6NDIgIGFsZXhfYgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkb2NzbXVuZ2UgYXMgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCBieSB0aGUgd2ViIHNpdGUuCgoyMDA1LTEyLTI5IDIxOjM4ICBhbGV4X2IKCiAgICogbG9jYWwvaHRtbC10ZXh0ZmlsZS1maXgucGw6CgogICBBZGRzIHNvbWUgSFRNTCBlbnRpdGllcyB0byB0aGUgdGV4dCBmaWxlcyB0byBwcmV2ZW50IG1pc3NpbmcgY2hhcmFjdGVycwogICB3aGVuIGluY2x1ZGluZyBpbiBIVE1MLgoKMjAwNS0xMi0yOCAxMToxMCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMiAtPiBWNS4zCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0MSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTI4IDEyOjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yNyAxNzowNiAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIExhc3QtbWludXRlIHVwZGF0ZSBmb3IgNS4zOgogICAtIHVjZC1zbm1wL2xtU2Vuc29ycyBpbXBsZW1lbnRzIExNLVNFTlNPUlMtTUlCLCBub3QgVUNELVNOTVAtTUlCIQogICAtIGRpc21hbi9zY2hlZHVsZSBub3cgc2hpcHMgd2l0aCA1LjMKCjIwMDUtMTItMjcgMTY6NDUgIHRhbmRlcnMKCiAgICogRkFROgoKICAgTGFzdC1taW51dGUgdXBkYXRlcyBmb3IgNS4zOgogICAtIHJlbW92ZSB0d28gbWlycm9yIHNlcnZlcnMgdGhhdCBkb24ndCBleGlzdCBhbnltb3JlCiAgIC0gdHdlYWsgbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zIHRvIGxpc3QgdGhlIGJldHRlciBzdXBwb3J0ZWQgb25lcyBmaXJzdAogICAtIGZpeCBzbm1wdHJhcGQgZXhhbXBsZXMgdG8gbm90IHVzZSBkZXByZWNhdGVkIG9wdGlvbnMKICAgLSBtZW50aW9uIHRoZSA1LjMgc25tcHRyYXBkIGF1dGhvcml6YXRpb24gY2hhbmdlCiAgIC0gbWVudGlvbiB0aGF0IGRpc21hbi9ldmVudCBhbmQgaG9zdCBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IGluIDUuMwogICAtIG1lbnRpb24gZGlzbWFuL3NjaGVkdWxlIE1JQgoKMjAwNS0xMi0yMSAwNjowOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNaW5vciB0d2Vha3MuCgoyMDA1LTEyLTIxIDA0OjMxICBkdHMxMgoKICAgKiBORVdTOgoKICAgQ29ycmVjdCB0aGUgZGVzY3JpcHRpb24gb2YgJ3NubXBuZXRzdGF0JyBjaGFuZ2VzLgogICBUaGUgc3RhdHVzIG9mIHRoZSA1LjMgbGluZSBpcyAqbm90KiB0aGUgc2FtZSBhcyB0aGUgNS4yIHZlcnNpb24uCgoyMDA1LTEyLTIxIDAwOjA3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAyMzo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDIzOjQwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0yMCAyMzoxNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjAgMTA6MzMgIHRhbmRlcnMKCiAgICogbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBmaXggYnVnIDEzODYwODg6IHVzZSBMT0dfRVJSIGluc3RlYWQgb2YgTE9HX0VSUk9SCgoyMDA1LTEyLTE5IDIwOjQ2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdHJhcHMgLT4gbm90aWZpY2F0aW9ucwoKMjAwNS0xMi0xOSAyMDozNyAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMTkgMjA6MzMgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzbm1wX3BlcmwucGwgKmlzKiBpbnN0YWxsZWQgYXV0b21hdGljYWxseSAoYXQgbGVhc3QgZm9yIG1lKS4KCjIwMDUtMTItMTkgMjA6MTYgIHRhbmRlcnMKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGdldCByaWQgb2YgImRlZmF1bHQgZGVmYXVsdCIKCjIwMDUtMTItMTkgMTg6NTkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGJldHRlciBoZWxwIG91dHB1dCBmb3IgZGVwcmVjYXRlZCAiLVAiCgoyMDA1LTEyLTE5IDA1OjM1ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmCiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjguZGVmLAogICAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgR2VuZXJhbCByZXZpc2lvbiBvZiBjb21tYW5kIGFuZCBjb25maWd1cmF0aW9uIGZpbGUgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTItMTggMTY6MzYgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZXhlY3V0ZSBhbHNvIGNvdmVycyBlbWJlZGRlZCBwZXJsCgoyMDA1LTEyLTE4IDE2OjMwICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvTm90UmV0YWluVHJhcExvZ3MgLT4gZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzCgoyMDA1LTEyLTE0IDExOjQwICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBSZXdvcmtpbmcgb2YgdGhlIHRyYXBkIGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTItMTQgMDU6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIFdpdGhkcmF3IGFsdGVybmF0aXZlICJhY2NlcHRBbGxUcmFwcyIgZGlyZWN0aXZlLgogICAoS2VlcCBpdCBzYWZlIGZvciBhbm90aGVyIGRheSkuCgoyMDA1LTEyLTEzIDA3OjUwICB0YW5kZXJzCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBvdXIgYmluYXJ5IHJlbGVhc2VzICpkbyogc3VwcG9ydCBlbmNyeXB0aW9uCgoyMDA1LTEyLTEzIDA3OjI5ICB0YW5kZXJzCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBhZGQgQUVTCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTExIDE1OjAwICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTQ6MTMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMKLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuaCwgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBBZGQgY29uc3QgYW5kICNpbmNsdWRlIHRvIGZpeCB3YXJuaW5ncwoKMjAwNS0xMi0xMSAxMzo1NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgZG9uJ3QgdXNlIENWU1VTRVIgaWYgYWxyZWFkeSBpbiBhIGN2cyBkaXIKCjIwMDUtMTItMTEgMTM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgYWR2YW5jZSBuZXh0IHBvaW50ZXIgYmVmb3JlIGNvbnRpbnVlCgoyMDA1LTEyLTExIDEyOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jOgoKICAgZG9uJ3QgZnJlZSB0aGUgY29udGFpbmVyIGlmIGFza2VkIG5vdCB0bwoKMjAwNS0xMi0xMSAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIC0gZml4IDEzNjIzMjQ6IHRlc3RoYW5kbGVyIG1vZHVsZSBjYXVzZXMgaW5maW5pdGUgbG9vcAogICAgIC0gIGRvbid0IHJldHJ5IGZvciBBU05fTlVMTDsgdGhpcyByZXRyaWVzIHdoZW4gdGhlIGhhbmRsZXIgZG9lcyBub3RoaW5nLAogICAgICAgIHdoaWNoIGlzIHdoYXQgd2UgdGVsbCBwZW9wbGUgdG8gZG8gYXQgdGhlIGVuZCBvZiBhIHRhYmxlLgogICAtIGFkZCBjb21tZW50cwoKMjAwNS0xMi0xMSAxMDozNyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoYW5nZSBuZXN0ZWQgY29tbWVudCB0byBpZmRlZiAwCgoyMDA1LTEyLTEwIDIwOjA3ICB0YW5kZXJzCgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggdHlwbwoKMjAwNS0xMi0xMCAyMDowMiAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvREVWRU5WOgoKICAgY2xlYW51cAoKMjAwNS0xMi0xMCAxOTo1MCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvbmV0LXNubXAtNS4wLjYtYnVpbGQ6CgogICByZXBsYWNlZCBieSB1cGRhdGVkIGJ1aWxkcGFja2FnZS1zb2xhcmlzCgoyMDA1LTEyLTEwIDE5OjQxICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC86IFJFQURNRSwgYnVpbGRwYWNrYWdlLXNvbGFyaXMKOgoKICAgc2NyaXB0IHRvIGNyZWF0ZSBuYXRpdmUgU29sYXJpcyBwYWNrYWdlcywgcmVwbGFjZXMgbmV0LXNubXAtNS4wLjYtYnVpbGQKCjIwMDUtMTItMTAgMTg6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmdXJ0aGVyIGltcHJvdmUgbWliIG1vZHVsZSBkZXNjcmlwdGlvbnMKCjIwMDUtMTItMTAgMTg6MjkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQgZGVzY3JpcHRpb24KCjIwMDUtMTItMTAgMTg6MTcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBpbXByb3ZlIHRleHQgYWxpZ25tZW50IGluICJjb25maWd1cmUgLS1oZWxwIiBvdXRwdXQKCjIwMDUtMTItMTAgMTI6MzAgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTEyLTEwIDEyOjI4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcHV0IHByaXYvYXV0aCByZWxhdGVkIG9wdGlvbnMgY2xvc2VyIHRvIGVhY2ggb3RoZXIKCjIwMDUtMTItMTAgMTE6MzcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMgb3IgY29udmVydCB0byBDIGNvbW1lbnRzCgoyMDA1LTEyLTEwIDExOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIGNoYW5nZSBjcHAgd2FybmluZ3MgdG8gY29tbWVudHMKCjIwMDUtMTItMTAgMTE6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMi0xMCAxMToyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldyAnb3Mgc3BlY2lmaWMnIHNlY3Rpb24gaW4gbWliIG1vZHVsZSBoZWxwCgoyMDA1LTEyLTA5IDIxOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmgsCiAgICAgbXRlVHJpZ2dlckNvbmYuaCwgbXRlVHJpZ2dlclRhYmxlLmg6CgogICBjb25maWdfcmVxdWlyZSBpcXVlcnkKCjIwMDUtMTItMDkgMjE6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZQosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIG1pc2MgZ2VuZXJhdGVkIGZpbGVzCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHVwZGF0ZSByZW5hbWVkIHZhcmlhYmxlCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAo6CgogICBmaXggY29uZmlnX3JlcXVpcmUgcGF0aAoKMjAwNS0xMi0wOSAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlbW92ZSBleHBlcmltZW50YWwgY29uZmlnX25vaW5jbHVkZSBkaXJlY3RpdmVzCgoyMDA1LTEyLTA5IDIwOjU3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggY3V0LW4tcGFzdGUKCjIwMDUtMTItMDkgMjA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICBhZGQgbWlzc2luZyByZWdpc3RyYXRpb24gb2YgbGFzdCBjaGFuZ2Ugb2JqZWN0CgoyMDA1LTEyLTA5IDIwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlLmg6CgogICBhZGQgbWlzc2luZyBpbnRlcm1lZGlhdGUgY29uZmlnX3JlcSBoZWFkZXJzCgoyMDA1LTEyLTA5IDIwOjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgdXBkYXRlIGNvbXBhdCBtYXBwaW5nIHRvbwoKMjAwNS0xMi0wOSAxOTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIHByb3BlciBuYW1pbmcgY29udmVudGlvbnMgc3RhbmRhcmRpemVkIGFuZCB3aWRlbHkgYWRvcHRlZCBieSB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZQoKMjAwNS0xMi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIGRlZmluZSBuZXcgYWdlbnQgZHMgaWQgZm9yIHJldGFpbmluZyB0cmFwcwoKMjAwNS0xMi0wOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgdHJhcCAtPiBub3RpZmljYXRpb24KCjIwMDUtMTItMDkgMTA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIHJlc3RvcmUgZG9udFJldGFpbkxvZ3MKICAgLSBuZXcsIGNsZWFyZXIgZG9Ob3RSZXRhaW5UcmFwTG9ncyB1c2Ugc2FtZSBkcyBpZAoKMjAwNS0xMi0wOSAwODo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSB0aGUgY29tbW9uIGJvb2xlYW4gcGFyc2luZyByb3V0aW5lICh0byByZWNvZ25pc2UKICAgdGhlIGZ1bGwgbGlzdCBvZiBkb2N1bWVudGVkIHZhbHVlcywgbm90IHNpbXBseSAnMSchKQoKMjAwNS0xMi0wOSAwODo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFB1bGwgcGFyc2luZyBvZiBib29sZWFuIGNvbmZpZyB2YWx1ZXMgb3V0IGludG8gYSBzZXBhcmF0ZSByb3V0aW5lLgoKMjAwNS0xMi0wOSAwNzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRXhwYW5kIHRoZSBzb3VyY2UgYnVmZmVyIHNvIGl0IGNhbiBob2xkIGEgbWF4aW11bS1sZW5ndGggSVB2NiBzcGVjaWZpY2F0aW9uLgogICBQYXRjaCBwcm92aWRlZCBieSBTaHVraSBTYXNzb24uCgoyMDA1LTEyLTA4IDA4OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIElzc3VlIHdhcm5pbmdzIHdoZW4gJ3NubXB0cmFwZCcgaXMgcnVuIHdpdGhvdXQgYW55IGFjY2VzcyBjb25maWd1cmF0aW9uLgogICBCb3RoIGF0IHN0YXJ0dXAsIGFuZCB3aGVuIGluY29taW5nIHRyYXBzIGFyZSByZWNlaXZlZCAoYW5kIGRyb3BwZWQpLgoKICAgQWxzbyBkZWZpbmUgYW4gYWx0ZXJuYXRpdmUgbmFtZSBmb3IgdGhlICdkaXNhYmxlQXV0aG9yaXphdGlvbicgZGlyZWN0aXZlLAogICB0aGF0IGlzIChJTU8pIG1vcmUgZGVzY3JpcHRpdmUgb2Ygd2hhdCBhIG5ldHdvcmsgYWRtaW5pc3RyYXRvciBtaWdodCB3YW50IHRvIGRvLgoKMjAwNS0xMi0wOCAwODowNyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBQcm9wZXJseSByZWNvZ25pc2Ugd2hlbiBubyBhY2Nlc3Mgc2V0dGluZ3MgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQuCiAgIChUaGUgbmV3IGJ1aWx0LWluIHZpZXdzIGJyb2tlIHRoZSBwcmV2aW91cyB0ZXN0KS4KCjIwMDUtMTItMDggMDY6MDggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jbHVkZSAoYW5kIGNoZWNrIGZvcikgYW5vdGhlciBoZWFkZXIgZmlsZSAtIG5lZWRlZCBvbiBSZWRIYXQgOSBzeXN0ZW1zLgoKMjAwNS0xMi0wNyAxNzo1NSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTA3IDA3OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMDcgMDc6MjcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGZpeCBtaW5pLWFnZW50IHRlc3RzIHNvIHRoYXQgLS1kaXNhYmxlIGRvZXNuJ3QgYWN0dWFsbHkgZW5hYmxlIGl0CgoyMDA1LTEyLTA2IDE3OjUwICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIGlzc3VlcwoKMjAwNS0xMi0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHJlZHVjZSBjYWNoZSByZWxvYWQgdGltZW91dCBiZWxvdyB3cmFwIHRocmVzaG9sZCBmb3IgZ2lnYWJpdCBpbnRlcmZhY2VzCgoyMDA1LTEyLTA2IDA4OjUwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWY6CgogICBCcmllZiAoYW5kIHNvbWV3aGF0IHJlcGV0YXRpdmUpIGRvY3VtZW50YXRpb24gb2YgaW50ZXJuYWwgZGlyZWN0aXZlcy4KCjIwMDUtMTItMDYgMDg6MTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCBFdmVudCBNSUIsIFNjaGVkdWxlIE1JQiBhbmQgcHJveHkgZXhhbXBsZXMKICAgKHBsdXMgdmFyaW91cyBtaW5vciB0d2Vha3MpLgoKMjAwNS0xMi0wNiAwNTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEltcGxlbWVudCBtaXNzaW5nICJsaW5rVXBEb3duTm90aWZpY2F0aW9ucyIgZGlyZWN0aXZlCiAgICh0b2dldGhlciB3aXRoIHN1aXRhYmxlIHN0YW5kYXJkIGVudHJpZXMpCgoyMDA1LTEyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBkb24ndCByZW1vdmUgZGlzdAoKMjAwNS0xMi0wNSAxMDo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBtaXNzZWQgdmFyIHJlbmFtZSBpbiBjb25kaXRpb25hbAoKMjAwNS0xMi0wNSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNvbmZpZ19hZGRfbWliIGluIGhlYWRlcgoKMjAwNS0xMi0wNSAwNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdHdlYWtzIHBlciBjb21tZW50cyBmcm9tIHdlczsgc2VlIGNvZGVycyBub3RlCgoyMDA1LTEyLTA1IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgQWdlbnRYIGV4YW1wbGVzLgoKMjAwNS0xMi0wNSAwNzoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IHRyYXAgaGFuZGxpbmcgYW5kIGVtYmVkZGVkIHBlcmwgZXhhbXBsZXMuCgoyMDA1LTEyLTA1IDA3OjIwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEFzc29ydGVkIHdvcmRzbWl0aGluZywgYW5kIHBpY2sgdXAgYSBjb3VwbGUgb2YgdW5kb2N1bWVudGVkIG9wdGlvbnMuCgoyMDA1LTEyLTA1IDA3OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBJbXBsZW1lbnQgJ2dldF9leGVjX291dHB1dCcgYXMgYSB3cmFwcGVyIHJvdW5kICdydW5fZXhlY19jb21tYW5kJwogICB0byBnaXZlIHByb3BlciBoYW5kbGluZyBvZiBjb21tYW5kIHRva2VuaXphdGlvbi4gIChTZWUgQnVnICMxMzI0MDU3KQogICBOb3RlIHRoaXMgZG9lc24ndCBhcHBseSB0byBXaW5kb3dzIHN5c3RlbXMgLSB0aGF0IGV4ZWMgaGFuZGxpbmcKICAgcHJvYmFibHkgbmVlZHMgdG8gYmUgbW92ZWQgdG8gJ3J1bl9leGVjX2NvbW1hbmQnIGFzIHdlbGwuCgoyMDA1LTEyLTA0IDE4OjAzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgYWRkIC1SIGZvciBkaXN0IGRpcgoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjQzICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0wNCAxNzoyNiAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjIzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGRpc3QgYW5kIHdpbjMyL2Rpc3QKCjIwMDUtMTItMDQgMTc6MTQgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZG8gZGlzdGNsZWFuIGJlZm9yZSBjb25maWd1cmUgaWYgTWFrZWZpbGUgZXhpc3RzCgoyMDA1LTEyLTA0IDE2OjQ5ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG5vdGUgdGhhdCBNYWtlZmlsZS50b3AgdXN1YWxseSBvbmx5IGNoYW5nZSBmb3IgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNS0xMi0wNCAxNjo0OCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTY6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIC1xIHRvIHVwZGF0ZSBzbyBwb3RlbnRpYWwgY2hhbmdlcyBkb24ndCBzY3JvbGwgb2ZmIHNjcmVlbgoKMjAwNS0xMi0wNCAxNjoyOSAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgZml4IHN5bnRheCBlcnJvcnMKCjIwMDUtMTItMDQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbG9nIHJjIHcvZXJyb3IgbXNnCgoyMDA1LTEyLTA0IDEzOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGxvZyBjb250YWluZXIgbmFtZSwgaWYgYXZhaWwsIGluIGxvZyBtc2cKCjIwMDUtMTItMDQgMTM6MzggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBhZGQgbG9nIGZpbGUgYXBwZW5kICgtQSkgb3B0aW9uCiAgIC0gcmVtb3ZlIExvZy9QcmludC9TeXNsb2cgZGlzdGluY3Rpb24KICAgLSBicmluZyBzdGFydHVwL3JlY29uZmlnIGxvZyBtZXNzYWdlIGluIGxpbmUgdy9zbm1wZAoKMjAwNS0xMi0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSBmaXggYnVnIDEyOTc4Nzg6IGhlYWRlcl9nZW5lcmljIGFuZCBoZWFkZXJfc2ltcGxlX3RhYmxlIHByb3RvdHlwZXMKICAgICAtIGV4dHJhIGhlYWRlciBsaXN0L2luc3RhbGwgdGFyZ2V0CiAgIC0gZ3JvdXAgcGVybCBpbnN0YWxsL3VuaW5zdGFsbCB0b2dldGhlcgoKMjAwNS0xMi0wNCAxMzoxOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBpbXBvcnRhbnQgbm90ZXMgZm9yIDUuMwoKMjAwNS0xMi0wNCAwOTo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTA0IDA5OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBmaXggYnVnICAxMzY1MTI4OiBzbm1wZCBxdWlldGx5IGRpZXMgb24gaHB1eCAxMS4xMQogICAgIC0gYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgLWxubQoKMjAwNS0xMi0wNCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSBhZGRpdGlvbmFsIGZpeCBmb3IgYnVnIDExMDM2NDQsIEZyZWVCU0QgbWVtb3J5IGxlYWsKICAgICAtIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgcm9qZXIgb24gaXJjCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jL21lbXNldAoKMjAwNS0xMi0wMiAxOToxMyAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgdXBkYXRlIHRvIDIwMDUxMDEwMDAwMFogdmVyc2lvbgoKMjAwNS0xMi0wMiAxODo0OCAgcnN0b3J5CgogICAqIG1pYnMvSVAtTUlCLnR4dDoKCiAgIC0gdXBkYXRlIGZyb20gZHJhZnQtaWV0Zi1pcHY2LXJmYzIwMTEtdXBkYXRlLTEwLnR4dCwgY3VycmVudGx5IGluIHRoZSBSRkMKICAgICBlZGl0b3IncyBxdWV1ZQoKMjAwNS0xMi0wMiAxNzo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYnVnIDEzMzc1MzQ6IFJlYWQgcHJvYmxlbSBvbiBzdHJlYW0gc29ja2V0cwogICAgIC0gcHJvcGVybHkgc2F2ZSBwYXJ0aWFsIHBhY2tldCB3aGljaCBpc24ndCBhdCBzdGFydCBvZiBidWZmZXIKCjIwMDUtMTItMDIgMTc6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJ1ZyAxMzcwODU2OiBpcCBhZGRyZXNzIGVuY29kaW5nIG9uIDY0Yml0CiAgICAgLSB1c2UgaW5ldF9hZGRyX3QgZm9yIGluZXQgYWRkcgoKMjAwNS0xMi0wMiAxNzowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gYnVnIDEzNzA4NTY6IGlwIGFkZHJlc3MgZW5jb2Rpbmcgb24gNjRiaXQKICAgICAtIHN5bmMgc25tcF9zZXRfdmFyX3ZhbHVlIHcvc25tcF9idWlsZF92YXJfb3A6IEFTTl9JUEFERFJFU1MgYXMgYSBzdHJpbmcKCjIwMDUtMTItMDIgMTM6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHVkcC1taWIuaCwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLmgKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGNvbmZpZ19yZXEgZmlsZXMKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIG9ubHkgcHJpbnQgcmFuZ2VzIGlmIHRoZXkgZXhpc3QKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICByZW1vdmUgZXh0cmEgOwoKMjAwNS0xMi0wMiAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS86IHVkcEVuZHBvaW50VGFibGUuYwosIHVkcEVuZHBvaW50VGFibGUuaCwgdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosIHVkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAyIDEzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLzogdGNwTGlzdGVuZXJUYWJsZS5jCiwgdGNwTGlzdGVuZXJUYWJsZS5oLCB0Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oCiwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLCB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDIgMTE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCdzIHdoZW4gZGVmaW5lZCB3aXRoIDY0Yml0IGxvbmcgdmFyaWFibGVzIGluIHRoZSBDNjQgc3RydWN0dXJlCgoyMDA1LTEyLTAyIDEwOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgVXNlICdjb3B5X253b3JkJyB0byB0b2tlbml6ZSBleHRlcm5hbCBjb21tYW5kcy4KICAgVGhpcyBtZWFucyB0aGF0IHF1b3RlZCBzdHJpbmdzIGFyZSBoYW5kbGVkIGluIHRoZSBuYXR1cmFsIG1hbm5lci4KCjIwMDUtMTItMDIgMTA6MzMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEl0IGhlbHBzIGlmIHlvdSBhY3R1YWxseSBjcmVhdGUgdGhlIG1hbiBwYWdlIGFzIHdlbGwsIERhdmUhCgoyMDA1LTEyLTAyIDA5OjU1ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkIG1hbnVhbCBwYWdlcwoKMjAwNS0xMi0wMiAwOTo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmludGVybmFsLjUuZGVmOgoKICAgVGVtcGxhdGUgZm9yIGRvY3VtZW50aW5nIGludGVybmFsIHNubXBkIGNvbmZpZyBkaXJlY3RpdmVzLgogICAoSSd2ZSBpZGVudGlmaWVkIGFuZCBsaXN0ZWQgdGhlIGRpcmVjdGl2ZXMgY29uY2VybmVkLAogICAgYnV0IGhhdmVuJ3QgcHJvdmlkZWQgYW55IGRlc2NyaXB0aW9ucyBvZiB3aGF0IHRoZXkgZG8hKQoKMjAwNS0xMi0wMiAwNTozNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIGluZXQ2LmMsCiAgICAgbWFpbi5jLCBtYWluLmgsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIEFsaWduIHdpdGggd2FybmluZyBmaXhlcyBmb3IgNS4yLjIKCjIwMDUtMTItMDIgMDU6MzMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHNubXB0cmFuc2xhdGUgLVRkIGRpc3BsYXkgb2YgVU5JVFMKCjIwMDUtMTItMDIgMDA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkZWQgbWZkLXBlcnNpc3RlbmNlLm0yaQoKMjAwNS0xMi0wMSAxNjo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTY6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNjowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvOgogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTU6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLCBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE1OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDExOjEzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyBhbmQgd29yZHNtaXRoaW5nLgoKMjAwNS0xMi0wMSAxMDo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBNb3ZlIHNubXBkLmNvbmYgZXhhbXBsZXMgaW50byBhIHNlcGFyYXRlIG1hbiBwYWdlLAogICBhbmQgZXhhbXBsZSB0aGUgcmFuZ2Ugb2YgZXhhbXBsZXMgcHJvdmlkZWQuCiAgIChOb3QgZmluaXNoZWQgeWV0LCBidXQgaXQncyBwcm9iYWJseSB3b3J0aCBzdWJtaXR0aW5nCiAgIHRoaXMgd2hpbGUgd2UncmUgc3RpbGwgaW4gcHJlLXJlbGVhc2UgbW9kZSkKCjIwMDUtMTItMDEgMTA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAwODowOSAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBEcm9wIGJvZ3VzICItcCIgcG9ydCBvcHRpb24gKGFuZCBhcHBseSBjb25zaXN0ZW50IGluZGVudGF0aW9uKS4KICAgU2hvdWxkIHRoZSBvdGhlciBjaGFuZ2VzIHN1Z2dlc3RlZCBpbiBidWcgIzEyNDcxNjQgYmUgYXBwbGllZCwgdG9vPwoKMjAwNS0xMi0wMSAwNzo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBEb24ndCBjcmFzaC1hbmQtYnVybiBvbiBTTk1QIGV4Y2VwdGlvbnMgKHNlZSBidWcgIzEyNzg4MDkpCgoyMDA1LTExLTMwIDE5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTg6NDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIFJld3JpdHRlbiBmcm9tIHNjcmF0Y2ggdG8gdmVyaWZ5IG5vQXV0aE5vUHJpdiwgYXV0aE5vUHJpdiAqYW5kKiBhdXRoUHJpdiBTTk1QdjMgdHJhcHMuIExldCdzIG5ldmVyIGJyZWFrIHRoaXMgYWdhaW4uCgoyMDA1LTExLTMwIDE4OjQ0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBjcmVhdGUgbm9BdXRoTm9Qcml2IHVzZXIKCjIwMDUtMTEtMzAgMTg6NDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgaW50cm9kdWNlICB0byBzcGVjaWZ5IHRoZSBlbmdpbmUgSUQgZm9yIGNyZWF0ZVVzZXIKCjIwMDUtMTEtMzAgMTc6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE3OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgaW5pdCB2YXIKCjIwMDUtMTEtMzAgMTY6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgZml4IGF1dG9tYXRpYyB1c2VyIGNyZWF0aW9uIGZvciBzZXNzaW9ucyB0aGF0IGhhdmUgcHJvYmluZyBvZmYgb3IgZGVsYXllZAoKMjAwNS0xMS0zMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9jb25zdGFudHMuaCwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9SRUFETUU6CgogICBhZGRlZCBhIFJFQURNRSBmaWxlIHRoYXQgaGFzIGJlZW4gc2l0dGluZyBpbiBteSBkaXJlY3RvcnkgdW4tY2hlY2tlZC1pbgoKMjAwNS0xMS0yOSAxODozNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICByZWZlciB0byBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSByYXRoZXIgdGhhbiAidGhlIHVjZC1zbm1wIGZ0cCBzaXRlIiBmb3IgaXBmd2NoYWlucwoKMjAwNS0xMS0yOSAxNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTI5IDE0OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICB0eXBvIGluIGxvZyBtc2cKCjIwMDUtMTEtMjUgMDk6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjBzbm1wbmV0c3RhdCwgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgdXNlIFNLSVAKCjIwMDUtMTEtMjUgMDU6MTIgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTYwc25tcG5ldHN0YXQsIFQyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIFNraXAgdGVzdHMgdGhhdCBhcmUga25vd24gdG8gZmFpbCB3aGVuIG5vdCBydW4gYXMgcm9vdC4KICAgKE1heSBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIG90aGVyIE8vUydzIGFzIHdlbGwpLgoKMjAwNS0xMS0yNCAxODoyNCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCB0eXBvIGFuZCBsYXlvdXQKCjIwMDUtMTEtMjQgMTg6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsIFQwNDlzbm1wdjNpbmZvcm1wcml2OgoKICAgZml4IHRlc3RzIHRvIHdvcmsgd2l0aCAtLWRpc2FibGUtcHJpdmFjeQoKMjAwNS0xMS0yMyAxOTo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMTEtMjMgMTk6MjIgIHRhbmRlcnMKCiAgICogTkVXUywgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgImNvbmZpZ3VyZSAtLWRpc2FibGUtYWdlbnQiIGZpbmFsbHkgd29yayAoZml4ZXMgYnVncyAxMDA2NDE1LCA5MDg1NzEpCgoyMDA1LTExLTIzIDA4OjE0ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgV2luMzI6IE1TVkMgYnVpbGQgZml4IGZvciBuZXRzbm1wbWlicy5kc3AKCjIwMDUtMTEtMjMgMDQ6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNb3ZlIG9wZW5pbmcgYnJhY2Ugb3V0IG9mIGFsdGVybmF0ZSAjaWZkZWYgY2xhdXNlcwogICAoY29uZnVzZXMgYnJhY2UtbWF0Y2hpbmcgZWRpdG9ycyEpCgoyMDA1LTExLTIyIDE2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgdXBkYXRlIGRlcHMgZm9yIGRlbGV0ZWQgZmlsZQoKMjAwNS0xMS0yMiAwNTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQmVlZiB1cCB0aGUgInJlbG9jYXRhYmxlIGV4ZWMiIHdhcm5pbmcgbWVzc2FnZS4KCjIwMDUtMTEtMjIgMDU6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgU2NoZWR1bGUgTUlCIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTIxIDIwOjQwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIHdpbjMyL2FnZW50X21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBhbmQgQ3lnd2luIGNvbXBpbGUgZml4ZXMKCjIwMDUtMTEtMjEgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaDoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXM7IHJlaW1wbGVtZW50ZWQgaW4gc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0xMS0yMSAwNjoyNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpc2UgdGhlIERpc01hbiBFdmVudC1NSUIgZG9jdW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmV3IGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMS0yMSAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBQcm9wZXJseSBkZXRlY3QgYWxsIHRocmVlIHN0eWxlcyBvZiBtb25pdG9yIGV4cHJlc3Npb24gYXV0b21hdGljYWxseS4KICAgKFRoaXMgbWFrZXMgdGhlICctdCcgb3B0aW9uIHJlZHVuZGFudCwgdGhvdWdoIGl0J3Mgc3RpbGwgYWNjZXB0ZWQpCgoyMDA1LTExLTIwIDE4OjUxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENIRUNLQU5ERElFKCkgc2hvdWxkIEVYUEVDVFJFU1VMVCAwCgoyMDA1LTExLTIwIDE4OjMwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgbWFrZSB0aGUgdGVzdCBhbHNvIEZBSUwgb24gIldyb25nIFR5cGUgKHNob3VsZCBiZSAuLi4pIgoKMjAwNS0xMS0yMCAxODoyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgQ0hFQ0tBTkRESUUoKSB0byBGQUlMIGlmIGEgcGF0dGVybiAqaXMqIGZvdW5kCgoyMDA1LTExLTIwIDE4OjAwICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgdXBkYXRlIExBU1QtVVBEQVRFRCBmaWVsZCB0byByZWZsZWN0IHJlY2VudCBjaGFuZ2VzCgoyMDA1LTExLTIwIDE3OjQ4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY2xhcmlmeSB0aGF0ICJob3N0IiBpcyBvbmx5IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiB0aGUgbWFqb3Igc3VwcG9ydGVkIHBsYXRmb3JtcwoKMjAwNS0xMS0yMCAxNzozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBkZXNjcmlwdGlvbiBmb3IgZW5naW5lSUQKCjIwMDUtMTEtMjAgMTc6MjcgIHRhbmRlcnMKCiAgICogTkVXUywgbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5vUGVyc2lzdGVudExvYWQgYW5kIG5vUGVyc2lzdGVudFNhdmUKCjIwMDUtMTEtMjAgMTY6MzAgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIC1xIG9uIGZpbmFsIGN2c3VwZGF0ZTsgYWRkIHNwYWNpbmcKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0yMCAxNjowNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE1OjU1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gcmVtb3ZlIGhvd3RvIG9uIGxpYnRvb2wgdmVyc2lvbmluZyBtYXRjaCByZWxlYXNlIG51bWJlcnMKICAgLSB1cGRhdGUgc3VnZ2VzdGVkIGNvbmZpZ3VyZSB0ZXN0IG9wdGlvbnMKCjIwMDUtMTEtMjAgMTU6MzggIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIGVuYWJsZS1pcHY2IGluc3RlYWQgb2Ygc3BlY2lmeWluZyB0cmFuc3BvcnRzCgoyMDA1LTExLTIwIDE1OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNTozNSAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgbWlzc2luZyA7CgoyMDA1LTExLTIwIDE0OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gYnVnIDEzNDc3MDk6IHNubXBkIGRvZXNudCBoYW5kbGUgbGFyZ2UgbG9nIGZpbGVzICg+PSAyR0IpIGdyYWNlZnVsbHkKICAgICAtIHBhcnRpYWwgZml4OiBvcGVuL3RydW5jYXRlIGxvZyBmaWxlcyBhdCBzdGFydHVwCgoyMDA1LTExLTIwIDE0OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXcgZHMgYm9vbGVhbiBmb3IgYXBwZW5kIGxvZ2ZpbGVzLCBpbnN0ZWFkIG9mIGxvY2FsIHZhcgoKMjAwNS0xMS0yMCAxNDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBuZXcgbGliIGJvb2xlYW4gZm9yIGFwcGVuZCBsb2dmaWxlcwoKMjAwNS0xMS0xOCAxNjo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIGNvdW50ZXJzIGluIHJlYWRfY29uZmlnX3JlYWRfbWVtb3J5CgoyMDA1LTExLTE4IDE0OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWxsb3cgc2Vzc2lvbiBwYXJhbXMgdG8gb3ZlcnJpZGUgZ2xvYmFsIGRlZmF1bHRzCgoyMDA1LTExLTE4IDEwOjUxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlzZSB0aGUgaW50cm9kdWN0aW9uIHRvIHNubXBkIGNvbmZpZyBmaWxlcy4KCjIwMDUtMTEtMTggMTA6MzYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIERpc01hbiBFdmVudCBNSUIgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTcgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgYWNjb3VudCBmb3IgcG9zc2libGUgTlVMTCB2YWx1ZSBmcm9tIGZ1bmN0aW9uCgoyMDA1LTExLTE3IDE3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgQ09ORklHVVJFX09QVElPTlMgaW4gcmVzdWx0cyBlbWFpbAoKMjAwNS0xMS0xNyAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBpZmRlZiBfX2FwbGhhLCBpZmRlZiBvdXQgb3B0aW1pemF0aW9uIGNhdXNpbmcgYWxwaGEtbGludXgxIHRvIHNlZ2ZhdWx0CgoyMDA1LTExLTE3IDE0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBtZW1vcnkvdm1zdGF0cyBmb3IgZnJlZWJzZDYKCjIwMDUtMTEtMTcgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBleHBsaWN0bHkgY29uZmlnIGlwdjYgdHJhbnNwb3J0czsgZW5hYmxlLWlwdjYgaW5zdGVhZAoKMjAwNS0xMS0xNyAxMjo0MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIHVzZSBzZW5kbWFpbCBvbiBmcmVlYnNkIHRvbwogICAtIGFkZCBFcnJvcnMtVG8gaGVhZGVyIHRvIG1haWwKICAgLSBlY2hvIHRvL3N1YmplY3QgdG8gc3Rkb3V0CgoyMDA1LTExLTE3IDExOjQ1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRyYXAgZGVzdGluYXRpb24gaGFuZGxpbmcuCgoyMDA1LTExLTE3IDExOjE2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1pbm9yIHdvcmRzbWl0aGluZyBhbmQgZm9ybWF0dGluZyBjb3JyZWN0aW9ucy4KCjIwMDUtMTEtMTcgMTE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBleGNsdWRlIGludGVyZmFjZSBnZXQvbmV4dCBwcm90b3R5cGVzIGlmIHVzaW5nIG1mZCByZXdyaXRlcwoKMjAwNS0xMS0xNyAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8gbWF0Y2ggcHJvdG90eXBlCgoyMDA1LTExLTE3IDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlOyBhZGQgQysrIGV4dGVybiB3cmFwcGVycwoKMjAwNS0xMS0xNyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBxdWl0ZSBjb21waWxlcjogYWRkIGhlYWRlcnMgZm9yIG1pc3NpbmcgcHJvdG90eXBlcwoKMjAwNS0xMS0xNyAxMDo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBzcGVjaWFsIGNhc2UgZm9yIG9wZW5ic2QgbWFpbAoKMjAwNS0xMS0xNyAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgQ2xhcmlmeSB0aGF0IHRoZSAiZXZlbnQtbWliLmgiIHdhcm5pbmcgKmlzKiBhIHdhcm5pbmcgcmF0aGVyIHRoYW4KICAgc2ltcGx5IGEgbm90ZSAod2hpY2ggd291bGQgYmVsb25nIGluIHRoZSBkb2N1bWVudGF0aW9uKQoKMjAwNS0xMS0xNiAxNjozNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV0YnNkIHdhbnRzIG5ldGluZXQvaXA2LmggYmVmb3JlIG5ldGluZXQ2L2luNl9wY2IuaAoKMjAwNS0xMS0xNiAxNjoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZGlzYWxsb3cgaXB2NiB0cmFuc3BvcnRzIGlmIGlwdjYgbm90IGVuYWJsZWQKCjIwMDUtMTEtMTYgMTU6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OiBleHBsaWNpdCBhcmd1bWVudCBjYXN0CgoyMDA1LTExLTE2IDE1OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEMrKyBjbGVhbnVwOiBkb24ndCB1c2UgbmV3IGFzIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTU6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMTEtMTYgMTU6MTggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKOgoKICAga2VlcCBjb21waWxlciBoYXBweTogZXhwbGljaXQgYXJndW1lbnQgY2FzdAoKMjAwNS0xMS0xNiAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKOgoKICAgbW92ZSBpbml0aWFsaXplX3RhYmxlX2lmWFRhYmxlIHByb3RvdHlwZSB0byBoZWFkZXIKCjIwMDUtMTEtMTYgMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIHByb3RvdHlwZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGludGVyZmFjZSBmdW5jdGlvbnMKCjIwMDUtMTEtMTYgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBDKysgZXh0ZXJuICJDIiB3cmFwcGVycwoKMjAwNS0xMS0xNiAxNTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGluY2x1ZGUgaGVhZGVyIHcvbmVlZGVkIHByb3RvdHlwZQoKMjAwNS0xMS0xNiAxNDo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBDKysgY2xlYW51cDogZG9uJ3QgdXNlIG5ldyBhcyB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBDKysgY2xlYW51cAogICAgIC0gZG9uJ3QgdXNlIF9fUCgpIChub3doZXJlIGVsc2UgaW4gdGhlIGNvZGUgdXNlcyBpdCkKICAgICAtIGRvbid0IHVzZSBuZXcgYXMgYSB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICAvLyAtPiAvKiAqLwoKMjAwNS0xMS0xNiAxMDo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmg6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBmb3IgTklfTUFYSE9TVCBpZiBtaXNzaW5nLgoKMjAwNS0xMS0xNiAxMDoxMCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jCiwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWU6CgogICBidWlsZCBmaXhlcyBmb3Igc29sZSAtLWRpc2FibGUtc25tcHYxICgqd2l0aG91dCogLS1kaXNhYmxlLXNubXB2MmMpCgoyMDA1LTExLTE2IDA4OjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIGJ1aWxkIGZpeCBmb3IgLS1kaXNhYmxlLXNubXB2MS8tLWRpc2FibGUtc25tcHYyYwoKMjAwNS0xMS0xNiAwNjoyMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYnVpbGQgZml4IGZvciAtLWRpc2FibGUtc25tcHYxLy0tZGlzYWJsZS1zbm1wdjJjCgoyMDA1LTExLTE2IDA1OjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEJldHRlciBsYXlvdXQgb2YgJ2luamVjdF9oYW5kbGVyJyBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNiAwNTowOSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBsb2FkIGF2ZXJhZ2UgYW5kIGZpbGUgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uLgogICAocGx1cyBhc3NvcnRlZCB0aWR5aW5nIHVwKS4KCjIwMDUtMTEtMTYgMDQ6NTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIGRpc2sgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBwcm9jZXNzIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgSG9zdCBSZXNvdXJjZXMgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgc3lzdGVtIGdyb3VwIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTE2IDA0OjU1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENvbnNvbGlkYXRlIHRoZSAic3lzdGVtIGluZm9ybWF0aW9uIiwgYW5kICJhZ2VudCBiZWhhdmlvdXIiIGNvbmZpZ3VyYXRpb24KICAgZGlyZWN0aXZlcyB0byBiZSBkb2N1bWVudGVkIHRvZ2V0aGVyIChhcyB0d28gZGlzdGluY3Qgc2VjdGlvbnMpLgoKMjAwNS0xMS0xNSAyMToxNCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdW5jb21tZW50IG91dCBjbGVhbnVwIGNvZGUKCjIwMDUtMTEtMTUgMjE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGV4dHJhIGVycm9yIGNoZWNraW5nIGZvciBmcmVlYnNkCgoyMDA1LTExLTE1IDIxOjA4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgcmVtb3ZlIGNwcCAjd2FybmluZyBsaW5lcwoKMjAwNS0xMS0xNSAyMTowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICAtIHVzZSBmaW5kIGZvdW5kIGJ5IGNvbmZpZ3VyZQogICAtIHR3ZWFrIGNvbW1lbnRjaGVjayByZWdleHAgdG8gbWlzcyByZWdleHAgaW4gcGVybCBoZWFkZXIKCjIwMDUtMTEtMTUgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgLSBzb2xhcmlzIGZpeGVzCiAgICAgLSBkb24ndCBzZXQgc29ydGVkIGZsYWcgZm9yIHNvbGFyaXMgKGRhdGEgb24gc2YgY2YgNS45IGlzIG5vdCBzb3J0ZWQpCiAgICAgLSByZXZlcnNlIGNvbmRpdGlvbiBvbiBpZGxlIHRlc3Qgc28gc29tZSBkYXRhIGdldHMgcmV0dXJuZWQKCjIwMDUtMTEtMTUgMTk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKOgoKICAgdXNlIHN0YXRlIGZyb20gYXJwIGVudHJ5IGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlCgoyMDA1LTExLTE1IDE5OjI0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZGVmYXVsdCByb3cgc3RhdHVzIHRvIGFjdGl2ZQoKMjAwNS0xMS0xNSAxOToyNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZDoKCiAgIGludHJvZHVjZSBzbm1wZCB0ZXN0IGZvciBleHRlbmQKCjIwMDUtMTEtMTUgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICAtIGRvbid0IGlnbm9yZSBpbmNvbXBsZXRlIGVudHJpZXMKICAgLSBzZXQgc3RhdGUgdG8gcmVhY2hhYmxlIGlmICEgaW5jb21wbGV0ZQoKMjAwNS0xMS0xNSAxOTowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTE1IDE4OjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHNvbWUgb3B0aW1pemF0aW9uCgoyMDA1LTExLTE1IDE4OjMyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGRvY3VtZW50IGRlZmF1bHQgcGluZyBpbnRlcnZhbAoKMjAwNS0xMS0xNSAxODoxMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNS0xMS0xNSAxNzo0NiAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWlub3IgdHdlYWtzCgoyMDA1LTExLTE1IDExOjM3ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHBpbmcsIHBvbmc7IHJlc3RvcmUgbmV0c25tcF9ydW5uaW5nIGNoYW5nZXMKCjIwMDUtMTEtMTUgMTA6NTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgQWdlbnRYIGNvbmZpZy4KCjIwMDUtMTEtMTUgMDk6MzUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgZGxtb2QsIHByb3h5IGFuZCBTTVVYIGRlc2NyaXB0aW9ucwogICAocGx1cyBhc3NvcnRlZCBtaW5vciB0d2Vha3MpCgoyMDA1LTExLTE1IDA1OjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgZGlzY3Vzc2lvbiBvZiBtaWIyYyBjb25maWdzLgoKMjAwNS0xMS0xNCAyMDoxOSAgYWxleF9iCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFdpbjMyOiAgc25tcG5ldHN0YXQgSVB2NiBidWlsZCBmaXhlcwoKMjAwNS0xMS0xNCAxOToxMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBXZSBmaW5hbGx5IGhhdmUgc25tcGQgZW1iZWRkZWQgcGVybCB0ZXN0aW5nLiBGZWVsIGZyZWUgdG8gcmV2aWV3L3NjcmVhbS9iYWNrIG91dCAtLSBvciBhcHBsYXVkLgoKMjAwNS0xMS0xNCAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgLSByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzCiAgIC0gYWRkIGFkZGl0aW9uYWwgZXJyb3IgaGFuZGxpbmcvbG9nZ2luZwogICAtIG1vcmUgY29tbWVudHMKICAgLSBkb3h5Z2VuIGRvY3MKCjIwMDUtMTEtMTQgMTg6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wU1RERG9tYWluLmMsIHNubXBsb2NhbHNtLmM6CgogICByZW1vdmUgQysrIHJlbGF0ZWQgY29tbWVudHMKCjIwMDUtMTEtMTQgMTc6NTkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBkb24ndCBtYW51YWwgdXBkYXRlIHRvIFNGIHNlcnZlcnMKCjIwMDUtMTEtMTQgMTc6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIHVuZGVmaW5lICBORVRTTk1QX1BBUkFOT0lEX0xFVkVMX0hJR0gsIGRvY3VtZW50IHdoYXQgaXQgZG9lcwogICAtIHVwZGF0ZSBsb2NrIGFzc2VydC93YXJuIGNhc2VzIGZvciBsb2NrIHBlciBjYWxsYmFjayBleHBlY3RhdGlvbnMKCjIwMDUtMTEtMTQgMTc6MjggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUKCjIwMDUtMTEtMTQgMTc6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBvdXQgaW5jbHVkZXMKCjIwMDUtMTEtMTQgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMS0xNCAxNzoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICByZW1vdmUgdGVtcG9yYXJ5IGNvbW1lbnRzCgoyMDA1LTExLTE0IDEzOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCBidWcgMTM1MjU1NDogU2VnIGZhdWx0IGluIG5ldHNubXBfY29udGFpbmVyX3RhYmxlX3Jvd19pbnNlcnQKCjIwMDUtMTEtMTQgMTM6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBtb3ZlIHJ1bm5pbmcgZmxhZyBiYWNrIGludG8gYXBwbGljYXRpb25zCiAgIC0gcmVzdG9yZSBpbmZpbml0ZSBsb29wIGluIGdldC1uZXh0IGxvb3AgaGFuZGxpbmcKCjIwMDUtMTEtMTQgMTE6MzIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBzbXV4c29ja2V0IGFuZCBlbmhhbmNlIEFnZW50WCoKCjIwMDUtMTEtMTQgMTA6NTQgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBmaXhlcyBhZnRlciByZXZpZXdpbmcgRGF2ZSdzIGNoYW5nZXMKCjIwMDUtMTEtMTQgMTA6NDMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgZW1iZWRkZWQgcGVybCBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNCAwNjozNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MsIGFuZCBzcGVjaWZ5IGEgbW9yZSBkZWZpbml0ZSBTRVQKICAgcHJvdG9jb2wgZm9yICdwYXNzX3BlcnNpc3QnIC0gY29tcGF0aWJsZSB3aXRoIHRoZQogICBjdXJyZW50IGJlaGF2aW91ciwgYnV0IG9wZW5pbmcgdGhlIGRvb3IgZm9yIG1vcmUKICAgZmxleGlibGUgaGFuZGxpbmcgaW4gdGhlIGZ1dHVyZS4KCjIwMDUtMTEtMTQgMDY6MjkgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgcGFzcy10aHJvdWdoIHN1cHBvcnQuCgoyMDA1LTExLTE0IDA2OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlICJleGVjIi8iZXh0ZW5kIiBkb2N1bWVudGlvbgoKMjAwNS0xMS0xNCAwNTo1NSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDb25zb2xpZGF0ZSBhbGwgdGhlIGV4dGVuc2lvbiBtZWNoYW5pc21zIHRvIGJlIGRvY3VtZW50ZWQgdG9nZXRoZXIuCgoyMDA1LTExLTE0IDA1OjUzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyB0aGUgQWNjZXNzIENvbnRyb2wgc2VjdGlvbiwgaW5jbHVkaW5nIHNlcGFyYXRpb24gaW50bwogICBkaXN0aW5jdCBzdWJzZWN0aW9ucy4KCjIwMDUtMTEtMTQgMDU6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgU2ltcGxlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBhdXRoKiBkaXJlY3RpdmVzLgoKMjAwNS0xMS0xNCAwNDo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTQgMDE6NTIgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY2hlY2sgZm9yIGdwZyBrZXkgaW5zdGVhZCBvZiB1c2VyaWQKCjIwMDUtMTEtMTQgMDE6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG9wdGlvbiB0byByZXBlYXQgZmFpbGVkIHN0ZXBzCgoyMDA1LTExLTE0IDAxOjQ0ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMTozNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIGFnZW50eCBzdWJhZ2VudCBjb25uZWN0IGFmdGVyIGNvbmZpZ3MgZml4CgoyMDA1LTExLTE0IDAxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0xNCAwMToyNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjE5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSB1bm5lZWRlZCByZXBvc2l0b3J5IHNwZWMKCjIwMDUtMTEtMTMgMjI6MTAgIGFsZXhfYgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBpbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICAtV2luMzI6IEFkZCBtaXNzaW5nIG1pYjJjLWRhdGEgdG8gaW5zdGFsbGVyCiAgIC1XaW4zMjogVXNlIHdpbGRjYXJkcyBpbiBpbnN0YWxsZXIgZm9yIGluc3RhbGxpbmcgZmlsZXMgdG8gaGVscCBwcmV2ZW50CiAgICBtaXNzaW5nIGZpbGVzLgoKMjAwNS0xMS0xMyAyMjowMCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG5ldyBuZXRzbm1wX3J1bm5pbmcgZ2xvYmFsIGluIGFnZW50IGxpYgogICAgIC0gdXNlZCBpbiBwbGFjZSBvZiB3aGlsZSgxKSBpbiBnZXQgbmV4dCBwcm9jZXNzaW5nIGxvb3AKICAgICAtIGRhZW1vbnMgdy9zaWdoYW5kbGVyIHVwZGF0ZWQgdG8gY2xlYXIgZmxhZyBvbiBzaWd0ZXJtCgoyMDA1LTExLTExIDIxOjU1ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgV2luMzI6ICBGaXggTklfTUFYSE9TVCBkZWZpbmUuCgoyMDA1LTExLTExIDIxOjExICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBXaW4zMjogV29yayBhcm91bmQgZm9yIGJ1ZyAxMjc4NzQzOiAgSWYgdHJ5aW5nIHRvIHJldmVyc2UgbG9va3VwCiAgIDEyNy4wLjAuMSwgcmV0dXJuICdsb2NhbGhvc3QnIHRvIHByZXZlbnQgV2luZG93cyBmcm9tIHJldHVybmluZyB0aGUKICAgbG9jYWwgY29tcHV0ZXIgbmFtZSBiZWNhdXNlIGl0IGlnbm9yZXMgdGhlIGhvc3RzIGZpbGUuCgoyMDA1LTExLTEwIDE5OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTEwIDE5OjE4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHN5bnRheCB0eXBvCgoyMDA1LTExLTEwIDE4OjU1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgY2xhcmlmeSB0aGF0IHRoaXMgdGVzdCByZXF1aXJlcyBhIHdvcmtpbmcgdWRwVGFibGUKCjIwMDUtMTEtMTAgMTg6MjIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oOgoKICAgYnVpbGQgZml4IGZvciBPcGVuQlNEL1NQQVJDIDMuNwoKMjAwNS0xMS0xMCAxNDozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcmsKICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscyB0byBzdWJhZ2VudF9pbml0CiAgICAgLSBkb24ndCBjb25uZWN0IHRvIG1hc3RlciBpbiBzdWJhZ2VudF9pbml0LCBpbnN0ZWFkIHJlZ2lzdGVyIFBPU1RfQ09ORklHCiAgICAgICBjYWxsYmFjayB0byBkbyBzbwoKMjAwNS0xMS0xMCAxNDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gZmluZXIgZ3JhaW5lZCBsb2NraW5nIG9mIGNhbGxiYWNrcyAocGVyIHN1YmlkKSwgYWxsb3dpbmcgYSBjYWxsYmFjayB0bwogICAgIG1hbmlwdWxhdGUgKHJlZy91bnJlZykgb3RoZXIgY2FsbGJhY2tzCiAgIC0gbW9yZSBkZWJ1Z2dpbmcKICAgLSBhZGQgc3RhdGljIGZsYWcgZm9yIGluaXQKICAgICAtIG1lbXNldCBhbmQgaW5pdCB2YXJpYWJsZXMgaW4gaW5pdF9jYWxsYmFjayBpZiBub3QgZG9uZSB5ZXQKICAgICAtIGNhbGwgaW5pdF9jYWxsYmFjaywgaWYgbmVlZGVkLCBmcm9tIGFsbCBmdW5jdGlvbnMKCjIwMDUtMTEtMTAgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIHJlc3RvcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKG5vIHN1YmFnZW50IGluaXQgaW4gaW5pdF9tYXN0ZXJfYWdlbnQoKSkKCjIwMDUtMTEtMTAgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrOgogICAgIHJlc3RvcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKGNhbGwgc3ViYWdlbnQgaW4gaW4gaW5pdF9hZ2VudCkKCjIwMDUtMTEtMTAgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50LW1pYi5oLAogICAgIG9sZC1ldmVudC1taWIuaDoKCiAgIFNwbGl0IG9yaWdpbmFsIGFuZCBuZXcgRXZlbnQgTUlCIGltcGxlbWVudGF0aW9ucyBpbnRvIGRpc3RpbmN0CiAgICJtb2R1bGUgZ3JvdXAiIGhlYWRlcnMsIGFuZCB1c2UgdGhlIG9yaWdpbmFsIG5hbWUgdG8gd2FybiBvZiB0aGUgY2hhbmdlcy4KCjIwMDUtMTEtMTAgMDU6MTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1JQiBtb2R1bGVzIHRvIGdlbmVyYXRlIGNvbmZpZ3VyZSB3YXJuaW5ncyBvciBlcnJvcnMKCjIwMDUtMTEtMTAgMDQ6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIFNpbGVuY2UgYSBjb3VwbGUgb2YgY29tcGlsZXIgd2FybmluZ3MKCjIwMDUtMTEtMTAgMDQ6NDUgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIERvbid0IGNob2tlIG9uIG1pc3NpbmcgaW50ZXJmYWNlcyAoYW5kIHNpbGVuY2UgYSBjb3VwbGUgb2YgY29tcGlsZXIgd2FybmluZ3MpCgoyMDA1LTExLTEwIDA0OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldC5jLCBpbmV0Ni5jOgoKICAgU3VwcHJlc3MgaGVhZGVycyBmb3IgZW1wdHkgVENQIGRpc3BsYXlzIChhbmQgZml4IGEgbWlub3IgdHlwbykKCjIwMDUtMTEtMDkgMjE6MzMgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgLVdpbjMyOiBGb3JjZSBFdmVudCBMb2csIFNDTSwgcmVnaXN0cnkgZXRjIHRvIHVzZSBsb25nCiAgICBuYW1lIGZvciBzZXJ2aWNlIChOZXQtU05NUCBBZ2VudCBpbnN0ZWFkIG9mIHNubXBkKS4gIE5lZWRlZAogICAgYmVjYXVzZSBvZiBuZXcgLW4gb3B0aW9uIGluIHNubXBkLiAgTm90ZTogIFRoZSBzbm1wZCAtbiBvcHRpb24KICAgIGRvZXMgbm90IGNoYW5nZSB0aGUgV2luZG93cyBzZXJ2aWNlIG5hbWUgZXRjLCBvbmx5IHRoZSBjb25maWcKICAgIGZpbGUgbG9hZGVkLgoKMjAwNS0xMS0wOSAxOTozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgIm1ha2UgdGVzdC1taWJzIiBzdGlsbCB3b24ndCB3b3JrIGlmIGJ1aWxkIGRpciAhPSBzb3VyY2UgZGlyLCBidXQgaXQncyBjbG9zZXIgbm93CgoyMDA1LTExLTA5IDE4OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogYWdlbnR4X2NvbmZpZy5oLCBzdWJhZ2VudC5oOgoKICAgYWdlbnR4IGluaXQgcmV3b3JrOiB1cGRhdGUgcHJvdG90eXBlcyBmb3IgcmVuYW1lZCBmdW5jdGlvbnMKCjIwMDUtMTEtMDkgMTg6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBkZWJ1ZyBtZXNzYWdlIHNob3VsZCBtYXRjaCBjb2RlCgoyMDA1LTExLTA5IDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGV4ZWN1dGFibGVzLCBtYWtlZmlsZXMsIHR4dCBmaWxlcywgc3ViYWdlbnQgZmlsZXMKCjIwMDUtMTEtMDkgMTc6MzEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGUKCjIwMDUtMTEtMDkgMTc6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHNwZWNpZmljIGVycm9yIHJlZ2V4cAoKMjAwNS0xMS0wOSAxNzoyNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZ2VudHggaW5pdCByZXdvcms6IHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VzCgoyMDA1LTExLTA5IDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gaWZkZWYgZW50aXJlIG1vZHVsZSBiYXNlZCBvbiB1c2luZyBhZ2VudHggc3ViYWdlbnQgbW9kdWxlCiAgICAgLSByZW5hbWUgaW5pdCBmdWNudGlvbiBzbyB3ZSBjYW4gY29udHJvbCB3aGVuIGl0IGlzIGNhbGxlZAogICAgIC0gcmVtb3ZlIHN1YmFnZW50X3ByZV9pbml0CiAgICAgICAtIGNvbmZpZyBzdHVmZiBtb3ZlZCBpbnRvIGFnZW50eF9jb25maWcuYwogICAgICAgLSBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQgbW92ZWQgdG8gc3ViYWdlbnRfaW5pdCwgbm93IHRoYXQgaXQncyBjYWxsZWQKICAgICAgICAgYWZ0ZXIgY29uZmlncyBoYXZlIGJlZW4gcmVhZAoKMjAwNS0xMS0wOSAxNzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAtIGNvbnNvbGlkYXRlIG1hc3RlciBhbmQgc3ViYWdlbnQgY29uZmlncyBpbiB0aGlzIGZpbGUKICAgICAtIHNsaWdodCBjb2RlIHJlLW9yZyAobm8gY2hhbmdlczsgbW92ZSBhZ2VudHggc29ja2V0IHBhcnNpbmcgdG8gdG9wKQogICAgIC0gcmVnaXN0ZXIgcGluZyBpbnRlcnZhbCBjb25maWcgYW5kIHNldCBkZWZhdWx0CiAgICAgLSByZW5hbWUgaW5pdCBmdW5jdGlvbiBzbyBjb25maWd1cmUgd29uJ3QgYWRkIGl0IHRvIG1vZHVsZXMgaW5pdHMsIHNvIHdlCiAgICAgICBjYW4gY2FsbCBpdCB3aGVuIHdlIHdhbnQgaXQgdG8gYmUgY2FsbGVkCgoyMDA1LTExLTA5IDE3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcms6IGluaXQgc3ViYWdlbnQgaW4gaW5pdF9tYXN0ZXJfYWdlbnQKICAgLSBhc3NlcnQgaWYgcm9sZSBpc24ndCBtYXN0ZXIgb3Igc3ViLWFnZW50CgoyMDA1LTExLTA5IDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gZG9uJ3QgaW5pdCBzdWJhZ2VudCBoZXJlIChjb25maWdzIGhhdmVuJ3QgYmVlbiByZWFkIHlldCkKICAgICAtIG9ubHkgaW5pdCBtYXN0ZXIvc3ViIGNvbmZpZ3MKCjIwMDUtMTEtMDkgMTc6MTIgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZSBmb3IgbmV3IHRhYmxlcwoKMjAwNS0xMS0wOCAwNzoyMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIG1haW4uYywgbmV0c3RhdC5oOgoKICAgSW1wbGVtZW50IE9wZW4vTmV0QlNELXN0eWxlIG9jdGV0IGludGVyZmFjZSBkaXNwbGF5LgoKMjAwNS0xMS0wOCAwNzoxNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgUmlnaHQtanVzdGlmeSBoZWFkaW5ncyBmb3IgY291bnRlciB2YWx1ZXMuCiAgIChsb29rcyBuZWF0ZXIgd2hlbiBpbmRpdmlkdWFsIHZhbHVlcyBiZWNvbWUgcmVsYXRpdmVseSB3aWRlKQoKMjAwNS0xMS0wOCAwNzowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgRml4IHByb2JsZW1zIHdhbGtpbmcgdGhlIElQdjYgY29ubmVjdGlvbiB0YWJsZXMuCgoyMDA1LTExLTA4IDA2OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIE9ubHkgc2NoZWR1bGUgYXV0b21hdGljIGxvYWRpbmcgb25jZSBmb3IgYW55IGdpdmVuIGNhY2hlLgoKMjAwNS0xMS0wNyAyMjo0NiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIENoYW5nZUxvZyBub3RlCgoyMDA1LTExLTA3IDIxOjQ1ICBhbGV4X2IKCiAgICogd2luMzIvOiBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBXaW4zMjogIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDA1LTExLTA3IDE5OjQ5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybDoKCiAgIGludHJvZHVjZSBlbWJlZGRlZCBwZXJsIHRlc3QgZm9yIHNubXB0cmFwZCAodG9vIGZhbmN5IHRvIHJlc2lzdCkKCjIwMDUtMTEtMDcgMTk6NDIgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIGZpeDogZnNzLT5mZnMKCjIwMDUtMTEtMDcgMTg6NTQgIHRhbmRlcnMKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMDcgMTg6MzQgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgZml4IHR5cG9zCgoyMDA1LTExLTA3IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGRyb3AgZGVmYXVsdCB0aW1lb3V0IGRvd24gdG8gSU5UX01BWCwgYW5kIGRvY3VtZW50IHdoeQoKMjAwNS0xMS0wNyAwOTozOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IE1ha2VmaWxlLmluLCBmZnMuYywgaWYuYywKICAgICBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIFR3ZWFrcyB0byBzdXBwb3J0IGJ1aWxkaW5nIHVuZGVyIFdpbmRvd3MKICAgICAoaW5jbHVkaW5nIHJlbmFtZWQgJ2ZmcygpJyByb3V0aW5lLCB0YWtlbiBmcm9tIE9wZW5CU0Qgc291cmNlIHRyZWUpCgoyMDA1LTExLTA3IDA2OjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBEaXNwbGF5IGludGVyZmFjZSBhZGRyZXNzaW5nIGluZm9ybWF0aW9uLgoKMjAwNS0xMS0wNyAwMTo1NyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0wNyAwMTo0MyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0wNyAwMToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGRvbid0IHRyeSB0byB1c2UgYWdlbnQgdmFyIGluIGJhc2UgbGliIChpdCB3YXMgbGF0ZSwgb2s/KQoKMjAwNS0xMS0wNyAwMDoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGJyZWFrIG91dCBvZiB3YWl0aW5nIGxvb3BzIGlmICEgcnVubmluZwoKMjAwNS0xMS0wNiAyMjozNCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiAgTW92ZSB1aW50MTZfdCBkZWZpbml0aW9uIHRvIHN0YXRpYyB3aW4zMiBuZXQtc25tcC1jb25maWcuaAoKMjAwNS0xMS0wNiAyMToyNyAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0xMS0wNSAxODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGJyZWFrIG91dCBvZiBnZXRuZXh0IGxvb3AgaWYgISBydW5uaW5nCgoyMDA1LTExLTA1IDE3OjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBvbmx5IHVzZSAidWxpbWl0IC12IiBpbiBiYXNoCgoyMDA1LTExLTA1IDE3OjQzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMDUgMTc6MjQgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRqdXN0IGVycm9yIHJlZ2V4OiBkb24ndCBmYWlsIG9uICZlbnRyeS0+c2NoZWRMYXN0RmFpbGVkLCAmZmFpbCBldGMuCgoyMDA1LTExLTA1IDE3OjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgLSBhbGxvdyBvdmVyLXJpZGUgb2YgTlNCXyhESVNUfEVYVFJBKV9NT0RVTEVTCiAgIC0gcmVtb3ZlIHRlc3RoYW5kbGVyIGZyb20gRVhUUkEgbW9kdWxlcyAoaGFuZ3Mgc25tcHdhbGspCiAgIC0gc2V0IFNOTVBfVE1QRElSX0JBU0UgKGZ1dHVyZSB1c2UpCgoyMDA1LTExLTA1IDE3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBJJ2xsIHRha2UgbXkgcG9ydCBudW1iZXJzIHVuc2lnbmVkLCBwbGVhc2UKCjIwMDUtMTEtMDUgMTY6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC90Y3BfdmFyLmgsIGlmIGF2YWlsYWJsZQoKMjAwNS0xMS0wNSAxNjozOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZGVsaWJlcmF0ZWx5IGlnbm9yZSB1bGltaXQgZmFpbHVyZXMKCjIwMDUtMTEtMDUgMTY6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIHJlbW92ZSBzeXMvc29ja2V0dmFyLmgsIHNpbmNlIG1pYklJX2NvbW1vbi5oIGFscmVhZHkgaGFzIGl0CgoyMDA1LTExLTA1IDE0OjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBzd2l0Y2ggZGlzbWFuIG1vZHVsZSBsaXN0IGJhY2sgdG8gZXZlbnQtbWliIChzdGlsbCB1c2VzIG5ldyBjb2RlKQogICAtIHJlbW92ZSBldmVudCBtaWIgY29uZmxpY3QgY2hlY2sgKGhhbmRsZWQgYnkgY29uZmlnX2V4Y2x1ZGVzKQoKMjAwNS0xMS0wNSAxNDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIC0gY2VudHJhbGl6ZSBldmVudCBtaWIgcmVxdWlyZXMgaW4gb3JpZ2luYWwgZXZlbnQtbWliLmgKICAgLSBkZWZhdWx0IHRvIHJlLXdyaXRlcwogICAtIHdoaWNoZXZlciBpbXBsZW1lbnRhdGlvbiBpcyBzZWxlY3RlZCwgY29uZmlnX2V4Y2x1ZGUgdGhlIG90aGVyCgoyMDA1LTExLTA1IDE0OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Lmg6CgogICAtIGNlbnRyYWxpemUgZXZlbnQgbWliIHJlcXVpcmVzIGluIG9yaWdpbmFsIGV2ZW50LW1pYi5oCgoyMDA1LTExLTA1IDEzOjE1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgZml4IG9wdFByb2Mgc2lnbmF0dXJlCgoyMDA1LTExLTA0IDE4OjQ2ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIEJ1aWxkIGZpeDogcHJvdGVjdCAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CgoyMDA1LTExLTA0IDEzOjA1ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlCgoyMDA1LTExLTA0IDEzOjA1ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0Lmg6CgogICBjaGVjayBpZiB3ZSBoYXZlIGhlYWRlciBiZWZvcmUgaW5jbHVkaW5nIGl0CgoyMDA1LTExLTA0IDExOjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogbWFpbi5jLCBuZXRzdGF0Lmg6CgogICBNb3ZlIHRoZSBvcHRpb24gZmxhZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaW50byBhIGNvZGUgZmlsZS4KCjIwMDUtMTEtMDQgMTE6NTEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFBvZXJ0YWJpbGl0eSBvZiAnc2luNl9sZW4nIGZpZWxkIGlzIHVuY2xlYXIKICAgKGFuZCBpdCBkb2Vzbid0IGltbWVkaWF0ZWx5IHNlZW0gdG8gYmUgbmVlZGVkKQoKMjAwNS0xMS0wNCAxMTo0NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oOgoKICAgYWRkIHZvaWQgdG8gZW1wdHkgcHJvdG90eXBlIHBhcmFtIGxpc3QKCjIwMDUtMTEtMDQgMDk6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRGV0ZWN0IChhbmQgcmVqZWN0KSB1c2Ugb2YgY29uZmxpY3RpbmcgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9ucy4KCjIwMDUtMTEtMDQgMDc6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBtYWluLmMsIG1haW4uaCwKICAgICBuZXRzdGF0Lmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQKCjIwMDUtMTEtMDQgMDc6MzEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgUGx1ZyBtaW5vciBtZW1vcnkgbGVhay4KCjIwMDUtMTEtMDMgMjA6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL3Blcmxfc25tcHRyYXBkLmg6CgogICB1cGRhdGUgLmggZnJvbSB0aGUgdHJhcGQuaCBmaWxlcwoKMjAwNS0xMS0wMyAxOTo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgbWFrZSBwZXJsIG9ubHkgcmVxdWlyZSB0aGUgZXhlY3V0ZSBiaXQKCjIwMDUtMTEtMDMgMTE6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGp1c3QgdG8gbmV3IHNubXBuZXRzdGF0IG9wdGlvbnMKCjIwMDUtMTEtMDMgMTE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBtYWluLmMsIHJvdXRlLmM6CgogICBFbnN1cmUgSVB2NiBjb2RlIGlzIG9taXR0ZWQgKHVudGlsIGl0IGNhbiBiZSBwcm9wZXJseSBwb3J0ZWQvdGVzdGVkKQoKMjAwNS0xMS0wMyAxMTo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBPbWl0IHJlZHVuZGVudCBkZWNsYXJhdGlvbnMuCgoyMDA1LTExLTAzIDExOjI4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFJlbW92ZSBjb2RlIGZvciBkZXRlcm1pbmluZyBSUEMgc2VydmljZSBuYW1lcwogICAobm90IHJlbGV2YW50L2FwcHJvcHJpYXRlIGZvciBTTk1QLWJhc2VkIHF1ZXJpZXMpCgoyMDA1LTExLTAzIDA4OjU4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2YgaG9zdC1zcGVjaWZpYyByb3V0ZXMsIGFuZCBkaXNwbGF5aW5nIGdhdGV3YXkvaG9zdCBuYW1lcy4KCjIwMDUtMTEtMDMgMDc6MjEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIHJvdXRlLmM6CgogICBSZS1pbXBsZW1lbnQgcm91dGluZyB0YWJsZSBkaXNwbGF5IChiYXNlZCBvbiBPcGVuQlNEIGNvZGUpCgoyMDA1LTExLTAzIDA3OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCByZXBlYXRlZCBpbnRlcmZhY2UgZGlzcGxheS4KCjIwMDUtMTEtMDIgMTY6MjEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBtb3ZlIGluY2x1ZGUgYWZ0ZXIgbmV0LXNubXAtaW5jbHVkZXMuaDsgZml4IGdsb2JhbCBzZXNzaW9uIG5hbWUKCjIwMDUtMTEtMDIgMTI6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4Lmg6CgogICByZW1vdmUgYm9ndXMgZXhwZXJpbWVudGFsIGNvbmZpZyBtYWNybwoKMjAwNS0xMS0wMiAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaDoKCiAgIGFkZCBtaXNzaW5nIHNlbWktY29sb24KCjIwMDUtMTEtMDIgMDk6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIG1haW4uYywKICAgICBtYWluLmgsIG5ldHN0YXQuaDoKCiAgIFByZWxpbWluYXJ5IHJlLWltcGxlbWVudGF0aW9uLCBiYXNlZCBvbiByZS1kaXN0cmlidXRhYmxlIE9wZW5CU0QgY29kZS4KICAgKE5vdGUgdGhhdCBpZi5jIGRyYXdzIGhlYXZpbHkgb24gdGhlIEZyZWVCU0QgaW50ZXJmYWNlIGRpc3BsYXkgYmVoYXZpb3VyLAogICAgd2hpY2ggaXMgc29tZXdoYXQgZGlmZmVyZW50IHRvIHRoZSBOZXQvT3BlbkJTRCBhcHByb2FjaCkKCjIwMDUtMTEtMDIgMDE6NTYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB3b3JkIHR3aWRkbGVzCgoyMDA1LTExLTAyIDAxOjUwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBmaXggZW1iZWRkZWQgcGVybCBhbmQgZW5zdXJlIGNvbXBpbGF0aW9uIGZhaWx1cmVzIGlmIHR1cm5lZCBvbiBidXQgZnVuY3Rpb25zIG1pc3NpbmcKCjIwMDUtMTEtMDEgMTU6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZG9uJ3QgYWRkIG5vdGlmeSBvYmplY3RzIHRvIHRoZSBzY2FsYXIgbGlzdAoKMjAwNS0xMS0wMSAwNDowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyB1bGltaXQKCjIwMDUtMTAtMzEgMDc6NDAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgVHJ1NjQgVW5peCA1LjEgYnVpbGQgZml4OiBtYWtlIHN1cmUgVUlOVDMyX01BWCBpcyBkZWZpbmVkCgoyMDA1LTEwLTMxIDA2OjExICB0YW5kZXJzCgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIGJhc2gKCjIwMDUtMTAtMzEgMDU6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBTb2xhcmlzIGJ1aWxkIGZpeDogaW5jbHVkZSBsaW1pdHMuaCBmb3IgW1VdTE9OR19NQVggYW5kIExPTkdfTUlOCgoyMDA1LTEwLTMxIDA0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEwLTMxIDA0OjI3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTAtMzEgMDQ6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEwLTMxIDA0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBwYXRjaGVzIGZyb20gYXBwbGUKCjIwMDUtMTAtMzEgMDQ6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIHBhdGNoZXMgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwNDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2RhcndpbjcuYywKICAgICBtZW1vcnlfZGFyd2luNy5oLCB2bXN0YXRfZGFyd2luNy5jLCB2bXN0YXRfZGFyd2luNy5oCjoKCiAgIG1lbW9yeS92bXN0YXRzIGNvZGUgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3ByaXZhdGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgZmlyc3QgcGFzcyBhdCB1ZHBFbmRwb2ludFRhYmxlCgoyMDA1LTEwLTMxIDAzOjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzZXQgY3B1IGFuZCBtZW1vcnkgbGltaXRzIHRvIHByZXZlbnQgbWFqb3IgZGFtYWdlLCBlc3BlY2lhbGx5IHNpbmNlIHdlIG5vdyBoYXZlIGEgZnVsbCBzbm1wd2FsayB0ZXN0CgoyMDA1LTEwLTMwIDIzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDA1LTEwLTMwIDIzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTEwLTMwIDIzOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBjYWxjdWxhdGUgcHJlZml4IG9pZCBhcyBuZWVkZWQKCjIwMDUtMTAtMzAgMjM6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZW1vdmUgcHJlZml4IG9pZDsgYWRkIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjM6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgcmVtb3ZlIHByZWZpeCBvaWQKCjIwMDUtMTAtMzAgMjM6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBnZXQgcmlkIG9mIHByZWZpeCBvaWQKICAgLSBhZGQgcHJlZml4IGxlbgogICAtIGFkZCBwcmVmaXggZnVuY3Rpb24gcHJvdG90eXBlcwoKMjAwNS0xMC0zMCAyMjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICAtIGRvbid0IHVzZSB0ZXN0IGNvcnJlY3QgZmxhZyBiaXQKICAgLSBhZGQgcHJlZml4IHV0aWxpdHkgcm91dGluZXMKCjIwMDUtMTAtMzAgMjI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgYWRkIGFjY2VzcyB0byBjb250YWluZXIKCjIwMDUtMTAtMzAgMjI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkbyBub3QgdXNlIGluaXQgZmxhZyB3aXRoIGxvYWQgcm91dGluZQoKMjAwNS0xMC0zMCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gcmVtb3ZlIGluZXQ2IGNvZGUsIHNpbmNlIHRoZXJlIHdlIGFyZW4ndCB1c2luZyBpcHY2IGlvY3RscwogICAtIGFkZCBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbW92ZSBkZXRhaWxlZCBjb25maWdfcmVxdWlyZSBtYWNyb3MgZG93biBhIGxldmVsCgoyMDA1LTEwLTMwIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIHVzZSBuZXcgdXRpbCBmdW5jIHRvIGNhbGN1bGF0ZSBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIyOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgb25seSBjaGVjayBkaXJ0eSBmbGFnIGZvciB3cml0YWJsZSB0YWJsZXMKCjIwMDUtMTAtMzAgMjI6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCBwYXNzIGF0IGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA1LTEwLTMwIDE1OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV3IG5ldHNubXBfY3ZhbHVlIHVuaW9uCgoyMDA1LTEwLTMwIDE1OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgc25tcGxpYi90ZXh0X3V0aWxzLmMKOgoKICAgbW9yZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnMKCjIwMDUtMTAtMzAgMTQ6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBuZXcgdXRpbCBmaWxlcwoKMjAwNS0xMC0zMCAxMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIHVuc29ydGVkIGZsYWcKCjIwMDUtMTAtMzAgMTM6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgLSBhZGQgY29tcGFyZSBmdW5jdGlvbiBwdHIgdG8gY29udGFpbmVyIHR5cGUgc3RydWN0CiAgIC0gc2V0IGNvbXBhcmUgZnVuYyBmcm9tIGNvbnRhaW5lciB0eXBlIHN0cnVjdAogICAtIHJlZ2lzdGVyIHNvbWUgc3RyaW5nIGNvbXBhcmUgYmFzZWQgYmluYXJ5IGFycmF5IHR5cGVzCgoyMDA1LTEwLTMwIDEzOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgLSBuZXcgY29udGFpbmVyIHJlZ2lzdGVyIHdpdGggY29tcGFyZSBwcm90b3R5cGUKICAgLSBhZGQgdW5zb3J0ZWQgY29udGFpbmVyIGZsYWcKICAgLSBmaXggY29udGFpbmVyIG9wdGlvbnMgbWFjcm9zCiAgICAgLSBhZGQgcmMgcGFyYW0KICAgICAtIG1pc3NpbmcgfQoKMjAwNS0xMC0yOSAxODoxMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgdGVzdCBjaGFuZ2UgYW5kIHVzYWdlIG9mIGxvY2FsaXplZCBrZXlzCgoyMDA1LTEwLTI5IDE3OjI5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIGludHJvZHVjZSBzbm1wdHJhcGQgdHJhcGhhbmRsZSB0ZXN0CgoyMDA1LTEwLTI5IDE1OjU4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgSW50cm9kdWNlIGZ1bGwgc25tcHdhbGsgdGVzdC4gTmVlZHMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgQ1BVIGN5Y2xlcywgYnV0IHdpbGwgY2F0Y2ggaW1wb3J0YW50IGlzc3VlcyBsaWtlIHdoZW4gYSBzaW1wbGUgd2FsayBjcmFzaGVzL2hhbmdzIHRoZSBhZ2VudC4KCjIwMDUtMTAtMjkgMDg6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGRhdGFfc2V0LmgsIGRlbGF5ZWRfaW5zdGFuY2UuaAosIGV4YW1wbGUuaCwgbmV0U25tcEhvc3RzVGFibGUuaCwKICAgICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaAosIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgsIG5vdGlmaWNhdGlvbi5oCiwgc2NhbGFyX2ludC5oLCB1Y2REZW1vUHVibGljLmg6CgogICBhZGQgbWlzc2luZyBoZWFkZXIgcHJvdGVjdCBhbmQvb3IgY3BsdXNwbHVzIGlmZGVmcwoKMjAwNS0xMC0yOSAwODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaDoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlciBmb3Igd2F0Y2hlZC5oCgoyMDA1LTEwLTI4IDIzOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgLSByZW1vdmUgZXh0cmEgOwogICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBtYWNybwoKMjAwNS0xMC0yOCAyMzozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgcmVkdWNlIHNjb3BlIG9mIGlvY3RsIHZlcnNpb24gY2hlY2tpbmcgdG8gdjQgb25seSAobm8gaXB2NiBpb2N0bHMpCgoyMDA1LTEwLTI4IDIzOjI3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAo6CgogICBjb3JyZWN0IGN1dC1uLXBhc3RlIGVycm9yIGluIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAyMzoyNiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgeWFuayBtb3JlIGNvZGUgd2hpY2ggaXMgdW51c2VkIGR1ZSB0byBjb250YWluZXIgc2hhcmluZwoKMjAwNS0xMC0yOCAyMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKOgoKICAgdXBkYXRlIGZvciBjaGFuZ2VkIGlmZW50cnkgdmFyIG5hbWVzCgoyMDA1LTEwLTI4IDIzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYwo6CgogICBza2lwIHZhcnMgdGhhdCBkbyBub3QgaGF2ZSBpZmVudHJ5IGZsYWcgc2V0CgoyMDA1LTEwLTI4IDIzOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBhZGQgbWlzc2luZyBmbGFncyBwYXJhbSB0byBhcmNoIGNvbnRhaW5lciBsb2FkCiAgIC0gc3VwcG9ydCBmb3IgaXB2KDR8Nikgb25seSBsb2FkIGZsYWcKICAgLSB0cnkgdG8gbG9hZCBpcHY2IGV2ZW4gaWYgaXB2NCBmYWlscwoKMjAwNS0xMC0yOCAyMzoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBwYXNzIGNvcnJlY3QgZmxhZ3MgdG8gY29udGFpbmVyIGluaXQgZHVyaW5nIGxvYWQKCjIwMDUtMTAtMjggMjM6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICB0d2Vha3MgYW5kIHN1cHBvcnQgZm9yIGlwdjZJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAyMzoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBuZXcgbG9hZCBmbGFncwoKMjAwNS0xMC0yOCAyMzoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaW5zZXJ0IGZpbHRlcmluZwoKMjAwNS0xMC0yOCAyMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSByZWR1Y2UgZGVwZW5kZW5jeSBsaXN0IG9uIHNubXBfdmFycy5sbyB0byBhZ2VudF9tb2R1bGVfbGlzdF9oCiAgIC0gYWRkIG1pYl9tb2R1bGVfbGlzdF9oIGFzIGRlcCBmb3IgbWliX21vZHVsZXMubG8KICAgLSBkb2N1bWVudCB3aHkgcmVhZF9jb25mLmxvIGRlcHMgYXJlIGhlcmUgYW5kIG5vdCBpbiBzbm1wbGliL01ha2VmaWxlLmluCgoyMDA1LTEwLTI4IDIzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS86IGlwdjZJbnRlcmZhY2VUYWJsZS5jCiwgaXB2NkludGVyZmFjZVRhYmxlLmgsIGlwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaAosIGlwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbXBsZW1lbnQgaXB2NkludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDIzOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIHNodXRkb3duIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAxODozOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBwb3J0YWJsZSB3YXkgb2YgZXhwb3J0aW5nIFNOTVBDT05GUEFUSAoKMjAwNS0xMC0yOCAxNzoyOCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgbG9naWMgY2hhbmdlIG9uIGdldEtzdGF0SW50CgoyMDA1LTEwLTI4IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVtb3ZlIDsgZnJvbSBjb25maWdfcmVxdWlyZSBtYWNyb3MKCjIwMDUtMTAtMjggMTU6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICAtIG1vdmUgbG9jYWwgaW5jbHVkZSB3aXRoIG90aGVyIGxvY2FsIGluY2x1ZGVzCiAgIC0gaWZkZWYgcHJvcHR5cGVzIHRoYXQgd29uJ3QgYmUgZGVmaW5lZCBmb3IgTk9BUkNIIGNhc2UKCjIwMDUtMTAtMjggMTU6NDAgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIGZvcmdvdCB0aGUgaW5jbHVkZSBmb3Igc29tZSBuZXRzbm1wX2FyY2hfaW50ZXJmYWNlIHN0dWZmCgoyMDA1LTEwLTI4IDE0OjQ5ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIHlvdSBjYW4ndCBub3QgZGVjbGFyZSBIUk5faW5kZXggZm9yIHNvbGFyaXMgdGhlbiBleHBlY3QgaXQgdG8gcmV0dXJuIGEgZmV3IGxpbmVzIGxhdGVyCgoyMDA1LTEwLTI4IDE0OjIwICBic2hhdzY2NgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgaXQncyB1aW50MTZfdCBub3QgdV9pbnQxNl90CgoyMDA1LTEwLTI4IDEyOjU1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgdXBkYXRlIG9uIC1DRSBhbmQgLUNrCgoyMDA1LTEwLTI4IDEyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgcmVtb3ZlIGFjY2lkZW50YWwgY2hlY2tpbiBvZiB1bmltcGxlbWVudGVkIGNvbmZpZyBtYWNybwoKMjAwNS0xMC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI4IDEyOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIG5ldyBhcmd1bWVudCB0byB0dXJuIG9uIGRlYnVnIGR1cmluZyBtaWIgbW9kdWxlIHByb2Nlc3NpbmcKCjIwMDUtMTAtMjggMTI6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICByZXF1aXJlIG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI4IDEyOjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSByZW5hbWUvcmV2YW1wIGludGVyZmFjZSBjb3VudCBmdW5jdGlvbgogICAgIC0gYWxsb2NhdGUgbG9jYWwgaWZjb25mIGlmIGNhbGxlZCBkaWRuJ3QgcGFzcyBvbgogICAgIC0gZG9jdW1lbnQgdGhhdCBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRoYXQgY2FsbGVyIG11c3QgcmVsZWFzZSBpZgogICAgICAgdGhleSBwYXNzIGluIHRoZWlyIG93biBpZmNvbmYgcG9pbnRlcgoKMjAwNS0xMC0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgLSByZW1vdmUgJzsnIGZvcm0gY29uZmlnXyogbWFjcm9zCiAgIC0gY29uZmlnX3JlcXVpcmUgaWZUYWJsZSwgaW5jbHVkZSBpZlRhYmxlIGhlYWRlcgoKMjAwNS0xMC0yOCAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgY2FsbCBpZlRhYmxlIGluaXQgdG8gbWFuYWdlIGlmWFRhYmxlIGluaXQKCjIwMDUtMTAtMjggMTI6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGFkZCBjYWxscyB0byBpcHYoNHw2KSBpbnRlcmZhY2UgdGFibGVzIHdoZW4gdXBkYXRpbmcgcm93cwogICAtIGNvcnJlY3QgaWZUYWJsZUxhc3RDaGFuZ2UgYmVoYXZpb3VyIHRvIGNvbXBseSB3aXRoIG9iamVjdCBkZWZpbml0aW9uCiAgIC0gY2xhcmlmeSBzb21lIGNvbW1lbnRzCiAgIC0gYWRkIGFzc2VydCB0byBub3RpZnkgdXMgd2hlbi9pZiBhbmQgb3MgdHJhY2tzIGxhc3QgY2hhbmdlZCBvbiBpdCdzIG93bgoKMjAwNS0xMC0yOCAxMjowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZml4IGNvbmZpZ19yZXF1aXJlIG1hY3JvcwogICAtIGFkZCByZXF1aXJlIGZvciBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UKICAgLSByZW1vdmUgbGFzdCBjaGFuZ2UgZnJvbSBkYXRhIGNvbnRleHQsIHVzZSBpZmVudHJ5IHZlcnNpb24gaW5zdGVhZAoKMjAwNS0xMC0yOCAxMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gbWFrZSBpbml0X2lmVGFibGUgdGhlIGNvbW1vbiBpbml0IGZ1bmN0aW9uIGZvciBpbnRlcmZhY2UgbW9kdWxlcwogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzCiAgICAgLSBwcm9wZXIgaW5pdCBmdW5jdGlvbiBjYWxscyBmb3IgaXB2KDR8NilJbnRlcmZhY2VUYWJsZS9pZlhUYWJsZQoKMjAwNS0xMC0yOCAxMTo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbW92ZSBzdGF0cyBwYXJzaW5nIHRvIGl0J3Mgb3duIGZ1bmN0aW9uCiAgIC0gc3VwcG9ydCBuZXcgbG9hZCBmbGFnczogaXB2NCBvbmx5LCBubyBzdGF0cwogICAtIGFkZCAoaGFyZGNvZGVkIHJlYXNtX21heCkKICAgLSBnZXQgYXJwIHJldHJhbnNtaXQgdGltZSBmcm9tIC9wcm9jCgoyMDA1LTEwLTI4IDExOjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oOgoKICAgYWRkIGNvbmZpZ19yZXF1aXJlIG9mIGRhdGFfYWNjZXNzL2lwYWRkcmVzcwoKMjAwNS0xMC0yOCAxMTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBjaGVjayBhbiBpbnRlcmZhY2UgZm9yIGlwdig0fDYpIGlwIGFkZHJlc3NlcwoKMjAwNS0xMC0yOCAxMTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGFkZCB3YXJuaW5ncyB0byB1cGRhdGUgZnVuY3Rpb25zIHdoZW4gYWRkaW5nL2RlbGV0aW5nIHN0dWN0IG1lbWJlcnMKICAgLSBtYWtlIGZsYWdzIGZpZWxkIHVuc2lnbmVkCiAgIC0gdW5zaWduZWQgaW50IC0+IHVfaW50CiAgIC0gYWRkIGZpZWxkcyBmb3IgaXB2NEludGVyZmFjZVRhYmxlCiAgIC0gZml4IG9zX2ZsYWdzIGNvbW1lbnQKICAgLSBuZXcgbnNfZmxhZ3MgZGVmaW5lcyBmb3IgaXB2KDR8NilJbnRlcmZhY2VUYWJsZQogICAtIG5ldyBsb2FkIGZsYWdzIGRlZmluZXMKCjIwMDUtMTAtMjggMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgcmVuYW1lIHRvIGludGVyZmFjZS5jCgoyMDA1LTEwLTI4IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgcmVuYW1lIGludGVyZmFjZV9jb21tb24uYyB0byBpbnRlcmZhY2UuYyB0byBlYXN5IGNvbmZpZ3VyZSBwcm9jZXNzaW5nCgoyMDA1LTEwLTI4IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gcmV2ZXJ0IHRvIHByZXZpb3VzIGJlaGF2aW9yIG9mIGlmRGVzY3IgPSBpbnRlcmZhY2UgbmFtZQogICAtIGFkZCBuZXcvbWlzc2luZyBzdHJ1Y3R1cmUgbWVtYmVycyB0byBpbnRlcmZhY2UgY29weSByb3V0aW5lCiAgIC0gcmVuYW1lIGluaXQgZnVuY3Rpb24gZm9yIHBlbmRpbmcgZmlsZSByZW5hbWUKCjIwMDUtMTAtMjggMTE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS5oCiwgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCBpcC1taWIvaXBfc2NhbGFycy5oCiwgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAosIHRjcC1taWIvdGNwQ29ublRhYmxlLmgsIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLmgKLCB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oOgoKICAgLSBtb3N0bHkgcmVtb3ZpbmcgZXh0cmFuZW91cyAnOycgb24gY29uZmlnXyogbWFjcm9zCiAgIC0gYSBmZXcgdHdlYWsgY29uZmlnXyogbWFjcm9zCgoyMDA1LTEwLTI4IDExOjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjggMTE6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGNoZWNrIGZvciBwcm9ncmFtICdmaW5kJwogICAtIG9ubHkgYWRkIGhlYWRlciB0byAoYWdlbnR8bWliKV9tb2R1bGVfaW5jbHVkZXMuaCBpZiBpbml0L3NodXRkb3duIGZvdW5kCgoyMDA1LTEwLTI4IDEwOjI2ICB0YW5kZXJzCgogICAqIGRpc3QvOiBSRUFETUUuYnVpbGQtc2NyaXB0cywgbnNiLW5pZ2h0bHksCiAgICAgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwbwoKMjAwNS0xMC0yOCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvOiBpcHY0SW50ZXJmYWNlVGFibGUuYwosIGlwdjRJbnRlcmZhY2VUYWJsZS5oLCBpcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgKLCBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jOgoKICAgaW1wbGVtZW50IGlwdjRJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAwODoxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIG1ha2Ugc3VyZSBzbm1wbmV0c3RhdCBjYW4gYmUgZXhlY3V0ZWQ7IHNraXAgb3RoZXJ3aXNlCgoyMDA1LTEwLTI3IDA1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliLzogZ2V0b3B0LmMsIHN0cnRvbC5jLCBzdHJ0b3VsLmM6CgogICBSZW1vdmUgVUNCIGFkdmVydGlzaW5nIGNsYXVzZSAocmVzY2luZGVkIDIyIEp1bHkgMTk5OSkKCjIwMDUtMTAtMjcgMDU6MzggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIFVwZGF0ZSBCU0QgY29weXJpZ2h0IGxpY2Vuc2Ugd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uLgoKMjAwNS0xMC0yNiAxODo1NCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkZCBzaW1wbGUgdGVzdCBmb3Igc25tcG5ldHN0YXQgdG8gdmVyaWZ5IHRoZSB1cGNvbWluZyByZXdyaXRlCgoyMDA1LTEwLTI2IDE4OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIHNraXAgb24gRElTQUJMRV9TRVRfU1VQUE9SVAoKMjAwNS0xMC0yNiAxNzo0NyAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBkb2N1bWVudCBnZW5lcmljIC0tPG5hbWU+PTx2YWx1ZT4gY29tbWFuZC1saW5lIG9wdGlvbgoKMjAwNS0xMC0yNiAxNzoyMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZG9jdW1lbnQgZ2VuZXJpYyAtLTxuYW1lPj08dmFsdWU+IGNvbW1hbmQtbGluZSBvcHRpb24KCjIwMDUtMTAtMjYgMTM6MTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBhbGxvd3MgdG8gdXNlIG9sZCBhbmQvb3IgbmV3IGxvY2FsaXplZCBrZXkgaW5zdGVhZCBvZiBwYXNzLXBocmFzZSB3aXRoIC1DawoKMjAwNS0xMC0yNiAxMjoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtYWpvciByZXdyaXRlOiBhZGRzIG1vcmUgdGVzdHMgYW5kIHVzZXMgbmV3IFN2M3VzbWNvbmZpZyoKCjIwMDUtMTAtMjYgMTI6MjMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgZml4IHNvbWUgdmFyaWFibGUgbmFtZXMKCjIwMDUtMTAtMjYgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICByZW1vdmUgcGF0Y2ggZmx1YgoKMjAwNS0xMC0yNiAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBFeHRyYSBkZWJ1Z2dpbmcgdG8gaGVscCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpZmZlcmVudCBjYWNoZSB0aW1lcnMuCgoyMDA1LTEwLTI2IDA3OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIFNsaWdodCByZXRoaW5rIGFib3V0IGhvdyB0byBoYW5kbGUgdGhlIHJlbW92YWwgb2YgYSBNSUIgcmVnaXN0cmF0aW9uLgogICAoVGhpcyBpcyBkZWZpbml0ZWx5IG9uZSBmb3IgNS40LCBtZXRoaW5rcyEpCgoyMDA1LTEwLTI2IDA2OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBnZW5lcmljIHRhYmxlIEFQSSByb3V0aW5lIG5hbWVzLgoKMjAwNS0xMC0yNiAwNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIEJyaW5nICd0ZGF0YScgcm91dGluZSBuYW1lcyBpbnRvIGxpbmUgd2l0aCB0aGUgcHJvcG9zZWQgdGFibGUgQVBJCgoyMDA1LTEwLTI2IDA2OjIwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgZml4IGNvbXBpbGUgZXJyb3IgZHVlIHRvIHdyb25nIGhwdXgxMSB0ZXN0CgoyMDA1LTEwLTI2IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIE1vdmUgcmVnaXN0cmF0aW9uIG9mIHN0YW5kYXJkIHZpZXdzIHNvIHRoYXQgdGhleSdyZSBwaWNrZWQgdXAKICAgYnkgYm90aCBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyIGluaXRpYWxpc2F0aW9uLgogICBDbGFyaWZ5IHdoaWNoIGluaXRpYWxpc2F0aW9uIHJvdXRpbmVzIGFyZSBjYWxsZWQgYnkgd2hpY2ggYXBwcy4KCjIwMDUtMTAtMjUgMTk6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBhcyBzdWdnZXN0ZWQgYnkgRGF2ZSB0byBnZXQgc25tcHRyYXBkIHdvcmtpbmcgYWdhaW4KCjIwMDUtMTAtMjUgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgLSBuYXJyb3cgc2NvcGUgb2YgYXNzZXJ0IHRlc3QKICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMDUtMTAtMjUgMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yNSAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB0ZXN0cyBmb3IgZW1wdHkgdmFyIGNhc2UKCjIwMDUtMTAtMjUgMTI6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLi4uIGFuZCBzYXkgc28uCgoyMDA1LTEwLTI1IDEyOjQwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybToKCiAgIGNsYXJpZnkgYXMgYmVpbmcgYSBub0F1dGhOb1ByaXYgdGVzdAoKMjAwNS0xMC0yNSAxMTo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBPcGVuQlNEIDMuNCAicHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nOiBzeXMvc3dhcC5oIG5lZWRzIHN5cy9wYXJhbS5oIGZvciBNQVhQQVRITEVOCgoyMDA1LTEwLTI1IDExOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIE1GRF9SRVdSSVRFIGRlZmluZSB0ZXN0cwoKMjAwNS0xMC0yNSAxMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gY29tbWVudCBmb3JtYXR0aW5nCiAgIC0gY29uZmlnX2V4Y2x1ZGUgaWYtbWliL2lmVGFibGUvaWZUYWJsZQoKMjAwNS0xMC0yNSAxMTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGFkZCBJVEVSQVRPUl9SRUxFQVNFIG1hY3JvCgoyMDA1LTEwLTI1IDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX2NvbmYuaDoKCiAgIEFsdGVybmF0aXZlIHZpZXd0eXBlLWJhc2VkIGFjY2VzcyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSAoImF1dGhhY2Nlc3MiKS4KICAgU2ltaWxhciB0byAic2V0YWNjZXNzIiwgYnV0IGNsb3NlciBpbiBmZWVsIHRvIHRoZSBvdGhlciBhdXRoKiBkaXJlY3RpdmVzLgogICBUaGlzIGFsc28gYWxsb3dzIHRoZSBzZWN1cml0eSBtb2RlbCwgbGV2ZWwgYW5kIGNvbnRleHQgaW5mb3JtYXRpb24gdG8gYmUKICAgb21pdHRlZCAoZGVmYXVsdGluZyB0byBzZW5zaWJsZSB2YWx1ZXMpLgoKMjAwNS0xMC0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBcmdnZ2hoaGghISEgIElmIHlvdSd2ZSBnb3QgY29kZSB0aGF0IHdvcmtzLCBkb24ndCBjaGFuZ2UgaXQgYmVmb3JlIGNvbW1pdHRpbmcgaXQuCiAgIElmIHlvdSAqbXVzdCogY2hhbmdlIGl0LCB0aGVuIGF0IGxlYXN0IGhhdmUgdGhlIGd1bXB0aW9uIHRvIHRlc3QgaXQgYWdhaW4gZmlyc3QhCiAgIDxoZWF2eSBzaWdoPgoKMjAwNS0xMC0yNSAwODowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBUZWxsIHlvdSB3aGF0LCBEYXZlLiAgV2h5IGRvbid0IHlvdSB0cnkgY29tbWl0dGluZyB0aGUgY29kZSBmb3IgdGhlCiAgICJhdXRoZ3JvdXAiIGRpcmVjdGl2ZSAtIHJhdGhlciB0aGFuIGp1c3QgdGhlIGhlYWRlciBmaWxlPwogICA8c2lnaD4KICAgWW91IGp1c3QgY2FuJ3QgZ2V0IHRoZSBzdGFmZiB0aGVzZSBkYXlzLgoKMjAwNS0xMC0yNSAwNzo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmg6CgogICBEaXJlY3RpdmUgdG8gc3VwcG9ydCB2aWV3dHlwZS1iYXNlZCBjb25maWd1cmF0aW9uIG9mIGdyb3VwcyAoImF1dGhncm91cCIpCgoyMDA1LTEwLTI1IDA3OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFsbG93IGNvbW11bml0eS1iYXNlZCBkaXJlY3RpdmVzIChhdXRoY29tbXVuaXR5LCBldGMpIHRvIHNwZWNpZnkKICAgYSBwYXJ0aWN1bGFyIFNOTVAgdmVyc2lvbiAodjEtb25seSBvciB2MmMtb25seSkKCjIwMDUtMTAtMjUgMDc6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCBzaW1wbGUgYWNjZXNzIGRpcmVjdGl2ZXMgY29uZmlndXJlZCB3aXRoIG5hbWVkIHZpZXdzICgtVikKICAgYXMgd2VsbCBhcyBPSUQgc3VidHJlZXMuCgoyMDA1LTEwLTI1IDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX2NvbmYuaDoKCiAgIERlZmluZSAic3RhbmRhcmQiIHZpZXdzIChhbGwgb3Igbm90aGluZykKCjIwMDUtMTAtMjUgMDc6MzkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXb3JrIHdpdGggdGhlIGFjdGl2ZSByb290IG9mIHRoZSBNSUIgdHJlZSAocmF0aGVyIHRoYW4gdGhlIGJhY2t3YXJkCiAgIGNvbXBhdGliaWxpdHkgdmVyc2lvbikuICBUaGlzIGFsbG93cyAncmVhZF9vYmppZCcgdG8gd29yayBjb3JyZWN0bHkKICAgKHdpdGggbnVtZXJpYyBPSURzKSBiZWZvcmUgdGhlIE1JQiBmaWxlcyBhcmUgbG9hZGVkLgoKMjAwNS0xMC0yNCAxOTozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgcmV3b3JrZWQgdG8gdXNlIG5ldyBTdjN1c21jb25maWcqIGZyYW1ld29yawoKMjAwNS0xMC0yNCAxOTozMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2CjoKCiAgIFNOTVB2MyBhdXRoTm9Qcml2L2F1dGhQcml2IElORk9STSB0ZXN0cyBiYXNlZCBvbiBuZXcgU3YzdXNtY29uZmlnKgoKMjAwNS0xMC0yNCAxOToyNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2M3VzbWNvbmZpZ2Jhc2UsCiAgICAgU3YzdXNtY29uZmlndHJhcGQ6CgogICByZXdyaXR0ZW4gU05NUHYzIFVTTSBjb25maWc6IGJhc2ljLCBhZ2VudCwgdHJhcGQKCjIwMDUtMTAtMjQgMTk6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgRml4IGZvciBjb21waWxhdGlvbiBpc3N1ZXM6CiAgICAgLSByZWFycmFuZ2UgZnVuY3Rpb24gb3JkZXIgdG8gZ2V0IHByb3BlciBwcm90b3R5cGUgb3JkZXJpbmcgd2l0aG91dAogICAgICAgcHJvdG90eXBlcy4KICAgICAtIFJlbW92ZWQgZGF0YSB0eXBlIGZvciBhIHZhcmlhYmxlIG5hbWUgdGhhdCB3YXMgZ2V0dGluZyBwYXNzZWQgaW4KICAgICAgIGFzIHdlbGwuCgoyMDA1LTEwLTI0IDE4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIHVzZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCBpbnN0ZWFkIG9mIEludGVyZmFjZV9JbmRleF9CeV9OYW1lCgoyMDA1LTEwLTI0IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHJlbW92ZSBNRkRfUkVXUklURSBjaGVjaywgdXNlIFVTSU5HX01JQklJX0lOVEVSRkFDRVNfTU9EVUxFIGluc3RlYWQKCjIwMDUtMTAtMjQgMTg6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBjb25maWdfZXhjbHVkZSBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDE4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gcmVxdWlyZSBuZXcgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKICAgLSByZW1vdmUgTUZEX1JFV1JJVEUgY2hlY2sKICAgLSBjb25zb2xpZGF0ZSBsaW51eCByZXF1aXJlcyB0byBvbmUgbGluZQoKMjAwNS0xMC0yNCAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgZml4IGlmSW5kZXggbWlzLW1hdGNoIChhZGQgc3VwcG9ydCBmb3IgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkpCgoyMDA1LTEwLTI0IDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmg6CgogICAtIHJlcXVpcmUgbmV3IG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCiAgIC0gcmVxdWlyZSBob3N0L2hyX2RldmljZSB0b28sIHNpbmNlIGl0IGRlY2xhcmVzIGdsb2JhbHMgd2UgbmVlZAoKMjAwNS0xMC0yNCAxODoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGltcGxlbWVudCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSBmdW5jdGlvbnMgSW50ZXJmYWNlX1NjYW5fKEluaXR8TmV4dCkgc28KICAgICBhbGwgbW9kdWxlcyBjYW4gYWdyZWUgb24gaWZJbmRleCB2YWx1ZXMKCjIwMDUtMTAtMjQgMTc6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBidWcgaW4gaXRlcmF0b3I7IHJlc2V0IHB0ciBvdmVyd3JpdHRlbiBieSByZWxlYXNlCgoyMDA1LTEwLTI0IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZHJvcCBwYWNrZXRzIHdpdGggc2Vzc2lvbiBlcnJub3MgYXR0YWNoZWQgdG8gdGhlbQoKMjAwNS0xMC0yNCAxMzo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgcmVtb3ZlIE1GRCByZXdyaXRlIGd5cmF0aW9ucwoKMjAwNS0xMC0yNCAxMzo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI0IDEzOjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIHRlc3RzIGZvciBpbnZhbGlkIG9wdGlvbnMgKG1pbmlhZ2VudCkKCjIwMDUtMTAtMjQgMTM6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgZGV0YWlscyB0byBsb2cvZGVidWcgbWVzc2FnZQoKMjAwNS0xMC0yNCAxMzo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmg6CgogICB1c2UgbmV3IG1pYklJL2lmVGFibGUgaW4gcGxhY2Ugb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxMzozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaDoKCiAgIG5ldyBtb2R1bGUgZm9yIG90aGVyIG1vZHVsZXMgdG8gcmVmZXJlbmNlLCBpbiBwbGFjZSBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDEzOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggaWZJbmRleCBsb29rdXAgb24gbGludXggKHVzZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCkKCjIwMDUtMTAtMjQgMTE6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBHZW5lcmljIHRhYmxlIEFQSTogIlJvdyBvcGVyYXRpb25zIiAgIChleHBlcmltZW50YWwgaW1wbGVtZW50YXRpb24pCgoyMDA1LTEwLTI0IDExOjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBTS0lQKCkKCjIwMDUtMTAtMjQgMTA6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M0RFU2NvbmZpZywgU3YzU0hBREVTY29uZmlnOgoKICAgcmVtb3ZlIG9ic29sZXRlIFNOTVB2MyBjb25maWcgZmlsZXMKCjIwMDUtMTAtMjQgMDc6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgR2VuZXJpYyB0YWJsZSBBUEk6IFJvdyBvcGVyYXRpb25zCgoyMDA1LTEwLTI0IDA2OjU4ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wZHVtcC5wbDoKCiAgIEZvciBUaG9tYXMKCjIwMDUtMTAtMjQgMDY6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3Zpc2lvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSAiVGFibGUgbWFpbnRlbmFuY2UiIGdlbmVyaWMgQVBJLgogICBNb3N0IG9mIHRoaXMgaXMgbm90IHJlYWxseSBhcHBsaWNhYmxlIHRvIHRoZSBpdGVyYXRvciBoZWxwZXIsIGJ1dAogICBoYXZpbmcgYSBzdGFuZGFyZCBtZWNoYW5pc20gZm9yIGNvbnN0cnVjdGluZyAoYW5kIGZyZWVpbmcpIHRoZQogICBtYWluIGl0ZXJhdG9yIHN0cnVjdHVyZSBtaWdodCBiZSB1c2VmdWwuCgoyMDA1LTEwLTI0IDA2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDb3VudCB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYW4gaXRlcmF0b3ItYmFzZWQgdGFibGUuCgoyMDA1LTEwLTI0IDA2OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQXNzb2NpYXRlIHRhYmxlIGluZGV4IGluZm9ybWF0aW9uIHdpdGggdGhlIGl0ZXJhdG9yIHN0cnVjdHVyZS4KICAgKEV4cGVyaW1lbnRhbCBjb2RlIC0gaW50cm9kdWNlcyBhIG1pbm9yIG9uZS1vZmYgbWVtb3J5IGxlYWssCiAgICBidXQgc2hvdWxkbid0IG90aGVyd2lzZSBhZmZlY3QgZXhpc3RpbmcgY29kZSkKCjIwMDUtMTAtMjMgMjA6MTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIGluaXRpYWwgdGVzdCBmb3IgU05NUHYzIHNubXB0cmFwZCBVU00gdXNlciBtYW5hZ2VtZW50IHdpdGggc25tcHVzbQoKMjAwNS0xMC0yMyAxOTo1NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBmaXggQ0hFQ0tBR0VOVCgpIGFuZCBpbnRyb2R1Y2UgQ0hFQ0tUUkFQRE9SRElFKCkKCjIwMDUtMTAtMjMgMTk6NDUgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTEwLTIzIDE1OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmbGFncyBzdXBwb3J0OyBkZWZhdWx0IHRvIG5vIGR1cGxpY2F0ZSBrZXlzCgoyMDA1LTEwLTIzIDE1OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdHdlYWsgb3B0aW9ucyBmdW5jdGlvbiB0byBhbGxvdyB0ZXN0IGFuZCBzZXQKCjIwMDUtMTAtMjMgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBhZGQgZnVuY3Rpb24gdG8gc2V0IGNvbnRhaW5lciBvcHRpb25zCgoyMDA1LTEwLTIyIDE4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvU3YzY29uZmlnLAogICAgIHRlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RzL1N2YWNtY29uZmlnLAogICAgIHRlc3RzL1N2YW55Y29uZmlnOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZQoKMjAwNS0xMC0yMiAxODoxNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXBsYWNlIG9ic29sZXRlIHNubXB0cmFwZCAiLXUiIGZsYWcgYnkgIi1wIgoKMjAwNS0xMC0yMiAxODoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvLmN2c2lnbm9yZToKCiAgIGlwLW1pYiBjaGFuZ2VzIG5vdyByZXF1aXJlIC5jdnNpZ25vcmUKCjIwMDUtMTAtMjIgMTg6MDQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGE6CgogICBvYnNvbGV0ZWQgYnkgU3YzY29uZmlnCgoyMDA1LTEwLTIyIDAwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1N3RyYXBkYXV0aHRlc3QsIFQwNTd0cmFwZGF1dGh0ZXN0MgosIFQwNTd0cmFwZGF1dGh0ZXN0MzoKCiAgIHByb3BlciBjaGVja3MgZm9yIGZhaWx1cmUgb2YgdW5hdXRob3JpemVkIHRyYXBzCgoyMDA1LTEwLTIyIDAwOjUxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MjoKCiAgIHRlc3QgZm9yIHdyb25nIHRyYXAgb2lkcwoKMjAwNS0xMC0yMiAwMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIG5ldyBjb25maWcgdG9rZW5zIHJvdW5kIDIKCjIwMDUtMTAtMjIgMDA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgRG8gdHJhcCBhdXRoIHBhcnNpbmcgdGhlIHdheSBEYXZlIHdhbnRzLgoKMjAwNS0xMC0yMSAyMDozMCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIG5ldyBoZWxwZXIgYW5kIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIGFkZCBuZXcgSVAtTUlCIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaDoKCiAgIGRhdGEgYWNjZXNzIGZvciBzb21lIElQLU1JQiBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogc2NhbGFyc19jb21tb24uaCwKICAgICBzY2FsYXJzX2xpbnV4LmM6CgogICBkYXRhIGFjY2VzcyBmb3IgbGludXggc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwX3NjYWxhcnMuYywgaXBfc2NhbGFycy5oOgoKICAgc29tZSBuZXcgc2NhbGFycyBpbiB0aGUgSVAtTUlCCgoyMDA1LTEwLTIxIDIwOjIyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIC0gbmV3IGhlbHBlciBmb3IgcncgYWNjZXNzIHRvIGFuIGludGVnZXIgYmFzZWQgdmFyaWFibGUgd2hpY2ggaXMgc3RvcmVkCiAgICAgYXMgYXNjaWkgaW4gYSBmaWxlCgoyMDA1LTEwLTIxIDE4OjMxICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIEFkZCAiLUNFIEVOR0lORS1JRCIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHVzbVVzZXJFbmdpbmVJRC4gRW5hYmxlcyBzbm1wdXNtIHRvIG1hbmFnZSBzbm1wdHJhcGQncyB1c21Vc2VyVGFibGUgKGZpeGVzIGJ1ZyAjMTMzMzY1NSkuCgoyMDA1LTEwLTIxIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSBmaXggZnVuIGNvbW1lbnQgaGVhZGVyIGZvciBkb3h5Z2VuIChrZWVwIHdlcyBoYXBweSkKICAgLSBkb2N1bWVudCBzbGlnaHRseSBub24tb2J2aW91cyBpbmRleCB1c2UgKGtlZXAgZGF2ZSBoYXBweSkKCjIwMDUtMTAtMjEgMTI6MjkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBcHBseSBwYXRjaCAxMjk5NTU0IGZyb20gVGFvIHRvIGZpeCBzZWdmYXVsdCBpbiB2YXJfaWZFbnRyeSgpCgoyMDA1LTEwLTIxIDA2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6CgogICBNb3JlIHBvcnRhYmxlIGhhbmRsaW5nIG9mICdvdmVyc2hvb3QnIGRlY2xhcmF0aW9uLgoKMjAwNS0xMC0yMSAwNjo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2NvbnRhaW5lci5jLCB0YWJsZV9kYXRhLmMsCiAgICAgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIHRoZSAiVGFibGUgbWFpbnRlbmFuY2UiIHNlY3Rpb24KICAgb2YgdGhlIGdlbmVyaWMgdGFibGUgQVBJLgoKMjAwNS0xMC0yMSAwNjo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBNaW5vciB0d2Vha3MgdG8gZ2VuZXJpYyB0YWJsZSBBUEkgbmFtZXMsCiAgIGFuZCBjb3JyZWN0IGEgY291cGxlIG9mIGZsYXdlZCBmdW5jdGlvbiBwcm90b3R5cGVzLgoKMjAwNS0xMC0yMSAwNToyMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIGdlbmVyYWxpemVkIGV4Y2VwdGlvbiByZWdleCB0byBsZXQgYW55ICJ0ZXN0aW5nIC4uLiBmYWlsdXJlIC4uLiIgZ28gdGhyb3VnaCwgZS5nLiB0aGUgbmV3IHNubXB0cmFwZCB0ZXN0IHJlY2VudGx5IGludHJvZHVjZWQKCjIwMDUtMTAtMjEgMDE6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGluaXQgdmFjbQoKMjAwNS0xMC0yMSAwMTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmg6CgogICBpbmNsdWRlIHRoZSBuZXcgc25tcHRyYXBkX2RzLmggZmlsZQoKMjAwNS0xMC0yMSAwMTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgQWRkZWQgYSB3YXJuaW5nIG5vdGUgYWJvdXQgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIHNubXB0cmFwZCwgd2hpY2gKICAgaGFkIGFjdHVhbGx5IGJlZW4gYnlwYXNzZWQgcmVjZW50bHkgYW5kIG5vIG9uZSBub3RpY2VkLgoKMjAwNS0xMC0yMSAwMTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDoKCiAgIHRlc3QgdHJhcGQgYXV0aG9yaXphdGlvbiBmYWlsdXJlcwoKMjAwNS0xMC0yMSAwMTo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIE1vZGlmaWVkIHRoZSB0ZXN0cyB0byBhY2NvbW1vZGF0ZSB0aGUgbmV3IHRyYXBkIGF1dGggc2NoZW1lCgoyMDA1LTEwLTIxIDAxOjM4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfYXV0aC5jCiwgc25tcHRyYXBkX2F1dGguaCwgc25tcHRyYXBkX2RzLmgsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgQWRkZWQgYSBuZXcgYXV0aG9yaXphdGlvbiBoYW5kbGVyIGFuZCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gdG9rZW5zIHRvCiAgIGFsbG93IHNubXB0cmFwZCB0byBhY2NlcHQgb3IgZHJvcCBub3RpZmljYXRpb25zIGJhc2VkIG9uIHRoZQogICBhdXRob3JpemF0aW9uIGFzc2lnbmVkIHRvIGEgY29tbXVuaXR5L3VzZXIgcGFpcmVkIHdpdGggdGhlIGFjdGlvbiB0bwogICBiZSB0YWtlbiAobG9nLCBmb3J3YXJkLCBleGVjdXRlKS4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBjb25maWd1cmF0aW9uCiAgIHRva2VucyB0aGF0IHdlcmUgYWRkZWQgdG8gYWNoaWV2ZSB0aGlzLiAgMyBvZiB0aGUgVkFDTSBvbmVzIGNhbiBiZQogICB1c2VkIGFzIG5vcm1hbCAodmlldywgY29tMnNlYywgZ3JvdXApIGFuZCBvbmUgYWRkaXRpb25hbCBvbmUKICAgKHNldGFjY2VzcykgbmVlZHMgdG8gYmUgdXNlZCB0byBzZXQgaW5kaXZpZHVhbCB2aWV3cyBmb3IgYWNjZXNzIHRvCiAgIGJpbmQgZXZlcnl0aGluZyB0b2dldGhlci4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSB3cmFwcGVycwogICBhcyB3ZWxsIGZvciB0aGVzZSB0b2tlbiBzZXRzLiAgRmluYWxseSwgdGhlcmUgaXMgYQogICBkaXNhYmxlQXV0aG9yaXphdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSBzZXQgdG8gdHJ1ZSB0byBzaW1wbHkgYWxsb3cKICAgZXZlcnl0aGluZyB0aHJvdWdoLgoKMjAwNS0xMC0yMSAwMToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICAtIHJlc3RydWN0dXJlZCB0aGUgVkFDTSBjb2RlIHRvIHByb3ZpZGUgZm9yIHRoZSBub3Rpb24gb2YgYWRkaXRpb25hbAogICAgIHZpZXdzIGJlc2lkZXMgdGhlIHN0YW5kYXJkIHJlYWQvd3JpdGUvbm90aWZ5IHZpZXdzCiAgICAgLSBtdWNoIG9mIHRoZSBjaGVja2luZyBjb2RlIHdhcyByZXN0cnVjdHVyZWQgdG8gYmUgbW9yZSBtb2R1bGFyCiAgICAgLSBhZGRlZCBhIG5ldyBzZXRhY2Nlc3MgY29uZmlnIHRva2VuIHRoYXQgY2FuIHNldCB0aGUgdmlldyBuYW1lIGZvcgogICAgICAgYSBwYXJ0aWN1bGFyIGFjY2VzcyBsZXZlbAogICAgIC0gYWRkZWQgMyBuZXcgYWNjZXNzIGxldmVsczogbG9nLCBleGVjdXRlLCBuZXQKICAgICAgIC0gYWRkZWQgZW51bSBzdHJ1Y3R1cmUgZm9yIHRoZXNlCgoyMDA1LTEwLTIwIDEzOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggcmVtYWluaW5nIElQIGFkZHJlc3MgYnl0ZSBvcmRlciBidWcKCjIwMDUtMTAtMjAgMDg6MjYgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBFdmVudCBNSUIuCgogICAoUW46IHdoZXJlIGRvZXMgJ2RlZmF1bHRfbWlic19pbnN0YWxsJyBnZXQgc2V0PykKCjIwMDUtMTAtMjAgMDg6MjUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIHNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZGVmYXVsdCBsaXN0LgoKICAgVGhpcyBxdWFsaWZpZXMgZm9yIGJvdGg6CiAgICAgICAnVHJhZGl0aW9uYWxseSBpdCdzIGJlZW4gInR1cm4gaXQgb24gaWYgaXQgY29tcGlsZXMgMTAwJQogICAgICAgIG9mIHRoZSB0aW1lLi4uLicKICAgc2luY2UgaXQncyBhbGwgbm9uLWFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLCBhbmQ6CiAgICAgICAnLi4uIGFuZCBpZiBpdCByZXF1aXJlcyBydW4gdGltZSBlbmFibGluZyBhcyB3ZWxsIgoKMjAwNS0xMC0yMCAwODowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Lmg6CgogICBBZGQgdGhlIEV2ZW50IE1JQiB0byB0aGUgbGlzdCBvZiBNSUJzIHRvIGxvYWQuCgoyMDA1LTEwLTIwIDA3OjMzICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0gcm1kaXIgLT4gcm0gLWZSLCBzaW5jZSBkaXJlY3RvcnkgaXNuJ3QgZW1wdHkKICAgLSBhZGQgLXAvU05NUF9URVNUX1BSRUZJWCB0byBhbGxvdyBub24tc3RhbmRhcmQgdGVzdHMgdG8gYmUgcnVuCgoyMDA1LTEwLTIwIDA1OjMxICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgcHJvcGFnYXRlIHRlc3QtbWlicyB0YXJnZXQKCjIwMDUtMTAtMjAgMDQ6MzEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZnVydGhlciB0d2VhayBleGNlcHRpb24gcmVnZXgKCjIwMDUtMTAtMTkgMjM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICBhZGQgaWZUYWJsZUxhc3RDaGFuZ2Ugc2NhbGFyCgoyMDA1LTEwLTE5IDE3OjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvY3VtZW50IHRoYXQgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhZmZlY3RzIHNubXB0cmFwZCBhbHNvCgoyMDA1LTEwLTE5IDExOjAxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwIGV4Y2VwdGlvbnMKCjIwMDUtMTAtMTkgMDc6MDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIFdpdGhkcmF3ICd0YWJsZV9kYXRhc2V0MicgaGVscGVyCgoyMDA1LTEwLTE5IDAxOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBhZGQgJ2RlZmF1bHQnIGFzIHRoZSBvaWQgZm9yIGV4ZWNpbmcgdGhlIGV4YW1wbGUgdHJhcGhhbmRsZQoKMjAwNS0xMC0xOSAwMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IGJ1ZyAjMTMxMzY2NzogaW5mb3JtcyBhcmUgc2VudCBhc3ljaHJvbm91c2x5IHRvIGF2b2lkIGNyYXNoaW5nIHRoZSBhZ2VudCB3aGVuIHRoZSByZWNlaXZlciBpcyBkb3duCgoyMDA1LTEwLTE4IDIyOjI0ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsIFJFQURNRS50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyOiBSZW5hbWUgTmV0LVNOTVAucHBkIHRvIE5ldFNOTVAucHBkLCBhZGQgYSBjb3VwbGUKICAgaGVhZGVyIGZpbGVzIHRvIFdpbjMyIHVuaW5zdGFsbGVyLgoKMjAwNS0xMC0xOCAxODoyMiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkICNpZmRlZnMgZm9yIE1JQiBtb2R1bGUgZGVwZW5kZW50IGNvZGUKCjIwMDUtMTAtMTggMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBpbmRleCBnZW5lcmF0aW9uIGZvciBmaXhlZCBsZW5ndGggb2N0ZXQgc3RyaW5ncwoKMjAwNS0xMC0xOCAxMjowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaCwKICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBXaXRoZHJhdyAndGFibGVfZGF0YXNldDInIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIG10ZUV2ZW50VGFibGUuYzoKCiAgIFJldmVydCB0byBvcmlnaW5hbCAndGFibGVfZGF0YXNldCcgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICBzeW5jIHJlYWRtZSBpbiBhbGwgYnJhbmNoZXMKCjIwMDUtMTAtMTggMTE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFJldmVydCB0byB1c2luZyB0aGUgb3JpZ2luYWwgJ3RhYmxlX2RhdGFzZXQnIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUHJvdmlkZSBtaXNzaW5nIHRhYmxlLXRyYXZlcnNhbCByb3V0aW5lcy4KCjIwMDUtMTAtMTggMTA6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuaDoKCiAgIE9vcHMhICBPbmUgbG9jYXRpb24gY2hhbmdlIGdvdCBvdmVybG9va2VkIQoKMjAwNS0xMC0xOCAxMDo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgZ3JlcHMgZm9yIGVycm9yIGNhc2UgaW5zZW5zaXRpdmUKCjIwMDUtMTAtMTggMTA6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgZG8gbm90IGluc3RhbGwgcmVtb3ZlZC9yZWR1bmRhbnQgaGVhZGVyCgoyMDA1LTEwLTE4IDEwOjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmgsCiAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbmFtZSAndGFibGVfZGF0YTInIGhlbHBlciBhcyAndGFibGVfdGRhdGEnCgoyMDA1LTEwLTE4IDA3OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIFByZXBhcmUgdGhlIHdheSBmb3IgcmVuYW1pbmcgJ3RhYmxlX2RhdGEyJyBtb3JlIHNlbnNpYmx5LgoKMjAwNS0xMC0xOCAwNzozOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgUmVtb3ZlIHVud2FudGVkIHZlc3RpZ2F0ZXMgb2YgJ3RhYmxlX2RhdGEnIHN0cnVjdHVyZXMsIGFuZCBicmluZwogICB0YWJsZSBjcmVhdGlvbiBtb3JlIGNsb3NlbHkgaW50byBsaW5lIHdpdGggdGhlIGdlbmVyaWMgQVBJIHRlbXBsYXRlLgoKMjAwNS0xMC0xOCAwNzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgTWlzc2luZyByZXR1cm4gdmFsdWUuCgoyMDA1LTEwLTE4IDA3OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jOgoKICAgTWlzc2luZyByZXR1cm4gdmFsdWVzLgoKMjAwNS0xMC0xOCAwNzoyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBJZiBubyBpcXVlcnkgc2Vzc2lvbiBpcyBjb25maWd1cmVkIGZvciBhIHBhcnRpY3VsYXIgZXZlbnQsCiAgIHRyeSB0aGUgc2V0dGluZ3MgZnJvbSB0aGUgdHJpZ2dlciwgYmVmb3JlIGZhbGxpbmcgYmFjayB0bwogICB0aGUgZGVmYXVsdCBpbnRlcm5hbCBxdWVyeSBzZXNzaW9uLgoKMjAwNS0xMC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBVc2UgJ2lxdWVyeVNlY05hbWUnIHNldHRpbmdzIGF0IGNvbmZpZ3VyZSB0aW1lLCByYXRoZXIgdGhhbiB3aGVuCiAgIHRoZSB0cmlnZ2VyIGlzIGFjdHVhbGx5IGludm9rZWQuICBUaGlzIGFsbG93czoKICAgICAgICBpcXVlcnlTZWNOYW1lIG1lCiAgICAgICAgbW9uaXRvciBteU1vbml0b3IgLi4uLi4KICAgICAgICBtb25pdG9yIG15T3RoZXJNb25pdG9yIC4uLi4uCiAgICAgICAgaXF1ZXJ5U2VjTmFtZSB5b3UKICAgICAgICBtb25pdG9yIHlvdXJNb25pdG9yIC4uLi4uCiAgIHRvIHdvcmsgaW4gdGhlIG1vc3QgbmF0dXJhbCBtYW5uZXIuCiAgIElmIG5vIGlxdWVyeSBzZWN1cml0eSBuYW1lIGlzIGF2YWlsYWJsZSBhdCBjb25maWd1cmUgdGltZSwKICAgdGhpcyB3aWxsIGJlIGV2YWx1YXRlZCBhdCBydW4gdGltZSBpbnN0ZWFkLgoKMjAwNS0xMC0xOCAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkQ29uZi5oLAogICAgIHNjaGVkQ29yZS5jLCBzY2hlZENvcmUuaCwgc2NoZWRUYWJsZS5jLAogICAgIHNjaGVkVGFibGUuaDoKCiAgIFJlbW92ZSBwcmV2aW91cyBTY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24uCgoyMDA1LTEwLTE4IDA3OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZHVsZS5oLCBzY2hlZHVsZS8uY3ZzaWdub3JlCiwgc2NoZWR1bGUvc2NoZWRDb25mLmMsIHNjaGVkdWxlL3NjaGVkQ29uZi5oLAogICAgIHNjaGVkdWxlL3NjaGVkQ29yZS5jLCBzY2hlZHVsZS9zY2hlZENvcmUuaCwKICAgICBzY2hlZHVsZS9zY2hlZFRhYmxlLmMsIHNjaGVkdWxlL3NjaGVkVGFibGUuaDoKCiAgIFJlLXdvcmtlZCBTY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24uCiAgIENsZWFuZXIsIGxlYW5lciwgYW5kIG1vcmUgY29tcGxldGUuCiAgIE5vdyB3aXRoIGFkZGVkIHZpdGFtaW5zLgoKMjAwNS0xMC0xNyAxODoyNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGFkZCBtb3ZlIHZlcmJvc2UgZGVidWdnaW5nOyBpbml0IGlubmVyIGxvb3AgY291bnRlciBhZnRlciBlYWNoIGl0ZXJhdGlvbgoKMjAwNS0xMC0xNyAxNzowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBwb3J0YWJsZSBleHBvcnQgb2YgZW52IHZhcgoKMjAwNS0xMC0xNyAxNjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBhIGZsaXBwaW5nIGxvIGludGVyZmFjZSBieSBmaXhpbmcgZ2V0S3N0YXRJbnQgdG8gZG8gYXMgZG9jdW1lbnRlZAoKMjAwNS0xMC0xNyAxNDoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBhZGQgcHJvdG90eXBlIGJlZm9yZSB1c2U7IGNoZWNrIHN0YXR1cyBvZiBjb3JyZWN0IHN0cnVjdCBtZW1iZXIKCjIwMDUtMTAtMTcgMTI6NTIgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgLSBub3RlIGxkIGZsYWdzIGZvciAxMC40LnggYnVpbGRpbmcgdy9wZXJsCgoyMDA1LTEwLTE3IDExOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEVuc3VyZSB0aGUgZXZlbnQgbmFtZSBidWZmZXIgaXMgcHJvcGVybHkgY2xlYXJlZCBiZWZvcmUgdXNlLgoKMjAwNS0xMC0xNyAwNzozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vZGlmeSBleGlzdGluZyB0YWJsZSBoZWxwZXJzIGluIGxpbmUgd2l0aCB0aGUgcHJvcG9zZWQgZ2VuZXJpYyBBUEkuCgogICBUaGlzIGRvZXMgKk5PVCogY2hhbmdlIGFueSBleGlzdGluZyBjb2RlIChhdCBsZWFzdCBub3QgaW50ZW50aW9uYWxseSksCiAgIG9yIGFkZCBhbnkgb2YgdGhlICJtaXNzaW5nIiBBUEkgcm91dGluZXMuICBJJ3ZlIHNpbXBseSByZS1zaHVmZmxlZAogICB0aGUgb3JkZXIgb2YgdGhlIGV4aXN0aW5nIHJvdXRpbmVzIHRvIG1hdGNoIHRoZSBnZW5lcmljIHRlbXBsYXRlLgoKMjAwNS0xMC0xNyAwNzoyOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBQcm9wZXIgZGVmaW5pdGlvbi9kb2N1bWVudGF0aW9uIG9mIGEgZ2VuZXJpYyB0YWJsZSBBUEkgZnJhbWV3b3JrLgogICBUaGUgZXhhY3QgZGV0YWlscyBtYXkgbm90IGJlIGRpcmVjdGx5IGFwcHJvcHJpYXRlIGluIGZ1bGwgZm9yIGV2ZXJ5CiAgIHRhYmxlIGhlbHBlciwgYnV0IHRoaXMgc2hvdWxkIHByb3ZkZSBhIHVzZWZ1bCBiYXNpYyBkZXNpZ24gdGVtcGxhdGUuCgoyMDA1LTEwLTE3IDAwOjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZWQgZm9yY2VkIGRlYnVnZ2luZyBvdXRwdXQKCjIwMDUtMTAtMTQgMTk6MzcgIGJzaGF3NjY2CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYXV0b2NvbmYgcmVjb2duaXRpb24KCjIwMDUtMTAtMTQgMTg6NDUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIHN1cHBvcnQgTmV0QlNEIDEueCBhbmQgMi54IHVuZGVyIHRoZSAoY29tbW9uKSAibmV0YnNkIiBzeXNPYmplY3RJRC4wCgoyMDA1LTEwLTE0IDE3OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCiAgIC0gZG9uJ3QgcmVsZWFzZSByb3cgb24gZXJyIChpdCdzIHN0aWxsIGluIHRoZSBjb250YWluZXIhKQogICAtIGRvbid0IGluc2VydCByb3cgb24gc3VjY2VzcyAoaXQncyBhbHJlYWR5IGluIHRoZSBjb250YWluZXIhKQoKMjAwNS0xMC0xNCAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgcmVwbGFjZSBoYXJkY29kZWQgInNubXBkIiB3L05FVFNOTVBfRFNfTElCX0FQUFRZUEUKCjIwMDUtMTAtMTQgMTE6MjUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlZ2lzdGVyIHRoZSBzbm1wRW5naW5lIE1JQiBncm91cCB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dCB0byBhbGxvdyBmb3IgZW5naW5lSUQgcHJvYmVzIHZpYSB0aGUgbWFzdGVyIGFnZW50LCBlLmcuIGJ5IHNubXB1c20KCjIwMDUtMTAtMTQgMTE6MjUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmg6CgogICBhbGxvdyBzdWJhZ2VudHMgKGxpa2Ugc25tcHRyYXBkKSB0byByZWdpc3RlciB0aGUgc25tcEVuZ2luZSBNSUIgZ3JvdXAgdW5kZXIgYSBjb250ZXh0IGJ5IGludHJvZHVjaW5nIHJlZ2lzdGVyX3NubXBFbmdpbmVfc2NhbGFyc19jb250ZXh0KCkKCjIwMDUtMTAtMTQgMDk6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV4cHJlc3Npb24uaCwgZXhwci8uY3ZzaWdub3JlCiwgZXhwci9leHBFcnJvclRhYmxlLmMsIGV4cHIvZXhwRXJyb3JUYWJsZS5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvbi5jLCBleHByL2V4cEV4cHJlc3Npb24uaCwKICAgICBleHByL2V4cEV4cHJlc3Npb25Db25mLmMsIGV4cHIvZXhwRXhwcmVzc2lvbkNvbmYuaCwKICAgICBleHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCBleHByL2V4cEV4cHJlc3Npb25UYWJsZS5oLAogICAgIGV4cHIvZXhwT2JqZWN0LmMsIGV4cHIvZXhwT2JqZWN0LmgsCiAgICAgZXhwci9leHBPYmplY3RDb25mLmMsIGV4cHIvZXhwT2JqZWN0Q29uZi5oLAogICAgIGV4cHIvZXhwT2JqZWN0VGFibGUuYywgZXhwci9leHBPYmplY3RUYWJsZS5oLAogICAgIGV4cHIvZXhwU2NhbGFycy5jLCBleHByL2V4cFNjYWxhcnMuaCwgZXhwci9leHBWYWx1ZS5jCiwgZXhwci9leHBWYWx1ZS5oLCBleHByL2V4cFZhbHVlVGFibGUuYywKICAgICBleHByL2V4cFZhbHVlVGFibGUuaDoKCiAgIFByZWxpbWluYXJ5IChyZS0paW1wbGVtZW50YXRpb24gb2YgdGhlIEV4cHJlc3Npb24gTUlCLgogICBUaGUgZXhwRXhwcmVzc2lvblRhYmxlIGFuZCBleHBPYmplY3RUYWJsZSBhcmUgcmVhc29uYWJseSBjb21wbGV0ZS4KICAgVGhlIGV4cFZhbHVlVGFibGUgKGFuZCBleHByZXNzaW9uIGV2YWx1YXRpb24pIGlzIHN0aWxsIGp1c3QgYQogICBiYXNpYyBmcmFtZXdvcmsgLSBleHByZXNzaW9ucyBhcmUgZGlzcGxheWVkIHJhdGhlciB0aGFuIGV2YWx1YXRlZC4KICAgQW5kIHRoZXJlJ3Mgbm8gdXNlci1sZXZlbCBjb25maWd1cmF0aW9uIG9mIGV4cHJlc3Npb25zIHlldC4KCiAgIEJ1dCB0aGVyZSdzIGVub3VnaCB3b3JraW5nIGNvZGUgdG8gYmUgd29ydGggY29tbWl0dGluZyAtIGV2ZW4gaWYKICAgb25seSBhcyBhIHNhZmV0eSBtZWNoYW5pc20uCgoyMDA1LTEwLTEzIDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IHNwYXJzZSBoYW5kbGVyIGNhc2U6IG5vIG1vcmUgcm93cywgbGFzdCBjb2x1bW4KCjIwMDUtMTAtMTMgMTI6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gZml4IHRhYmxlIHRva2VuIHRhYmxlIGluZGV4ZXMgZm9yIGF1Z21lbnRlZCB0YWJsZQogICAtIHR3ZWFrIGRlYnVnCiAgIC0gYWRkIHdhcm5pbmcgaWYgdG9vIG11Y2ggZGF0YSBzcGVjaWZpZWQgZm9yIGFkZF9yb3cKCjIwMDUtMTAtMTMgMTE6MjggIHJzdG9yeQoKICAgKiBkb3RnZGJpbml0OgoKICAgYWRkIHByaW50aW5kZXggZm9yIG5ldHNubXBfaW5kZXggc3RydWN0cwoKMjAwNS0xMC0xMyAxMDoxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSBwcmVmaXggKGluc3RlYWQgb2YgdXNpbmcgaW5zdGFsbCBwcmVmaXg9KQoKMjAwNS0xMC0xMyAwNToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTd2l0Y2ggdG8gdXNpbmcgdGhlIG5ldyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb24gYnkgZGVmYXVsdC4KCiAgIFRoZSBwcmV2aW91cyB2ZXJzaW9uIGlzIHN0aWxsIGF2YWlsYWJsZSBmb3IgdGhvc2UgdGhhdCBwcmVmZXIKICAgdG8gdXNlIHRoYXQsIGJ1dCBJJ20gc3VyZSBzb21lb25lIHdpbGwgY29tcGxhaW4gYW55d2F5Oi0oCgoyMDA1LTEwLTEyIDE4OjU5ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmg6CgogICBvcGVuYnNkIHN5c09iamVjdElELjAgZm9yIE9wZW5CU0QgMy54CgoyMDA1LTEwLTEyIDE4OjE2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgZW5oYW5jZSByZWNlbnRseSBpbnRyb2R1Y2VkICJuZXQtc25tcC1jb25maWcgLS1zbm1wY29uZnBhdGgiIHRvIG91dHB1dCBmdWxsIGNvbmZpZyBwYXRoCgoyMDA1LTEwLTEyIDEwOjQ2ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZGVmIGZpbGVzIGFyZSBpbiBzcmNkaXIKCjIwMDUtMTAtMTIgMDY6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNoYW5nZSBuby1vcCBtYWNybyBkZWYgdG8gZW1wdHkgaXNudGVhZCBvZiAodm9pZCkKCjIwMDUtMTAtMTEgMTk6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHJld29yayA2NCBiaXQgb3ZlcmZsb3cgY2hlY2tpbmcsIGFjY291bnRpbmcgZm9yIHNpZ25lZGVkbmVzcwoKMjAwNS0xMC0xMSAxNjozMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB2YXJpYXRpb25zIGluIHRhaWwgcGFyYW1ldGVyIGZvcm1hdAoKMjAwNS0xMC0xMSAxNDo1MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBsZWZ0b3ZlciBFT0YgZnJvbSByZXYgMS4zMTQKCjIwMDUtMTAtMTEgMDc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgb2ssIGxpbnV4IG1haWwgZG9lc24ndCBsaWtlIFtjZW5zb3JlZF0gc29sYXJpcyBzdHlsZTsgZml4CgoyMDA1LTEwLTExIDA3OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgbmV0LXNubXAtY29uZmlnIGlzIGV4ZWN1dGVhYmxlIGJlZm9yZSBidWlsZGluZyBwZXJsIG1ha2UgZmlsZXMKCjIwMDUtMTAtMTEgMDU6MjcgIGR0czEyCgogICAqIHBlcmwvOiBTTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsLAogICAgIFNOTVAvZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsLCBTTk1QL3QvYnVsa3dhbGsudCwKICAgICBtYW5hZ2VyL21hbmFnZXIucG06CgogICBCZSBjb25zaXN0ZW50IGluIGhvdyB2YXJpb3VzIHBlcmwgc2NyaXB0cyBhcmUgaW52b2tlZC4KCjIwMDUtMTAtMTAgMTk6NDIgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgbWlicy9ORVQtU05NUC1UQy50eHQsIG92L29pZF90b19zeW0uaW4KLCBvdi9vaWRfdG9fdHlwZS5pbjoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgTWFjIE9TIFgKCjIwMDUtMTAtMTAgMTg6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICB1cGRhdGUgbGludXggZ2V0X2lmX3NwZWVkIGZ1bmN0aW9uIG5hbWUKCjIwMDUtMTAtMTAgMTg6MDEgIHRhbmRlcnMKCiAgICogb3YvOiBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbjoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgQUlYCgoyMDA1LTEwLTEwIDE3OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBicmVhayBhcGFydCByZWFkaW5nIG9mIGNvbmZpZyBmaWxlcyBhbmQgcGVyc2lzdGVudCBjb25maWcgZmlsZXMgKGFsbG93cwogICAgIHByb3BlciBoYW5kbGluZyBvZiBwZXJzaXN0ZW50RGlyIHRva2VuIGluIGNvbmZpZyBmaWxlcykKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTEwLTEwIDE3OjUxICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICByZXBhbGNlIHBlcmwgdy8gJChQRVJMKQoKMjAwNS0xMC0xMCAxNzo0NCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgQUlYCgoyMDA1LTEwLTEwIDE3OjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCBmcm9tIG9wdGFyZyBwcm9jZXNzaW5nCgoyMDA1LTEwLTEwIDE2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gZm9yIGZyb20gYWRkcmVzcyBmb3IgZW1haWwgcmVzdWx0cwoKMjAwNS0xMC0xMCAxNjoyNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIGFkZCBkaXN0aW5jdCBlbWFpbCBhZGRyZXNzZXMgZm9yIHN1Y2Nlc3MvZXJyb3IgY2FzZXMKICAgLSBmaXhlcyBmb3IgIyVAJComIHNvbGFyaXMgbWFpbCBleGUKICAgLSBkb24ndCByZW1vdmUgZGlyZWN0b3J5IHRpbCB2ZXJ5IGVuZAoKMjAwNS0xMC0xMCAxNjoyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4Y2x1ZGUgZXJyb3IgbGluZXMgZm9yICdJbiBmdW5jdGlvbicgKGVnIGZ1bmMgbmFtZSBjb250YWlucyB3b3JkIGVycm9yKQoKMjAwNS0xMC0xMCAxNDo1NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gYmFzZSBtaWIyYy5jb25mIGdlbmVyYXRpb24gb24gJFBFUkwsIG5vdCAtZCBDVlMKICAgLSBpZiBubyBwZXJsLCB0b3VjaCBmaWxlIHNvIGluc3RhbGwgZG9lc24ndCBmYWlsCgoyMDA1LTEwLTEwIDE0OjQ3ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgbG9jYWwvTWFrZWZpbGUuaW4KLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSBkZWZpbmUgUEVSTCBpbiBhbGwgbWFrZWZpbGVzICh2aWEgTWFrZWZpbGUudG9wKQogICAtIHJlcGxhY2UgYWxsIGNhbGxzIHRvIHBlcmwgd2l0aCAkKFBFUkwpCiAgIC0gcmVwbGFjZSBleGlzdGluZyBQRVJMUFJPRyB3aXRoIFBFUkwgaW4gbWFrZWZpbGVzCgoyMDA1LTEwLTEwIDE0OjM4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIFBFUkxMRE9QVFMgdG8gYWdlbnQgbGlicwoKMjAwNS0xMC0xMCAwOTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIEFsbG93IHRoZSBhZG1pbmlzdHJhdG9yIHRvIGNob29zZSBiZXR3ZWVuIGZvbGxvd2luZyB0aGUgRGlzTWFuCiAgIHNwZWNpZmljYXRpb25zIHN0cmljdGx5LCBvciB1c2luZyBhbiBhcHByb2FjaCB0aGF0IGFjdHVhbGx5IHdvcmtzIQogICAoVGhlIG9mZmljaWFsIG9yZGVyaW5nIGZvciBhZGRpbmcgdmFyYmluZHMgdG8gYSBub3RpZmljYXRpb24KICAgIHBheWxvYWQgbGlzdCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHVzZSBzcGVjaWZ5IFRyaWdnZXIgYW5kCiAgICBFdmVudCBvYmplY3RzIGluIGEgc2Vuc2libGUgZmFzaGlvbikuCgoyMDA1LTEwLTEwIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRG9uJ3QgcmVwb3J0IHJvd3MgdGhhdCBoYXZlbid0IGZpbmlzaGVkIGJlaW5nIGNyZWF0ZWQsIGFuZAogICBkb24ndCBrZWVwIHNjaGVkdWxpbmcgc2FtcGxlcyBmb3Igcm93cyB0aGF0IGFyZSBkaXNhYmxlZCBvciByZW1vdmVkLgoKMjAwNS0xMC0xMCAwOToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBSZWR1bmRlbnQgKGF1dG8tKWNvbW1lbnQuCgoyMDA1LTEwLTEwIDA5OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgQ29udmVydGluZyBiZXR3ZWVuIGluZGV4IHJlcHJlc2VudGF0aW9ucyBpcyBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS4KCjIwMDUtMTAtMTAgMDg6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENvcGUgd2l0aCBhIG1pc3NpbmcgaW50ZXJuYWwgcXVlcnkgdXNlcm5hbWUKICAgKHJhdGhlciB0aGFuIGZvcmNpbmcgYSBoYXJkd2lyZWQgb25lKQoKMjAwNS0xMC0xMCAwNzo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmV0dXJuIHRoZSBmdWxsIGxpc3Qgb2YgcmVzdWx0cyBmcm9tIGFuIGludGVybmFsIHF1ZXJ5LAogICByYXRoZXIgdGhhbiB0cnVuY2F0aW5nIGl0IGFmdGVyIHRoZSBmaXJzdCB2YXJiaW5kLgogICAoV2h5ICdjbG9uZV92YXInIHN0b21wcyBvbiB0aGUgbmV4dCBsaW5rIGlzIGEgbXlzdGVyeSB0byBtZSEpCgoyMDA1LTEwLTEwIDA3OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJbmRpY2F0ZSB0aGF0ICdpZl9zcGVlZCcgQVBJcyBhcmUgTGludXgtc3BlY2lmaWMKICAgKGFuZCBub3QgcGFydCBvZiB0aGUgZ2VuZXJpYyBJRi1NSUIgZGF0YV9hY2Nlc3MgZnJhbWV3b3JrKQoKMjAwNS0xMC0wNyAxNzoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGlmZGVmIG91dCBjb2RlIGlmIG1vZHVsZSBub3QgZW5hYmxlZAoKMjAwNS0xMC0wNyAxNjo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgbW92ZSBtaXNhcHBsaWVkIHBhdGNoIHRvIGNvcnJlY3QgbG9jYXRpb24KCjIwMDUtMTAtMDcgMTY6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICB0eXBvCgoyMDA1LTEwLTA3IDE2OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgb25seSBzYXZlIHNldHRhYmxlIGNvbHMKCjIwMDUtMTAtMDcgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmg6CgogICBkZWZpbmUgc2V0dGFibGUgY29scwoKMjAwNS0xMC0wNyAxNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgZ2V0IHJpZCBvZiBvbGQgcGVyc2lzdGVudCBzYXZlIGZ1bmNzLCBpbiBmYXZvciBvZiBuZXcgZ2VuZXJhdGVkIHN0dWZmCgoyMDA1LTEwLTA3IDE2OjQyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHR5cG8KCjIwMDUtMTAtMDcgMTY6MzggIHRhbmRlcnMKCiAgICogRkFROgoKICAgTWFqb3Igb3ZlcmhhdWwgb2YgbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zIGJhc2VkIG9uIDUuMi4yLnByZVggdGVzdGluZwoKMjAwNS0xMC0wNyAxNjoyNSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IHR5cG9zIGluIDUuMiBORVdTCgoyMDA1LTEwLTA3IDEwOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEhtbW1tLi4uLiByZW1vdmluZyB0aGUgb2JqZWN0IGVudHJpZXMgZm9sbG93aW5nIGEgZHVwbGljYXRlIHRyaWdnZXIKICAgc2VlbXMgdG8gYmUgcHJvYmxlbWF0aWNhbC4gIChBcyBpbiB0aGUgYWdlbnQgY3Jhc2hlcyEpICBJdCdzIG5vdAogICBjbGVhciB3aGV0aGVyIHRoaXMgaXMgYXBwcm9wcmlhdGUgYmVoYXZpb3VyIGFueXdheS4KCiAgIE5lZWQgdG8gdGhpbmsgYWJvdXQgdGhpcyBhIGJpdCBtb3JlLgoKMjAwNS0xMC0wNyAwOToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlckNvbmYuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgQ29uZmlndXJlIG1vbml0b3Jpbmcgb2YgVUNELXNwZWNpZmljIHRhYmxlcwogICAoY29tcGF0YWJpbGl0eSB3aXRoIHByZXZpb3VzIEV2ZW50LU1JQiBpbXBsZW1lbnRhdGlvbikuCgogICBOb3QgeWV0IGZ1bGx5IHRlc3RlZCwgYnV0IHNlZW1zIHRvIGJlIE9LLgoKMjAwNS0xMC0wNyAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQvbXRlU2NhbGFycy5jLAogICAgIGV2ZW50L210ZVNjYWxhcnMuaDoKCiAgIEltcGxlbWVudCB0aGUgRXZlbnQtTUlCIHNjYWxhciBvYmplY3RzLgoKMjAwNS0xMC0wNyAwOToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKOgoKICAgQVBJIGZvciBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHZhbHVlcyBiZWluZyBtb25pdG9yZWQuCgoyMDA1LTEwLTA3IDA4OjQyICB0YW5kZXJzCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGdldCByaWQgb2YgQysrIGtleXdvcmQgIm5ldyIuIE1mRC1iYXNlZCBjb2RlIHN0aWxsIG5lZWRzIHRvIGJlIHJlZ2VuZXJhdGVkLgoKMjAwNS0xMC0wNyAwNTo1NSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIGRhcndpbjguaCBhbmQgc29sYXJpczIuMTAuaAoKMjAwNS0xMC0wNiAyMDozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbXByb3ZlIGhlbHAgb3V0cHV0CgoyMDA1LTEwLTA2IDIwOjIxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgQWRkIG5ldC1zbm1wLWNvbmZpZyBvcHRpb25zIC0tZGVmYXVsdC1taWJzLCAtLWRlZmF1bHQtbWliZGlycywgLS1wZXJzaXN0ZW50LWRpcmVjdG9yeSBhbmQgLS1zbm1wY29uZnBhdGgKCjIwMDUtMTAtMDYgMTk6MDEgIHJzdG9yeQoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIHRlc3RzL1N2M2NvbmZpZywKICAgICB0ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0cy9TdmFjbWNvbmZpZywKICAgICB0ZXN0cy9TdmFueWNvbmZpZzoKCiAgIC0gY3JlYXRlIGFuZCB1c2UgcGVyc2lzdGVudCBkaXIgaW4gdGVzdCBkaXJlY3RvcnkgKHNvIG1ha2UgdGVzdCBhcyByb290CiAgICAgZG9lc24ndCBtdWNrIHdpdGggc3lzdGVtIHBlcnNpc3RlbnQgY29uZikKCjIwMDUtMTAtMDYgMTg6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb3VudGVyNjQgc3VwcG9ydCB0byBzbm1wX2FkZF92YXIgKHNvIHRoZXkgY2FuIGJlIHNlbnQgdy9zbm1wdHJhcCkKCjIwMDUtMTAtMDYgMTg6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGV4cGxpY2l0IGJyYWNlcyB0byBrZWVwIGNvbXBpbGVyIGhhcHB5CgoyMDA1LTEwLTA2IDE4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBpbmNsdWRlIHV0bXAvdXRtcHggaGVhZGVyIChmaXggZm9yIG9uZSBvZiB0aGUgQlNEcykKCjIwMDUtMTAtMDYgMTg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICAtIGluY3JlYXNlIGRlZmF1bHQgYnVmZmVyIHNpemUKICAgLSBjaGVjayBvcGVuIHJjCiAgIC0gbG9nIGVyciBpZiBubyBkYXRhIGF2YWlsYWJsZQoKMjAwNS0xMC0wNiAxODo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1L2NwdS5jLCBtZW1vcnkvaHdfbWVtLmM6CgogICB0aGlzIChDKysgcmVzZXJ2ZWQgd29yZCkgLT4gdGhpc19wdHIKCjIwMDUtMTAtMDYgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGNhbGwgaW5pdF9hZ2VudHhfY29uZmlnIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgaGFuZGxlciBkaXJlY3RseQoKMjAwNS0xMC0wNiAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAtIHNsaWdodCByZW9yZyBvZiBpbml0X2FnZW50eF9jb25maWcoKQogICAgIC0gaWZkZWYgc29tZSBzdHVmZiBiYXNlZCBvbiBtYXN0ZXIgYWdlbnQgc3VwcG9ydAogICAgIC0gbW92ZSBhZ2VudHgocGVybXN8dGltZW91dCkgaW4gY29uZGl0aW9uYWwgZm9yIGFnZW50IHJvbGUgPT0gbWFzdGVyCgoyMDA1LTEwLTA2IDA4OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2F0IGNvcnJlY3QgZmlsZSBvbiBlcnJvcnMKCjIwMDUtMTAtMDYgMDg6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiB0byBlbWFpbCByZXN1bHRzCgoyMDA1LTEwLTA2IDA3OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgSVJJWCB0Y3AtbWliIGNsZWFudXAgcGF0Y2ggKGZyb20gQWxiZXJ0IENoaW4pCgoyMDA1LTEwLTA2IDA1OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgUHJlbGltaW5hcnkgaGFuZGxpbmcgb2YgZXJyb3JzLgoKMjAwNS0xMC0wNiAwNToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBCbG9jayBjb25maWd1cmF0aW9uIG9mIGRlbHRhLXRocmVzaG9sZHMgb24gZGVsdGEtc2FtcGxlcy4KCjIwMDUtMTAtMDYgMDU6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIENvbnNvbGlkYXRlIGhhbmRsaW5nIG9mIHN5c1VwVGltZSBpbnN0YW5jZSBkaXNjb250aW51aXR5IG1hcmtlci4KCjIwMDUtMTAtMDYgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgU3VwcG9ydCB0aGUgY29uZmlndXJhdGlvbiBvZiAqanVzdCogZGVsdGEgdGhyZXNob2xkIHRlc3RzLgoKMjAwNS0xMC0wNiAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLAogICAgIG10ZVRyaWdnZXJDb25mLmM6CgogICBJbXBsZW1lbnQgZGVsdGEtdGhyZXNob2xkIHRlc3RzLgoKMjAwNS0xMC0wNiAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBBY2NlcHQgbmVnYXRpdmUgdmFsdWVzIChyYXRoZXIgdGhhbiByZWplY3RpbmcgdGhlbSBhcyBpbnZhbGlkIG9wdGlvbnMpCgoyMDA1LTEwLTA2IDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRG9uJ3QgYm90aGVyIHRyeWluZyB0byBmaXJlIG1pc3NpbmcgdGhyZXNob2xkIGV2ZW50cy4KCjIwMDUtMTAtMDUgMDg6MjYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXQgcmlkIG9mIEMrKyBrZXl3b3JkICJjbGFzcyIKCjIwMDUtMTAtMDUgMDQ6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgU2lnaCAtIHJlYWQgdGhlIHdob2xlIGVtYWlsIG1lc3NhZ2UsIERhdmUhCgoyMDA1LTEwLTA1IDA0OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFJlbW92ZSBib2d1cyB0cmFpbGluZyBjb21tYSAocmVwb3J0ZWQgYnkgQWxiZXJ0IENoaW4pCgoyMDA1LTEwLTA0IDE3OjUxICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBldmVyeSBzeXN0ZW0gY2FsbCBpbnN0ZWFkIG9mIGp1c3Qgc3BlY2lhbCBvbmVzLgoKMjAwNS0xMC0wNCAxMDozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIGRlbHRhLXZhbHVlZCBzYW1wbGVzLgogICBPbmx5IHRlc3RlZCB3aXRoIEJvb2xlYW4gZW50cmllcywgYW5kIGEgYmFzaWMgc3lzVXBUaW1lLjAKICAgZGlzY29udGludWl0eSBtYXJrZXIuICBUaHJlc2hvbGQgZGVsdGEtdmFsdWVkIHNhbXBsZXMgYW5kCiAgIHdpbGRjYXJkZWQgZGlzY29udGludWl0eSBPSURzIG91Z2h0IHRvIHdvcmssIGJ1dCBzdGlsbCBuZWVkIHRlc3RpbmcuCgoyMDA1LTEwLTA0IDEwOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ2Fub25pY2FsaXNlIHByZXZpb3VzL2N1cnJlbnQgcmVzdWx0cyAtIG1hdGNoaW5nIGVudHJpZXMgbGVhZHMgdG8KICAgc2ltcGxlciB0ZXN0IGNvZGUuICBBZGp1c3QgRXhpc3RlbmNlIHRlc3RzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMuCgoyMDA1LTEwLTAzIDE5OjQ3ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgRml4IHR5cG8gaW4gc2NyaXB0LCBmaXggJXdpbmRpciUgZW52IHZhciBjaGVjay4KCjIwMDUtMTAtMDMgMDc6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgUnVuIFNFVCBhc3NpZ25tZW50cyBkdXJpbmcgdGhlIEFDVElPTiBwYXNzLCBzbyBlcnJvcnMgY2FuIGJlIHJlcG9ydGVkLgogICAoU2hvdWxkIGZpeCBCdWcgIzg2NDI4MSwgYW5kIGJlIGNvbnNpc3RlbnQgd2l0aCBwYXNzLmMgYmVoYXZpb3VyKQoKMjAwNS0xMC0wMSAxNjo1MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIGZvciBlbWFpbCBvZiBlcnJvciByZXN1bHRzCgoyMDA1LTEwLTAxIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGZpeCB1dG1wIGluY2x1ZGUgaWZkZWYgbG9naWMKCjIwMDUtMTAtMDEgMTI6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0wMSAxMjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjaGVjayBmb3IgbWJzdGF0Lm1fbWJ1ZnMgYmVmb3JlIHVzaW5nCgoyMDA1LTA5LTI5IDE4OjUxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgRml4IGJ1ZyAjMTE1MDAxODogRHluYW1pYyBhbGxvY2F0aW9uIG9mIGRpc2sgc3RvcmFnZSBhcnJheS4KCjIwMDUtMDktMjkgMTg6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4IGJ1ZyAjMTE1MDAxODogRHluYW1pYyBhbGxvY2F0aW9uIG9mIGRpc2sgc3RvcmFnZSBhcnJheS4KCjIwMDUtMDktMjkgMTg6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBQYXRjaCBmcm9tIGJ1ZyMxMjM0ODM0OiBmaXhlcyB0YXJnZXRhZGRydGltZW91dCBzbyBpdHMgd3JpdGFibGUKCjIwMDUtMDktMjkgMTg6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9lbnVtcy5jb25mOgoKICAgYWRkZWQgZ2VuZXJhdGlvbiBvZiBlbnVtcyBmb3Igc2NhbGFycwoKMjAwNS0wOS0yOSAxMzoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHNldCBzb2NrIGJ1ZiBzaXplIGZvciB1bml4IGRvbWFpbiBzb2NrZXRzCgoyMDA1LTA5LTI5IDA2OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEltcGxlbWVudCBzaW5nbGUtdmFsdWVkIHRocmVzaG9sZCB0cmlnZ2Vycy4KCjIwMDUtMDktMjggMTg6MjggIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBXaW4zMiBNU1ZDOiAgRW5hYmxlIEFFUyBlbmNyeXB0aW9uIHdoZW4gU1NMIGlzIGVuYWJsZWQuCgoyMDA1LTA5LTI4IDE3OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICBzd2FwIHJldmVyc2VkIGlmL2Vsc2UgY29kZQoKMjAwNS0wOS0yOCAxNTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIHByb3ZpZGUgZGVmYXVsdCBmb3IgaW50ZXJuYWwgc2VjbmFtZQoKMjAwNS0wOS0yOCAxMjozOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBsYXN0IHJlbWFpbmluZyAicHJlc2VudCwgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZyBvbiBTb2xhcmlzIDkKCjIwMDUtMDktMjggMTE6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50Ly5jdnNpZ25vcmUsCiAgICAgZXZlbnQvbXRlRXZlbnQuYywgZXZlbnQvbXRlRXZlbnQuaCwKICAgICBldmVudC9tdGVFdmVudENvbmYuYywgZXZlbnQvbXRlRXZlbnRDb25mLmgsCiAgICAgZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGV2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jCiwgZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCBldmVudC9tdGVFdmVudFRhYmxlLmMKLCBldmVudC9tdGVFdmVudFRhYmxlLmgsIGV2ZW50L210ZU9iamVjdHMuYywKICAgICBldmVudC9tdGVPYmplY3RzLmgsIGV2ZW50L210ZU9iamVjdHNDb25mLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0c0NvbmYuaCwgZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXIuYywKICAgICBldmVudC9tdGVUcmlnZ2VyLmgsIGV2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXJDb25mLmMKLCBldmVudC9tdGVUcmlnZ2VyQ29uZi5oLCBldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jCiwgZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgICBldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMKLCBldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwKICAgICBldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIE5ldyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIEV2ZW50IE1JQi4KCjIwMDUtMDktMjggMTA6MjYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgYWRkZWQgZG9jdW1lbnRhdGlvbiBkZXNjcmliaW5nIHRoZSBleGVjKCkgcGF0aCByZXF1aXJlbWVudAoKMjAwNS0wOS0yOCAxMDoyMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBVcGRhdGVkIGRvY3Mgb24gLUliIHRvIGRvY3VtZW50IGV4dHJhIGxpbWl0YXRpb25zCgoyMDA1LTA5LTI4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgRXh0ZW5kIHRhYmxlIGludGVyZmFjZSB3aXRoIHJvdyBjb21wYXJpc29uIEFQSSByb3V0aW5lcy4KCjIwMDUtMDktMjggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFVzZSB0aGUgZGVmYXVsdCBxdWVyeSBzZXNzaW9uIGZyb20gdGhlIGxpYnJhcnkuCgoyMDA1LTA5LTI4IDA2OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTdXBwb3J0IHRoZSBpZGVhIG9mIGEgImRlZmF1bHQgc2Vzc2lvbiIgZm9yIHRoZSBxdWVyeSBjb252ZW5pZW5jZSByb3V0aW5lcy4KCjIwMDUtMDktMjggMDU6MDAgIHRhbmRlcnMKCiAgICogUkVBRE1FOgoKICAgcmV2ZWFsIG15IGNvbnRpbnVlZCBwcmVzZW5jZSBhcm91bmQgaGVyZQoKMjAwNS0wOS0yOCAwNDo1MyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2FsbGJhY2sgdG8gcmVwb3J0IGVzdGFibGlzaG1lbnQgb2YgYSBjb25uZWN0aW9uIChmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA1LTA5LTI3IDIyOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gY29udmVydCBtYXNrIHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIHVwZGF0ZSBwZnhfbGVuIGNvdW50aW5nIGZvciBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSBhZGQgbGl0dGxlIGVuZGlhbiAvcHJvYy9uZXQvcm91dGUgZXhhbXBsZSBsaW5lCiAgIC0gb25seSBzZXQgcm91dGUgcG9saWN5IGZvciBkZWZhdWx0IGdhdGV3YXkgcm91dGVzCiAgIC0gdXBkYXRlIGZvciBuZXcgc3RhdGljIHBvbGljeSBmbGFnCiAgIC0gbmV3IHJvdXRlIGNyZWF0ZS9kZWxldGUgZnVuY3Rpb25zCgoyMDA1LTA5LTI3IDE5OjI1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgLSBtb3ZlIGFjdGl2ZSByb3cgc2V0IHJlc3RyaWN0aW9uIHRvIGRlcGVuZGVuY3kgY2hlY2sgZnVuY3Rpb24KICAgLSB1cGRhdGUgYXNzZXJ0IHRvIHRlc3QgYWdhaW5zdCBuZXcgZXhwZWN0ZWQgdmFsdWUKCjIwMDUtMDktMjcgMTk6MTIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuMTAuaDoKCiAgIGFkZCBTb2xhcmlzIDEwIHN1cHBvcnQKCjIwMDUtMDktMjcgMTk6MDggIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkeW5hbWljIGlwdjQgcm91dGUgY3JlYXRpb24vZGVsZXRpb24KCjIwMDUtMDktMjcgMTc6NDUgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0LCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBUcnU2NCBVbml4IDUueCBidWlsZCBmaXhlcyAoYnVnICMxMjE3NTA5KQoKMjAwNS0wOS0yNyAxNDo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgcHJpbnQgcmFuZ2UgaW5mb3JtYXRpb24KCjIwMDUtMDktMjcgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gdXNlIG5ldyByb3V0ZV9lbnRyeSBmdW5jdGlvbnMgZm9yIGR5bmFtaWMgaXB2NCByb3V0ZSBjcmVhdGlvbi9kZWxldGlvbgogICAtIG51a2UgZ2VuZXJhdGVkIGNvbHVtbiB1bmRvIGZ1bmNzLCB1c2UgbmV3IHRhYmxlIGxldmVsIG9uZSBpbnN0ZWFkCiAgIC0gYWRkIHNvbWUgZGVwZWRlbmN5IHZhbGlkYXRpb24gKGFkZHIgdHlwZSAmIGV4cGVjdGVkIGFkZHIgbGVuKQoKMjAwNS0wOS0yNyAxMzowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb21tZW50cwoKMjAwNS0wOS0yNyAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgcGF0Y2ggIzEzMDQ0MDA6IGJldHRlciBoclNXUnVuVHlwZSBzdXBwb3J0CgoyMDA1LTA5LTI3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICMxMjI1MzYwIHRvIGZpeCB0aGUgc211eCBlbmNvZGluZyBvZiB0aGUgcmVxdWVzdGlkIHRvIGEgc2lnbmVkIGludAoKMjAwNS0wOS0yNyAxMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAga2V5IHZhY20gIm5vIGFjY2VzcyIgd2FybmluZyBvZmYgYWdlbnRfbW9kZSBpbnN0ZWFkIG9mIGFwcCB0eXBlCgoyMDA1LTA5LTI3IDEyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBzb2NrIHN0YXJ0dXAKCjIwMDUtMDktMjcgMTI6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICAtIGRvY3VtZW50IHRoYXQgYWRkcmVzc2VzIGFyZSBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSBidW1wIG1heCBwb2xpY3kgb2lkIGxlbmd0aCB0byAyLCB0byBoYW5kbGUgZGVmYXVsdCBudWxsIG9pZCBjYXNlCiAgIC0gbW92ZSBwb2xpY3kgc3RhdGljIGZsYWcgZGVmaW5pdGlvbiB3aXRoIG90aGVyIGZsYWdzCiAgIC0gY2hhbmdlIHBvbGljeSBzdGF0aWMgZmxhZyBzbyBhcyBub3QgdG8gY29uZmxpY3Qgd2l0aCBpdGVtIGNoYW5nZWQgZmxhZ3MKICAgLSBhZGQgbmV3IHBvbGljeSBkZWVwIGNvcHkgZmxhZwogICAtIGFkZCBtYWNybyBvZiAnY2hhbmdlIGl0ZW0nIGZsYWdzIG1hc2sKCjIwMDUtMDktMjcgMTI6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgLS1mb3J3YXJkIGZsYWcgdG8gcGF0Y2ggY29tbWFuZAoKMjAwNS0wOS0yNyAxMjowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgLSB1c2UgbmV3IG1pYjJjIGxlZnQvcmlnaHQgaGFuZCBsZW5ndGggdW5pdHMgZm9yIHByb3BlciBzaXplcyB3aGVuIGNvcHlpbmcKICAgICBhbmQgY29tcGFyaW5nIGRhdGEKCjIwMDUtMDktMjcgMTE6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICAtIG92ZXJyaWRlIGRlZmF1bHQgbGVmdC9yaWdodCBoYW5kIGxlbmd0aCB1bml0czsgYm90aCBhcmUgZWxlbWVudHMKICAgLSB1cGRhdGUgaW5pdGlhbCBzZXQgb2YgbWF4IGxlbiB0byBiZSBlbGVtZW50cwoKMjAwNS0wOS0yNyAxMTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBkZWZpbmUgZGVmYXVsdCBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ2h0IHVuaXRzIChieXRlcy9lbGVtZW50cykKCjIwMDUtMDktMjcgMTE6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIC0gZGVmaW5lIHNlcGFyYXRlIHNldHRhYmxlIGZsYWdzCiAgIC0gZGVmaW5lIHNldHRhYmxlIGNvbHVtbiBtYWNybwoKMjAwNS0wOS0yNyAxMTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgZml4IGluY29ycmVjdCByZXR1cm4gZGVmaW5lIHN1Z2dlc3Rpb24gaW4gY29tbWVudAoKMjAwNS0wOS0yNyAxMTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWx3YXlzIHRyYWNrIGlmIGRhdGEgY29udGV4dCB3YXMgcHJvdmlkZWQgYnkgdXNlcgogICAtIGRvbid0IGNhbGwgZGF0YSBjdHggaW5pdCByb3V0aW5lIGZvciB1c2VyIHByb3ZpZGVkIGRhdGEKICAgLSByZW1vdmUgaW50ZXJuYWwvdmVyYm9zZSBwcmVmaXggZnJvbSBhbGwgZGVidWcgZXJyb3IgY2FzZXMKICAgLSBkb24ndCB0cnkgdG8gY29weSBpbmRleGVzIGlmIGluZGV4IGNoZWNrIGZhaWxlZCAoYW5kIGN0eCB3YXMgcmVsZWFzZWQhKQogICAtIGNhbGwgcm93X3ByZXAgZm9yIG5ld2x5IGNyZWF0ZWQgcm93cyAoZHluYW1pYyByb3cgY3JlYXRpb24pCiAgIC0gY2FsbCBuZXcgdGFibGUgdW5kbyBiZWZvcmUgY29sdW1uIHVuZG8KCjIwMDUtMDktMjcgMTE6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIC0gb25seSBpbmNsdWRlIHNldHRhYmxlIG9iamVjdCB3aGVuIGNhbGN1bGF0aW5nIHRtcCBzdG9yYWdlIHNpemUKICAgLSBkb24ndCBjYWxsIGNvbF9zYXZlIHJvdXRpbmUgaWYgY29sdW1uIGlzbid0IHNldHRhYmxlCgoyMDA1LTA5LTI3IDExOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWRkIHRhYmxlIGxldmVsIHVuZG8gYmVmb3JlIGNvbHVtbiBsZXZlbCB1bmRvCgoyMDA1LTA5LTI3IDExOjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGhhbmRsZSBuZXdseSBjcmVhdGVkIHJvdyB3L3JvdyBzdGF0dXMgb2YgZGVzdHJveQoKMjAwNS0wOS0yNyAxMTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBmcmVlIHJ0X3BvbGljeSBpZiBzdGF0aWMgZmxhZyBzZXQKICAgLSBuZXcgZnVuY3Rpb24gdG8gc2V0IHJvdXRlIGNoYW5nZXMKICAgLSBuZXcgZnVuY3Rpb24gdG8gY29weSByb3V0ZV9lbnRyaWVzCgoyMDA1LTA5LTI3IDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlcXVpcmUgbmV3IHJvdXRlX2lvY3RsIGZvciBsaW51eAoKMjAwNS0wOS0yNyAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIC0gdXBkYXRlIHRpbWVvdXQgZm9yIGF1dG8tdXBkYXRlIGNhY2hlcyB3aGVuIG1pYiB2YWx1ZSBjaGFuZ2VkCgoyMDA1LTA5LTI3IDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gbW92ZSBjb2RlIGZvciBoZWxwIGNhc2UgYWZ0ZXIgYWxsIGNvbW1hbmQgbGluZSBhcmdzIGhhdmUgYmVlbiBwcm9jZXNzZWQKICAgLSBhZGQgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24gKC1uKSBmb3IgJ2FwcGxpY2F0aW9uIG5hbWUnOyB2ZXJ5IHVzZWZ1bCBmb3IKICAgICBoYXZpbmcgbXVsdGlwbGUgY29uZmlncywgYW5kIHdvcmtzIHdlbGwgd2l0aCBwZXJzaXN0ZW50IHN0b3JlIHRvby4gT3BlbgogICAgIGZvciBzdWdnZXN0aW9ucyBvbiBhIGRpZmZlcmVudCBjaGFyIChvciBtZXJnZSB3L3NvbWUgZXhpc3RpbmcgbXVsdGktY2hhcgogICAgIHNldDsgbWF5YmUgLUMpLgoKMjAwNS0wOS0yNyAxMToyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTI3IDExOjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBhZGQgZGlzbWFuL2V2ZW50LW1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0CiAgIC0gYWRkIGhvc3QgdG8gZGVmYXVsdCBtb2R1bGUgbGlzdCBmb3IKICAgICBsaW51eCogfCBtaW5ndzMyKiB8IGN5Z3dpbiogfCBmcmVlYnNkKiB8IGR5bml4KiB8IHNvbGFyaXMyKiB8IGhwdXgqCgoyMDA1LTA5LTI3IDEwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgc29tZSBub24tc291cmNlIGZpbGVzIGdlbmVyYXRlZCBieSBNRkQKCjIwMDUtMDktMjcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy86IHJvdXRlX2lvY3RsLmMsCiAgICAgcm91dGVfaW9jdGwuaCwgcm91dGVfbGludXguaDoKCiAgIGNvcHkgcm91dGUgaW9jdGxzIGZyb20gbWliSUkvcm91dGVfd3JpdGUgJiB1cGRhdGUgZm9yIHJvdXRlX2VudHJ5CgoyMDA1LTA5LTI2IDE5OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGJ1ZyAxMjkyODk2IGNoZWNraW5nIGZvciAtMSBiZWZvcmUgc2VhcmNoaW5nIGZvciBUQyB0eXBlCgoyMDA1LTA5LTI2IDE4OjU0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMjYgMTg6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkb24ndCBtYWtlIGRlY2lzaW9ucyBiYXNlZCBvbiB0YXJnZXRfb3MgdW50aWwgYWZ0ZXIgaXQncyBzZXQhCgoyMDA1LTA5LTI2IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEJ1ZyBQYXRjaCAjMTI5Njg0MjogZG9uJ3QgcmV0dXJuIGZyb20gdm9pZCBmdW5jdGlvbgoKMjAwNS0wOS0yNiAxNjoyMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGZpeCBTTk1QdjMgY29uZmlnIGlmIEFFUyBpc24ndCBhdmFpbGFibGUKCjIwMDUtMDktMjYgMTM6MDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEZpeCAiLXgiIG9wdGlvbgoKMjAwNS0wOS0yNiAwODoyNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE9wZW5CU0QgYnVpbGQgZml4OiBicmluZyBpbiBzeXMvdGltZW91dC5oCgoyMDA1LTA5LTI0IDE1OjAyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgUHV0IGJhY2sgbWlzc2luZyAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkKICAgcmVtb3ZlJyBtZXNzYWdlIHdoZW4gdW5pbnN0YWxsaW5nLgoKMjAwNS0wOS0yMyAyMTo0NSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBBZGQgb3B0aW9uYWwgY2hlY2sgZm9yIE9wZW5TU0wgRExMIChsaWJlYXkzMi5kbGwpCgoyMDA1LTA5LTIzIDEyOjI0ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgdGhhdCBzbm1wZCBub3cgaW1wbGVtZW50ZWQgbm90aWZpY2F0aW9uIGxvZ2dpbmcgYW5kIGZpbHRlcmluZwoKMjAwNS0wOS0yMyAxMDo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBSZXJ1biBhdXRvY29uZgoKMjAwNS0wOS0yMyAxMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBzaHJpbmsgYnVmZmVyIHNpemUgc28gTUlCIHNpemUgbGltaXQgbm90IGV4Y2VlZGVkCgoyMDA1LTA5LTIyIDE5OjAyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW92ZSBzb2NrZXR2YXIuaCBhZnRlciBzb2NrZXQuaAoKMjAwNS0wOS0yMiAxNzoyMSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIERlZmF1bHQgdG8gZGlzbGFiZWQgZm9yIGRldmVsb3BtZW50IGZpbGVzLgoKMjAwNS0wOS0yMiAxNTozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHB1dCB2YXIgbmFtZSBpbiBicmFjZXMgdG8gc2VwYXJhdGUgZnJvbSBhcHBlbmRlZCB0ZXh0CgoyMDA1LTA5LTIwIDA5OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTaW5jZSB0aGUgbGVuZ3RoIHBhcmFtZXRlciBpc24ndCBhbHdheXMgcmVxdWlyZWQgd2hlbiBzdG9yaW5nIGRhdGEsCiAgIGFsbG93IGl0IHRvIGJlIG9taXR0ZWQgKGFuZCBjb3JyZWN0IHRoZSBtaXNsZWFkaW5nIGNvbW1lbnQgYXMgdG8KICAgaG93IHRoaXMgaXMgYWN0dWFsbHkgdXNlZCEpCgoyMDA1LTA5LTE2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIGZyb20gUGF0cmljayBXZWxjaGUgdG8gZml4IHF1b3RpbmcgZm9yIG5ld2VyIGF1dG9jb25mcwoKMjAwNS0wOS0xNiAxNToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIGNvcnJlY3QgbWlzc2luZyBmdW5jdGlvbiBjYWxscyBub3cgcmVwbGFjZWQgYnkgdGRhdGEuCgoyMDA1LTA5LTE2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzdXBwb3J0IGZvciBzdHJpbmcgcGFyc2luZyBvZiBjb3VudGVyNjRzCgoyMDA1LTA5LTE2IDE0OjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMTQ6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHVwZGF0ZSBvdXQtb2Ytc3luYyB2ZXJzaW9uIG51bWJlcnMKCjIwMDUtMDktMTYgMTM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgZG9uJ3QgdHJ5IHRvIHVzZSBTSU9DKEFERHxERUwpUlQgaWYgdGhleSBhcmVuJ3QgZGVmaW5lZAoKMjAwNS0wOS0xNiAxMjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEhSU1dSVU5QRVJGX01FTSBkb24ndCB3b3JrIG9uIGRhcndpbjgKCjIwMDUtMDktMTYgMTI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHVzZSBuZXcgY29uZmlndXJlIHZhciBQRVJMTERPUFRTCgoyMDA1LTA5LTE2IDEyOjEwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIG1pc3Npbmcgc2Vjb25kIHNlbWljb2xvbgoKMjAwNS0wOS0xNiAxMTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi86IGNoZWNrX3ZhcmJpbmQuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2xvZ2dpbmcuYzoKCiAgIFBpY2sgdXAgYSBjb3VwbGUgb2Ygc3RyYXkgJ3N0cmluZ3MnIHRoYXQgc2xpcHBlZCB0aHJvdWdoLgogICAoYW5kIGEgYm9ndXMgQVNOIHR5cGUgbmFtZSkKCjIwMDUtMDktMTYgMTA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICByZWZpbmUgY29uZGl0aW9uYWwgaW5jbHVkZXMgbG9naWMKCjIwMDUtMDktMTYgMTA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGluY2x1ZGUgc3lzL3NvY2tldHZhci5oIGlmZiBhdmFpbGFibGUKCjIwMDUtMDktMTYgMTA6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBicmVhayBwZXJsIGxkIG9wdHMgaW50byBpdHMgb3duIHZhcgoKMjAwNS0wOS0xNiAxMDo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDEwOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDA4OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBUd2VhayB0byB1c2UgdGhlIHJldmlzZWQgJ3RkYXRhJyBBUEkuCgoyMDA1LTA5LTE2IDA3OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBVc2UgdGhlIGFwcHJvcHJpYXRlIGxpYnJhcnkgdXRpbGl0eSByb3V0aW5lcyBmb3IgcmV0dXJuaW5nIGEKICAgY29sdW1uIHZhbHVlLCBhbmQgY2hlY2tpbmcgdGhlIHZhbGlkaXR5IG9mIGFuIGFzc2lnbm1lbnQuCgoyMDA1LTA5LTE2IDA3OjMzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBVc2UgdGhlIChyZXZpc2VkKSBjb250YWluZXItYmFzZWQgJ3RhYmxlX2RhdGEyJyBoZWxwZXIuCgoyMDA1LTA5LTE2IDA3OjIxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggdHlwbyB3aGVuIGRlZmluaW5nIHJhbmdlIG9mIHZhbGlkIGNvbHVtbnMuCgoyMDA1LTA5LTE2IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmg6CgogICBJJ3ZlIG5ldmVyIGxpa2UgdGhlIHJlbmFtaW5nIG9mIHRoZSBjb250YWluZXItYmFzZWQgdGFibGVfZGF0YQogICBBUEkgY2FsbHMgYW5kIGRhdGEgc3RydWN0dXJlcy4gIElmIHdlJ3JlIHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0CiAgIHJlbGVhc2luZyB0aGlzIGNvZGUsIHRoZW4gYW55IGFsdGVyYXRpb25zIG11c3QgYmUgbWFkZSAqYmVmb3JlKgogICB0aGlzIGdvZXMgbGl2ZSwgb3IgZWxzZSBpdCdsbCBiZSB0b28gbGF0ZS4KCiAgIEkndmUgZmluYWxseSBjb21lIHVwIHdpdGggYSBmb3JtIG9mIG5hbWluZyBmb3IgdGhlIHRhYmxlX2RhdGEyCiAgIGNvZGUgdGhhdCBJJ20gcmVhc29uYWJseSBoYXBweSB3aXRoIChiYXNlZCBhcm91bmQgJ3RkYXRhJyksCiAgIHNvIHRoaXMgcGF0Y2ggcmV3cml0ZXMgdGhpcyBoZWxwZXIgdG8gdXNlIHRoYXQgc3R5bGUgKGFzIHdlbGwKICAgYXMgdHdlYWtpbmcgdGhlIGRhdGFzZXQyIGNvZGUgdG8gbWF0Y2gpLgogICAgIFRoZSBtYWluIGRhdGFzZXQyIEFQSSBoYXNuJ3QgYmVlbiBwcm9wZXJseSB1cGRhdGVkLCBidXQgdGhpcwogICBzaG91bGQgcHJvYmFibHkgYWxzbyBiZSBhZGRyZXNzZWQgYmVmb3JlIDUuMyBnb2VzIG91dCBvZiB0aGUgZG9vci4KCiAgIFRoaXMgdmVyc2lvbiBhbHNvIGlsbHVzdHJhdGVzIGEgc3VpdGFibGUgImdlbmVyaWMgdGFibGUgQVBJIiwKICAgdGhhdCBjb3VsZCB1c2VmdWxseSBiZSBjb25zaWRlcmVkIGZvciBvdGhlciB0YWJsZSBoZWxwZXJzIGFzCiAgIHdlbGwuICBTb21lIGFzcGVjdHMgb2YgaXQgbWF5IGJlIHNwZWNpZmljIHRvIHRoZSB0YWJsZV9kYXRhCiAgIGZyYW1ld29yaywgYnV0IHRoZSBiYXNpYyBpZGVhcyBhcmUgbW9yZSB3aWRlbHkgcmVsZXZhbnQuCgoyMDA1LTA5LTE2IDA2OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmM6CgogICBBIGNvbnRhaW5lci1iYXNlZCAnZGF0YXNldCcgaW1wbGVtZW50YXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGNvbnZlcnQKICAgR0VUTkVYVC9CVUxLIHJlcXVlc3RzIGludG8gYW4gZXF1aXZhbGVudCBHRVQgcmVxdWVzdCAoaW5jbHVkaW5nIHVwZGF0aW5nCiAgIHRoZSBPSUQpLiAgU28gYWxsIHRoYXQncyByZXF1aXJlZCBpcyB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlLgogICBUaGUgJ25ldHNubXBfdGFibGVfZGF0YTJfYnVpbGRfcmVzdWx0JyByb3V0aW5lIGlzIHRoZXJlZm9yZSByZWR1bmRlbnQuCgoyMDA1LTA5LTE2IDA2OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgRGVmaW5lIGEgbmV3IGNoZWNrIHV0aWxpdHkgcm91dGluZSBmb3IgdW5zaWduZWQgaW50ZWdlcnMuCiAgIEludGVnZXJzIGFyZSBtZWFudCB0byBiZSByZXByZXNlbnRlZCBhcyAnbG9uZycgcmF0aGVyIHRoYW4gJ2ludCcgdmFsdWVzLgoKMjAwNS0wOS0xNiAwNjozMCAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYywgaW50NjQuYywgcGFyc2UuYywKICAgICByZWFkX2NvbmZpZy5jLCBzbm1wLXRjLmMsIHNubXBBQUw1UFZDRG9tYWluLmMsCiAgICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jCiwgc25tcF90cmFuc3BvcnQuYzoKCiAgIEJsaXR6IHVzZSBvZiAnc3RyaW5nJyBhcyBhIHZhcmlhYmxlIG5hbWUuCgoyMDA1LTA5LTE2IDA1OjQ5ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBSZWdlbmVyYXRlIHRvIG1hdGNoIHVwZGF0ZWQgJ2NvbmZpZ3VyZS5pbicKCjIwMDUtMDktMTYgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgVXNlIGEgc2VjdXJpdHkgbW9kZWwgbnVtYmVyIGRlZmluZWQgaW4gdGhlIGdsb2JhbCBoZWFkZXIgaW5zdGVhZCBvZiBhCiAgIGhhcmQtY29kZWQgbnVtYmVyCgoyMDA1LTA5LTE2IDAxOjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIGRlZmluZSBzZWN1cml0eSBtb2RlbCBudW1iZXJzIGZvciBuZXQtc25tcCBzcGVjaWZpYyBzZWN1cml0eSBtb2RlbHMKICAgaGVyZSB0byBrZWVwIGEgcmVnaXN0cnkgaW4gYSBjZW50cmFsIHBsYWNlLgoKMjAwNS0wOS0xNiAwMToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBsb2NhbHNtLmgsCiAgICAgc25tcGxpYi9zbm1wbG9jYWxzbS5jOgoKICAgLSBEZWZpbmVkIGEgbG9jYWwgc2VjdXJpdHkgbW9kZWwgdGhhdCBhc3N1bWVzIHRoZSBwZXJzb24gdGhhdCBleGVjdXRlZAogICAgIHRoZSBhZ2VudCBpcyB0aGUgb25lIHdobyBzaG91bGQgYmUgYXV0aG9yaXplZC4gIEl0IHJlcXVpcmVzIHRoYXQgYQogICAgIHRyYW5zcG9ydCB3YXMgdXNlZCB0aGF0IHdhcyBub3QgYSBkaXJlY3QgbmV0d29yayB0cmFuc3BvcnQgKEVHLAogICAgIGN1cnJlbnRseSB0aGlzIG1lYW5zIGl0IHdhcyB0dW5uZWxlZCBvciBzZW50IHRocm91Z2ggc3RkaW4vb3V0CiAgICAgY2hhbm5lbCkuICBBdXRoZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlvbiBsZXZlbCwgYmVpbmcgdW5rbm93biwgaXMKICAgICBsZWZ0IGF0IG5vQXV0aE5vUHJpdi4KCiAgICAgVGhpcyBtb2RlbCBpcyBleHBlY3RlZCB0byBiZSB1c2VkIGZvciBleHBlcmltZW50YWwgYW5kIHB1cnBvc2VzIG9ubHkKICAgICBhdCB0aGlzIHRpbWUgYW5kIHNob3VsZCBwcm9iYWJseSBub3QgYmUgdXNlZCBpbiBwcm9kdWN0aW9uLgoKMjAwNS0wOS0xNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGRlZmluZSBhIFBEVSB0dW5uZWxlZCBmbGFnCgoyMDA1LTA5LTE1IDExOjU4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIG1udF9kaXIgaW4gc3RhdHZmcwoKMjAwNS0wOS0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIEFkZGVkIGEgbGluayB0byB0aGUgY29uZm9ybWFuY2Ugc3VtbWFyeS4KCjIwMDUtMDktMTUgMDk6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIC0gQWRkZWQgU1REIGluaXQKCjIwMDUtMDktMTUgMDk6NDYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICAtIEFkZGVkIGFiaWxpdHkgZm9yIFNURCBoYW5kbGVyIHRvIGNhbGwgZXh0ZXJuYWwgdGhpbmdzIHRvIHBpcGUgdG8vZnJvbQogICAtIEJlZ2lubmluZyBzdXBwb3J0IGZvciBhIHRyYW5zcG9ydCBiZWluZyBrbm93biBhcyAidHVubmVsZWQiLgoKMjAwNS0wOS0xNSAwOTo0NSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG1pbm9yIGZpeGVzCgoyMDA1LTA5LTE1IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRGVmaW5pdGlvbnMgZm9yIG5ldyBmZWF0dXJlcyAoc3RkIGFuZCBhIGZ1dHVyZSBTTSBtb2RlbCkKCjIwMDUtMDktMTQgMjM6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNoZWNrIGZvciBzdHJ1Y3QgbWVtYmVyIGJlZm9yZSB1c2luZwoKMjAwNS0wOS0xNCAyMDoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY2hlY2sgZm9yIHN5cy9zb2NrZXR2YXIuaCBlYXJsaWVyCiAgIC0gaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggaW4gbmV0d29yayBoZWFkZXIgdGVzdHMKICAgLSBmaXggd2l0aG91dC1lbGYgdGVzdAoKMjAwNS0wOS0xNCAyMDowNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaDoKCiAgIG1pc3NpbmcgZGVmaW5lcyBmb3IgZGFyd2luOCAoT1MgWCAxMC40LjIpCgoyMDA1LTA5LTE0IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgQWRkZWQgYSBvZGQgdHJhbnNwb3J0IHRvIGRvIHN0dWZmIHRocm91Z2ggc3RkaW4vb3V0CgoyMDA1LTA5LTEzIDE0OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlCgoyMDA1LTA5LTEyIDExOjM2ICBkdHMxMgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgUHJvdmlkZSBhIG1ha2UgdGFyZ2V0IGZvciB0ZXN0aW5nIHRoZSBNSUJzIGltcGxlbWVudGVkIGJ5IGFuIGFnZW50LgogICBUaGUgYmVoYXZpb3VyIG9mIHRoaXMgdGFyZ2V0IG1heSBuZWVkIHNvbWUgYWRqdXN0bWVudCwgYnV0IGl0J3MgYSBzdGFydC4uLgoKMjAwNS0wOS0xMiAxMToyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgRG9jdW1lbnQgdGhhdCAnZGVsZXRlX3JvdycgaG9vayBkb2Vzbid0IHJldHVybiBhIHVzZWZ1bCByZXN1bHQuCgoyMDA1LTA5LTEyIDExOjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBJbmNsdWRlIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIgKGFzIHVzZWQgYnkgdGhlICJtaWIyYy5hcnJheS11c2VyLmNvbmYiCiAgIHRlbXBsYXRlKSBpbiB0aGUgY29tYmluZWQgaGVscGVyIGhlYWRlciBmaWxlLgogICAgIChOb3cgd2UnbGwgZmluZCBvdXQgd2h5IGl0IHdhcyBvbWl0dGVkLi4uLi4pCgoyMDA1LTA5LTEyIDEwOjUwICBkdHMxMgoKICAgKiBzbm1wbGliLzogY2hlY2tfdmFyYmluZC5jLCBzbm1wLXRjLmM6CgogICBFbnN1cmUgdGhhdCBpbnZhbGlkIFJvd1N0YXR1cyBhc3NpZ25tZW50cyByZXR1cm4gYSAnd3JvbmdWYWx1ZScgZXJyb3IuCgoyMDA1LTA5LTEyIDEwOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgQWRkaXRpb25hbCBTRVQgdmFsaWRhdGlvbiB1dGlsaXR5IHJvdXRpbmVzCiAgIChmb3IgT0lEIGFuZCBnZW5lcmFsIElOVEVHRVIgYXNzaWdubWVudHMpCgoyMDA1LTA5LTEyIDEwOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxpdGllcy5oLCB1dGlsaXRpZXMvaXF1ZXJ5Lmg6CgogICBJbmNsdWRlIHRoZSBuZXcgImludGVybmFsIHF1ZXJ5IiBtb2R1bGUKCjIwMDUtMDktMDkgMDc6MTEgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBuZXcgbWliMmMgY29uZmlnIGZpbGVzLiAoQnVnICMxMjg0MzE1KQoKMjAwNS0wOS0wOSAwNjowOSAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgRW5zdXJlIHRoYXQgdGhlIE1JQiBpbnRlcm5hbHMgYXJlIGluaXRpYWxpc2VkIGJlZm9yZSB1c2luZyB0aGVtLiAgKEJ1ZyAjNzA1NTM2KQoKMjAwNS0wOS0wOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgcmVtb3ZlIHNodXRkb3duIGNvZGUgKGhhbmRsZWQgYnkgaWZUYWJsZSkKCjIwMDUtMDktMDcgMTA6MzAgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEZpeCBhICdteScgbGlzdCBkZWNsYXJhdGlvbiB0aGF0IHNsaXBwZWQgdGhyb3VnaCB0aGUgbmV0LgogICBDYW4gZmluYWxseSBjbG9zZSBidWdzICM1Nzk3MDUgJiAjNjAxMTkwLgoKMjAwNS0wOS0wNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmVwb3J0IGVycm9ycyBmb3IgaW52YWxpZCB0YWJsZSBPSURzIGFwcHJvcHJpYXRlbHkgZm9yIHRoZSB0eXBlIG9mIHJlcXVlc3QuCiAgIChCYXNlZCBvbiBwYXRjaCAjMTI3Njk5OSBieSBSb2JlcnQgV2lsY294KQoKMjAwNS0wOS0wNyAwNToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBUd2VhayB0byBVU00gZGVidWdnaW5nIC0gaGVscCBkZXRlY3QgZW5naW5lSUQgbWlzbWF0Y2hlcwoKMjAwNS0wOS0wNiAyMTo0OCAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIG5ldHNubXBtaWJzL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcwoKMjAwNS0wOS0wNiAyMDozNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIFdpbjMyIE1TVkMgY29tcGlsZSBmaXggLSBkZWNsYXJlIHZhcmlhYmxlcyBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbi4KCjIwMDUtMDktMDYgMjA6MDcgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBDaGFuZ2UgZGVmYXVsdCB2ZXJzaW9uIGZvciBiaW5hcnkuCgoyMDA1LTA5LTA2IDIwOjA2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvYnVpbGQucGwKLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBBZGQgJ0RldmVsb3BtZW50IGZpbGVzJyBzZWN0aW9uIHRvIHdpbjMyIGJpbmFyeQoKMjAwNS0wOS0wNiAxOToyOSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIFdpbjMyOiBVcGRhdGUgYmluYXJ5IFJFQURNRS50eHQgdG8gcmVmZXJlbmNlIFJFQURNRS53aW4zMgoKMjAwNS0wOS0wNiAxOToxNyAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZQo6CgogICBhZGQgLmxpYnMgYW5kICoubG8KCjIwMDUtMDktMDYgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwgbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCByZXZlcnNlZCBpcEFkZHJlc3Mgb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzCgoyMDA1LTA5LTA2IDExOjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSB0byBsaWJ0b29sIHJlY29tbWVuZGVkIHZlcnNpb25pbmcKCjIwMDUtMDktMDUgMTk6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaAosIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wOS0wNSAxNjoxNiAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgY2hlY2sgZm9yIE9wZW5TU0wgYmVmb3JlIHRyeWluZyB0byB1c2UgQUVTCgoyMDA1LTA5LTA0IDEyOjA4ICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHVzZSBleGlzdGluZyBTTk1QX1ZFUkJPU0UgZW52IHZhbHVlLCBpZiBzZXQKCjIwMDUtMDktMDQgMTE6NTYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB0ZXN0IGNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaWdub3JpbmcgZXhlY3V0aW9uIGVycm9yCgoyMDA1LTA5LTAyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2F1dGguYywgc25tcHRyYXBkX2F1dGguaDoKCiAgIGFkZGVkIHRlbXBsYXRlIGZ1bmN0aW9ucyBmb3IgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMKCjIwMDUtMDktMDIgMTk6MzIgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSAuY3ZzaWdub3JlIGZpbGVzCgoyMDA1LTA5LTAxIDE3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBleHRyYSBwYXJhbm9pZCBsZW5ndGggY2hlY2tzCgoyMDA1LTA5LTAxIDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBhY2NvdW50IGZvciBoZXhpZmllZCB0ZXh0IGxlbiBvbiBwZXJzaXN0ZW50IHN0b3JlIHNhdmUKCjIwMDUtMDgtMzEgMjI6MjkgIGFsZXhfYgoKICAgKiBORVdTLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGx5IHBhdGNoIGZvciBidWcgMTIwNjcxMjogUGVybCBnZXRuZXh0IGRvZXNuJ3QgaG9ub3IgZXhwbGljaXQgcmVmZXJlbmNlCiAgIHRvIE1JQiBmaWxlCgoyMDA1LTA4LTMwIDExOjQwICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjByZmMxMjEzLCBUMTYxcmZjMTIxMywgVDE2MnJmYzEyMTMKOgoKICAgcmVtb3ZlIG5vbi1jb25kaXRpb25hbCB0ZXN0cyBvZiBwb3RlbnRpYWxseSB1bmltcGxlbWVudGVkIG9iamVjdHMKCjIwMDUtMDgtMzAgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIGtlZXAgcnVubmluZyBjb3VudCBvZiB0cmFwcyBzZW50CgoyMDA1LTA4LTMwIDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIG5vdGlmaWNhdGlvbiBmaWx0ZXJpbmcgcGVyIFJGQyAzNDEzLCBzZWN0aW9uIDYKCjIwMDUtMDgtMzAgMDg6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIHVzZSBuZXcgbWZkIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0zMCAwODowNiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgKOgoKICAgbmV3IGZpbGUKCjIwMDUtMDgtMjkgMjE6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHR4dCBmaWxlcwoKMjAwNS0wOC0yOSAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcC1ub3RpZmljYXRpb24tbWliLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZSwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgLSBuZXcgTUZEIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0yOSAyMDo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgbWliMmMgY29kZQogICAtIHNldCByb3cgZGlydHkgZmxhZyBvbiBzdWNjZXNmZnVsIGNvbW1pdAogICAtIGNsZWFyIHJvdyBkaXJ0eSBmbGFnIG9uIHN1Y2Nlc3NmdWwgdW5kbyBjb21taXQKCjIwMDUtMDgtMjkgMjA6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGNoYW5nZSBkaXJ0eSBmbGFnIHRvIHVfaW50CiAgIC0gYWx3YXlzIGdlbmVyYXRlZCBpbnRlcmZhY2UgaXJyZXZlcnNpYmxlX2NvbW1pdAogICAgIC0gbW92ZSBhdXRvIHJvdyBpbnNlcnQvZGVsZXRlIHRvIGlycmV2ZXJzaWJsZV9jb21taXQKICAgLSByZWxlYXNlIGRlbGV0ZWQgcm93cyBpbiBwb3N0X3JlcXVlc3QsIGJlZm9yZSBjYWxsaW5nIHVzZXIKICAgLSB3YXJuaW5nIGlmIGRpcnR5IGZsYWcgc2V0IG9uIHVuc3VjY2Vzc2Z1bCBwYWNrZXQKICAgLSBtZW1zZXQgbG9jYWwgc3RydWN0IHRvIDB4MDAgYmVmb3JlIHVzZQogICAtIGNvcHkgaW5kZXhlcyB0byByb3dyZXEgb2lkX2lkeCBvbiBjcmVhdGUKICAgLSBzZXQgKGluY3IpIGdsb2JhbCBkaXJ0eSBpZiB1c2VyIHNldCByb3cgZGlydHkKICAgLSBjbGVhciAoZGVjcikgZ2xvYmFsIGRpcnR5IGlmIHVzZSBjbGVhcmVkIGZsYWcgb24gdW5kbwoKMjAwNS0wOC0yOSAyMDo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGF1dG9jcmVhdGUgY3VycmVudCBkaXIsIGlmIG5lZWRlZAoKMjAwNS0wOC0yOSAyMDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmg6CgogICAtIGZpeCBjb21tZW50cyBvbiB1c2VyIGZsYWdzCiAgIC0gYWRkIHVzZXIgZmxhZyBtYXNrCiAgIC0gYWRkIG1mZCByb3cgbWFzawogICAtIGFkZCBNRkRfUk9XX0RJUlRZIGZsYWcKCjIwMDUtMDgtMjkgMjA6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGFkZCBjb21tZW50cwoKMjAwNS0wOC0yOSAyMDo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIGNvbW1lbnRzCiAgIC0gbW92ZSBmbGFnIGNsZWFyIGEgbGl0dGxlIGxhdGVyCgoyMDA1LTA4LTI5IDIwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHR3ZWFrIGNvbW1lbnQKCjIwMDUtMDgtMjkgMjA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSBmaXggcmVxdWlyZWQgY29sdW1ucyB0ZXN0ICh0aGV5IGFyZSBhIG1pbiwgbm90IGV4YWN0IHJlcXVpcmVtZW50KQogICAtIGF1dG8tdHJhbnNpdGlvbiBjcmVhdGVBbmRHbyB0byBhY3RpdmUKICAgLSBzZXQgTUZEX1JPV19ERUxFVEVEIG9uIGRlc3Ryb3kKICAgLSB0d2VhayBsb2cgbWVzc2FnZSBvbiBjcmVhdGlvbiBlcnJvcnMKCjIwMDUtMDgtMjkgMjA6MzYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gcmV3b3JrIHZpZXcgbGlzdCBmdW5jdGlvbnMgdG8gdGFrZSBwb2ludGVyIHRvIGhlYWQgKHZzIGhhcmRjb2RlZCBoZWFkKQoKMjAwNS0wOC0yOSAyMDozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGl0ZXJhdG9yIHN1cHBvcnQKCjIwMDUtMDgtMjkgMjA6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICAtIGZpeCBzb21lIGNvbW1lbnRzCiAgIC0gdHdlYWtzIGZvciBpdGVyYXRvciBzdXBwb3J0CiAgIC0gcmVtb3ZlIHVudXNlZCBzb3RlZF9jb250YWluZXIgdHlwZWRlZgoKMjAwNS0wOC0yOSAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0wOC0yOSAyMDoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gc2V0IG5ldyB0YXJnZXQgcGFyYW1OYW1lIGluIHNlc3Npb24KICAgLSBmaXggYnVnOiBzdHJkdXAgc2VjdXJpdHlOYW1lLCBzaW5jZSBpdCB3aWxsIGJlIGZyZWVkIG9uIHNlc3Npb24gY2xvc2UKCjIwMDUtMDgtMjkgMjA6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIGFkZCB0YXJnZXQgcGFyYW1OYW1lCgoyMDA1LTA4LTI5IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oOgoKICAgcmVuYW1lIGdldF9GaWx0ZXJOYW1lIC0+IGdldF9GaWxnZXJQcm9maWxlTmFtZQoKMjAwNS0wOC0yOSAyMDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICBsb2cgd2FybmluZyBvbiBkdXBsaWNhdGUgYWRkX2RhdGEKCjIwMDUtMDgtMjkgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgYWRkIGRlYnVnCgoyMDA1LTA4LTI5IDIwOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIC0gbW92ZSBtaWIgbW9kdWxlIHNodXRkb3ducyB0byBhIFNIVVRET1dOIGNhbGxiYWNrIHNvIHRoZXkgYXJlIGNhbGxlZAogICAgIGFmdGVyIHRoZSBsYXN0IHNubXBfc3RvcmUoKSBhbmQgY2FuIHJlbGVhc2UgdGFibGUgZGF0YQogICAtIGFkZCBsb2dpYyBmb3IgdGVzdGluZyBleHRyYSBpbml0X21pYl9tb2R1bGVzKCkgY2FsbHMKCjIwMDUtMDgtMjkgMjA6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBtb3ZlIG1pYiBtb2R1bGUgc2h1dGRvd25zIHRvIGEgU0hVVERPV04gY2FsbGJhY2sgc28gdGhleSBhcmUgY2FsbGVkCiAgICAgYWZ0ZXIgdGhlIGxhc3Qgc25tcF9zdG9yZSgpLCBhbmQgY2FuIHJlbGVhc2UgdGFibGUgZGF0YQoKMjAwNS0wOC0yOSAyMDowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vdmUgZmluZF92YXJiaW5kX2ludF9saXN0IHRvIHNubXBfY2xpZW50LmMKCjIwMDUtMDgtMjkgMjA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIG1vdmUgZmluZF92YXJiaW5kX2ludF9saXN0IHRvIHNubXBfY2xpZW50LmMKICAgLSByZW1vdmUgZXh0cmFuZW91cyB0ZXh0IGluIGRlYnVnIG1zZwoKMjAwNS0wOC0yOSAyMDowNiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGlmIHNpbmsgY29udGFpbnMgJzonLCBwYXNzIHdob2xlIHRoaW5nIGFzIHBlZXJuYW1lLiAoYWxsb3dzIHRjcCBzaW5rcykKCjIwMDUtMDgtMjkgMTg6MjUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBpbnRyb2R1Y2UgZ3JhbnVsYXIgY29uZmlnL3BlcnNpc3RlbnQgZmlsZSBkaXNhYmxlbWVudCAoUGF0Y2ggIzEyNTkyNTcgYnkgU3RldmVuIEZyaWVkbCkKCjIwMDUtMDgtMjYgMDk6MTUgIGR0czEyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIEFkdmVydGlzZSB0aGUgbWFpbiBSUE0gYXMgcHJvdmlkaW5nIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBSZWRIYXQvRmVkb3JhCiAgICduZXQtc25tcC11dGlscycgUlBNLiAgQnJpbmcgdGhlIG1haW4gaW5mb3JtYXRpb24gc2V0dGluZ3MgaW50byBsaW5lCiAgIHdpdGggY3VycmVudCBycG1idWlsZCBleHBlY3RhdGlvbnMgKCdMaWNlbnNlJyByYXRoZXIgdGhhbiAnQ29weXJpZ2h0JykKCjIwMDUtMDgtMjUgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fdmFycy5jOgoKICAgVGhlIHZpZXcgbWFzayBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBPSUQgaXQncwogICBtYXNraW5nIGFnYWluc3QuIENvbmZpZ3VyZSBhbmQgcmVwb3J0IHRoaXMgcHJvcGVybHkuIChCdWcgIzEyMDI2OTIpCgoyMDA1LTA4LTI1IDA1OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIFZhcmJpbmQgY2hlY2tzIHNob3VsZCByZXR1cm4gYW4gU05NUHYyIGVycm9yICh3cm9uZ1ZhbHVlKQogICByYXRoZXIgdGhhbiB0aGUgZXF1aXZhbGVudCBTTk1QdjEgZXJyb3IgKGJhZFZhbHVlKS4KCjIwMDUtMDgtMjMgMTA6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBVc2UgJ2lwc19mcmFnbWVudHMnIGZpZWxkIG9mIElQIHN0YXRpc3RpY3Mgc3RydWN0dXJlLCBpZiBhdmFpbGFibGUKICAgKFNlZSBwYXRjaCAjMTEwMzczOSkKCjIwMDUtMDgtMjMgMTA6MDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGVzdCBmb3IgJ2lwc19mcmFnbWVudHMnIGZpZWxkIGluIElQIHN0YXRpc3RpY3Mgc3RydWN0dXJlLgogICAoU2VlIHBhdGNoICMxMTAzNzM5KQoKMjAwNS0wOC0yMyAwOTo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSAnLWwnIG9wdGlvbiBmcm9tIG9wdGFyZyBwcm9jZXNzaW5nCiAgIChzaW5jZSB0aGUgY29ycmVzcG9uZGluZyBjYXNlIHN0YXRlbWVudCB3YXMgZGVsZXRlZCBtb250aHMgYWdvISkKICAgUmVwb3J0ZWQgYnkgSm9obiBQZmFmZi4KCjIwMDUtMDgtMjIgMjE6MTcgIGFsZXhfYgoKICAgKiBORVdTLCBhcHBzL3NubXBkZWx0YS5jOgoKICAgd2luMzI6IEZpeCBmb3IgJ3NlbGVjdDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeScgaW4gc25tcGRlbHRhCgoyMDA1LTA4LTIyIDE0OjA4ICB0YW5kZXJzCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHM6CgogICBhZGQgbWlzc2luZyBBRVMgc3VwcG9ydAoKMjAwNS0wOC0yMiAxMzo0OSAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBmdWxseSBkb2N1bWVudCBBRVMKCjIwMDUtMDgtMTkgMTk6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGdycnI7ICpyZWFsbHkqIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xOSAxMDozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGVtcGhhc2l6ZSB0byB1c2UgInByb3h5IC4uLiAuMS4zIiAobm90IGp1c3QgLjEpIHRvIHByb3h5IHRoZSBlbnRpcmUgTUlCIHRyZWUgKEJ1ZyAjMTI0OTU5NCkKCjIwMDUtMDgtMTkgMTA6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGltcHJvdmUgaGVscCBvdXRwdXQgZm9yICItRCIgKEJ1ZyAjMTI0OTU1NikgYW5kICItYyIKCjIwMDUtMDgtMTkgMDk6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBhZGQgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IHRvIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZSgpIChCdWcgIzEyNjM1MjMpCgoyMDA1LTA4LTE5IDA3OjU5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xOSAwNTo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi8uY3ZzaWdub3JlOgoKICAgaW5pdGlhbCAuY3ZzaWdub3JlCgoyMDA1LTA4LTE5IDA1OjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1Ly5jdnNpZ25vcmUsCiAgICAgaGFyZHdhcmUvbWVtb3J5Ly5jdnNpZ25vcmUsIGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUKLCBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgLmxpYnMgYXQgbW9yZSBwbGFjZXMKCjIwMDUtMDgtMTkgMDU6MDggIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBsaXN0IGNvbnRleHQgc3VwcG9ydCBhbmQgZml4IHR5cG8KCjIwMDUtMDgtMTggMTg6NTEgIGFsZXhfYgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBXaW4zMiBNU1ZDOiAgVXNlIF9faW50NjQgaW5zdGVhZCBvZiBsb25nIGxvbmcuCgoyMDA1LTA4LTE4IDE4OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBtb3ZlIHRlc3QgYWZ0ZXIgZm9yZWFjaCBsb29wCiAgIC0gc2V0IGludGVyYWN0aXZlIGZsYXQgYWZ0ZXIgb3ZlcndyaXRlCgoyMDA1LTA4LTE4IDE4OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICByZXR1cm4gZXJyb3IgaWYgYXNuIGJ1ZmZlciBleGNlZWRzIG9iamlkIGRlc3QgYnVmZmVyCgoyMDA1LTA4LTE4IDE3OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jOgoKICAgLSByZW1vdmUgdW51c2VkIGluZGV4X29pZC9sZW4KICAgLSByZXN0b3JlIG5ldHNubXBfdGFibGVfZGF0YTJfYnVpbGRfcmVzdWx0CgoyMDA1LTA4LTE4IDE3OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgcmVtb3ZlIHVudXNlZCBpbmRleF9vaWQvbGVuCgoyMDA1LTA4LTE4IDE3OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDA1LTA4LTE4IDE3OjM1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgLSBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgY29uZmlndXJlIGV4dHJhcwogICAtIGFkZCBtYWtlIGV4dHJhcwoKMjAwNS0wOC0xOCAxNzozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGJyaW5nIGhwdXggZnVuY3Rpb24gZGVjbCBpbiBsaW5lIHcvcHJvdHlwZQoKMjAwNS0wOC0xOCAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwo6CgogICBmaXggYnVnIDEyNTkwNDk6IHNubXBkIHNlZ2ZhdWx0cyBpbiBJUC1NSUIgZHVyaW5nIHNubXB3YWxrCgoyMDA1LTA4LTE4IDA5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi86IGFzbjEuYywgaW50NjQuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gbG90cyBvZiA2NCBiaXQgY2hlY2tzIGFkZGVkIGlmZiBTSVpFT0ZfTE9ORyAhPSA0CiAgICAgLSBjaGVjayBjb3VudGVyNjQgaGlnaC9sb3cgb3ZlcmZsb3dzIChpbnQ2NC5jKQogICAgIC0gdHJ1bmNhdGUgcmVjZWl2ZWQgdmFsdWVzIHRvIDMyIGJpdHMgKGFzbjEuYykKICAgICAtIHRydW5jYXRlIHNlbnQgdmFsdWVzIHRvIDMyIGJpdHMgYmVmb3JlIGVuY29kaW5nIChhc24xLmMpCiAgIC0gdXBkYXRlIHNldF92YXJfdmFsdWUgKHNubXBfY2xpZW50LmMpCiAgICAgLSB0cnVuY2F0ZSB2YXJiaW5kIHZhbHVlIHNldHMgdG8gMzIgYml0cwogICAgIC0gaGFuZGxlIHNldCBvZiBpbnRlZ2VycyBvZiB2YXJpb3VzIGxlbmd0aHMgKDEsIDIsIDQsIDggYnl0ZXMpCgoyMDA1LTA4LTE4IDA2OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBEb24ndCBnZW5lcmF0ZSBhdXRoRmFpbCB0cmFwcyBpZiB0aGVzZSBhcmUgbm90IHJlcXVpcmVkLgogICAoQnVnICMxMjI2Nzg4LCByZXBvcnRlZCBieSBXYW5nIFRlayBLZWUpCgoyMDA1LTA4LTE3IDIwOjQ0ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzOiBMT05HX01JTiBub3QgZGVmaW5lZCAobGltaXRzLmgpIGFuZCBhZGRlZAogICBmZF9ldmVudF9tYW5hZ2VyLmMgdG8gYnVpbGQgZmlsZXMuCgoyMDA1LTA4LTE3IDIwOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkICdDby1leGlzdGVuY2Ugd2l0aCBNaWNyb3NvZnQgU05NUCBzZXJ2aWNlcycgc2VjdGlvbiBhbmQgdXBkYXRlIHRoZQogICAnSW50ZXJhY3Rpb25zIHdpdGggT3RoZXIgVmVuZG9yJ3MgUHJvZHVjdHMnIHNlY3Rpb24uCgoyMDA1LTA4LTE3IDE3OjUwICB0YW5kZXJzCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBJbXByb3ZlIGRvY3VtZW50YXRpb24gb24gY2xpZW50QWRkciB0b2tlbjogYWxzbyB1c2VkIGJ5IHNubXBkIHdoZW4gc2VuZGluZyBub3RpZmljYXRpb25zCgoyMDA1LTA4LTE3IDA5OjQxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBGaXggcHJvYmxlbXMgd2l0aCAzMi82NC1iaXQgdHlwZSBkZWZpbml0aW9ucyAoQnVnICMxMjU0OTkwKQoKMjAwNS0wOC0xNyAwODozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYwosIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jCiwgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYwosIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsCiAgICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jCiwgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL29pZF9zdGFzaC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBSZW1vdmUgcmVkdW5kYW50ICcjaW5jbHVkZSA8ZG1hbGxvYy5oPicgc3RhdGVtZW50cywgc2luY2UgdGhpcyBpcyBoYW5kbGVkIGluCiAgIHRoZSBoZWFkZXIgZmlsZSB3aGljaCBpcyBpbmNsdWRlZCBhbnl3YXkuICAoUGF0Y2ggIzExMDgwNTMgYnkgSnVuIEt1cml5YW1hKQoKMjAwNS0wOC0xNyAwNzo1MCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTBhZ2VudHhnZXQsIFQxMTFhZ2VudHhzZXQsCiAgICAgVDExMmFnZW50eHNldGZhaWwsIFQxMTNhZ2VudHh0cmFwOgoKICAgU3VwcG9ydCBydW5uaW5nIEFnZW50WCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgc2VwYXJhdGUKICAgJ2FnZW50eC9tYXN0ZXIgYWdlbnR4L3N1YmFnZW50JyBtb2R1bGVzIChQYXRjaCAjMTA0OTc5NCBmcm9tIG1hZ2ZyKQoKMjAwNS0wOC0xNyAwNTo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBFeHRlbmQgbGVuZ3RoIG9mIGNvbTJzZWMgInNvdXJjZSIgYnVmZmVyIChQYXRjaCAjMTIyNTEzMCBmcm9tIEFuZHJldyBTdGVldHMpCgoyMDA1LTA4LTE3IDA0OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIEZpeCB0eXBvIChwYXRjaCAjMTI1NTcxMyBieSBCZXJuaGFyZCBQZW56KQoKMjAwNS0wOC0xNiAyMDowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGZpeCBidWcgMTI1OTA1MTogc25tcGQgc2VnZmF1bHRzIG9uIGFtZDY0CgoyMDA1LTA4LTE2IDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBhbGxvdyBpcHY0IHN0YXRzIHRvIHdvcmsgaWYgdjYgc3RhdHMgYXJlIG5vdCBhdmFpbGFibGUKCjIwMDUtMDgtMTYgMTY6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGZpeCBidWcgMTI1OTA1NDogc25tcGQ6IGNhbm5vdCBvcGVuIC9wcm9jL25ldC9zbm1wNgoKMjAwNS0wOC0xNiAxMjoyOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUeXBvIGluIHRoZSBkZXNjcmlwdGlvbiBvZiAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNraW5nIChidWcgIzEyMzgzMDEpCgoyMDA1LTA4LTE2IDExOjU5ICByc3RvcnkKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBhbHdheXMgc3BlY2lmeSBwZXJtcyB0byBta2RpciwgYXMgaXQgaXMgbm90IG9wdGlvbiBmb3Igb2xkZXIgcGVybCB2ZXJzaW9ucwoKMjAwNS0wOC0xNSAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHNldCB0aW1lb3V0L3JldHJpZXMgdG8gZGVmYXVsdCBmb3IgaW5mb3JtIHNlc3Npb25zCgoyMDA1LTA4LTE1IDE4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE1IDE4OjIxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGluc3RhbmNlLmMsIHNjYWxhcl9ncm91cC5jLCB0YWJsZS5jCjoKCiAgIHdhaXQgZm9yIGRlbGVnYXRlZCByZXF1ZXN0cyBiZWZvcmUgcmV0cmllcwoKMjAwNS0wOC0xNCAxNzoyMiAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIEZpeCBzcGVsbGluZyBtaXN0YWtlIGluIGRlc2NyaXB0aW9uIG9mIGEgZGVmaW5lLgoKMjAwNS0wOC0xMSAxMzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGZpeCBsZW5ndGggb2Ygc3lzT2JqZWN0SUQKCjIwMDUtMDgtMDEgMDc6MzkgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLWRvbid0IHVzZSBnZXRkdGFibGVzaXplKCkgZm9yIFdJTjMyCgoyMDA1LTA4LTAxIDA3OjM5ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICBsaWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgc25tcHRyYXBkL01ha2VmaWxlLmluCiwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICAtV2luMzI6ICBVcGRhdGUgcHJvamVjdCBmaWxlcyB3aXRoIG5ldyBsb2NhdGlvbiBmb3Igbm90aWZpY2F0aW9uX2xvZy5jIGFuZAogICAgbWlzc2luZyB0YWJsZV9kYXRhMi5jIGZvciBNU1ZDIEdVSQoKMjAwNS0wOC0wMSAwNzozNyAgYWxleF9iCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtRml4IHdpbjMyIGJ1aWxkIHByb2JsZW0gLSBkZWNsYXJlIHZhcmlhYmxlcyBiZWZvcmUgdXNpbmcuCgoyMDA1LTA3LTI4IDA3OjQ3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFNpbXBsZSAnd2hpbGUnIGxvb3AsIGFuZCAobm9uLWVycm9yKSBxdWl0IHN0YXRlbWVudC4KCjIwMDUtMDctMjYgMDg6MDYgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUHJvYmUgZm9yIGVuZ2luZUlEIGluaXRpYWxseSwgc28gdGhhdCBpdCdzIGF2YWlsYWJsZSBmb3IgY29uc3RydWN0aW5nCiAgIHRoZSB1c21Vc2VyVGFibGUgT0lEcy4KCjIwMDUtMDctMjYgMDY6MTkgIHRhbmRlcnMKCiAgICogRkFROgoKICAgVXBkYXRlIE9TIHN1cHBvcnQgc2VjdGlvbi4gU3RpbGwgbGlrZWx5IHRvIGJlIG91dGRhdGVkIGZvciBzb21lIHBsYXRmb3Jtcy4KCjIwMDUtMDctMjUgMTk6NTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGZpeCBidWcgMTIzMDM2NjogYWRkICItbiIgdG8gIm5ldHN0YXQgLWEiIHRvIG1ha2UgaXQgd29yayBldmVuIGlmIHBvcnQgbnVtYmVycyBoYXZlIGNvcnJlc3BvbmRpbmcgc2VydmljZSBuYW1lcwoKMjAwNS0wNy0yNSAxOToyOCAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGF1dG9fbmxpc3QuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IGluY2x1ZGUgaGVhZGVyIHcvcHJvdG90eXBlCgoyMDA1LTA3LTI1IDE5OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBtb3ZlIHBhcmFtIHR5cGUgZGVjbCBpbnRvIHBhcmFtIGRlY2wgbGlzdAoKMjAwNS0wNy0yNSAxOToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIC0gbW92ZSBjb21tZW50IGVuZCBvdXQgb2YgY29uZGl0aW9uYWwgKHNpbmNlIHN0YXJ0IGlzIGFzIHdlbGwpCiAgIC0gaW5jbHVkZSBjdHggc2V0IGZvciBub24tZW51bSB0eXBlcwoKMjAwNS0wNy0yNSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIGRlYWwgd2l0aCBvaWQgbGVuZ3RoIHZzIHNpemUgZHVyaW5nIGdldC9zZXQKCjIwMDUtMDctMjUgMTU6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDctMjUgMTU6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbm90aWZpY2F0aW9uLWxvZy1taWIgdG8gZGVmYXVsdCBtaWIgbGlzdAoKMjAwNS0wNy0yNSAxNTo1NSAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIGZpeCBub3RpZmNhdGlvbiBsb2cgaW5jbHVkZSBwYXRoCiAgIC0gb25seSBpbmNsdWRlIG5vdGlmaWNhdGlvbiBsb2cgY29kZSBpZiBtb2R1bGUgaW5jbHVkZWQKCjIwMDUtMDctMjUgMTQ6MzUgIG1hcnoKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUvLmN2c2lnbm9yZSwgbWVtb3J5Ly5jdnNpZ25vcmUKOgoKICAgZml4aW5nIGN2cyBpZ25vcmUgZm9yIHNoYXJlZCBsaWJzCgoyMDA1LTA3LTI1IDEzOjIyICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIG9uL2ZvciBub3RpZmljYXRpb25fbG9nCgoyMDA1LTA3LTI1IDExOjM5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIEdlbmVyYXRlIGRpZmZlcmVudCBjb2RlIGZvciBjYWNoaW5nIGFuZCBub24tY2FjaGluZyBjb250YWluZXIgZnJhbWV3b3JrcwogICAocmF0aGVyIHRoYW4gaW5jbHVkaW5nIGNhY2hpbmcgc3VwcG9ydCByZWdhcmRsZXNzKQoKMjAwNS0wNy0yNSAxMTozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBtMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmksIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMKLCBtZmQtbWFrZWZpbGUubTJtLCBtZmQtdG9wLm0yYzoKCiAgIEFnZW50WCBtYWtlZmlsZSBhbmQgc3ViYWdlbnQgZHJpdmVyIGNvZGUgd2VyZW4ndCBnZXR0aW5nIGdlbmVyYXRlZAogICAoZXZlbiBpZiB0aGV5IHdlcmUgcmVxdWVzdGVkKS4gIEZpeCB0aGlzLgoKMjAwNS0wNy0yNSAxMTozNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ29udmVuaWVuY2Ugcm91dGluZSBmb3Igc2V0dGluZyBhbiBpbnRlZ2VyIHZhcmJpbmQgdmFsdWUuCgoyMDA1LTA3LTIxIDIxOjU0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkICBORVRTTk1QX0RTX05PVElGX0xPR19DVFggc3RyaW5nCgoyMDA1LTA3LTIxIDIxOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgbG9nIG5vdGlmaWNhdGlvbiBpZiB1c2luZyBub3RpZmljYXRpb24gbG9nIG1pYiBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgYWRkIHRvZG8gY29tbWVuCgoyMDA1LTA3LTIxIDIxOjQ5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgdmFyIGRlY2wKICAgLSByZW1vdmUgdW51c2VkIG51bV9yZWNlaXZlZAogICAtIHNldCBzbm1wdHJhcGQgY29udGV4dCBmb3Igbm90aWZpY2F0aW9uIGxvZyBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NDcgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgYWRkIGludGVyZmFjZSB0byBub3RpZmljYXRpb24gbG9nIGFnZW50IG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo0NyAgcnN0b3J5CgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIHJlbW92ZSB1bnVzZWQgbm90aWZpY2F0aW9uX2xvZyBmaWxlcwoKMjAwNS0wNy0yMSAyMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIC0gbWFrZSBudW1fcmVjZWl2ZWQgc3RhdGljCiAgIC0gYWRkIGxvY2FsIGVuYWJsZWQgZmxhZywgc2V0IHdoZW4gbW9kdWxlIGluaXQgY2FsbGVkCiAgIC0gcmV0dXJuIGltbWVkaWF0ZWx5IGZyb20gbG9nX25vdGlmaWNhdGlvbiBpZiBub3QgZW5hYmxlZAogICAtIHVzZSBjb3JyZWN0IGluZGV4IGluIGNvbXBhcmUsIHNvIHdlIGhhdmUgYSBjaGFuY2UgYXQgZmluZGluZyB0aGUgcmlnaHQgcm93CiAgICAgKHRoaXMgZml4ZXMgdGhlIHZhcmJpbmQgbWVtb3J5IGxlYWspCgoyMDA1LTA3LTIxIDIwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgc3RyZHVwIHRtcCBkcyBzdHJpbmcgdGhhdCB3aWxsIGJlIHJlbGVhc2VkCgoyMDA1LTA3LTIxIDE5OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgYWRkIG1pc3Npbmcgc2VtaS1jb2xvbgoKMjAwNS0wNy0yMSAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLzogbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIC0gcmVtb3ZlIGFnZW50eCBjb25kaXRpb25hbCBjb21waWxlCiAgIC0gcmVtb3ZlIHNubXB0cmFwZCBoZWFkZXJzCiAgIC0gcmUtd29yayBsb2cgc2l6ZSBtYW5hZ2VtZW50CiAgIC0gYWRkIGNvbnRleHQgcGFyYW1ldGVyIGZvciB0YWJsZSBpbml0IHJvdXRpbmVzCiAgIC0gbmV3IGRzX2FwcCBmb3IgbW9kdWxlIGluaXQgdG8gZGV0ZXJtaW5lIGNvbnRleHQKICAgLSByZW1vdmUgZG9udFJldGFpbkxvZ3MgY29uZmlnICh1c2UgLUkgLW5vdGlmaWNhdGlvbl9sb2cpCiAgIC0gY2hnIGRlYnVnIHN5bWJvbCAobG9nX25vdGlmaWNhdGlvbi0+bm90aWZpY2F0aW9uX2xvZykKICAgLSByZW1vdmUgZXh0cmFuZW91cyBjb21tZW50cwogICAtIG1ha2Ugc3VyZSB0cmFuc3BvcnQgcHRyIGhhcyB2YWx1ZSBiZWZvcmUgdXNpbmcKCjIwMDUtMDctMjEgMTg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmgsCiAgICAgbm90aWZpY2F0aW9uLWxvZy1taWIuaDoKCiAgIG9yaWdpbmFsIHZlcnNpb25zCgoyMDA1LTA3LTIwIDIwOjM0ICBhbGV4X2IKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtQWRkIHdyYXBwZXIgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAobXlfZ2V0ZW52KSB0byBhZGQgV2luZG93cyByZWdpc3RyeQogICAgc3VwcG9ydCBmb3IgcGVyc2lzdGVudCBmb2xkZXIvZmlsZSBjaGVjawogICAtRml4IGJ1ZyBpbiBnZXRfcGVyc2lzdGVudERpciBjYWxsIChpdCB3YXMgbm90IHBhc3NpbmcgdGhlIGZpbGVuYW1lIG9mCiAgICBzbm1wLmNvbmYKCjIwMDUtMDctMjAgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbW92ZSBoZWFkZXIgaW5jbHVkZSB0byB0b3Agb2YgZmlsZQoKMjAwNS0wNy0yMCAxODoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlcgoKMjAwNS0wNy0yMCAxODoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpeCBpbmNsdWRlIG9mIG93biBoZWFkZXIgKGN1dC1uLXBhc3RlIGVycm9yKQoKMjAwNS0wNy0yMCAxODoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IG1pYi5oLCBzbm1wX2FwaS5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgcmVtb3ZlIHByb3RvdHlwZSBmb3Igbm9uLWV4aXN0ZW50IGZ1bmM7IGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowOCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBwYXJhbWV0ZXJzIGZvciBuc2ItY29uZmlnIGV4YW1wbGUKCjIwMDUtMDctMjAgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyByZW1vdmUgcmVkdW5kYW50IHNlbWljb2xvbgoKMjAwNS0wNy0yMCAxODowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IGFkZCBtaXNzaW5nIGluY2x1ZGVzL3Byb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBiYWQgb3B0aW9uIFt3aXRofGVuYWJsZV0tc3NsCgoyMDA1LTA3LTIwIDE3OjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgY2hlY2sgcnVuIGZpbmQgb24gc3JjZGlyCgoyMDA1LTA3LTIwIDExOjMwICBkdHMxMgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgR3VhcmQgYWdhaW5zdCB1c2luZyBuYW1lbGVzcyBkYXRhIGxpc3RzLiAgVGhpcyBzdGlsbAogICB3b24ndCB3b3JrIHByb3Blcmx5LCBidXQgYXQgbGVhc3QgdGhlIGFnZW50IHdvbid0IGNyYXNoLgogICAoWWVzLCBJIGtub3cgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIC0gYnV0IHlvdSBjYW4ndCB0cnVzdAogICBzb21lIHBlb3BsZSBub3QgdG8gZG8gc29tZXRoaW5nIHN0dXBpZCAtIG5hbWluZyBubyBuYW1lcykKCjIwMDUtMDctMjAgMTE6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIEluY2x1ZGUgdGhlIGhhbmRsZXIgbmFtZSB3aGVuIHJlZ2lzdGVyaW5nIGEgdGFibGVfYXJyYXkuCgoyMDA1LTA3LTE5IDEzOjQ0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBmaXggY3V0LW4tcGFzdGU7IG5ldyB0YWJsZXMgYXJlIGxpbnV4IG9ubHkKCjIwMDUtMDctMTkgMTA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgSW1wcm92ZSBoYW5kbGluZyBvZiB2YXJpYWJsZS1sZW5ndGggaW5kZXggYW5kIGNvbHVtbiB2YWx1ZXMuCgoyMDA1LTA3LTE5IDEwOjUyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggaGFuZGxpbmcgb2YgdmFyaWFibGUtbGVuZ3RoIGluZGV4ZXMuCgoyMDA1LTA3LTE5IDEwOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgUHJvdmlkZSBhbm90aGVyIHJlZ2lzdHJhdGlvbiBBUEkgdG8gaGlkZSB0aGUgaGVscGVyIGludGVybmFscwogICBmcm9tIHVzZXItbGV2ZWwgY29kZS4KCjIwMDUtMDctMTggMTc6NTcgIHJzdG9yeQoKICAgKiBORVdTLCBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZSBmb3IgbmV3IHRjcENvbm5lY3Rpb25UYWJsZSBhbmQgdGNwTGlzdGVuZXJUYWJsZQoKMjAwNS0wNy0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS86IHRjcExpc3RlbmVyVGFibGUuYwosIHRjcExpc3RlbmVyVGFibGUuaCwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGluaXRpYWwgd29ya2luZyB2ZXJzaW9uCgoyMDA1LTA3LTE4IDE3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AtbWliLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgY29kZSBmb3IgdGNwTGlzdGVuZXJUYWJsZQoKMjAwNS0wNy0xOCAxNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gbG9hZCBjYWNoZSBmcm9tIGRhdGEgYWNjZXNzCiAgIC0gbWFwIGFkZHJlc3MgdHlwZQogICAtIHNocmluayBzdG9yYWdlIGZvciBpbmRleGVzCgoyMDA1LTA3LTE4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgLSBmaXggaW5kZXggb2lkIHBvaW50ZXIKICAgLSBhZGQgdXBkYXRlIG9mIHBpZAoKMjAwNS0wNy0xOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgLSB1c2UgbmV3IHByaXZhdGUgaGVhZGVyCiAgIC0gZml4IGxvYWQgcHJvdG90eXBlcwogICAtIGNoZWNrIG5ldyBsaXN0ZW4gc3RhdGUgcmVxdWlyZS9leGNsdWRlIGxvYWQgZmxhZwogICAtIGZpeCBjb3B5IG9mIHJlbW90ZSBhZGRyZXNzCgoyMDA1LTA3LTE4IDE2OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBwcmludCBiYWQgbGluZSB3aGVuIGJhaWxpbmcgb24gZXJyb3IKCjIwMDUtMDctMTggMTY6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBmbHViCgoyMDA1LTA3LTE4IDE2OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgY29tbWVudCBibG9jawoKMjAwNS0wNy0xOCAxNjoyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgLSByZW1vdmUgdW51c2VkIGRlZmluZXMvY29tbWVudHMKICAgLSBhZGQgcGlkIHRvIHN0cnVjdAogICAtIGFkZCBsb2FkIGZsYWdzIHRvIHJlcXVpcmUvZXhsdWRlIGxpc3RlbiBzdGF0ZQoKMjAwNS0wNy0xOCAxNjoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGFkZCBkZWJ1ZyB0byBmcmVlQlNEIChlc3AgZXJyb3IgY2FzZXMpCgoyMDA1LTA3LTE4IDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMKOgoKICAgY29ycmVjdCBkYXRhIHN0cnVjdCBuYW1lCgoyMDA1LTA3LTE4IDE1OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi86IHRjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9jb25zdGFudHMuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMKCjIwMDUtMDctMTggMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fcHJpdmF0ZS5oOgoKICAgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKCjIwMDUtMDctMTUgMTg6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmMsCiAgICAgZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsCiAgICAgbWZkLWludGVyZmFjZS5tMmM6CgogICBxdW90ZSBzdHJpbmcgYXJndW1lbnQgaW4gYXNzaWdubWVudAoKMjAwNS0wNy0xNSAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFyIHNlc3Npb24gZnJvbSBjYWxsYmFjayBjbGllbnQgYXJncyBvbiBmcmVlCgoyMDA1LTA3LTE0IDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBmaXggaW50ci9jdHggb3ZlcmZsb3dzCgoyMDA1LTA3LTE0IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmg6CgogICBjb25maWdfcmVxdWlyZSB1dGlsaXRpZXMvZXhlY3V0ZSAoZm9yIHNubXB0cmFwZCkKCjIwMDUtMDctMDcgMTI6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZG8gbm90IGNsb3NlIGFsbCBub24tc3RkIGZkcyBpbiBkYWVtb25pemUgKGFzIHdlIGhhdmUgcHJvYmFibHkgb3BlbmVkIHNvbWUpCgoyMDA1LTA3LTA3IDEyOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY2xvc2UgYWxsIG5vbi1zdGFuZGFyZCBmZHMgaW5oZXJpdGVkIGZyb20gc2hlbGwgaW1tZWRpYXRlbHkKICAgLSByZWdpc3RlciBzaWduYWwgaGFuZGxlcnMgbXVjaCBzb29uZXIsIHNvIGVhcmx5IHNpZ25hbCBkb2Vzbid0IGNvcmUKCjIwMDUtMDctMDYgMTI6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIHRhcmdldCB0byBidWlsZCAgKGFsbCkgbGlicyB0byB1c2UgZXhpc3RpbmcgSU5TVEFMTExJQlMKCjIwMDUtMDctMDEgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSB1c2UgdXRpbGl0eSByb3V0aW5lIHRvIGNsZWFyIGRlbGVnYXRlZCBmbGFnCiAgIC0gZG9uJ3Qgc2V0IGVycm9yIGZvciB0aW1lb3V0IG9uIGdldC1uZXh0CiAgIC0gcmVsZWFzZSBkZWxlZ2F0ZWQgY2FjaGUgd2hlbiB1bmRlbGVnYXRpbmcgcmVxdWVzdHMKCjIwMDUtMDYtMzAgMTE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGlmZiBub3QgYXBwbGllZCwgZml4IGZyZWUgb2YgcGt0IHRvIHVzZSBhbGxvYydkIHB0ciwgbm90IG9mZnNldCBpbiBwa3QKICAgLSBpZmYgYXBwbGllZCwgcmVtb3ZlIHJlZHVuZGFudCBwcnQgY2xlYXIgYWZ0ZXIgU05NUF9GUkVFCgoyMDA1LTA2LTMwIDA1OjI3ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYKLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoIDEyMjYxODc6IGRvY3VtZW50IG1pc3NpbmcgY29uZmlnIGZpbGUgdG9rZW5zIGFuZCBjbWRsaW5lIG9wdGlvbnMKCjIwMDUtMDYtMzAgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ2FsY3VsYXRlICJjb29rZWQiIHZhbHVlcyBmcm9tIGhpc3RvcmljYWwgZGF0YS4KICAgVGhpcyBjaGFuZ2VzIHRoZSBtZWFuaW5nIG9mIHRoZXNlIGZpZ3VyZXMgZnJvbSBhIHN5c3RlbQogICBsaWZlLXRpbWUgYXZlcmFnZSB0byBhIChtb3JlIHVzZWZ1bCkgb25lLW1pbnV0ZSBhdmVyYWdlLAogICBhbmQgYnJpbmdzIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiBpbnRvIGxpbmUgd2l0aCBtb3N0CiAgIG90aGVyIGFyY2hpdGVjdHVyZXMuCgoyMDA1LTA2LTMwIDA0OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaDoKCiAgIFN0YW5kYXJkIChzeXN0ZW0taW5kZXBlbmRlbnQpIG1lY2hhbmlzbSBmb3IgdHJhY2tpbmcgaGlzdG9yaWNhbCBDUFUKICAgc3RhdGlzdGljcywgaW4gb3JkZXIgdG8gY2FsY3VsYXRlIHJvbGxpbmcgYXZlcmFnZXMuCgoyMDA1LTA2LTI5IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBwcm9wZXIgY2hlY2tzIGZvciB6ZXJvIHJldHVybiBhbmQgd2FpdCByYXRoZXIgdGhhbiBjbG9zaW5nIHRoZSBjb25uZWN0aW9uCgoyMDA1LTA2LTI5IDEzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIFJvbWFuIFRzaXJvdWxuaWtvdiB0byBjYXRjaCAtMSByZXR1cm4gY29kZSBmcm9tIGNoZWNrX3BhY2tldCBmdW5jdGlvbnMKCjIwMDUtMDYtMjggMDg6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguaDoKCiAgIFR3ZWFrIHRoZSBuYW1lIG9mIHRoZSBjb3JlIEhBTCBtZW1vcnkgbW9kdWxlLgoKMjAwNS0wNi0yNyAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cywgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgUGF0Y2ggZnJvbSBEYXZpZCBCZWF0dGllIHRvIGZpeCB0cmFwIHJlY2VwdGlvbgoKMjAwNS0wNi0yNyAwNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zdG9yYWdlLmgKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgdG8gaW1wbGVtZW50IE1lbW9yeSBtb25pdG9yaW5nIG9uIExpbnV4IHN5c3RlbXMuCgoyMDA1LTA2LTI3IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3Byb2MuaCwKICAgICB1Y2Qtc25tcC92bXN0YXQuYywgdWNkLXNubXAvdm1zdGF0Lmg6CgogICBVc2UgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgdG8gaW1wbGVtZW50IENQVSBtb25pdG9yaW5nIG9uIExpbnV4IHN5c3RlbXMuCgoyMDA1LTA2LTI3IDA0OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIGEgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIKICAgKEp1c3QgY292ZXJpbmcgQ1BVIGFuZCBtZW1vcnkgaW5mb3JtYXRpb24gZm9yIG5vdywgYW5kCiAgICBvbmx5IGltcGxlbWVudGVkIG9uIExpbnV4LWJhc2VkIHN5c3RlbXMuIEJ1dCBpdCdzIGEgc3RhcnQhKQoKMjAwNS0wNi0yNyAwNDo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSGFuZGxlIHdlZWstZGF5IGJpdCBzcGVjaWZpY2F0aW9ucy4KCjIwMDUtMDYtMjcgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEhhbmRsZSByZXZlcnNlLWRheSBiaXQgc3BlY2lmaWNhdGlvbnMuCgoyMDA1LTA2LTI0IDA2OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGNhbGFuZGFyLWJhc2VkIHNjaGVkdWxpbmcuCiAgIFRoaXMgZG9lc24ndCBoYW5kbGUgcmV2ZXJzZS1kYXkgb3Igd2Vla2RheSBiaXRzIHlldCwKICAgYnV0IHNob3VsZCBwcm92aWRlIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG5lZWRlZCBmb3IKICAgdGhlICJjcm9uIiBhbmQgImF0IiBjb25maWd1cmUgZGlyZWN0aXZlcy4KCjIwMDUtMDYtMjMgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIE1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQuCgoyMDA1LTA2LTIyIDIwOjE2ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIGRvY3VtZW50IGxvZ21hdGNoLCBhZ2VudHhwZXJtcywgY29tMnNlY3VuaXgsIGVuZ2luZUlEVHlwZSwgZW5naW5lSUROaWMKICAgICBhbmQgbGVhdmVfcGlkZmlsZSB0b2tlbnMKCjIwMDUtMDYtMjIgMjA6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBzbm1wZCBkaXNraW8gdG9rZW4gYW5kIHRoZSB1bnVzZWQgc3RhdGljIHZhcmlhYmxlIGl0IHNldHMKCjIwMDUtMDYtMjIgMTk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgb29wcy4gZGVjbGFyZSB2YXJpYWJsZSB1c2VkIGluIG5ldyBjb2RlLgoKMjAwNS0wNi0yMiAxOTozNSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gMTIxOTU0ODogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgb3B0aW9uCgoyMDA1LTA2LTIyIDE5OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSAxMjE5NTQ4OiBkb24ndCB1bmxpbmsgbnVsbCBmaWxlbmFtZQoKMjAwNS0wNi0yMiAxOTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBjbG9zZSBhbGwgZmRzIGFmdGVyIGRhZW1vbml6aW5nCgoyMDA1LTA2LTIyIDE3OjAzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgY2hlY2sgdGFyZ2V0IGZvciBmdWxsIHBhdGhzIGluIGRlcGVuZGVuY3kgZmlsZXMKCjIwMDUtMDYtMjIgMTY6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYXBwbHkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiAxMjI1NDQwOiByZWdpc3RlciBzaW5nYWwgaGFuZGxlcnMgZWFybGllcgoKMjAwNS0wNi0yMiAxNTo1NyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhcHBseSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIDEyMjU0NDA6IHJlZ2lzdGVyIHNpbmdsYSBoYW5kbGVzIGVhcmxpZXIKCjIwMDUtMDYtMjIgMTM6MjIgIHJzdG9yeQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIG1vdmUgaWZkZWYgdGVzdCBhZnRlciBoZWFkZXIgd2l0aCBkZWZpbmUgaXMgaW5jbHVkZWQKCjIwMDUtMDYtMjIgMDY6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZFRhYmxlLmM6CgogICBVc2UgdGhlIG5ldyBzY2hlZFRhYmxlIGVudHJ5IGNyZWF0aW9uIHJvdXRpbmVzLgoKMjAwNS0wNi0yMiAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgRW5zdXJlIHNlbnNpYmxlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFuIGludGVybmFsIHNlc3Npb24uCgoyMDA1LTA2LTIyIDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHRoZSB2ZXJzaW9uIGFuZCBzZWN1cml0eSBsZXZlbAogICB1c2VkIHRvIG1ha2UgaW50ZXJuYWwgcXVlcmllcy4KICAgICBVbmZvcnR1bmF0ZWx5LCBjb21tdW5pdHktYmFzZWQgcmVxdWVzdHMgZG9uJ3QgY3VycmVudGx5CiAgIHdvcmsgb3ZlciB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0LCBidXQgSSdtIHdvcmtpbmcgb24gdGhhdC4KCjIwMDUtMDYtMjIgMDU6MzkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFNlcGFyYXRlIG91dCBwYXJzaW5nIHNlY3VyaXR5IGxldmVsIHRva2VucyBpbnRvIGEgc2VwYXJhdGUgcm91dGluZS4KCjIwMDUtMDYtMjEgMTc6MzkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDYtMjEgMTc6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGFzc2VydAoKMjAwNS0wNi0yMSAxNzozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIHByb3RvdHlwZSBmb3IgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQKCjIwMDUtMDYtMjEgMTc6MzMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgcHJvdG90eXBlcyBmb3Igc2hvdWxkX2luaXQgYW5kIGFkZF90b19pbml0X2xpc3QKCjIwMDUtMDYtMjEgMTc6MzIgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiwgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBuZXcgLS1kaXNhYmxlLXNubXB0cmFwZC1zdWJhZ2VudCBjb25maWd1cmUgb3B0aW9uCiAgIC0gY2hlY2sgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHN1Yi1hZ2VudCBjb2RlCiAgIC0gYWRkICdJJyBvcHRpb24gdG8gY29tbWFuZCBsaW5lIHByb2Nlc3NpbmcsIHRvIGRpc2FibGUgbW9kdWxlcwogICAtIHVzZSBzaG91bGRfaW5pdCB0byBkZXRlcm1pbmUgaWYgbm90aWZpY2F0aW9uIGxvZyBtaWIgaXMgZGlzYWJsZWQKICAgLSB1c2UgbmV3IHNubXBfbG9nZ2luZ19yZXN0YXJ0IG9uIEhVUAoKMjAwNS0wNi0yMSAxMTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIHByb3RvdHlwZSBmb3Igc25tcF9zdGRlcnJsb2dfc3RhdHVzCgoyMDA1LTA2LTIxIDExOjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvcmUuYywgc2NoZWRDb3JlLmg6CgogICBBIGNsZWFuZXIgYXBwcm9hY2ggdG8gY3JlYXRpbmcgZW50cmllcyBpbiB0aGUgc2NoZWRUYWJsZQoKMjAwNS0wNi0yMSAxMTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgQ29uc2lzdGVudGx5IHdvcmsgd2l0aCBTTk1QIHZlcnNpb25zLCBub3QgInByb2Nlc3NpbmcgbW9kZWxzIi4KCjIwMDUtMDYtMjEgMTE6MzMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENvcnJlY3QgdGVtcGxhdGUgZm9yIGNhY2hlZCB0YWJsZV9kYXRhIHJlZ2lzdHJhdGlvbi4KCjIwMDUtMDYtMjEgMTA6NDUgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBSZWZlciB0byB0aGUgY29ycmVjdCBsb2NhdGlvbiBmb3IgY29uZmlnIGZpbGVzLgogICAoU3BvdHRlZCBieSBMZW8gTGVpKQoKMjAwNS0wNi0yMSAxMDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG9ubHkgYWRkIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGlmZiB3ZSBhcmUgYW4gYWdlbnR4IHN1YmFnZW50CgoyMDA1LTA2LTIwIDE4OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBmaXggc2V0dGluZyBvZiBleHBlY3QgcmVzcG9uc2UgcGR1IGZsYWcgKEkgYnJva2UgaXQgZml4aW5nIHRoZSBTTk1QdjMKICAgICBkZWxheWVkIGVuZ2luZUlEIHByb2JlKQoKMjAwNS0wNi0yMCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcHJveHkgaGFuZGxpbmcgb2YgTk9TVUNITkFNRSBvbiBhIGdldC1uZXh0LCBub3RlZCBvbiB1c2VycyBieSBKb2huIEhhcmRpbgoKMjAwNS0wNi0yMCAxNzozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgbG9nIGZsYWdzIGluIGFnZW50CiAgIC0gc2V0IG5vIGRlZmF1bHQgbG9nIGZsYWcgZm9yIHN5c2xvZyBjYXNlcwogICAtIG5ldyBzbm1wX3N0ZGVycmxvZ19zdGF0dXMoKSBjaGVja3MgZm9yIGVuYWJsZWQgc3RkZXJyIGxvZyBoYW5kbGVycwogICAtIGZpeCByZS1lbmFibGUgb2Ygc3lzbG9nIGluIGxvZ2dpbmcgcmVzdGFydCBmdW5jdGlvbgogICAtIHVzZSBjb3JyZWN0IGZ1bmN0aW9uIG5hbWUgdG8gcmUtZW5hYmUgZmlsZSBsb2dzCiAgIC0gQysrIGNvbW1lbnRzIC0+IEMgY29tbWVudHMKCjIwMDUtMDYtMjAgMTY6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBuZXcgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQoKSB0byBjbG9zZS9yZW9wZW4gZmlsZSBiYXNlZCBsb2dzCiAgIC0gcHVyZ2UgYWdlbnQgc2V0dXBfbG9nCiAgIC0gb25seSBlbmFibGUgZGVmYXVsdCBMT0dGSUxFIGlmIG5vIG90aGVyIGxvZyBvcHRpb24gZGVmaW5lZAoKMjAwNS0wNi0xOCAxMToxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNi0xOCAxMDo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC1tb3ZlIHNvbWUgYXJnIGNoZWNrcyBlYXJsaWVyCiAgIC1tb3ZlIGxpYndyYXAvcnBtIGNoZWNrcyBiYWNrIGFmdGVyIHNldHRpbmcgTk9OQUdFTlRMSUJTLCBzbyB0aGV5IGFyZW4ndAogICAgbGlzdGVkIGluIGFwcCBsaWJzIGJ5IG5ldC1zbm1wLWNvbmZpZwoKMjAwNS0wNi0xNiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgb29wcy0gcGFzcyBhZGRyIG9mIHZhciB0byBzc2NhbmYKCjIwMDUtMDYtMTUgMTc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBmdW5jIHVzZWQgYmVmb3JlIGRlZmluZWQKCjIwMDUtMDYtMTUgMDg6MDUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGcmVlIHRoZSBzYW1lIHBvaW50ZXIgdGhhdCB3YXMgcmV0dXJuZWQgYnkgJ3N0cmR1cCcKCjIwMDUtMDYtMTQgMTY6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHJld29yayBzbm1wdjMgZW5naW5lSUQgcHJvYmUgZGVsYXkgdG8gZml4IHByb2JsZW1zIG5vdGVkIG9uIGNvZGVycwogICAgIC0gc2V0IHVwL2NoZWNrIHNlc3MvcGR1IHZlcnNpb24gYSBsaXR0bGUgZWFybGllcgogICAgIC0gc2V0IEVYUEVDVF9SRVNQT05TRSBmbGFnIGNvcnJlY3RseSBpbml0aWFsbHksIGluc3RlYWQgb2YgZ2xvYmFsIHNldAogICAgICAgYW5kIHVuc2V0IGZvciBjZXJ0YWluIGNhc2VzLiBhbHNvIGRvIGl0IGEgbGl0dGxlIGVhcmxpZXIKICAgICAtIG1vdmUgY2hlY2sgZm9yIHByb2JlIGhpZ2hlciB1cCBjYWxsIHN0YWNrIC0gbm93IHdpbGwgYmUgZG9uZSB0aGUgZmlyc3QKICAgICAgIHRpbWUgYSBzZXNzaW9uIHNlbmRzIGEgdjMgcGR1IHRoYXQgZXhwZWN0cyBhIHJlc3BvbnNlCgoyMDA1LTA2LTE0IDEyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBVc2UgImFnZW50U2VjTmFtZSIgZm9yIHJldHJpZXZpbmcgc2NoZWR1bGUgaW5mb3JtYXRpb24uCgoyMDA1LTA2LTE0IDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBmaXggYnVnIDExOTcxODM6IHNzUmF3Q3B1KiBzdGF5cyBvbiAyXjMyLTEgaW5zdGVhZCBvZiByb2xsaW5nIG92ZXIKCjIwMDUtMDYtMTQgMTE6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBvb3BzLSBtb3ZlIHZhciBkZWNsIHRvIGZ1bmMgdGhhdCB2YXIgd2FzIG1vdmVkIHRvCgoyMDA1LTA2LTE0IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZml4IGJ1ZyAxMjE3MjYxOiBJRi1NSUIgcmVwb3J0cyBpbmNvcnJlY3Qgc3RhdHMgb24gQU1ENjQKCjIwMDUtMDYtMTQgMTA6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHByb2Nlc3Mgb3B0aW9uYWwgY29uZmlnIGZpbGVzIGR1cmluZyBwcmUtbWliIGNvbmZpZyB0b28KICAgLSBpZiBvcHRpb25hbCBjb25maWdzIHByZWZpeGVkIHdpdGggJy0nLCBwcm9jZXNzIGJlZm9yZSBkZWZhdWx0IGNvbmZpZ3MKCjIwMDUtMDYtMTQgMDc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGRpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgTW92ZSAiYWdlbnRTZWNOYW1lIiBjb25maWcgZGlyZWN0aXZlIHRvIHRoZSBpcXVlcnkgdXRpbGl0eSBtb2R1bGUuCgoyMDA1LTA2LTE0IDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEaXN0aW5ndWlzaCBzbm1wX3NlbmQgZXJyb3JzIGZyb20gU05NUCBlcnJTdGF0IGVycm9ycwoKMjAwNS0wNi0xNCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFBvcHVsYXRlIGNhbGxiYWNrIFBEVSB3aXRoIFNOTVB2MyBkZWZhdWx0cyBmcm9tIHRoZSBzZXNzaW9uIHN0cnVjdHVyZS4KCjIwMDUtMDYtMTMgMTk6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlciwgYXV0b2NvbmYKCjIwMDUtMDYtMTMgMTk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYXBwbHkgcGF0Y2ggMTE5ODIxMDogdXNpbmcgZXRodG9vbCBmb3IgZ2lnYWJpdCBOSUNzCgoyMDA1LTA2LTEzIDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgdXBkYXRlIGZvciBwcmV2aW91cyBjYWNoZV9oaW50IG1ldGhvZAoKMjAwNS0wNi0xMyAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgYWx3YXkgcGFzcyBoaW50cyB0byBsb3dlciBoYW5kbGVycwoKMjAwNS0wNi0xMyAxNzoxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbWlicywgbWliZGlycyBhbmQgbWliZmlsZXMgaGFuZGxpbmcgY29uc2lzdGVudDoKICAgICAtICctWFhYJyBhZGRzIFhYWCBiZWZvcmUgZXhpc3RpbmcKICAgICAtICcrWFhYJyBhZGRzIFhYWCBhZnRlciBleGlzdGluZwogICAgICAgTk9URTogdGhpcyByZXN0b3JlcyBvcmlnaW5hbCBiZWhhdmlvciBvZiAnKycgdG8gdGhhdCBvZiA1LjAuMS4gQWZ0ZXIKICAgICAgICAgICAgIDUuMC4yLCBpZiBJIHJlYWQgdGhlIGNvZGUgcmlnaHQsICcrJyBiZWhhdmlvdXIgb24gdGhlIGNtZCBsaW5lIGFuZAogICAgICAgICAgICAgaW4gTUlCRElSUyB3YXMgcmV2ZXJzZWQgYW5kIG5vdCBjb25zaXN0ZW50IHdpdGggaGFuZGxlX21pYnNfY29uZi4KCjIwMDUtMDYtMTMgMTU6MzQgIHJzdG9yeQoKICAgKiBSRUFETUUudHJ1NjQ6CgogICBuZXcgcmVhZCBtZSBmb3IgVHJ1NjQKCjIwMDUtMDYtMTMgMTI6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9jb2x1bW5zLmgsIGlmWFRhYmxlX2NvbHVtbnMuaDoKCiAgIFJlbW92ZSBvYnNvbGV0ZSBpZlRhYmxlIHJld3JpdGUuCgoyMDA1LTA2LTEzIDEyOjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUnVuIHRyYXAgaGFuZGxlcnMgdXNpbmcgJ3N5c3RlbSgpJyByYXRoZXIgdGhhbiAnZXhlY3YoKScsCiAgIHRvIHN1cHBvcnQgdHJhcCBoYW5kbGVyIHNoZWxsIHNjcmlwdHMuCgoyMDA1LTA2LTEzIDEyOjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBwYXJzZS5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzeXN0ZW0uYwosIHdpbnNlcnZpY2UuYzoKCiAgIEd1YXJkIGFnYWluc3QgYXNzb3J0ZWQgbWFsbG9jIGZhaWx1cmVzLgogICBSZXBvcnRlZCBieSBBbmRyZWFzIE1vcm9kZXIuCgoyMDA1LTA2LTEzIDExOjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIGJvZ3VzIGhhbmRsaW5nIG9mIHplcm8td2lkdGggaGludHMuCiAgIFRoZXNlIG1pZ2h0IGJlIHBvaW50bGVzcywgYnV0IHRoZXkgYXJlIHN0cmljdGx5IHZhbGlkLgogICAoU2VlIFJGQyAyNTc5LCBTZWN0aW9uIDMuMSAoMSkpCgoyMDA1LTA2LTEzIDEwOjUyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICAgIHNubXBsaWIvbWliLmM6CgogICBQb3NzaWJsZSBtZWNoYW5pc20gZm9yIGFkZHJlc3NpbmcgbmFtZXNwYWNlIGNsYXNoZXMKICAgKGluIHJlc3BvbnNlIHRvIE1hdHRoZXcgQm9laG0nIEFzdGVyaXNrIHByb2JsZW0pCgoyMDA1LTA2LTEwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VEUC1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gUkZDNDExMwoKMjAwNS0wNi0xMCAxNjowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9ydW46CgogICBhcHBseSB0ZXN0aW5nLXJmYzEyMTMtcnVuLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxNTo1NyAgaGFyZGFrZXIKCiAgICogbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlIHRoZSBVRFAtTUlCIHRvIGp1c3QgcHVibGlzaGVkIFJGQzQxMTMKCjIwMDUtMDYtMTAgMTU6NTQgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYXBwbHkgdGVzdGluZy10ZXN0Y29uZi5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYXBwbHkgYWdlbnQtaGVscGVycy1tYWtlZmlsZS5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGluaXQgaGFuZGxlciBmb3IgYWdlbnR4c29ja2V0IGZvciBzdWJhZ2VudHMgdG9vCgoyMDA1LTA2LTEwIDEwOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFlldCBBbm90aGVyIEF0dGVtcHQgdG8gZmluZCB0aGUgY29ycmVjdCBxdW90aW5nIG9mIGNvbmZpZ3VyZSBvcHRpb25zLgoKMjAwNS0wNi0xMCAwNzozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgVXBkYXRlIHRvIHVzZSB0aGUgcmVuYW1lZCBpbnRlcm5hbCBhbmQgbGlicmFyeSBxdWVyeSBBUEkgY2FsbHMuCgoyMDA1LTA2LTEwIDA3OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBUd2VhayB0aGUgc3BlY2lmaWNhbGx5IGFnZW50LWludGVybmFsIHF1ZXJ5IHJvdXRpbmVzIHRvIHVzZSB0aGUgU05NUAogICBsaWJyYXJ5IHZlcnNpb25zLgoKMjAwNS0wNi0xMCAwNzoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTW92ZSAoYW5kIHJlbmFtZSkgc2Vzc2lvbi1iYXNlZCAiaW50ZXJuYWwgcXVlcnkiIEFQSSBjYWxscyBpbnRvIHRoZSBTTk1QCiAgIGxpYnJhcnksIHNvIHRoZXkncmUgYXZhaWxhYmxlIGFzIGEgY29udmVuaWVuY2UgdG8gYWxsIFNOTVAgYXBwbGljYXRpb25zLgoKMjAwNS0wNi0xMCAwNTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW92ZSBzcGVjaWFsIGhhbmRsaW5nIGZvciAiaXAiIGludGVyZmFjZXMgdG8gU1VOVjMtb25seSBjb2RlIGJsb2NrLgogICBOby1vbmUgY2FuIHJlbWVtYmVyIHdoYXQgdGhpcyB3YXMgaW50ZW5kZWQgZm9yLCBhbmQgaXQgYnJlYWtzCiAgIExpbnV4IElQdjYgdHVubmVsIGludGVyZmFjZXMuCgoyMDA1LTA2LTEwIDA0OjIzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBCcmluZyBhdXRoZW50aWNhdGlvbi9lbmNyeXB0aW9uIGZsYWdzIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBjb21tYW5kcy4KICAgSW4gZmFjdCwgdHJlYXRzICctQS8tYScgYXMgZXF1aXZhbGVudCwgYW5kIHVzZXMgdGhlIHZhbHVlIHRvIGRpc3Rpbmd1aXNoCiAgIGJldHdlZW4gcHJvdG9jb2xzIGFuZCBwYXNzIHBocmFzZXMuICAoQW5kIHNpbWlsYXJseSBmb3IgLVgvLXgpCgoyMDA1LTA2LTA5IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyAxMjA3MDIzOiBzbm1wZCBjcmFzaCBvbiB0Y3AgZGlzY29ubmVjdAoKMjAwNS0wNi0wOSAxNzoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSBtb3ZlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgc2l6ZSBjaGVja3MgdG8gc25tcF9zZXRfdmFyX3ZhbHVlCiAgICAgLSB1c2Ugc25tcF9zZXRfdmFyX3ZhbHVlIGluIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUKCjIwMDUtMDYtMDkgMTE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBhZGQgaXB2NiBzdXBwb3J0CgoyMDA1LTA2LTA5IDExOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIHJlbmFtZSBwYXJhbSwgdXBkYXRlIGRvY3MsIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDUtMDYtMDkgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIEltcGxlbWVudCBwYXJzaW5nIG9mIHRoZSAiYXQiIGFuZCAiY3JvbiIgY29uZmlnIGRpcmVjdGl2ZXMuCiAgIFRoZXNlIHN0aWxsIGRvbid0IGFjdHVhbGx5IHdvcmssIGJ1dCB5b3UgY2FuJ3QgaGF2ZSBldmVyeXRoaW5nLi4uLgoKMjAwNS0wNi0wOSAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgRml4IHBhcnNpbmcgb2YgInJlcGVhdCIgZGlyZWN0aXZlLgoKMjAwNS0wNi0wOSAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkQ29yZS5oOgoKICAgSXQgd291bGQgYmUgdmFndWVseSBoZWxwZnVsIGlmIEkga25ldyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiAgIGhvdXJzIGFuZCBtb250aHMsIGFuZCBob3cgbWFueSBvZiBlYWNoIHRoZXJlIHdlcmUhCgoyMDA1LTA2LTA5IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBEaXNhYmxlIHRlc3RpbmcgY29kZS4KICAgKGluaXRpYWxpc2luZyB0aGUgbGlicmFyeSB0b28gZWFybHkgYnJlYWtzIGNvbmZpZyBmaWxlIHByb2Nlc3Npbmc6LSgpCgoyMDA1LTA2LTA4IDE1OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBza2lwIGlwdjYgY29kZSBpZiBpcHY2IG5vdCBlbmFibGVkOyBub3RlZCBvbiBjb2RlcnMgYnkgZWlyaWsgbm9yZGJyb2RlbgoKMjAwNS0wNi0wNyAxMDoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4uaCwgZGlzbWFuL3NjaGVkQ29uZi5jLAogICAgIGRpc21hbi9zY2hlZENvbmYuaCwgZGlzbWFuL3NjaGVkQ29yZS5jLAogICAgIGRpc21hbi9zY2hlZENvcmUuaCwgZGlzbWFuL3NjaGVkVGFibGUuYywKICAgICBkaXNtYW4vc2NoZWRUYWJsZS5oLCBkaXNtYW4vc2NoZWR1bGUuaDoKCiAgIFByZWxpbWluYXJ5IChhbmQgaW5jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBTY2hlZHVsZSBNSUIuCgoyMDA1LTA2LTA2IDA1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBVdGlsaXR5IHJvdXRpbmVzIGZvciBtYWtpbmcgImludGVybmFsIHF1ZXJpZXMiLCB0byByZXRyaWV2ZSBvciBhc3NpZ24KICAgdmFsdWVzIGZyb20gZWxzZXdoZXJlIGluIHRoZSBjdXJyZW50IGFnZW50LgoKMjAwNS0wNi0wNiAwNToyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFBvcHVsYXRlIGNhbGxiYWNrIFBEVSB3aXRoIGRlZmF1bHRzIGZyb20gdGhlIHNlc3Npb24gc3RydWN0dXJlLgogICBUaGlzIGFsbG93cyBjb21tdW5pdHktYmFzZWQgUERVcyB0byBiZSBzZW50IG92ZXIgYSBjYWxsYmFjayB0cmFuc3BvcnQuCgoyMDA1LTA2LTAyIDE5OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVsYXkgU05NUHYzIEVuZ2luZUlEIHByb2JlIHVudGlsIG5lZWRlZAoKMjAwNS0wNi0wMiAxOToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkvcmUtYXBwbHkgZml4IGZvciBidWcgMTEwMzY0NCwgRnJlZUJTRCBtZW1vcnkgbGVhawoKMjAwNS0wNi0wMiAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIG11bHRpcGxleGVyLmMsCiAgICAgbnVsbC5jLCByZWFkX29ubHkuYzoKCiAgIGFwcGx5IHBhdGNoIDEyMTA2MzI6IFJlcGxhY2UgbmV0c25tcF9zZXRfYWxsX3JlcXVlc3RzX2Vycm9yCgoyMDA1LTA1LTMwIDE3OjIxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIDQwNDQ6IEZDLU1HTVQtTUlCCgoyMDA1LTA1LTMwIDE3OjE3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IElBTkEgdmVyc2lvbgoKMjAwNS0wNS0yNyAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjb21taXQgbWlzc2luZyBzdHJ0b2tfciBjaGFuZ2VzICpjb3VnaCoKCjIwMDUtMDUtMjMgMTg6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNubXBsaWIvc25tcF9kZWJ1Zy5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFwcGxpZWQgbWlub3IgYnVnIGZpeC9kb2MgcGF0Y2hlcyBmcm9tIFRob21hcyBBbmRlcnMgaW4gIzEyMDY5ODIKCjIwMDUtMDUtMjMgMTY6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBVc2UgbWtzdGVtcCBhcHByb3ByaWF0ZSB0byBnZW5lcmF0ZSB0ZW1wIGZpbGVzCgoyMDA1LTA1LTIwIDEwOjAzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQnJpbmcgJy1IJyBpbml0aWFsaXNhdGlvbiBpbnRvIGxpbmUgd2l0aCBub3JtYWwgc3RhcnR1cC4KCjIwMDUtMDUtMTYgMTU6NTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIERvbid0IGF1dG8tYnVpbGQgZGVwZW5kZW5jaWVzLiAgU3BlY2lmeSBhIGxpc3QgaW5zdGVhZC4KCjIwMDUtMDUtMTYgMTU6NDkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBBIGJpdCBvZiByZW51bWJlcmluZy4KCjIwMDUtMDUtMTYgMTU6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhdXRvbWF0dGVkIHJlbGVhc2UgcHJvZHVjZXIgc2NyaXB0CgoyMDA1LTA1LTExIDE5OjUxICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdHlwbyBpbiBjb21tZW50CgoyMDA1LTA1LTExIDEwOjAyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IGh0bWxoZWxwL05ldC1TTk1QLmhoYywgaHRtbGhlbHAvTmV0LVNOTVAuaGhwCiwgc2NyaXB0cy9yZWFkbWUyaHRtbDoKCiAgIEFkZCBSRUFETUUuYWdlbnQtbWlicyB0byBXaW5kb3dzIGJpbmFyeQoKMjAwNS0wNS0xMSAwNToyMCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE1vcmUgUkZDcyB3aXRoIE1JQnMKCjIwMDUtMDUtMTAgMjE6MTMgIGFsZXhfYgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIHNubXBjb25mOiBBbGxvdyBTTk1QQ09ORlBBVEggdG8gaGF2ZSBtdWx0aXBsZSBwYXRocyBkZWZpbmVkIHN1Y2ggYXMgd2hlbiB0aGUKICAgcGVyc2lzdGVudCBmb2xkZXIgaXMgaW5jbHVkZWQuICBzbm1wY29uZiB3aWxsIGFsc28gZGV0ZXJtaW5lIHRoZSBjb25maWd1cmVkCiAgIHBlcnNpc3RlbnQgZm9sZGVyIGFuZCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgdHJlYXRlZCBhcyBhIHJlZ3VsYXIgY29uZmlndXJhdGlvbgogICBmaWxlLgoKMjAwNS0wNS0xMCAyMDo0NCAgYWxleF9iCgogICAqIE5FV1M6CgogICBBZGQgZml4ZXMgdG8gTkVXUyBmb3IgbmV4dCByZWxlYXNlCgoyMDA1LTA1LTA5IDIxOjA3ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA5IDIwOjUzICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBUaGUga2VybmVsIGxpdmVzIGluIC9ib290L2tlcm5lbC9rZXJuZWwgb24gcmVjZW50IEZyZWVCU0QncwoKMjAwNS0wNS0wOSAxOTozNSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUudHh0LAogICAgIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgYmluYXJ5OiBBZGQgcGVyc2lzdCBmb2xkZXIgdG8gU05NUENPTkZQQVRICgoyMDA1LTA1LTA5IDE5OjAwICBhbGV4X2IKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGQuOC5kZWYsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLVBlcnNpc3RlbnQgZmlsZXMgd2VyZSBub3QgYmVpbmcgcmVhZCBhdCBzdGFydHVwIHdoZW4gdXNpbmcKICAgc25tcC5jb25mIHBlcnNpc3RlbnREaXIKICAgLVVwZGF0ZSBwZXJzaXN0ZW50IHN0b3JhZ2Ugc2VjdGlvbnMgb2Ygc25tcF9jb25maWcgYW5kIHNubXBkCiAgIG1hbiBwYWdlcwoKMjAwNS0wNS0wOSAxODo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgdXNlIG1vcmUgZmxleGlibGUgY3NzIGZvciBtYXJrdXAgYW5kIGFsbG93IGEgcGFzc2VkIGluIGZpbGUKCjIwMDUtMDUtMDkgMTg6MTIgIGFsZXhfYgoKICAgKiBDT1BZSU5HOgoKICAgQWRkIEZhYmFzb2Z0IFImRCBTb2Z0d2FyZSAoYykgbm90aWNlCgoyMDA1LTA1LTA5IDE2OjM3ICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIGRldGVjdCBleHRyYSBhcmd1bWVudHMKCjIwMDUtMDUtMDkgMTY6MzMgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgc25tcGdldCA9PiBzbm1wZGYKCjIwMDUtMDUtMDkgMTY6MjEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgNDAwOCBpcyBOQVQtTUlCCgoyMDA1LTA1LTA5IDE2OjIwICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRmluZCBkZWNsYXJhdGlvbnMgZm9yIHNpZ2hvbGQvc2lnc2V0L3NpZ3BhdXNlCgoyMDA1LTA1LTA5IDE2OjE4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBFbnN1cmUgMC10ZXJtaW5hdGlvbiBvZiByZWFkIGZpbGUgZGF0YQoKMjAwNS0wNS0wOSAxNjoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRGV0ZWN0IHRvbyBtYW55IGRlZmluZWQgcGVlcnMuIFByb3Blcmx5IHBhcnNlIHN5bWJvbGljIHBlZXJzCgoyMDA1LTA1LTA5IDE2OjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBOZWVkZWQgZXh0ZXJuYWwKCjIwMDUtMDUtMDkgMTY6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBGaXggZm9ybWF0IHdhcm5pbmcKCjIwMDUtMDUtMDkgMTY6MDkgIG5iYQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBmb3IgaW5zdGFsbGluZyByZW1vdGUgZnJvbSBzb3VyY2UgZGlyCgoyMDA1LTA1LTA5IDE2OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgRml4IGZvciBOZXRCU0QKCjIwMDUtMDUtMDkgMTY6MDEgIG5iYQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBHZW5lcmF0ZWQKCjIwMDUtMDUtMDkgMTU6NDUgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBGaXhlcyBmb3IgTmV0QlNEL0ZyZWVCU0QgZm9yIHN3YXAgZGF0YQoKMjAwNS0wNS0wOSAxNToxNyAgbmJhCgogICAqIGFjY29uZmlnLmg6CgogICBGaXggbWluZ3cgdGVzdCB0aGF0IHdhcyBvbmx5IGFwcGxpZWQgdG8gbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMDUtMDUtMDkgMTU6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBib2d1cyBwcmVwcm9jZXNzb3IgaWYKCjIwMDUtMDUtMDkgMDQ6NTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIElsbHVzdHJhdGUgaGFuZGxpbmcgb2YgY2FjaGVkIHRhYmxlcyB1c2luZyB0aGUgdGFibGVfZGF0YSBoZWxwZXIuCiAgIChBY3RpdmF0ZSB1c2luZyAibWliMmMgLVNjYWNoZT10cnVlIC4uLiIpCgoyMDA1LTA1LTA5IDA0OjU4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBFeHRyYWN0IHJlcXVpcmVkIHRhYmxlIHN0cnVjdHVyZXMgd2hlbiBwcm9jZXNzaW5nIFJvd1N0YXR1cyBhc3NpZ25tZW50cy4KCjIwMDUtMDUtMDkgMDQ6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIEZpeCB0YWJsZSBtYXgvbWluIGNvbHVtbiByZWdpc3RyYXRpb24uCgoyMDA1LTA1LTA2IDE1OjE0ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA2IDE1OjExICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBQbGFjYXRlIGF1dG9jb25mMjU5IGJ5IHRlc3RpbmcgYW5kIGluY2x1ZGluZyA8dm0vdm0uaD4gYmVmb3JlIHRlc3RpbmcKICAgPHZtL3N3YXBfcGFnZXIuaD4KCjIwMDUtMDUtMDUgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMDY0NDMgZnJvbSB0b2xnYSBjZXlsYW4gdG8gdXNlIGEgcHJvcGVyIHJldHVybiBjb2RlIGNoZWNrIGZvciBnZXRLc3RhdEludAoKMjAwNS0wNS0wNSAyMDowNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQXBwbGllZCBwYXRjaCAjMTEwOTcxMiB0byBmaXggVlBBVEggZm9yIHJjIGZpbGVzIG9uIGN5Z3dpbgoKMjAwNS0wNS0wNSAxOTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzExMTA1NzEgZnJvbSBLYXRzdWhpc2EgQUJFIHRvIHNldCBpcHY2IHRjcCBzb2NrZXRzIHRvIGlwdjYgb25seSBpZiBwb3NzaWJsZQoKMjAwNS0wNS0wNSAxOTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQXBwbGllZCBwYXJ0IG9mIHBhdGNoICMxMTEwNjEwIGZyb20gUGV0ZXIgQnJlaXRlbmxvaG5lciBmb3IgY29tcGlsZXIgd2FybmluZ3MKCjIwMDUtMDUtMDUgMTk6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgICBzbm1wbGliL21pYi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEyMzI0MiBmcm9tIE1pa2UgTWNIZW5yeSB0byBhZGQgbWliMnNjaGVtYSBjb21wbGlhbnQgb3V0cHV0IHRvIHNubXB0cmFuc2xhdGUKCjIwMDUtMDUtMDUgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEyNDU2OSBmcm9tIE1hcmN1cyBNZWlzc25lciB0byBkeW5hbWljYWxseSBkZWNpZGUgaG93CiAgIG1hbnkgY3B1cyB0aGVyZSBvbiBsaW51eCBhbmQgdG8gYmV0dGVyIHBhcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCiAgICAgLSBtb2RpZmllZCB0byBiZSBjb21wbGlhbnQgd2l0aCBBTlNJIGFuZCB0aGUgY29kaW5nIHN0eWxlLgoKMjAwNS0wNS0wNSAxOToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoICMxMDYyMTE0IGJ5ICJzbm1wcG9ydGFsIiB0byBjbGVhbiB1cCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA1LTA1LTA1IDA3OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzExMTcyNzEgKHZhcmlhbnQpIC0gY2hlY2sgdGhlIGJ1ZmZlciBsZW5ndGggd2hlbiBmb3JtYXR0aW5nCiAgIGFuIHVwdGltZSBzdHJpbmcgKHRob3VnaCB3aXRob3V0IGNoYW5naW5nIHRoZSBleGlzdGluZyBBUEkgY2FsbCkuCgoyMDA1LTA1LTA1IDA1OjA3ICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSBhZGRpdGlvbmFsIGdlbmVyYXRlZCBjbGllbnQgbWFuIHBhZ2VzCgoyMDA1LTA1LTA0IDIwOjU4ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA0IDIwOjU2ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBVc2UgdGhlIGFjY3VtdWxhdGVkIHdpc2RvbSBvZiB0aGUgcHJldmlvdXMgQUNfSEVBREVSQ0hFQ0tTIGZvcgogICBIQVZFX05FVElORVRfSVBfSCwgSEFWRV9ORVRJTkVUX0lGX0gsIEhBVkVfTkVUSU5FVF9JUF9JQ01QX0ggYW5kCiAgIEhBVkVfTkVUSU5FVF9VRFBfSCAoaW4gYWRkaXRpb24gdG8gdGhlIG9uZXMgYWxyZWFkeSBwcmVzZW50KS4KICAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgb24gRnJlZUJTRCA1LjMgYW5kIDQuMTAgKGJ1dCB0aGUgbGF0dGVyCiAgIHN0aWxsIGlzbid0IHBsYXlpbmcgd2l0aCB0aGUgZnVsbCB2bV9zd2FwIGRlY2spLgoKMjAwNS0wNS0wNCAyMDo0OCAgZHJpZWh1aXMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIEZyZWVCU0QgNS4zIGlzIHJlYWxseSB1bmhhcHB5IGFib3V0IGdldHRpbmcgX0tFUk5FTCBkZWZpbmVkLiBCeSBmb3JjaW5nCiAgIElGTkVUX05FRURTX0tFUk5FTCBvZmYgd2UgZml4IHRoYXQgKGFmdGVyIGFsbCwgZGVmaW5pbmcgX0tFUk5FTCByZWFsbHkKICAgaXMgYSBncm9zcyBoYWNrIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCBwcm9wZXJseSBleHBvcnQgc3lzdGVtCiAgIGludGVybmFscyAtLSBmYW1vdXMgbGFzdCB3b3JkczotKQoKMjAwNS0wNS0wNCAxMTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBQYXRjaCAjMTEyNDY1Mjogb3B0aW9ucyB0byBleHBsaWNpdGx5IGluY2x1ZGUvZXhjbHVkZSBlbGYgYW5kIGJ6aXAgbGlicmFyaWVzCgoyMDA1LTA1LTA0IDExOjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBQYXRjaCAjMTA0MjQ0NyAtIGNsb25lIHplcm8tbGVuZ3RoLCBub24tTlVMTC1wb2ludGVyIHN0cmluZ3MuCgoyMDA1LTA1LTA0IDA4OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCAjMTA1MTAwMSAtIHNraXAgdW5uZWNlc3NhcnkgY2FsbCB0byAnYXV0b19ubGlzdCcgdW5kZXIgTmV0QlNECgoyMDA1LTA1LTA0IDA4OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50Lmg6CgogICBQYXRjaCAjMTA5NjQ3OSAtIGZpeCBkZWNsYXJhdGlvbiBvZiBpbml0aWFsaXNhdGlvbiByb3V0aW5lLgoKMjAwNS0wNS0wNCAwODo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBQYXRjaCAjMTA5NjQ4MyAtIGZpeCBhIG1pbm9yIGluY29uc3Rpc3RlbmN5CgoyMDA1LTA1LTA0IDA4OjIyICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBQYXRjaCAjMTEwMzc1MSAtIHNraXAgZWRpdG9yIGJhY2t1cHMgd2hlbiBsb2FkaW5nIE1JQiBmaWxlcy4KCjIwMDUtMDUtMDQgMDg6MDcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzExMDk3MTk6IFJlbW92ZSAoYXBwYXJlbnRseSkgcmVkdW5kYW50IHF1b3Rpbmcgb2YgY29uZmlndXJlIG9wdGlvbnMuCiAgIFRoaXMgcXVvdGluZyB3YXMgaW50cm9kdWNlZCBlYXJseSBpbiB0aGUgdjUgbGlmZXRpbWUgdG8gc3VwcG9ydCAib3B0aW9ucwogICBjb250YWluaW5nIHNwYWNlcyIgKHNlZSByZXZpc2lvbiA1LjI2KS4gIFNpbXBsZSB0ZXN0aW5nIHNlZW1zIHRvIGluZGljYXRlCiAgIHRoYXQgaXQncyBubyBsb25nZXIgbmVlZGVkLCBhbmQgaXQgYnJlYWtzIEFJWCAocG9zc2libHkgYW1vbmcgb3RoZXJzKSwgc28KICAgbGV0J3MgdHJ5IHdpdGhvdXQgaXQuCiAgICAgSWYgbm8tb25lIGNvbXBsYWlucywgdGhpcyBwYXRjaCBtYXkgbmVlZCB0byBiZSBhcHBsaWVkIHRvIHRoZSBvdGhlciBicmFuY2hlcwogICBhcyB3ZWxsLgoKMjAwNS0wNS0wNCAwNzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUGF0Y2ggIzExMTgxMzIgLSBoYW5kbGUgZGlzYXBwZWFyaW5nIExpbnV4IHByb2Nlc3Nlcy4KCjIwMDUtMDUtMDQgMDY6NDIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCAjaWZkZWYgdHlwbwoKMjAwNS0wNS0wNCAwNjoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgUGF0Y2ggIzExMTcyNzYgLSB0d2VhayBFVlBfRGlnZXN0RmluYWwgcGFyYW1ldGVycyB0byBtYXRjaCBleHBlY3RlZCB0eXBlcy4KCjIwMDUtMDUtMDQgMDY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBQYXRjaCAjMTExNzI2NSAtIG9wZW4gZGV2aWNlcyB3aXRoIE5ERUxBWSB3aGVuIHBvc3NpYmxlLgogICBBdm9pZHMgYWdlbnQgaGFuZ2luZyBvbiBtaXNzaW5nIHJlbW92YWJsZSBkZXZpY2VzLgoKMjAwNS0wNS0wMyAxODoyNiAgYWxleF9iCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IEFwcGx5IHBhdGNoIDExNTMyNzEgYnkgRWtrZWhhcmQgRG9tbmluZyBmb3Igc25tcGQgcGFzc19wZXJzaXN0IHN1cHBvcnQKICAgZm9yIE1TVkMuICBBcHBseSBwYXRjaCBiYXNlZCBvbiAxMTUzMjcxIGZvciBwYXNzIHN1cHBvcnQgZm9yIE1TVkMgYW5kIE1pbkdXLgoKMjAwNS0wNS0wMyAxMDozOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBVc2UgdGhlIHdhdGNoZWQgc2NhbGFyIGhlbHBlciAocmF0aGVyIHRoYW4gc3BlY2lhbGlzZWQgaW5zdGFuY2UgaGVscGVycykKICAgZm9yIGltcGxlbWVudGluZyBpbnRlZ2VyLWJhc2VkIHNjYWxhciBvYmplY3RzLiAgUGlja3MgdXAgb24gdW5zaWduZWQKICAgaW50ZWdlciBvYmplY3RzLCBhcyB3ZWxsIGFzIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gcmVhZC1vbmx5L3JlYWQtd3JpdGUKICAgTUlCIGRlZmluaXRpb25zLgoKMjAwNS0wNS0wMyAxMDoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgSWxsdXN0cmF0ZSBoYW5kbGluZyBvZiBjYWNoZWQgdGFibGVzIHVzaW5nIHRoZSBpdGVyYXRvciBoZWxwZXIuCiAgIChBY3RpdmF0ZSB1c2luZyAibWliMmMgLVNjYWNoZT10cnVlIC4uLiIpCgoyMDA1LTA1LTAzIDEwOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgU3Rhc2ggbG9va3VwIGRlYnVnZ2luZyBjb2RlLgoKMjAwNS0wNS0wMyAxMDoxOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIENvbnZlbmllbmNlIHNpbmdsZS1jYWxsIEFQSXMgZm9yIGludGVnZXItYmFzZWQgd2F0Y2hlZCBzY2FsYXJzLgogICAoTW9kZWxsZWQgb24gdGhlIGV4aXN0aW5nIGluc3RhbmNlLWJhc2VkIGNhbGxzKS4KCjIwMDUtMDUtMDMgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUHJvdmlkZSBhICh0cml2aWFsKSBnZXRfe2ZpcnN0LG5leHR9IEFQSS4KICAgTm90IHN0cmljdGx5IG5lY2Vzc2FyeSBpbiBpdHNlbGYsIGJ1dCBzaG91bGQgYWlkIHRoZQogICB0cmFuc2l0aW9uIHRvIGEgY29udGFpbmVyLWJhc2VkIHRhYmxlX2RhdGEgc3R5bGUuCgoyMDA1LTA1LTAyIDIwOjQyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgQWRkIGxpbWl0cy5oIGhlYWRlciBmaWxlCgoyMDA1LTA1LTAyIDE4OjQ2ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgV2luMzIgTVNWQyBzdXBwb3J0IGZvciBmZF9ldmVudF9tYW5hZ2VyLltjaF0KCjIwMDUtMDUtMDEgMTM6NDcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBGaXggc3lzRGVzY3Igc3VwcG9ydCBmb3IgTWluR1cKCjIwMDUtMDUtMDEgMDk6MjAgIGFsZXhfYgoKICAgKiBsb2NhbC9wYXNzdGVzdC5wbDoKCiAgIEFkZGVkIFBlcmwgdmVyc2lvbiBvZiAvbG9jYWwvcGFzc3Rlc3Qgc2hlbGwgc2NyaXB0CgoyMDA1LTA0LTMwIDIwOjM4ICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQ3lnd2luOiBBZGQgbWlzc2luZyByZWdpc3RyeSBzdXBwb3J0IGZvciBTTk1QQ09ORlBBVEggZXRjLgoKMjAwNS0wNC0zMCAyMDozNiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgLVJlbW92ZSAnZGVmaW5lIFdJTjMyJyBmb3IgQ3lnd2luIGFuZCBjaGFuZ2UgaWZkZWZzIHRvIGNoZWNrIGZvciBlaXRoZXIKICAgV0lOMzIgb3IgY3lnd2luLgogICAtQWRkIHNlY3Rpb24gdG8gUkVBRE1FLndpbjMyIGRlc2NyaWJpbmcgdGhlIHZhcmlvdXMgV2luZG93cyBkZWZpbmVzLgogICAtQWRkIG5vdGUgdG8gUkVBRE1FIGZpbGVzIGFib3V0IHNwYWNlcyBpbiBmb2xkZXIgbmFtZXMgd2hlbiBjb21waWxpbmcuCgoyMDA1LTA0LTMwIDE4OjM2ICBhbGV4X2IKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMKCjIwMDUtMDQtMjkgMTI6MTQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCAjMTE0OTQyMCAtIHVzZSBuZXcgZXh0ZXJuYWwgZmQgaGFuZGxlciByb3V0aW5lcywKICAgdG8gcGF2ZSB0aGUgd2F5IGZvciBtb3JlIGludGVncmF0ZWQgdHJhcCBoYW5kbGVycy4KCjIwMDUtMDQtMjkgMTI6MTIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmg6CgogICBQYXRjaCAjMTE0OTQyMCAtIHNlcGFyYXRlIGV4dGVybmFsIGZkIGhhbmRsaW5nIG9mZiBpbnRvCiAgIGEgZGlzdGluY3QgbGlicmFyeSBtb2R1bGUuICBTdWJtaXR0ZWQgYnkgU3RlbiBKLiBPbHNzb24KCjIwMDUtMDQtMjkgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIFBhdGNoICMxMTU0NDg4IC0gb3B0aW9uIHRvIHNwZWNpZnkgcHJpb3JpdHkgb2YgInBhc3MiIHByb2Nlc3NpbmcKCjIwMDUtMDQtMjkgMTE6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQXBwbHkgcGF0Y2ggIzExNTUzMzcgLSBmaXggZGlza0lPIGF2ZXJhZ2Ugc3VwcG9ydCBmb3IgRnJlZUJTRDUKCjIwMDUtMDQtMjcgMjA6MjIgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgV2luMzIgTVNWQzogQWJvcnQgY29tcGlsZSBpZiBhIHNwYWNlIGlzIGRldGVjdGVkIGluIHRoZSBiYXNlIGZvbGRlcgogICB3aGVuIGNvbXBpbGluZy4KCjIwMDUtMDQtMjcgMjA6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIE1hc3NpdmUgZGVidWdnaW5nIG9mIG1lbW9yeSBsZWFrcy4gIEl0IGlzIG5vdyBtZW1vcnktbGVhayBmcmVlIQoKMjAwNS0wNC0yNyAyMDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZnJlZSB0aGUgc3ViLW5hbWUgaWYgbm90IGF0dGFjaGVkIHRvIHRoZSBwYXJlbnQgc3RydWN0dXJlLgoKMjAwNS0wNC0yNyAxODo1NSAgYWxleF9iCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ3lnd2luOiBSZXBsYWNlIFBJRF9aT01CSUUgcmVmZXJlbmNlcyBhcyB0aGUgZmxhZyB3YXMgcmVtb3ZlZCBmcm9tCiAgIEN5Z3dpbiBpbiBtaWQgSmFuIDIwMDUuCgoyMDA1LTA0LTI2IDE4OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgLSBzeW5jIHNvbWUgY29tbWVudHMKICAgLSBmaXggaGFuZGxpbmcgb2YgT0lEcyBpbiByb3dfY29weSBjb2RlLCBub3RlZCBvbiBJUkMgYnkgZGF2ZWpfCgoyMDA1LTA0LTI1IDEyOjMyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgdXBkYXRlIHRhYmxlX2l0ZXJhdG9yIHRvIHVzZSB2YWxpZF9jb2x1bW4gaW5mbwoKMjAwNS0wNC0yMiAxMToxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW1wcm92ZSBoYW5kbGluZyBvZiBub24taW50ZWdlci1iYXNlZCBvYmplY3RzIGluIHRhYmxlX2RhdGEgdGVtcGxhdGUgY29kZS4KCjIwMDUtMDQtMjIgMTE6MTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIElmIGFuIGluc3RhbmNlLWJhc2VkIGhhbmRsZXIgcmV0dXJucyBhbiBlcnJvciBmb3IgYSBHZXROZXh0IHJlcXVlc3QsCiAgIHdlIG5lZWQgdG8gc2tpcCBvbiB0byB0aGUgbmV4dCB2YWxpZCBpbnN0YW5jZS4KCjIwMDUtMDQtMjIgMTA6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZhaWx1cmUgdG8gY3JlYXRlIGluaXRpYWwgdXNlci4KCjIwMDUtMDQtMjEgMTI6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIGRvbid0IHRyYWNrIGRlYnVnIHN0YXRzIGJ5IGRlZmF1bHQ7IGFkZCBzdGF0cyBwcm90b3R5cGVzCgoyMDA1LTA0LTIxIDEwOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0CiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseSBwYXRjaCAxMDg1MjQzOiBBZGQgNjQtYml0IGNvdW50ZXJzIHRvIGRpc2tJT1RhYmxlCgoyMDA1LTA0LTIxIDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBpbml0IHN0YXQgcHRyIHRvIG51bGwKCjIwMDUtMDQtMjEgMTA6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIC0gc3RhdGljIGRlbGV0ZV9kdXBsaWNhdGVzIC0+IHB1YmxpYyBuZXRzbm1wX2NhbGxiYWNrX2NsZWFyX2NsaWVudF9hcmcKICAgLSB0YWJzIHRvIHNwYWNlcwoKMjAwNS0wNC0yMSAxMDoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgYWRkL3VzZSBjYWxsYmFjayBwcmlvcml0eSBtYWNyb3MKCjIwMDUtMDQtMjEgMTA6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIGFkZCBkZWJ1ZyB0b2tlbiBleGNsdXNpb24KCjIwMDUtMDQtMjEgMDk6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBza2lwIGV4Y2x1ZGVkIHRva2VucyAodGlsIG1pYiBpcyB1cGRhdGVkKQoKMjAwNS0wNC0yMCAyMzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdXBkYXRlIGZvciBjaGFuZ2UgdG8gY3R4IGluaXQgZGVmYXVsdAoKMjAwNS0wNC0yMCAyMzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGFkZCBjb2RlIGZvciBERUZWQUxzIGluIGN0eCBpbml0CgoyMDA1LTA0LTIwIDIzOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBkZWZhdWx0IHRvIGdlbmVyYXRlIGN0eCBpbml0CgoyMDA1LTA0LTIwIDE5OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBhZGQgbm90ZSBvbiBpbmRleCBhdHRyaWJ1dGVzIGFscmVhZHkgdGVzdGVkCgoyMDA1LTA0LTIwIDE4OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggY29tbWVudHMKICAgLSByZXZhbXAgY2hlY2tfaW5kZXhlcyB0byBkbyBiYXNpYyB2YWxpZGF0aW9uIGJlZm9yZSBjYWxsaW5nIHVzZXIgZnVuYwogICAtIGV4cGxpY2l0IG5vdCB3cml0YWJsZSBjYXNlIGZvciBpbmRleC9yZWFkLW9ubHkgdmFycyBpbiBzZXQgY29scwoKMjAwNS0wNC0yMCAxODo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgYWRkIGNvbW1lbnRzIGluIGluZGV4IGhhbmRsaW5nIGZ1bmN0aW9uIGhlYWRlcnMKCjIwMDUtMDQtMjAgMTg6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC0gcmVtb3ZlIGhhcmRjb2RlZCB0YWJsZSBuYW1lCiAgIC0gcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUKICAgLSBhZGQgc29tZSBjb21tZW50cwogICAtIGRlZmluZSBwcm90b3R5cGUgYmVmb3JlIHVzZQogICAtIGZpeCBiYWNrIGZ1bmN0aW9uIG5hbWUKICAgLSBmaXggdG9vIG1hbnkgcGFyYW1zIGZvciBmdW5jdGlvbgoKMjAwNS0wNC0yMCAxODo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG5vZGUtdmFsaWRhdGUubTJpLAogICAgIG5vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICAtIGJyZWFrIHZhbHVlIHZhbGlkYXRpb24gb3V0IG9mIHZhcmJpbmQtdmFsaWRhdGUKICAgLSBjb21wYXJlIHZhbHVlcy9sZW5ndGhzIGRpcmVjdGx5LCBpbnN0ZWFkIG9mIGNhbGxpbmcgZnVuY3Rpb24KICAgLSBkZXRlY3QvaGFuZGxlIHJhbmdlcyB0aGF0IGFyZSByZWFsbHkgc2luZ2xlIHZhbHVlcwoKMjAwNS0wNC0yMCAxODozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGZpeCBkaXJlY3RvcnkgY29weQoKMjAwNS0wNC0yMCAxNTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgZnJlZSBzdHJpbmcgcGFzc2VkIHRvIHBlcmwgYWZ0ZXIgaXQncyBwYXNzZWQKCjIwMDUtMDQtMjAgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgYWRkIHdhdGNoZWQgZXhhbXBsZQoKMjAwNS0wNC0yMCAxNDowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywKICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICAtIGFkZCBleGFtcGxlIHN0cmluZyB0byBtaWIKICAgLSBhZGQgZXhhbXBsZSBvZiBhIHdhdGNoZWQgc3RyaW5nCgoyMDA1LTA0LTE5IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKCjIwMDUtMDQtMTggMTg6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQoKMjAwNS0wNC0xOCAxODoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgLSBmaXhlcyBmb3IgY3JlYXRlX2Zld2VyX2ZpbGVzIHNldHRpbmcKICAgLSBkZWZpbmUgdGFibGUgbmFtZSBvbmNlLCBhdCB0b3AsIGZvciBxdWlja2VyIHVwZGF0aW5nCgoyMDA1LTA0LTE4IDE4OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAtIGFkZCB0b3AvdGFibGUgbGV2ZWwgc2h1dGRvd24gZnVuY3Rpb25zCiAgIC0gZGVmaW5lIHVzZXIgY29udGV4dAoKMjAwNS0wNC0xOCAxODoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIC0gdXNlIG5ldyBtMmNfZGF0YV9jYWNoZSB0byBkZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIGdlbmVyYXRlIGNhY2hlIGNvZGUKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0IHRhYmxlIGNvbnRhaW5lcgogICAtIG1vc3QgY2FjaGVfKiBmdW5jdGlvbnMgcmVuYW1lZCB0byBjb250YWluZXJfKjsgcmVtYWluaW5nIGNhY2hlIHZlcnNpb25zCiAgICAgY2FsbCBjb250YWluZXIgdmVyc2lvbnMKICAgLSBhZGQgdGFibGUvY29udGFpbmVyIHNodXRkb3duIGZ1bmN0aW9ucwoKMjAwNS0wNC0xOCAxODowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIG1vdmUgaW5kZXhlc19zZXQgcmVhZG1lIGhlcmUgKGZyb20gY29udGFpbmVyLWNhY2hlZCkKCjIwMDUtMDQtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgLSBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQogICAtIHJlbW92ZSBoYXJkY29kZWQgbm9kZSBuYW1lCgoyMDA1LTA0LTE4IDE4OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgICAgLSBhbHdheXMgd3JpdGUgZGVmYXVsdHMsIHNvIG5ldyBvcHRpb25zIGFwcGVhciBmb3IgdXNlcgogICAgIC0gbmV3IG9wdGlvbnM6IGRhdGFfY2FjaGUsIGRhdGFfc3BhcnNlCiAgICAgLSBtb3JlIGludGVyYWN0aXZlIHF1ZXN0aW9uczoKICAgICAgIHNraXAgbWFwcGluZywgc3BhcnNlLCB1bmNhY2hlZCBjb250YWluZXIsIGdlbmVyYXRlIG1ha2VmaWxlL2FnZW50eAoKMjAwNS0wNC0xOCAxNzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgdHdlYWsgZXhjbHVzaW9uIG9mIG1hcHBpbmcgZnVuY3Rpb25zCgoyMDA1LTA0LTE4IDE3OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaToKCiAgIG5ldyBtMmkgdG8gc2F2ZSBhbGwgdGFibGUgZGVmYXVsdHMKCjIwMDUtMDQtMTggMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgICAgLSBhbHdheXMgd3JpdGUgZGVmYXVsdHMsIHNvIG5ldyBvcHRpb25zIGFwcGVhciBmb3IgdXNlcgoKMjAwNS0wNC0xOCAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIC0gY2hlY2sgZm9yIGJhZCBoZHIgbGVuCiAgIC0gZG9uJ3QgZnJlZSBOVUxMIHB0cgoKMjAwNS0wNC0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gdXNlIG5hbWVkIHZhcnMgaW5zdGVhZCBvZiBwb3NpdGlvbmFsLCBmb3IgY2xhcml0eQogICAtIHR3ZWFrcyB0byBjb3B5IHVwZGF0ZWQgZGVmYXVsdHMgZmlsZXMKCjIwMDUtMDQtMTUgMTc6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICBhZGQgY29uZmlnX2FkZF9taWIKCjIwMDUtMDQtMTQgMTg6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDUtMDQtMTQgMTc6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3ZlIGdlbmVyYXRpb24gb2YgZW1wdHkgaW5jbHVkZXMgb3V0c2lkZSBvZiBhZ2VudCBlbmFibGVkIGNvbmRpdGlvbmFsCgoyMDA1LTA0LTEzIDIyOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpOgoKICAgdXBkYXRlIHBhcmFtZXRlciBuYW1lcyB0byBiZSBpbmxpbmUgdy9ldmVyeW9uZSBlbHNlCgoyMDA1LTA0LTEzIDIyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBnZW5lcmF0ZSBpbmRleCBjaGVjayByb3V0aW5lcyBpZiB0YWJsZSBwZXJzaXN0ZW50IGlzIHNldAogICAtIGRvbid0IHJlZmVybmNlIHNldF9jb2x1bW5zIHVubGVzcyB0YWJsZSBzZXR0YWJsZQogICAtIGRvbid0IGNoZWNrL2luc2VydCBuZXcgcm93cyB1bm5sZXNzIHJvdyBjcmVhdGlvbiBpcyBzZXQKCjIwMDUtMDQtMTMgMjI6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1zZXQubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICAtIGdlbmVyYXRlIGluZGV4IGNoZWNrIHJvdXRpbmVzIGlmIHRhYmxlIHBlcnNpc3RlbnQgaXMgc2V0CiAgIC0gbW92ZSBpbmRleCBjaGVjayBmdW5jdGlvbnMgdG8gZGF0YSBhY2Nlc3MgZmlsZSBzbyB0aGV5IGNhbiBiZSB1c2VkIGJ5CiAgICAgdGhlIHBlcnNpc3RlbmNlIHJvdXRpbmVzCgoyMDA1LTA0LTEzIDA5OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaCwgaXAtbWliLmgKOgoKICAgYWRkIGFwcHJvcHJpYXRlIG1pYnMgdG8gZGVmYXVsdCBsb2FkIGxpc3QKCjIwMDUtMDQtMDggMTA6MzggIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hhbmdlIGluZGV4IGFuZCByaW5kZXggZGVmaW5lcyBmb3IgTWluR1cgdG8gZml4IGNvbXBpbGUgcHJvYmxlbS4KCjIwMDUtMDQtMDcgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGFkZCBhcGkgZm9yIHJlZmVyZW5jZSBjb3VudGluZwogICAtIGFkZCBhcGkgdG8gZmluZCByb3cgZnJvbSB0YWJsZSBtaWIgaW5kZXggc3RydWN0CgoyMDA1LTA0LTA3IDE4OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGFzcyBpbiBoaW50IHRvIGdldF9maXJzdCBpZiBzb3J0ZWQgKHN1Z2dlc3RlZCBieSBNaWtlIFRoYXRjaGVyIG9uIGNvZGVycykKCjIwMDUtMDQtMDcgMTM6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBkb24ndCBkaXNhYmxlIGFsbCBmaWxlbG9ncyB3aGVuIGEgbmV3IG9uZSBpcyBlbmFibGVkLgogICAtIGFnYWluIHdpdGggdGhlIEMrKyBjb21tZW50cywgc28gdGhpcyBpcyByZS10aG91Z2h0IGJlZm9yZSA1LjMKCjIwMDUtMDQtMDYgMTI6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBleGNsdWRlIGN2cyBJZCBsaW5lcyBmcm9tIGRpZmYKCjIwMDUtMDQtMDYgMTE6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZW1vdmUgZXh0cmFuZW91cyA7CgoyMDA1LTA0LTA2IDExOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWRkIG1pc3NpbmcgY29tbWVudCBjbG9zZQoKMjAwNS0wNC0wNiAxMToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0IGNvbnRhaW5lciBzaXplCiAgIC0gdHJhY2sgdGFibGUgbGV2ZWwgZGlydHkgZmxhZyBmb3Igc2V0dGFibGUgdGFibGVzCiAgIC0gY2hlY2sgZGlydHkgJiBzdWNjZXNzIHRvIGNhbGwgc25tcF9zdG9yZSBmb3Igc2V0dGFibGUgcGVyc2lzdGVudCB0YWJsZXMKCjIwMDUtMDQtMDUgMTI6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gdXBkYXRlIGludGVyYWN0aXZlIHNldHVwIHRvIHByb21wdCBmb3IgcGVyc2lzdGVudCBzdG9yZQoKMjAwNS0wNC0wNSAxMjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jOgoKICAgcmVtb3ZlIG9sZCBjb2RlIG5vdCB1c2VkIGZvciB0aGUgY29udGFpbmVyIHZlcnNpb24KCjIwMDUtMDQtMDUgMTI6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtcGVyc2lzdGVuY2UubTJpLCBtZmQtdG9wLm0yYwo6CgogICAtIG1vdmUgcGVyc2lzdGVudCBzdG9yZSBjb2RlIHRvIGl0cyBvd24gZmlsZQogICAtIHVwZGF0ZSBpbnRlcmFjdGl2ZSBzZXR1cCB0byBwcm9tcHQgZm9yIHBlcnNpc3RlbnQgc3RvcmUKICAgLSBtb3ZlIHNob3VsZF9zYXZlKCkgb3V0IG9mIGludGVyZmFjZSBjb2RlLCBpbnRvICpUYWJsZS5jCiAgIC0gbG9nIGVycm9yIGlmIG5vIGNvbHVtbnMgZm91bmQgZHVyaW5nIHJlc3RvcmUKCjIwMDUtMDQtMDQgMTU6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA1LTA0LTA0IDE0OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgY2xlYXIgZHVwbGljYXRlcyBzbyB0aGV5IGFyZW4ndCBkb3VibGUtZnJlZWQKCjIwMDUtMDQtMDEgMTM6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXB0cmFwZC1pbml0LmQ6CgogICBuZXcgc3RhcnR1cCBzY3JpcHQKCjIwMDUtMDQtMDEgMDM6MDYgIG5iYQoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlCgoyMDA1LTAzLTMxIDE5OjA2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKCjIwMDUtMDMtMzEgMTg6MjIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgbWVudGlvbiBBRVMgdG9vCgoyMDA1LTAzLTMxIDE3OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBjYWxsIHNubXBfc2h1dGRvd24KCjIwMDUtMDMtMzEgMTc6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBhZGQgcmVzdWx0IGNvZGUgdG8gc25tcF9sb2cgbWVzc2FnZQoKMjAwNS0wMy0zMSAxNzozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaDoKCiAgIFRoZSBuZXcgZGF0YSBhbmQgZGF0YXNldCBoZWxwZXIgaW1wbGVtZW50YXRpb25zIGJyZWFrIG9sZGVyIGNvZGUgYW5kCiAgIHRodXMgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAgICAgLSBNYXJrIHRoZSBvbGQgZGF0YSBhbmQgZGF0YXNldCBpbXBsZW1lbnRhdGlvbnMgYXMgb2Jzb2xldGUgYnV0IHJlc3RvcmUKICAgICAgIHRoZW0gZnJvbSBwcmV2aW91cyBDVlMgdmVyc2lvbnMuICBSZWZlcmVuY2UgdGhlIG5ldyBvbmVzIGluIHRoZSBkb2NzCiAgICAgICBmb3IgdGhlIG9sZCBvbmVzLgogICAgIC0gQ3JlYXRlIG5ldyBkYXRhMiBhbmQgZGF0YXNldDIgdmVyc2lvbnMgd2hpY2ggYXJlIHRoZSBuZXcgY29udGFpbmVyCiAgICAgICBpbXBsZW1lbnRhdGlvbnMuCiAgICAgLSBNYWtlIHRoZSBjdXJyZW50IGRhdGFzZXQgaW1wbGVtZW50YXRpb25zIHVzZSB0aGUgbmV3ZXIgdmVyc2lvbi4KICAgICAgIC0gZXhjZXB0IHRoZSB0YWJsZSBhbmQgYWRkX3JvdyBpbXBsZW1lbnRhdGlvbnMgd2hpY2ggYnJva2UKICAgICAgICAgZW50aXJlbHkgdW5kZXIgdGhlIG5ldyBjb2RlLgoKMjAwNS0wMy0zMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcm93IGNyZWF0aW9uIGZvciB2YWNtIGZhbWlseSB0cmVlIHJvd3MgdGhhdCBhcmUgYmVuZWF0aCBhIHBhcmVudCByb3cuCgoyMDA1LTAzLTMwIDE4OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIC0gYWRkIGRlYnVnCiAgIC0gZG9uJ3QgYXNzZXJ0IG9uIGNvbmRpdGlvbiBmb3IgbmV4dC9idWxrCiAgICAgLSB0aGUgd2hvbGUgbW9kZSBjb3VudGluZyBpZGVhIG5lZWRzIHJlLXRoaW5raW5nLi4KICAgLSB1c2UgU05NUF9GUkVFIGluc3RlYWQgb2YgZnJlZSwgbm93IHRoYXQgbnVsbCBwdHJzIGFyZSBhIHBvc3NpYmlsaXR5CgoyMDA1LTAzLTMwIDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYwo6CgogICBydW4gaHRvbmwgb24gdGhlIGluZGV4IGFkZHJzCgoyMDA1LTAzLTI5IDIyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIEFkZCBzdGFzaF90b19uZXh0IHRvIFdJTjMyIE1TVkMgTWFrZWZpbGUgYW5kIHdvcmtzcGFjZS4KCjIwMDUtMDMtMjkgMjA6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb21tZW50IG91dCBkZWZhdWx0IGRpc2FibGUgb2Ygc3RkZXJyIGxvZywgc2luY2UgaXQgbWFrZXMgaXQgaW1wb3NzaWJsZQogICAgIHRvIHVzZSBzdGRvdXQvc3RkZXJyIGZvciBsb2dnaW5nIChub3cgdGhhdCBsb2ctPmVuYWJsZWQgaXMgY2hlY2tlZCkuIHVzZQogICAgIEMrKyBjb21tZW50cywgc2luY2UgdGhlIHdob2xlIGxvZyBzZXR1cCBuZWVkcyByZS10aGlua2luZyBiZWZvcmUgNS4zLgoKMjAwNS0wMy0yOSAxNjowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeCBiYWQgZm9ybWF0IHBhcmFtZXRlcnMgdG8gc25tcF9sb2cKCjIwMDUtMDMtMjkgMTU6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL2NtdV9jb21wYXQuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRGV0ZWN0IGFuZCByZXBvcnQgaW52YWxpZCBQRFVzIHNlbnQgYXMgcmVzcG9uc2UKCjIwMDUtMDMtMjggMTU6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yIHRvIGNoZWNrIHRoZSByYyBpbiBBTEwgdmFyYmluZHMsIG5vdCBqdXN0CiAgICAgY3VycmVudCByb3cvaGFuZGxlciB2YXJiaW5kcwoKMjAwNS0wMy0yOCAxNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIGZpeCBidWcgMTE3MDYwNCBzbm1wX2Rpc2FibGVfc3RkZXJybG9nKCkgaXMgaWdub3JlZAogICAtIGNoZWMgZm9yIG51bGwgYmVmb3JlIGRlcmVmIChmaXggc25tcHRyYXBkIGNyYXNoIG5vdGVkIG9uIGlyYykKCjIwMDUtMDMtMjggMTQ6MjkgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBmaXggYWRkcmVzcyB0eXBlIGluIGluZGV4IG9pZAoKMjAwNS0wMy0yOCAxNDoyNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJlYWxseSByZWFsbHkgY2hlY2sgZXJyb3Igc3RhdHVzIG9mIGFsbCByZXF1ZXN0cwoKMjAwNS0wMy0yNSAyMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjaGVjayBzaXplIG9mIGFycmF5IGluIGdldHRhYmxlIGJlZm9yZSBhc3N1bWluZyBpdCBoYXMgc29tZXRoaW5nIGluIGl0CgoyMDA1LTAzLTI1IDA5OjQ5ICBhbGV4X2IKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIEFkZCBoZXhPdXRwdXRMZW5ndGggdG8gbWFuIHBhZ2UuCgoyMDA1LTAzLTI0IDIyOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBwYXNzIE5VTEwgdG8gY29uZmlnIGhhbmRsZXIgcmVnLCB0byB1c2UgY3VycmVudCBhcHB0eXBlCiAgIC0gYWRkIHNlcGFyYXRvcnMgYW5kIGhlYWRlcnMgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgbmV3bGluZSBpbiBwZXJzaXN0ZW50IGRhdGEKCjIwMDUtMDMtMjQgMjI6MDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBuZXcgZW52IHZhcjogU05NUF9QRVJTSVNURU5UX0RJUgoKMjAwNS0wMy0yNCAxNjo0OCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkb24ndCBkaXNhYmxlIGNhY2hlLCBqdXN0IGZvcmNlIHJlbG9hZCBmb3IgZXZlcnkgcmVxdWVzdAoKMjAwNS0wMy0yMyAxOTo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIGFkZCBtb2R1bGUgbmFtZQoKMjAwNS0wMy0yMyAxOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gZml4IHR5cG8KICAgLSB1cGRhdGUgY29uZmlnX3JlcXVpcmUoKSBwYXRoIHRvIHNvbWV0aGluZyBiZXR0ZXIgZm9yIGNvbmZpZ3VyZQoKMjAwNS0wMy0yMyAxOTozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgcmVtb3ZlICogZnJvbSBkZWZhdWx0IGNvbnRleHQgcmVnIHR5cGUgKHR5cGVkZWYgaXMgZm9yIHN0cnVjdCwgbm90IHB0cikKCjIwMDUtMDMtMjIgMTc6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWF0Y2ggdXAgdG9kbyB3aXRoIGFjdHVhbCBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wMy0yMiAxNzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaToKCiAgIGFkZCBtaXNzaW5nIHBhcmFtIHRvIHNubXBfbG9nCgoyMDA1LTAzLTE4IDE4OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc2lnbmFsIGNhbGxzIGNvbmRpdGlvbmFsIGJhc2VkIG9uIGRlZmluaXRpb24gb2Ygc2lnbmFsIChsaWtlIHNubXBkKQoKMjAwNS0wMy0xOCAxODowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBhZGQgZGVmYXVsdCAoMCkgZm9yIHNwYXJzZSB0YWJsZXMKICAgLSBvbmx5IG1rZGlyIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAtIGRvbid0IGlnbm9yZSBta2RpciBlcnJvcnMKCjIwMDUtMDMtMTggMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIG1vdmUgdGVtcCBzdG9yYWdlIGZvciBpbmRleGVzIG91dHNpZGUgb2YgZXhhbXBsZSBjb25kaXRpb25hbAoKMjAwNS0wMy0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgZml4IGRlZmF1bHQgZm9yIGRhdGEgdHJhbnNpZW50IChvZmYgYnkgMSkKCjIwMDUtMDMtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBjb2x1bW5fZXhpc3RzX2ZsYWdzIGNvZGUgaWYgc3BhcnNlIHRhYmxlIG5vdCBzZXQKCjIwMDUtMDMtMTggMTg6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBmaXggZ2VuZXJhdGVkIHJvd3JlcV9jdHhfaW5pdCBwcm90b3R5cGUKCjIwMDUtMDMtMTggMTg6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaQo6CgogICBjaGFuZ2UgSU5URVJOQUxfKiBlbnVtIGRlZmluZXMgdG8gaW5jbHVkZSBjb250ZXh0ICh0YWJsZSkgbmFtZQoKMjAwNS0wMy0xOCAxNzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpeCBzb21lIHR5cG9zIG5vdGVkIG9uIG1haWxpbmcgbGlzdHMKCjIwMDUtMDMtMTggMTc6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRldGVjdCBmaXJzdCBydW4gc28gd2Uga25vdyB0byBjb3B5IGdlbmVyYXRlIGRlZmF1bHRzIHRvIGN1cnIgZGlyCiAgIC0gZGlmZiBpbmRpdmlkdWFsIGZpbGVzIGluc3RlYWQgb2YgcmVjdXJzaXZlIGRpZmYgdy9leGNsdWRlcwogICAtIHVwZGF0ZXMgZm9yIG5ldyBkZWZhdWx0IGRpcmVjdG9yeSBzdHlsZSBkZWZhdWx0cwoKMjAwNS0wMy0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgdGFibGUgdGVzdCBmb3IgbGFzdGNoYW5nZSBhbmQgc3RvcmFnZXR5cGUgdGMKICAgLSB0d2VhayBkb2MgY29tbWVudHMKICAgLSBkb2N1bWVudCBpZmNvbmYgYW5kIG5ldyBpZmRpcgoKMjAwNS0wMy0xOCAwNTozMSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFRDUC1NSUIudHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIFRDUC1NSUIgdG8gUkZDIDQwMjIKCjIwMDUtMDMtMTggMDU6MzAgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgSUFOQS1pZlR5cGUtTUlCCgoyMDA1LTAzLTE4IDA1OjI2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEZpeCBhIHdhcm5pbmcgZnJvbSBCU0Qgc3lzdGVtcwoKMjAwNS0wMy0xOCAwNDo1MiAgbmJhCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgbWliMmMuY29uZi41IGlzIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDUtMDMtMTcgMDU6MzIgIG5iYQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYzoKCiAgIFVwcywgdW5pbnRlbmRlZCBwYXRjaCB1bmRvbmUKCjIwMDUtMDMtMTcgMDQ6MzAgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgQWRkIGZvcm1hdCBjaGVja2luZyB0byBjYWxscyB0byBzbm1wX2xvZywgYW5kIGZpeCB0aGUgdW5jb3ZlcmVkIGVycm9ycwoKMjAwNS0wMy0xNSAwMToxMyAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBJbmNsdWRlIHNtdXggaGVhZGVycyB3aGVuIG5lZWRlZAoKMjAwNS0wMy0xNCAxNjoxNCAgbmJhCgogICAqIGNvbmZpZ3VyZToKCiAgIFN5bmMgdG8gY29uZmlndXJlLmluCgoyMDA1LTAzLTE0IDE1OjUzICBuYmEKCiAgICogbWlicy86IElORVQtQUREUkVTUy1NSUIudHh0LCBNYWtlZmlsZS5taWIsIHJmY2xpc3QKOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSU5FVC1BRERSRVNTLU1JQgoKMjAwNS0wMy0xNCAxNTo0OCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBjb25maWd1cmUgaGVhZGVyIGFsZXJ0cyBmb3IgU29sYXJpcyA4IGFuZCA5LCBOZXRCU0QgMiBhbmQgRnJlZUJTRCA1CgoyMDA1LTAzLTA0IDE1OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICAtIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBtYWtlZmlsZQogICAtIGluZGVudGlvbiBjaGFuZ2VzCiAgIC0gZXhwbGljaXQgY2xvc2Ugb2YgZmlsZQoKMjAwNS0wMy0wNCAxNToyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldC9zZXQgdXNlciBjb250ZXh0CiAgIC0gdXNlIG5ldyByb3dfbWVyZ2UgZmlyc3QvbGFzdCBhcGkgdG8gbWFrZSBzdXJlIHByZS9wb3N0IGNhbGxlZCAxL3BlciBoYW5kbGVyCiAgIC0gYWRkIHJjIHBhcmFtIHRvIHBvc3RfcmVxdWVzdCAoeXVtLCBteSBvd24gd29yZHMgd2VyZSBkZWxpY2lvdXMpCiAgIC0gdXNlIGFzcCBzdGF0dXMsIG5vdCBzdGF0dXMgb2YgaGFuZGxlcnMgcmVxdWVzdHMsIHdoZW4gY2hlY2tpbmcgZm9yCiAgICAgc3VjY2Vzc2Z1bCByZXF1ZXN0IGNvbXBsZXRpb24KICAgLSBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgbm9uLWV4aXN0ZW50IHJvd3MgaW4gc3BhcnNlIHRhYmxlcwogICAtIGFkZCBtb3JlIGluZm8gdG8gc29tZSBkZWJ1ZyBtc2dzCiAgIC0gdXNlIFNOTVBfTk9TVUNISU5TVEFOQ0UgaW5zdGVhZCBvZiBBU05fUFJJVl9SRVRSWQogICAtIGFkZCBtb3JlIGRlYnVncyBtc2dzCiAgIC0gZG9uJ3QgY2xlYXIgc2V0IGZsYWdzIHRpbCBwb3N0IGNvbW1pdAogICAtIHJlbW92ZSByZWR1bmRhbnQgdmFyYmluZCBsZW5ndGggY2hlY2sKICAgLSB1cGRhdGUgZm9yIG5ldyBjb2x1bW4gZmxhZyBuYW1lcwoKMjAwNS0wMy0wNCAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBmaXggdGVzdCBmb3IgZGVmYXVsdHMgaW4gb2xkIGxvY2F0aW9uCiAgIC0gYWRkIG9wdGlvbiB0byByZS1ydW4gaW50ZXJhY3RpdmUgc2V0dXAgaWYgZXhpc3RpbiBkZWZhdWx0cwoKMjAwNS0wMy0wNCAxNToxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIG5vbi1leGlzdGVudCByb3dzIGluIHNwYXJzZSB0YWJsZXMKICAgLSBhZGQgcmMgcGFyYW0gdG8gcG9zdF9yZXF1ZXN0ICh5dW0sIG15IG93biB3b3JkcyB3ZXJlIGRlbGljaW91cykKICAgLSBjaGVjayBuZXcgdmFycyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gZ2VuZXJhdGUgc3VwcG9ydCBmaWxlcwogICAgIChkb3h5Z2VuLCBtYWtlZmlsZSwgc3ViYWdlbnQpCgoyMDA1LTAzLTA0IDE1OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gYWRkIGNvbW1lbnRzIG9uIG5vZGUgbGVuZ3RocwogICAtIHVwZGF0ZSBmb3IgY2hhbmdlcyBpbiB2YWx1ZSBtYXAgcmV2ZXJzZQoKMjAwNS0wMy0wNCAxNTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgLSB1cGRhdGUgQklUUyBmaWVsZHMgdG8gdXNlIGRlZmluZSBJTlRFUk5BTF8qX0ZMQUcgZGVmaW5lcywgaW5zdGVhZCBvZiBJU19TRVRfKgogICAtIGFkZCBvYnZpb3VzIG5vdGUgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBDIGJpdCBvcmRlciBhbmQgU05NUCBiaXQgb3JkZXIKICAgLSBhZGQgQklUUyBtYXBwaW5nIHRvIHJldmVyc2UgdmFsdWUgbWFwCgoyMDA1LTAzLTA0IDE1OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgY2hhbmdlIGNvbHVtbiBmbGFnIG5hbWVzIHRvIHJlZHVjZSBjb25mdXNpb24gd2l0aCBvdGhlciBkZWZpbmVkIG5hbWVzCgoyMDA1LTAzLTA0IDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhZGQgbmV3IG0yY190YWJsZV9zcGFyc2UgdG8gZGVmYXVsdHMKCjIwMDUtMDMtMDQgMTQ6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgdXNlIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4CgoyMDA1LTAzLTA0IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4LCBzZXQgdG8gX2ZsYWcgZm9yIGJpdHMgb2JqZWN0cwoKMjAwNS0wMy0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC0gbW92ZSBJTlRFUk5BTF8qIGVudW0gbWFjcm9zIGluc2lkZSBpZmRlZnMgZm9yIFRDCiAgIC0gZ2VuZXJhdGUgSU5URVJOQUxfKiBlbnVtcyBmbGFncyBmb3IgQklUUwoKMjAwNS0wMy0wMyAxOTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzCgoyMDA1LTAzLTAzIDE5OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbmV0c25tcF9jaGVja192Yl9yYW5nZSAoY2hlY2sgdmFsdWVzLCBub3Qgc2l6ZXMpCgoyMDA1LTAzLTAzIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oOgoKICAgLSBrZWVwIHNhdmVkIHN0YXR1cyBkYXRhIGJldHdlZW4gbW9kZSBjYWxscyAoaW4gcmVxaW5mbyksIHNvIHdlIGNhbi4uCiAgIC0gYnVpbGQgYWxsIHRlbXBvcmFyeSByZXF1ZXN0IGxpc3RzIGJlZm9yZSBjYWxsaW5nIG5leHQgaGFuZGxlciwgc28gd2UgY2FuLi4KICAgLSB0cmFjayBudW1iZXIgb2YgcmVxdWVzdHMgYW5kIG51bWJlciBvZiByb3dzLCBzbyB3ZSBjYW4uLgogICAtIHByb3ZpZGUgYXBpIGZvciBsb3dlciBoYW5kbGVyIHRvIGtub3cgaWYgY3VycmVudCBjYWxsIGlzIGZvciBmaXJzdC9sYXN0IHJvdwogICAtIGxvZyBhIHdhcm5pbmcgaWYgaGFuZGxlciBmb3Igcm93IHJldHVybnMgZXJyb3IsIGJ1dCBET05UIGV4aXQgbG9vcAogICAgIC0gaWYgbG93ZXIgaGFuZGxlciByZXR1cm5zIGVyciwgcGFzcyBpdCB0byBwYXJlbnQKICAgLSBhZGQgbW9yZSBkZWJ1Z2dpbmcKCjIwMDUtMDMtMDMgMTU6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgYWRkIG9wdGlvbiB0byB3YXRjaGVkIHRpbWVzdGFtcCB0byBoYXZlIGEgcG9pbnRlciB0byBhIGRpcmVjdCB2YWx1ZQoKMjAwNS0wMy0wMiAxODo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBtb3ZlIGNvbHVtbiBiaXQgZmxhZyBtYWNyb3MgdXAgd2l0aCBjb2x1bW4gbnVtYmVyIG1hY3JvcwogICAtIGJhaWwgaWZmIG1vcmUgdGhhbiAzMiBjb2x1bW5zLiBmaXggdGhpcyBsYXRlci4uLgoKMjAwNS0wMy0wMiAxODo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgLSBkb24ndCBydW4gZXh0cmEgZmlsZSBmcm9tIHRvcDsgbW92ZSBkb3duIHNvIGNhbiBiZSBjb250cm9sbGVkIGJ5IGRlZmF1bHRzCgoyMDA1LTAzLTAyIDE4OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCBzZXR1cCBvZiBtMmNfbnZ2X3NpemVvZgoKMjAwNS0wMy0wMiAxODo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgLSByZXdvcmsgaW5pdGlhbCBjaGVja192Yl8qIGxvZ2ljLCBjaGVja2luZyBtYXhfc2l6ZSBmb3Igb2N0ZXQgc3RyaW5ncwogICAtIGZpeCByYW5nZSBjaGVja3MgZm9yIG9jdGV0IHN0cmluZ3MKICAgLSB1c2UgbTJjIGRhdGFfaXRlbSBhbmQgbm9kZSBkaXJlY3RvcnksIGVsaW1pbmF0aW5nIGEgdmFyIGZyb20gbm9kZSBzZXR1cAogICAtIHJlbW92ZSBnZW5lcmF0ZWQgY29tbWVudCBhbmQgc29tZSBjb21tZW50ZWQgb3V0IGNvbmYgc3R1ZmYKCjIwMDUtMDMtMDIgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgY2hlY2tfdmJfc2l6ZV9yYW5nZQoKMjAwNS0wMy0wMiAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICAtIG1vdmUgVE9ETyBjb21tZW50IGF3YXkgZnJvbSBsaW5rZSBsaWtlbHkgdG8gYmUgZGVsZXRlZAogICAtIGEgbG9nIG1lc3NhZ2UgaW5kaWNhdGluZyBhIG5vZGUgaXMgbm90IGltcGxlbWVudGVkCgoyMDA1LTAzLTAyIDE1OjAyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBhbGxvdyBvY3Rlc3Qgc3RyaW5nIHJlYWQgdG8gZmlsbCBidWZmZXIKICAgLSBkb24ndCBudWxsIHRlcm1pbmF0ZSBvY3RldCBzdHJpbmcgaWYgYnVmZmVyIGZ1bGwKICAgLSB3YXJuIGlmIGlucHV0IGlzIGxhcmdlciB0aGFuIGJ1ZmZlcgoKMjAwNS0wMy0wMiAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQosIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1yZWFkbWUubTJjLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbWlzLW5hbWVkIGZ1bmN0aW9uOyBhZGQgcHJvdG8gZm9yIGNvcnJlY3QgbmFtZQoKMjAwNS0wMy0wMiAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYWxsb3cgc25tcGQuY29uZiBzbXV4IE9JRHMgdG8gYmUgdGV4dCwgbm90IGp1c3QgbnVtZXJpYwoKMjAwNS0wMy0wMiAxNDowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzCiAgICAgLSB1c2UgbmV3IHN5c09SIHJlZ2lzdHJhdGlvbiBjYWxsYmFjayBpbnN0ZWFkIG9mIGRpcmVjdCBmdW5jdGlvbiBjYWxscwoKMjAwNS0wMy0wMiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZC9yZWdpc3RlciBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGxvZyBJTkZPIG1lc3NhZ2Ugb24gc3VjY2Vzc2Z1bCBjb25uZWN0IHRvIG1hc3RlcgogICAtIGFsd2F5cyBsb2cgcGVlcm5hbWUgb24gdW5zdWNjZXNzZnVsIGNvbm5lY3QgYXR0ZW1wdAoKMjAwNS0wMy0wMiAxMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFsd2F5cyBsb2cgYWdlbnR4IHBlZXIgbmFtZSBvbiBjb25uZWN0IGZhaWx1cmUKCjIwMDUtMDMtMDIgMTM6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIGxvZyBtZXNzYWdlIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgLSB1cGRhdGUgZm9yIG5ldyB2ZXJzaW9uX3N5c29pZCBsb2NhdGlvbgoKMjAwNS0wMy0wMiAxMzo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1vcmUgZGVidWcvZXJyb3IgbG9nIGZvciBwcm9ibGVtcyB3aXRoIGNhY2hlIGZpbGUKCjIwMDUtMDMtMDIgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMKICAgICAtIG1vdmUgdmVyc2lvbl9zeXNvaWQgaW50byB0aGUgYWdlbnQgKGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcykKICAgICAtIHVwZGF0ZSBzeXN0ZW1fbWliIGZvciBuZXcgc3lzb2lkIGxvY2F0aW9uCiAgIC0gZG9uJ3QgY2FsbCBob3N0c19jdGwgZm9yIGNhbGxiYWNrIGNvbm5lY3Rpb24KICAgLSBsb2cgYWRkcl9zdHJpbmcgZm9yIFVOS05PV04gY29ubmVjdGlvbnMKCjIwMDUtMDMtMDIgMTI6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgYWRkIGRlYnVnCgoyMDA1LTAzLTAyIDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIC0gYWRkIC14IHBhcmFtIGZvciBtYXN0ZXIgYWRkcmVzcwogICAtIGFkZCB3aW5kb3dzIFNPQ0tfKiBtYWNyb3MKCjIwMDUtMDMtMDIgMTI6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRveHlnZW4ubTJjOgoKICAgZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGNvbmYgZmlsZQoKMjAwNS0wMy0wMiAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gZml4IHNwZWMgc28gcnBtYnVpbGQgdy9wYXJhbWV0ZXJzIHNob3VsZCB3b3JrIG9rCiAgICAgLSBtYWtlIHN1cmUgcGVybCB1c2VzIFJQTSBwcmVmaXgsIGluc3RlYSBvZiBoYXJkY29kZWQgL3VzciAoY29uZmlnLCBwYXRoc3ViKQogICAgIC0gbWFrZSBzdXJlIG1ha2VpbnN0YWxsIHVzZXMgcHJvcGVyIGluY2x1ZGUgZGlyIHBhdGgKCjIwMDUtMDItMjggMDc6NTIgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEFkZGVkIFdJTjMyIGlmZGVmIGJsb2NrcyB0byBhY2NvbW9kYXRlIGNvbXBpbGluZyB0aGUgSE9TVC1SRVNPVVJDRSBtaWIgb24KICAgV2luZG93cy4KCjIwMDUtMDItMjggMDc6NTAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFdpbmRvd3MgSE9TVC1SRVNPVVJDRSBtaWIgaW1wbGVtZW50YXRpb24uIHN0cnVjdCB3aW5fc3RhdGZzIGhhcyBiZWVuIG1vdmVkCiAgIHRvIGhyX3N0b3JhZ2UuaC4KCjIwMDUtMDItMjggMDc6NDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaDoKCiAgIFdpbmRvd3MgSFIgbWliIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMi0yNyAyMjozNCAgYWxleF9iCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIHQvbWliLnQsIHQvc3RhcnRhZ2VudC5wbDoKCiAgIEFwcGx5IE1heCBCYWtlcidzIHBhdGNoIDExMTc2OTYgd2hpY2ggZml4ZXMgYSByZWdleCB0aGF0IHNwbGl0cyBhIHRhZyBmcm9tCiAgIGFuIGlpZC4gIEFsc28gYWRkZWQgYWRkaXRpb25hbCB0ZXN0cyB0byBtaWIudCB0ZXN0IHNjcmlwdC4KCjIwMDUtMDItMjYgMDc6MjEgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIFRoaXMgaXMgcGFydCBvZiB0aGUgSE9TVC1SRVNPVVJDRSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLiBocl9uZXR3b3JrLmMgd2lsbAogICBub3cgY29tcGlsZSB3aXRoIE1pbkdXIGJ1dCBtdWNoIG9mIHRoZSBmdW5jdGlvbmFsaXR5IHN0aWxsIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgoKMjAwNS0wMi0yNSAxNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzZXQgYSBnb29kIGV4YW1wbGUgYW5kIGNhbGwgU09DS19DTEVBTlVQIGJlZm9yZSBleGl0CgoyMDA1LTAyLTI1IDE3OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDUtMDItMjUgMTc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGZpeCBwcm90b3R5cGVzLCBub3RlZCBieSBuaWVscwogICAtIGRvbid0IGdlbmVyYXRlIGRveHlnZW4gY29uZiBmaWxlCgoyMDA1LTAyLTI1IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgaWdub3JlIGN2cyBJZCB0YWdzIHdoZW4gcGVyZm9ybWFpbmcgZGlmZgoKMjAwNS0wMi0yNSAxNjo0NiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvc211eC9zbXV4LmgsIG1pYl9tb2R1bGVzLmMsCiAgICAgc25tcF92YXJzLmM6CgogICAtIGVsaW1pbmF0ZSBsaWJuZXRzbm1wYWdlbnQgcmVmcyB0byBsaWJuZXRzbm1wbWlicwogICAgIC0gbW92ZSBtb2R1bGVfaW5pdF9saXN0IHN0dWZmIGludG8gYWdlbnQgbGlicwogICAgIC0gbW92ZSBzbXV4IGNvZGUgaW50byBhZ2VudCBsaWJzCgoyMDA1LTAyLTI1IDE2OjMxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYWRkIGNvbnRleHQgdG8gcmVnaXN0ZXJfbWliIGRlYnVnCiAgIC0gd2FybiBpZiBwYXNzZWQgY29udGV4dCBkb2Vzbid0IG1hdGNoIHJlZ2luZm8tPmNvbnRleHROYW1lCgoyMDA1LTAyLTI1IDE2OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgcmVnaXN0ZXIgd2l0aCBjb250ZXh0LCBpZiBzcGVjaWZpZWQKCjIwMDUtMDItMjUgMTY6MTAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIGZpeCBsaWJyYXJ5IG9yZGVycyBpbiBsaW5rIGxpbmVzCiAgIC0gYWRkIHdpbmRvd3MgU09DS18qIG1hY3JvcyB0byBnZW5lcmF0ZWQgc3ViYWdlbnQKCjIwMDUtMDItMTkgMDc6MDAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFBhcnQgb2YgdGhlIEhPU1QtUkVTT1VSQ0UgaW1wbGVtZW50YXRpb24gZm9yIFdpbmRvd3MuCgogICAqIERlZmluZWQgd2luX3N0YXRmcyBzdHJ1Y3R1cmUuCiAgICogRGVmaW5lZCBwYWdlc2l6ZSBmb3IgV2luZG93cyBhcyA0MDk2ICg0ayBpcyB3aGF0IEkgaGF2ZSBmb3VuZCB0aHJvdWdoIG15CiAgIAlyZXNlYXJjaC4gVGhlcmUgaXMgcHJvYmFibHkgYSB2YXJpYWJsZSBvciBmdW5jdGlvbiB0byBnZXQgdGhlIGluZm9ybWF0aW9uCiAgIAlvbiBXaW5kb3dzIGJ1dCBJIGhhdmUgbm90IGZvdW5kIGl0IHlldC4pCiAgICogQWRkZWQgZnVuY3Rpb25zIHdpbl9zdGF0ZnMoKSBhbmQgd2luX3JlYWxwYXRoKCkuCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBLaWxsaW5nIHdhcm5pbmdzCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogbWlicy86IE5FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIE5FVC1TTk1QLUVYVEVORC1NSUIudHh0CiwgTkVULVNOTVAtVEMudHh0OgoKICAgc21pbGludCdpbmcKCjIwMDUtMDItMTUgMTE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSW1wbGVtZW50IHByb3BlciBTRVQgc3VwcG9ydCBmb3IgbnNFeHRlbmRSdW5UeXBlLgoKMjAwNS0wMi0xMiAwODo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgTW92ZSB2YXJpYWJsZSB1bnVzZWQgd2hlbiA8cGljbC5oPiB1bmF2YWlsYWJsZSBmb3IgU29sYXJpcwoKMjAwNS0wMi0xMiAwODozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBGaXggd2FybmluZ3MKCjIwMDUtMDItMTIgMDg6MDcgIG5iYQoKICAgKiBhZ2VudC86IGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy93YXRjaGVyLmMsCiAgICAgbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgU29sYXJpcyBnY2MgLW02NCBmaXhlcwoKMjAwNS0wMi0xMiAwNjo0MiAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIE1vcmUgZGV0YWlscyB3aGVuIHJlc3BvbnNlIGZhaWxzLiBHb29kIGZvciBsb2NhdGluZyA2NC1iaXQgcHJvYmxlbXMKCjIwMDUtMDItMTIgMDU6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEyIDA1OjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgSW50ZWdyYXRlIGZpeGVzIGZyb20gTmV0QlNEIHBvcnQKCjIwMDUtMDItMTAgMTQ6NTMgIG5iYQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBGaXggbWlzbGVhZGluZyBjb21tZW50LiBUaGFua3MgdG8gYnVnIDEwODY4NzAKCjIwMDUtMDItMTAgMTM6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdWRlIHN5c2xvZy5oIGFsc28gaWYgbm90IHVzaW5nIGxpYndyYXAKCjIwMDUtMDItMTAgMTM6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEZpeCBzeXNJT1Jhd1NlbnQvUmVjZWl2ZWQgd2hpY2ggYXJlIHJldmVyc2VkIGZvciBMaW51eC4gQnVnIDExMDI1MTgKCjIwMDUtMDItMTAgMTA6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBGcmVlQlNEIG1lbW9yeSBsZWFrLCB0aGFua3MgdG8gSm9obiBTZWxsZW5zLCBidWcgMTEwMzY0NAoKMjAwNS0wMi0xMCAwODoxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEwIDA3OjM1ICBuYmEKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xMCAwNzoyMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYW4gZXh0cmFuZW91cyBuZXdsaW5lIGVuZGluZyBoZXhzdHJpbmdzCgoyMDA1LTAyLTA5IDE2OjM0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBGaXggYmFkIGluZGV4LCBwb2ludGVkIG91dCBpbiBidWcgMTExNjY1MgoKMjAwNS0wMi0wOSAxNjozMCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggYSBiYWQgZXJyb3IgbWVzc2FnZQoKMjAwNS0wMi0wOSAxNjoyNSAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgd2FybmluZ3MKCjIwMDUtMDItMDkgMTY6MTUgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzCgoyMDA1LTAyLTA5IDE2OjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIEFub3RoZXIgaHVudCBmaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMDkgMTQ6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBBZGQgc29tZSBtaXNzaW5nIGNvbnN0LW5lc3MgZm9yIHBhcmFtZXRlcnMKCjIwMDUtMDItMDggMTY6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgRml4IGEgYnVuY2ggb2YgdHJpdmlhbCB3YXJuaW5ncwoKMjAwNS0wMi0wOCAxNTowNiAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIFNNVVgtTUlCLnR4dCwgaWFuYWxpc3QKLCByZmNsaXN0LCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb25zCgoyMDA1LTAyLTA4IDE0OjU0ICBuYmEKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4ZXMgdG8gYWxsb3cgaXQgdG8gcGFzcyBzbWlsaW50CgoyMDA1LTAxLTI3IDIyOjUyICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRpc2FibGUgY2FjaGluZyBzaW5jZSBvdGhlciBjb2RlIG1vZGlmaWVzIHVuZGVybHlpbmcgZGF0YQoKMjAwNS0wMS0yNSAxNjoyNCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgbm90ZSBvbiBjdnMyY2wgd29ya2Fyb3VuZCwgYWRkIG5vdGUgb24gaG93IHRvIGdldCBjdXJyZW50IHZlcnNpb24KCjIwMDUtMDEtMjUgMDg6NTEgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXggbWlzbmFtZWQgcm93IHN0cnVjdHVyZS4KCjIwMDUtMDEtMjIgMTY6NDkgIGFsZXhfYgoKICAgKiBsb2NhbC9GQVEySFRNTCwgbG9jYWwvaHRtbC1hZGQtaGVhZGVyLWZvb3Rlci5wbCwKICAgICBtYW4vbWFrZV9pbmRleC5wbCwgbWFuL21hbl9zZWN0aW9ucy50eHQsCiAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9tYWtlaHRtbC5wbDoKCiAgIFVwZGF0ZWQgc2NyaXB0cyBldGMgZm9yIGdlbmVyYXRpbmcgd2ViIGNvbnRlbnQuCgoyMDA1LTAxLTIyIDE1OjM4ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBXaW4zMiByZWdpc3RyeSBkb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cwoKMjAwNS0wMS0yMiAxMDo0MiAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBBZGRlZCBjb3VudF91c2VycyBmdW5jdGlvbmFsaXR5IGZvciBXaW5kb3dzLiBUaGUgZnVuY3Rpb24gY3VycmVudGx5IHJldHVybnMKICAgMCBmb3IgYSBmYWlsZWQgY2FsbCB0byBOZXRXa3N0YUdldEluZm8oKSBhbmQgbWF5IHJlcXVpcmUgbW9yZSBlcnJvciBjaGVja2luZwogICBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gcmV0dXJuIGEgY29ycmVjdCB2YWx1ZSBmb3IgZmFpbHVyZS4KCjIwMDUtMDEtMjEgMTE6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICBVc2UgdGhlIChuZXcpIHRhYmxlX2RhdGFzZXQgaXRlcmF0b3IgQVBJIHJvdXRpbmVzLAogICByYXRoZXIgdGhhbiB0aGUgaW50ZXJuYWwgZmllbGRzIGRpcmVjdGx5LgoKICAgKEkgd29uZGVyIGhvdyBtYW55IG1vcmUgYml0cyBJIGJyb2tlPykKCjIwMDUtMDEtMjEgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jOgoKICAgRG9uJ3QgYmUgc3VjaCBhbiBpbXBhdGllbnQgY2hpbGQsIERhdmUhICBJZiBJJ3ZlCiAgIHRvbGQgeW91IG9uY2UsIEkndmUgdG9sZCB5b3UgYSB0aG91c2FuZCB0aW1lczoKCiAgIFRpZHkgdXAgcHJvcGVybHkgYWZ0ZXIgb25lIHJlcXVlc3QgYmVmb3JlIHN0YXJ0aW5nIG9uIHRoZSBuZXh0LgoKICAgPHNoYWtlcyBoZWFkIHNvcnJvd2Z1bGx5PgogICBTb21lIHBlb3BsZSEgLSBJIGJsYW1lIHRoZSBwYXJlbnRzLi4uLi4KCjIwMDUtMDEtMjAgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUmUtaW1wbGVtZW50ICd0YWJsZV9kYXRhJyB1c2luZyB0aGUgJ3RhYmxlX2NvbnRhaW5lcicgaGVscGVyLgogICBUaGUgdHdvIGFyZSBhbG1vc3QgaWRlbnRpY2FsIGluIGJlaGF2aW91ciBhbnl3YXkgLSBqdXN0IHdpdGgKICAgZGlmZmVyZW50IGV4cGVjdGF0aW9ucyBvdmVyIHRoZSBmb3JtYXQgb2YgYSBwZXItcm93IHN0cnVjdHVyZS4KCjIwMDUtMDEtMjAgMDk6MDkgIGR0czEyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgVXNlIHRoZSAobmV3KSB0YWJsZV9kYXRhc2V0IGl0ZXJhdGlvbiBBUEksCiAgIHJhdGhlciB0aGFuIGZpZGRsaW5nIHdpdGggdGhlIGludGVybmFsIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMS0yMCAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBQcm92aWRlIGEgY2xlYW4gQVBJIGZvciB3YWxraW5nIHRocm91Z2ggdGhlIHJvd3Mgb2YgYSB0YWJsZQogICAoUmF0aGVyIHRoYW4gcmVseWluZyBvbiBhIHBhcnRpY3VsYXIgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24pLgoKMjAwNS0wMS0yMCAwOTowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBUaGUgQVBJIGZvciBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHJvd3Mgd2FzIGNvbmZ1c2luZ2x5CiAgIG5hbWVkLCBhbmQgbm90IGFjdHVhbGx5IGRlY2xhcmVkIGluIHRoZSBoZWFkZXIgZmlsZS4KICAgSW50cm9kdWNlIGEgbW9yZSBzZW5zaWJsZSB2ZXJzaW9uLgoKMjAwNS0wMS0xOSAwOToxNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgV2Ugc2VlbSB0byBoYXZlIGFuIGluY29uc2lzdGVudGx5IG5hbWVkIEFQSSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQKICAgaXMgYmVpbmcgZGVmaW5lZCBpbmxpbmUgb3Igbm90LiAgVGhpcyBkb2VzIG5vdCBmZWVsIGxpa2UgYSBHb29kIElkZWEuCiAgIEVuc3VyZSB0aGF0IHRoZSBzYW1lIG5hbWVzIHdvcmssIHJlZ2FyZGxlc3Mgb2YgaW5saW5pbmcuCiAgIChUaGF0IGludHJvZHVjZXMgYSBjZXJ0YWluIGR1cGxpY2F0aW9uIG9mIGNvZGUsIGJ1dCBzdWNoIGlzIGxpZmUpCgoyMDA1LTAxLTEzIDExOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBOZXdlciBJUC1GT1JXQVJELU1JQiBmcm9tIGFuIElEIHNldCB0byBiZWNvbWUgYW4gUkZDCgoyMDA1LTAxLTEzIDExOjI0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVAtRk9SV0FSRC1NSUIudHh0LCBJQU5BLVJUUFJPVE8tTUlCLnR4dCwKICAgICBNYWtlZmlsZS5pbjoKCiAgIE5ld2VyIElQLUZPUldBUkQtTUlCIGZyb20gYW4gSUQgc2V0IHRvIGJlY29tZSBhbiBSRkMKCjIwMDUtMDEtMTIgMTE6NTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQcm92aWRlIGEgbWVhbnMgZm9yIHNubXB0cmFwZCB0byByZXBvcnQgL2V0Yy9ob3N0cy57YWxsb3csZGVueX0KICAgc3R5bGUgYWNjZXNzIGNvbnRyb2wgYWN0aXZpdHkuCiAgIFRoaXMgc2hvdWxkIHBlcmhhcHMgYmUgbG9nZ2VkIHZpYSAnc25tcF9sb2cnIChjLmYgYWdlbnQvc25tcF9hZ2VudC5jKQogICBidXQgSSBzZWVtIHRvIHJlY2FsbCBwcm9ibGVtcyB3aXRoIGR1cGxpY2F0ZSBzeW1ib2xzLiAgQnV0IGEgZGVidWcKICAgbWVzc2FnZSBzaG91bGQgYmUgc2FmZSBlbm91Z2guLi4uCgoyMDA1LTAxLTEyIDExOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGRlZmluZSBzZXRQZXJyb3JzdGF0dXMgdW50aWwgcHJvcGVyIGZpeCBpbXBsZW1lbnRlZAoKMjAwNS0wMS0xMiAwOTo0MyAgYWxleF9iCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gUGhpbGlwIFcgR2lsbGlzIGFuZCBEYW5pZWwgS2VybnMgZm9yIHdpbjMyIGdldGVudiBjcmFzaC4KCjIwMDUtMDEtMTIgMDY6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2Ygc3Rhc2gtY2FjaGUgdGltZW91dHMsIGJvdGggYXQKICAgcmVnaXN0cmF0aW9uIGFuZCB2aWEgdGhlIE5FVC1TTk1QLUFHRU5ULU1JQjo6bnNDYWNoZVRhYmxlLgogICAoRG9uJ3QgbXVjaCBsaWtlIHRoZSBBUEkgbmFtZXMsIHRob3VnaCAtIGltcHJvdmVkIHN1Z2dlc3Rpb25zCiAgIGdyYXRlZnVsbHkgcmVjZWl2ZWQpLgoKMjAwNS0wMS0xMiAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgVXNlIHRoZSBzdGFuZGFyZCBjYWNoZSBoZWxwZXIsIHJhdGhlciB0aGFuIGhhbmRsaW5nIHRoaXMgaW50ZXJuYWxseS4KCjIwMDUtMDEtMTIgMDY6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgTWFrZSB0aGUgaGFuZGxlciBjaGFpbiBpbmZvcm1hdGlvbiBhdmFpbGFibGUgdG8gdGhlIGNhY2hlIGxvYWQgcm91dGluZS4KICAgKEFuZCBmaXggYSBicm9rZW4gZGVidWcgbWVzc2FnZSkKCjIwMDUtMDEtMTIgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBJbmNsdWRlIHRoZSBuZXcgJ3N0YXNoX3RvX25leHQnIGhlbHBlciBpbiB0aGUgaGVscGVyIGxpYnJhcnkuCgoyMDA1LTAxLTExIDEwOjExICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYwo6CgogICBBdXRvbWF0aWNhbGx5IGluamVjdCB0aGUgc3Rhc2hfdG9fbmV4dCBoZWxwZXIgYXQgcmVnaXN0cmF0aW9uLAogICByYXRoZXIgdGhhbiBkeW5hbWljYWxseSBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nLgogICAoV2UgbXVzdCB0cnkgdG8ga2VlcCBvdXIgYmVsb3ZlZCBsZWFkZXIgaGFwcHkgYW5kIGNvbnRlbnQgYW5kIHVuc3VzcGVjdGluZy4uLi4pCgoyMDA1LTAxLTExIDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBTdXBwb3J0IHRoZSBpbmplY3Rpb24gb2YgYSBoYW5kbGVyIHN1Yi1jaGFpbgogICAocmF0aGVyIHRoYW4ganVzdCBhIHNpbmdsZSBoYW5kbGVyKQoKMjAwNS0wMS0wOSAxMTozMSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY29uZmlnLmggLT4gbmV0LXNubXAtY29uZmlnLmgKCjIwMDUtMDEtMDggMTA6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlYWQvY3JlYXRlIGRlZmF1bHQgZmlsZXMgZnJvbS9pbiBzdWJkaXIKCjIwMDUtMDEtMDggMTA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXJlYWRtZS5tMmM6CgogICByZWFkL2NyZWF0ZSBkZWZhdWx0IGZpbGVzIGZyb20vaW4gc3ViZGlyCgoyMDA1LTAxLTA4IDA3OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW5hbWUgc29tZSBvZiB0aGUgbmV3IHBlcnNpc3RlbnQgZnVuY3Rpb25zL3ZhcnMKICAgLSBmaXggbGVuZ3RoIGhhbmRsaW5nIGZvciBCSVRTCiAgIC0gdXNlIHN0YWNrIGZvciBsaW5lIGJ1ZmZlcgogICAtIGFkZC90d2VhayBzb21lIGRlYnVnIG1zZ3MKCjIwMDUtMDEtMDcgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0Lmg6CgogICBFeHRlbmQgdGhlIGFwcGxpY2FiaWxpdHkgb2YgV2VzJyAic3Rhc2hfY2FjaGUiIGhlbHBlciwgYnkKICAgYXV0b21hdGljYWxseSBjb252ZXJ0aW5nIGEgR0VUU1RBU0ggcmVxdWVzdCBpbnRvIGEgR0VUTkVYVAogICB3YWxrIGZvciB0aG9zZSBjaGFpbnMgdGhhdCBkb24ndCBzdXBwb3J0IHRoaXMgbW9kZSBkaXJlY3RseS4KICAgKEFuZCBwcm92aWRlIGEgd2F5IGZvciBjaGFpbnMgdGhhdCBkbywgdG8gc2F5IHNvISkKCjIwMDUtMDEtMDcgMDQ6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgVXNlIG5ldHNubXBfY2hlY2tfdmJfdHlwZSBmb3IgY2hlY2tpbmcgU0VUIHJlcXVlc3RzLgoKMjAwNS0wMS0wNiAxMjozMyAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3QgcGVyc2lzdGVuY2Ugc3VwcG9ydCBmb3IgbWZkCgoyMDA1LTAxLTA2IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgaW5jbHVkZSB0byBxdWl0ZSB3YXJuaW5nCiAgIC0gYWRkIHBlcnNpc3RlbmNlCgoyMDA1LTAxLTA2IDEyOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGNvbmRpdGlvbiBvbiBwcm90b3R5cGUgZ2VuIG5vdyB0aGF0IGZ1bmN0aW9uIGlzIGFsd2F5cyBnZW5lcmF0ZWQKCjIwMDUtMDEtMDYgMTA6MTYgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzCgoyMDA1LTAxLTA2IDEwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMgKGRvZXMgbm90IGV4Y2x1ZGUgc2V0IHByb2Nlc3NpbmcgY29kZSAtIHlldCkKCjIwMDUtMDEtMDYgMTA6MDggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDUtMDEtMDYgMDk6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMgKGRvZXMgbm90IGV4Y2x1ZGUgc2V0IHByb2Nlc3NpbmcgY29kZSAtIHlldCkKCjIwMDUtMDEtMDYgMDk6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICByZW1vdmUgY29uZGl0aW9uYWwgZm9yIHZhciBkZWNsLCBzaW5jZSB1c2UgaXNuJ3QgY29uZGl0aW9uYWwKCjIwMDUtMDEtMDYgMDk6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIGFkZCBjb21tZW50IG9uIGhvdyB0byBkaXNhYmxlIGNhY2hpbmcKCjIwMDUtMDEtMDYgMDk6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmk6CgogICAtIGFkZCBtaXNzaW5nICUgc3BlYyBpbiBsb2cgbXNnCiAgIC0gZ2VuIGNvZGUgdG8gY29weSB2YWx1ZSBvbmNlIGFkZHJUeXBlIGlzIGtub3duCgoyMDA1LTAxLTA1IDE3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGluaXQgbWlicyBiZWZvcmUgc25tcCBzbyBjb25mIGZpbGUgcmVnaXN0cmF0aW9ucyB3b3JrCgoyMDA1LTAxLTA1IDE1OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWx3YXlzIGdlbmVyYXRlIHJvdyB1bmRvX3NldHVwL3VuZG9fY2xlYW51cAoKMjAwNS0wMS0wNSAxMDoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjYXNlIGxhYmVsIHRvIG1hdGNoIGxhYmxlbCBnaXZlbiBpbiB1c2FnZSBtc2cKCjIwMDUtMDEtMDMgMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjb21tZW50IG91dCBvdmVycmlkZSBjaGVja3Mgd2hlcmUgd2UgZG9uJ3QgaGF2ZSB0aGUgaW50ZXJmYWNlIG5hbWUKCjIwMDUtMDEtMDIgMjA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVjb2duaXNlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBhcyBwcmludGFibGUuCgoyMDA1LTAxLTAyIDIwOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBPbmx5IGlzc3VlICJhY2Nlc3MgY29udHJvbCBub3QgY29uZmlndXJlZCIgd2FybmluZyBmb3IgdGhlIGFnZW50CiAgIChub3Qgc25tcHRyYXBkKQoKMjAwNS0wMS0wMiAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBUT0RPIGl0ZW0gZm9yIGNvZGUgaW4gaW50ZXJmYWNlcyBmaWxlCgoyMDA1LTAxLTAyIDE4OjI0ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBkb24ndCBiaW5kIGxvY2FsIHRyYXBzaW5rcyB0byBsb2NhbGhvc3QgaWYgY2xpZW50QWRkciBpcyBzZXQKCjIwMDQtMTItMzEgMDk6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBjb21tZW50IGNsYXJpZmljYXRpb24KCjIwMDQtMTItMjggMTg6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIGZpeCBsb2dpYyBmb3IgbWZkIHRhYmxlIHRlc3QKCjIwMDQtMTItMjggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB1cGRhdGUgcmZjIHJlZmVyZW5jZQoKMjAwNC0xMi0yOCAxNjowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gZG9uJ3QgcmVnaXN0ZXIgcm9ubHkgaGFuZGxlcnMgYXMgUldSSVRFCiAgIC0gYWRkIG1pc3NpbmcgbmV0c25tcF9yZWdpc3Rlcl9pbnRfaW5zdGFuY2VfY29udGV4dAoKMjAwNC0xMi0yOCAxNTo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdXNlIG1hY3JvIGNvbnN0YW50cyBmb3IgcmV0dXJuIHZhbHVlcywgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzCgoyMDA0LTEyLTI4IDE1OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkZWJ1ZyBtc2cgdy9lcnJubyB3aGVuIHNlbmR0byBmYWlscwoKMjAwNC0xMi0yOCAxNTo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2Fzc2VydCBvbiBiYWQgQVNOIGJ1aWxkCgoyMDA0LTEyLTI4IDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBoZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gYWx3YXlzIHNwZWNpZnkgY29udGV4dCwgaWYgYXZhaWxhYmxlKSBmb3IgcmVnaXN0ZXIgY2FsbGJhY2tzCiAgICAgKHNvIGRpc2Nvbm5lY3RlZCBhZ2VudHggc3ViYWdlbnRzIHJlY29ubmVjdCB3L3Byb3BlciBjb250ZXh0KQogICAtIG1lbXNldCBzdHJ1Y3Qgb24gc3RhY2sgdG8gMAoKMjAwNC0xMi0yOCAxMjowMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBidWcgMTA0OTYwNzogbmV0LXNubXAtY29uZmlnIC0tY29tcGlsZS1zdWJhZ2VudCBicm9rZW4KCjIwMDQtMTItMjcgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBhZGQgcG9pbnRlciB0byB0dXRvcmlhbCBhbmQgY29tbWFuZGxpbmUgdG8gZ2VuZXJhdGUgcHNldWRvLXRvZG8gbGlzdAoKMjAwNC0xMi0yNSAwMDozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgYmFpbCBvbiBub24tdGFibGUgT0lEIHVudGlsIG11bHRpcGxlIHRhYmxlcyBwZXIgZmlsZSBhcmUgc3VwcG9ydGVkCgoyMDA0LTEyLTI1IDAwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBmaXggYnVnIDEwNjI5ODY6IHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBmYWlsIGFuZCBjcmFzaCBzbm1wZAoKMjAwNC0xMi0yNCAyMzo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBmaXggYnVnIDEwNzI0MDY6IGludmFsaWQgb3BlcmF0b3IgcHJlY2VkZW5jZSBpbiBvcGVuZGlyKCkKCjIwMDQtMTItMjQgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZml4IGJ1ZyAxMDg0NDEzOiBDYW4ndCBkaXNhYmxlIGZpbGUgbG9nZ2luZwoKMjAwNC0xMi0yNCAxMDozMiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggYnVnIDEwNDA3MTE6IHNubXB0cmFwZDogU0lHSFVQIGR1cGxpY2F0ZXMgdHJhcGhhbmRsZXJzIChyZXBlYXRlZGx5KQoKMjAwNC0xMi0yNCAwOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCAtcCB0byBta2RpciBwYXJtCgoyMDA0LTEyLTI0IDA5OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIGhhcmRjb2RlZCBIQVZFX0lGTkFNRVRPSU5ERVggbm93IHRoYXQgY29uZmlndXJlIGNoZWNrcyBmb3IgaXQKCjIwMDQtMTItMjQgMDk6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gZG9uJ3Qgb3BlbiBzdGRvdXQgdGlsIHdlIG5lZWQgaXQKICAgLSBleHBsaWNpdCBjbG9zZSBmb3Igb3BlbmVkIGZpbGUKICAgLSBjaGFuZ2UgZGVmYXVsdCB0byBhc2tpbmcgcXVlc3Rpb25zIGluc3RlYWQgb2YgdXNpbmcgZGVmYXVsdHMKCjIwMDQtMTItMjQgMDk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIC0gY2hhbmdlIGRlZmF1bHQgZm9yIGludGVyYWN0aXZlIHNldHVwIHRvIG9uCiAgIC0gZG9uJ3Qgb3ZlcnJpZGUgcmVwb3J0IHByb2dyZXNzIHZhciBpZiBhbHJlYWR5IHNldAoKMjAwNC0xMi0yMyAxNzo1NyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogRml4IGNvbXBpbGluZyB3aXRob3V0IFBTREsuCgoyMDA0LTEyLTIzIDE0OjE5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgY29tcGlsZSBmaXhlcwoKMjAwNC0xMi0yMiAxODowOSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGZpeCBidWcgMTA4ODc2NTogQWdlbnQgZmFpbHMgdG8gc2VuZCB0cmFwcyB0byByZW1vdGUgdGFyZ2V0CgoyMDA0LTEyLTIyIDE2OjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTIyIDE2OjEyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIC0gdGVzdCBmb3IgaWZfbmFtZXRvaW5kZXgKCjIwMDQtMTItMjIgMTM6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLnRocmVhZDoKCiAgIG1lbnRpb24gdGhhdCB2MyBpc24ndCB0aHJlYWQgc2FmZQoKMjAwNC0xMi0xNiAyMTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGxvZyB3YXJuaW5nIG9uIGJhZCBoZXggbGVuZ3RoIChoaWdoZXIgcm91dGluZXMgZG9uJ3QgZ2V0IGVycm9yIGluZGljYXRpb24pCgoyMDA0LTEyLTE2IDIwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGlmZGVmIG91dCB2MS92MiBjb2RlIHdoZW4gYm90aCBkaXNhYmxlZAoKMjAwNC0xMi0xNiAxODoxNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLWNoZWNrIGZvciBkdXBsaWNhdGUgdGFibGUgZGVmcyBpbiBzbm1wZC5jb25mCiAgIC1tb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzCiAgIC1zdXBwb3J0IHJ1bi10aW1lIHRhYmxlcyB3aGljaCBhcmUgYXVnbWVudGF0aW9ucwogICAtbG9nIGVycm9yIGlmIHJ1bi10aW1lIHJvdyBhZGQgZmFpbHMKCjIwMDQtMTItMTYgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZXMKCjIwMDQtMTItMTYgMTQ6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBmb3IgbnVsbCB2YXIgYmVmb3JlIGRlcmVmCgoyMDA0LTEyLTE2IDE0OjU1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNhY2hlIG5leHQgcHRyIGI0IG9iamVjdCBjb3VsZCBiZSBmcmVlZAoKMjAwNC0xMi0xNiAxNDo0MiAgcnN0b3J5CgogICAqIGx0bWFpbi5zaDoKCiAgIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlIG9uIG1pc3NpbmcgbGlicmFyeQoKMjAwNC0xMi0xNiAxNDo0MCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIElOU1RBTExfUFJFRklYIHRvIHByb2dyZXNzIG1lc3NhZ2VzCgoyMDA0LTEyLTE1IDExOjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTE0IDA4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGRlbGV0ZSBleHRyYSAnOycKCjIwMDQtMTItMTQgMDY6NDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggcXVvdGluZyBvbiBldmFsIGxpbmVzCgoyMDA0LTEyLTEzIDEyOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcmVnaXN0cmF0aW9uIGxvb2t1cCBvcHRpbWl6YXRpb24gYWxsb3dpbmcgaW5jb21pbmcgcmVxdWVzdHMgdG8gbW9yZSBxdWlja2x5IHNlYXJjaCB0aHJvdWdoIHRoZSBsaW5rZWQgbGlzdCBhbmQgZG8gc2luZ2xlIGludCBjb21wYXJlcyBpbnN0ZWFkIG9mIGZ1bGwgT0lEIGNvbXBhcmVzIGZvciBtdWNoIG9mIHRoZSBzZWFyY2ggdHJlZS4gIFNob3VsZCBzaWduZmljYW50bHkgaW5jcmVhc2UgdGhlIHNlYXJjaCBzcGVlZCBmb3IgbmV3IHJlcXVlc3RzLgoKMjAwNC0xMi0xMyAxMjozNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgRkFRLCBSRUFETUUKLCBzZWRzY3JpcHQuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoKTogdmVyc2lvbiB0YWcgKCA1LjMuZGV2ICkKCjIwMDQtMTItMTMgMTI6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFkZGVkIGEgbmV3IG9pZC1jb21wYXJlIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgd2hlcmUgdGhlIE9JRHMgZGlmZmVyZWQKCjIwMDQtMTItMTMgMTI6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgYWRkIGFuIGV4dHJhIHNvcnRpbmcgdmFyaWFibGU6IG9pZF9vZmYKCjIwMDQtMTItMTMgMDg6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTMgMDg6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbWlzc2luZyBlbmQgcXVvdGUKCjIwMDQtMTItMTAgMTU6MTUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciByZWNlbnQgY2hlY2tpbnMKCjIwMDQtMTItMTAgMTU6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtY29tbWVudCB0d2Vha3MKICAgLWZyZWUgdmFyYmluZCBpbmRleGVzIGJlZm9yZSBwYXJzaW5nIG5ldyBvbmVzCiAgIC1hZGQvdXNlIHByb3BlciBkYXRhX2xpc3QgZnJlZSBmdW5jdGlvbiBmb3Igcm93IHN0YXNoZXMKCjIwMDQtMTItMTAgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBmaXggZm9yIHVzaW5nIGlmTmFtZSBmb3IgaWZEZXNjciB3aGVuIGlmRGVzY3Igbm90IGF2YWlsYWJsZQoKMjAwNC0xMi0xMCAxNDo0MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLWZpeCBidWcgMTAzNDAwODogbWVtb3J5IGxlYWsgdXNpbmcgU0VUIGZvciB0YWJsZV9kYXRhc2V0CiAgIC1yZW1vdmUgdW5zdXBwb3J0ZCAlIHNwZWMgaW4gY29uZmlnX3B3YXJuCgoyMDA0LTEyLTEwIDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFwcGx5IHBhdGNoIDEwNTI0NjA6IGFnZW50IGRlYWRsb2NrIG9uIGV4ZWMKCjIwMDQtMTItMTAgMTM6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlhUYWJsZS9pZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmg6CgogICBhcHBseSBwYXRjaCAxMDU1MDM2OiBpZi1taWIgaW5pdCBvcmRlciBmaXgKCjIwMDQtMTItMTAgMTI6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGFwcGx5IHBhdGNoIDEwNTcwNTc6IGlwU3lzdGVtU3RhdHNUYWJsZSBpbmRleCBmaXgsIGFkZCBpcHY2CgoyMDA0LTEyLTEwIDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtbmV3IHRhcmdldHMgdG8gbWFrZSBhZ2VudGxpYiwgbWlibGliIG9yIGJvdGgKICAgLXJlbW92ZSBhZ2VudCBsaWIgZGVwZW5kZW5jeSBvbiBtaWIgbGliCgoyMDA0LTEyLTEwIDExOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgdGFyZ2V0cyB0byBtYWtlIHNubXBsaWIsIGFnZW50LCBhbGwgb3IgaW5kaXZpZHVhbCBhcHBzCgoyMDA0LTEyLTEwIDExOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTEwIDExOjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLWZpeCBkaXNhYmxlIHNubXB2MmMKICAgLWFkZCBwYXJ0aWFsIHRhcmdldCBvcyB0byBtb2R1bGUgY2ZsYWdzCiAgIC1yZXN0b3JlIG1pc3NpbmcgdmFyIGluaXQgKGZpeCBjb25maWd1cmUgc2xvd2Rvd24pCiAgIC1tb3JlIGRlYnVnZ2luZwoKMjAwNC0xMi0xMCAxMDoxNSAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9zbm1wZnVuLnNoOgoKICAgZml4IHRhYmxlIGNoZWNrcyBieSBhZGRpbmcgbWlzc2luZyBudWxsIHBhcmFtZXRlcgoKMjAwNC0xMi0xMCAxMDowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY29tbWVudCBjaGFuZ2Ugb25seS0gZG9jdW1lbnQgd2h5IHRlc3QgbWF5IG5vdCBhbHdheXMgYmUgZmFsc2UKCjIwMDQtMTItMTAgMDk6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBjb25zaXN0ZW50IHRhYmxlIG5hbWluZyBpbiBleGFtcGxlIGZsb3csIG5vdGVkIG9uIGNvZGVycyBieSBEYXZlCgoyMDA0LTEyLTEwIDA5OjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaCwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtYWRkIGZsYWcgZm9yIHJvdyBkZWxldGVkCiAgIC1pZiBubyBlcnJvcnMsIGluc2VydC9kZWxldGUgbmV3L2RlbGV0ZWQgcm93IGludG8gY29udGFpbmVyCgoyMDA0LTEyLTEwIDA5OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIGZpeCBjYXNlIG9mIG1pc3NpbmcgZ2V0IGNvZGUKCjIwMDQtMTItMTAgMDk6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHVzZSBzYW1lIGNhY2hlIHRpbWVvdXQgb24gYWxsIHBsYXRmb3JtcwoKMjAwNC0xMi0xMCAwOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggMTA1NjkyNzogNS4yLXAwMzogZnJlZWJzZCBpbnRlcmZhY2UgYnVncwogICAgIC0gZml4IGJ1ZyAxMDU1NzgxOiBnZXQtbmV4dCBmYWlscyB0byBzdGVwIGludG8gaW50ZXJmYWNlcyBncm91cCBjb3JyZWN0bHkKICAgICAtIGZpeCBidWcgMTA1Njc2MDogYWdlbnQgaWdub3JlcyBpZnNwZWVkLCB0eXBlIHNldHRpbmdzIGluIHNubXBkLmNvbmYKICAgLSBhbHNvIGZpeCBidWcgMTA1Njc2MCBmbyBIUC1VWCwgc29sYXJpcywgV2luMzIgYW5kIG90aGVycwoKMjAwNC0xMi0xMCAwODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBhcHBseSBwYXRjaCAxMDczODk3OiBmaXggaWYtbWliIGRhdGEgYWNjZXNzIDY0Yml0IGNvdW50ZXIgd3JhcCBkZXRlY3Rpb24KCjIwMDQtMTItMDkgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGRlbGV0ZSByZW1vdmVkIHJvdyBhZnRlciB1c2VyIGNvbW1pdCBmdW5jdGlvbiBjYWxsZWQKICAgLSByZW1vdmUgcm93IGluc2VydC9kZWxldGUgaW4gdW5kbyAtIGhhbmRsZWQgaW4gY29tbWl0CgoyMDA0LTEyLTA5IDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICBjaGVjayByZXF1ZXN0cyBmb3IgZXJyb3JzIG9uIGdldCBtb2RlcyB0b28KCjIwMDQtMTItMDkgMjE6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBkb24ndCBmcmVlIG51bGwgcG9pbnRlcgoKMjAwNC0xMi0wOSAxMTo1NyAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFNsaWdodGx5IGNsZWFuZXIgc3VtbWFyaWVzIG9mIGNvbmZpZyBmaWxlIGhhbmRsaW5nLgoKMjAwNC0xMi0wOSAxMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEFsbG93IHRoZSB0cmFwIGRhZW1vbiB0byBzcGVjaWZ5IGEgbm9uLWRlZmF1bHQgQWdlbnRYIHNvY2tldC4KCjIwMDQtMTItMDkgMTE6NTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBOZXcgdXRpbGl0eSByb3V0aW5lcyBmb3IgY2hlY2tpbmcgbWF4aW11bSAocmF0aGVyIHRoYW4gZXhhY3QpIHNpemUgbGltaXRzLgoKMjAwNC0xMi0wOSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIFVzZSB0aGUgbGVuZ3RoIHN1cHBsaWVkIGR1cmluZyByZWdpc3RyYXRpb24gd2hlbiBkZWNpZGluZyBob3cKICAgbXVjaCBvZiB0aGUgT0lEIHRvIHNraXAgYmVmb3JlIGNvbXBhcmluZyBpbnN0YW5jZSBzdWJpZGVudGlmaWVycywKICAgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIHNlY29uZC1ndWVzcyB3aGF0IHRoZSBNSUIgaW1wbGVtZW50ZXIgd2FudGVkLgoKICAgVGhlIE1mRCBmcmFtZXdvcmsgKHdoaWNoIGlzIHRoZSBvbmx5IHBsYWNlIHRoaXMgaGVscGVyIGlzIGN1cnJlbnRseQogICB1c2VkKSBhbHJlYWR5IHRha2VzIHRoZSBvYmplY3Qgc3ViaWRlbnRpZmllciBpbnRvIGFjY291bnQgd2hlbgogICBpbnNlcnRpbmcgdGhlIGhlbHBlciwgdGh1cyBkb2luZyBzbyBhZ2FpbiB3aWxsIGJyZWFrIHRoaW5ncy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjEgLT4gVjUuMgoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzIgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzoxNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHdvcmRpbmcgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0CgoyMDA0LTExLTI0IDE3OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudCBnZXRfaW5kZXhlcygpIGJ5IGV4YW1wbGUKCjIwMDQtMTEtMjQgMTc6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbnQgZ2V0dGFibGUoKQoKMjAwNC0xMS0yNCAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIENvbnZlcnQgR05VIHNwZWNpZmljIG1ha2UgaGFja3MgdG8gcG9ydGFibGUgdmVyc2lvbgoKMjAwNC0xMS0yNCAxNjo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDQtMTEtMjQgMTY6NDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBVcGRhdGUgZm9yIDUuMiBhZGRpbmcgYSB0b24gb2YgbmV3IHN0dWZmCgoyMDA0LTExLTI0IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBVcGRhdGUgZm9yIDUuMgoKMjAwNC0xMS0yNCAxMDo1NSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIGZvciA1LjIuICBBZGRlZCBhIGZldyByZWZlcmVuY2VzIHRvIHRoZSBvdGhlciBSRUFETUUgZmlsZXMKCjIwMDQtMTEtMjQgMTA6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBNYW4gcGFnZSB1cGRhdGUgZm9yIDUuMgoKMjAwNC0xMS0yNCAxMDoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB0byA1LjIKCjIwMDQtMTEtMjQgMDg6NDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc3RyaWN0IG1hbiBwYWdlIGZpeGVzIGZyb20gRXJpYyBTLiBSYXltb25kCgoyMDA0LTExLTE4IDA1OjI3ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIGZpeCB0eXBlIG5vdGVkIG9uIGNvZGVycwoKMjAwNC0xMS0xNyAxMDoxNyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICAtIGRvY3VtZW50IGZsYWdzIHRvIHVzZSB0byBpbnN0YWxsIG92ZXIgQXBwbGUncyB2ZXJzaW9uICh3aGljaCBoYXMgYSBiYWQKICAgICBjb3B5IG9mIG5ldC1zbm1wLWNvbmZpZwogICAtIGRvY3VtZW50IGV4bHVkaW5nIHRoZSB1bnN1cHBvcnRlZCBpY21wIHRhYmxlCgoyMDA0LTExLTE3IDA2OjQ5ICBkdHMxMgoKICAgKiBBR0VOVC50eHQ6CgogICBGaXggdHlwbyBhbmQgbWlzc2luZyBjb25maWcgZGlyZWN0aXZlLCByZXBvcnRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkuCiAgIEVtcGhhc2lzZSAoaW4gYW4gdW5kZXJzdGF0ZWQgQnJpdGlzaCBzb3J0IG9mIHdheSkgdGhhdCB0aGlzIGlzIHByaW1hcmlseQogICBkZXNjcmliaW5nIHRoZSB2NCBhZ2VudCwgYW5kIHRoaW5ncyBtYXkgYmUgZGlmZmVyZW50IHdpdGggdGhlIHY1IHRvb2xraXQuCgoyMDA0LTExLTE3IDA1OjI5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjYgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTYgMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTEtMTYgMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIHJjNAoKMjAwNC0xMS0xNiAxNTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gZG9uJ3QgY29uZmlndXJlIGluIGludGVyZmFjZSBpb2N0bCBjb2RlIGJ5IGRlZmF1bHQKICAgLSBpZmRlZiBvdXQgYXJjaCBkZXBlbmRlbnQgY29kZSBpbiBpbnRlcmZhY2UgY29tbW9uCgoyMDA0LTExLTEyIDA3OjM2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgdHdlYWtzCgoyMDA0LTExLTExIDA2OjM2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gbW9yZSBjaGFuZ2VzIGFuZCBmaXhlcwoKMjAwNC0xMS0wOSAwODoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbm9uLW9wdGlvbmFsIG5hdHVyZSBvZiBzbm1wZC5jb25mCiAgIChzcG90dGVkIGJ5IFdpbGxpYW0gQnVja2xleSkKCjIwMDQtMTEtMDkgMDg6MTIgIGR0czEyCgogICAqIEZBUToKCiAgIFJhaWQgUm9iZXJ0J3MgRkFRIGZvciBzb21lIHVzZWZ1bCBlbnRyaWVzLgoKMjAwNC0xMS0wOSAwNToxNiAgZHRzMTIKCiAgICogVE9ETzoKCiAgIEl0J3MgYWJvdXQgdGltZSB3ZSBoYWQgYSBmcmVzaCBUT0RPIGxpc3QuCiAgIFRoZXJlIG1heSB3ZWxsIGJlIGJpdHMgdGhhdCBjYW4gYmUgc2FsdmFnZWQgZnJvbSB0aGUKICAgb2xkIHZlcnNpb24sIGJ1dCBJJ2xsIGxlYXZlIHRoYXQgdG8gc29tZW9uZSBlbHNlLgoKMjAwNC0xMS0wNSAyMTozNSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzEgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZiwgbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zCiwgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zCiwgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zCiwgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zCiwgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zCiwgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMwosIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zCiwgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMKLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3V0aWwuMwosIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTEtMDUgMjE6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTEtMDUgMjA6MjcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlIGZyb20gQnJ1Y2UKCjIwMDQtMTEtMDUgMTM6MDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBUaGlzIHBhdGNoIGZpeGVzIGEgY29uZmlndXJlIHByb2JsZW0gd2hlbiBjb21waWxpbmcgd2l0aCBzb21lIFdpbmRvd3MgY29tcGlsZXJzLgogICBUaGUgYWZmZWN0ZWQgcGxhdGZvcm1zIHdlcmUgTWluR1cgYW5kIEN5Z3dpbiwgdGhlIHBhdGNoIHNob3VsZCBub3QgZWZmZWN0IE1TVkMrKwogICBidWlsZHMuCgoyMDA0LTExLTA1IDAyOjA1ICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGRlbHRhLjEsIHNubXBkZWx0YS4xLmRlZgosIHNubXBkZi4xLCBzbm1wZGYuMS5kZWYsIHNubXBuZXRzdGF0LjEsCiAgICAgc25tcG5ldHN0YXQuMS5kZWY6CgogICBHZW5lcmF0ZSAiZml4ZWQgaW5mb3JtYXRpb24iIGNvbW1hbmQgbWFuIHBhZ2VzIGR5bmFtaWNhbGx5CiAgIChzbyB0aGV5IHBpY2sgdXAgdGhlIHZlcnNpb24gaGVhZGVyKSByYXRoZXIgdGhhbiBoYXZlIHRoZW0gc3RhdGljLgoKMjAwNC0xMS0wNSAwMToyOCAgZHRzMTIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBidWxrZ2V0LjEuZGVmLAogICAgIHNubXBidWxrd2Fsay4xLmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEKLCBzbm1wZGYuMSwgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMS5kZWYKLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmCiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmLAogICAgIHNubXB0cmFwLjEuZGVmLCBzbm1wdXNtLjEuZGVmLCBzbm1wdmFjbS4xLmRlZiwKICAgICBzbm1wd2Fsay4xLmRlZjoKCiAgIFR3ZWFrIHRoZSBvbmUtbGluZSBkZXNjcmlwdGlvbnMgb2YgdmFyaW91cyBjb21tYW5kcyB0byBpbXByb3ZlCiAgIGNvbnNpc3RlbmN5IGFuZCBjbGFyaXR5CgoyMDA0LTExLTA0IDIxOjM4ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICB1cGRhdGVzIChtb3N0bHkgc3R1ZmYgd2UgZG9uJ3Qgc3VwcG9ydCkKCjIwMDQtMTAtMjkgMjI6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgLT4gNS4yLnJjMgoKMjAwNC0xMC0yOSAyMjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIC0+IDUuMi5yYzIKCjIwMDQtMTAtMjkgMTM6MjggIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpcnN0IHBhc3MgYXQgYWdlbnQgbWlicyByZWFkbWUKCjIwMDQtMTAtMjYgMDU6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMjYgMDU6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkb24ndCB1bmNvbmRpdGlvbmFsbHkgYWRkIGxpYnJhcmllcyAoZnJlZWJzZCBkb2Vzbid0IGhhdmUgbGliZGwpCgoyMDA0LTEwLTIyIDE4OjA2ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBmaXggY29uZmxpY3QKCjIwMDQtMTAtMjIgMTg6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0yMiAxNzo0NiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jcwoKMjAwNC0xMC0yMiAxNzo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTAtMjIgMTE6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMjIgMTE6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG1vdmUgUElDIGNoZWNrIGFmdGVyIG1vZHVsZSBwcm9jZXNzaW5nLCAmIGNoZWNrIGFnYWluc3QgY29tcGxldGUgbW9kdWxlIGxpc3QKICAgLSBjaGVjayBkaXNraW8gYW5kIGxtU2Vuc29ycyBhZ2FpbnN0IGNvbXBsZXRlIG1vZHVsZSBsaXN0CgoyMDA0LTEwLTIyIDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4ZXMgZm9yIGJ1aWxkaW5nIGlmVGFibGUgdy9vdXQgaWZYVGFibGUKCjIwMDQtMTAtMjIgMDI6MTcgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJZiB3ZSdyZSBnb2luZyB0byBpbmNsdWRlIHRoZSBORVQtU05NUC1FWFRFTkQtTUlCIHN1cHBvcnQgYnkgZGVmYXVsdCwKICAgKGFuZCBsb2FkIGl0IGF1dG9tYXRpY2FsbHkpLCBpdCB3b3VsZCBiZSBldmVuIG1vcmUgdXNlZnVsIHRvIGFjdHVhbGx5CiAgIGluc3RhbGwgaXQsIHNvIGl0IHdhcyBhdmFpbGFibGUgdG8gX2JlXyBsb2FkZWQhCgoyMDA0LTEwLTIyIDAyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaDoKCiAgIElmIHdlJ3JlIGdvaW5nIHRvIGluY2x1ZGUgdGhlIE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydCBieSBkZWZhdWx0LAogICBpdCB3b3VsZCBiZSBzZW5zaWJsZSB0byBsb2FkIHRoYXQgTUlCIGF1dG9tYXRpY2FsbHkuCgoyMDA0LTEwLTIxIDE1OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgaWZkZWYgdXNlIG9mIHZhcmlhYmxlIHRoYXQgaXNuJ3QgYWx3YXlzIGRlZmluZWQKCjIwMDQtMTAtMjEgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgbXVsdGlwbGUgcm93cy90YWJsZXMgc2V0IHByb2JsZW0sIG5vdGVkIGJ5IFN2ZW4gSm9uYXMgb24gY29kZXJzCgoyMDA0LTEwLTIwIDIxOjAyICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW52b2tlIHBlcmxyZWFsY2xlYW4gZmlyc3QgaW4gdGhlIGRpc3RjbGVhbiBzZXF1ZW5jZS4KCjIwMDQtMTAtMjAgMTk6NTUgIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBwZXJmb3JtIGRlZXAgY2xlYW5pbmcgb24gUGVybCB0cmVlIHRvIGZpeCBidWcgIzg5NDQyNS4KCjIwMDQtMTAtMjAgMTk6MzUgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgZml4IHRhYmxlIG92ZXJmbG93IChpbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggdG8gNS4xLjIpLgoKMjAwNC0xMC0yMCAxODo1MiAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIHJlbW92ZSBzZWNvbmQgcmVhZF9vYmppZCBmcm9tIG1ldGhvZHMgbGlzdCAoSW5zcGlyZWQgYnkgY3VycmVudCBEZWJpYW4gcGF0Y2gpCgoyMDA0LTEwLTIwIDE2OjUyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgZml4IGJ1ZyMxMDQzMTk3ICgyKSAtIHRlc3Qgb3MgdmVyc2lvbiBhbmQgcmVsZWFzZSB1c2luZyB1bmFtZSB0byBxdWFsaWZ5IGFjdGlvbgoKMjAwNC0xMC0xOSAxNjoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBtb3ZlIHJwbSBoZWFkZXIgaW5jbHVkZXMgaW5zaWRlIEhBVkVfTElCUlBNIGJlY2F1c2Ugb2YgaGVhZGVyIGRlcGVuZGVuY2llcwoKMjAwNC0xMC0xOSAxNjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbW92ZSBycG0gY2hlY2tzIGJhY2sgYWZ0ZXIgbW9kdWxlIHByb2Nlc3NpbmcsIHNpbmNlIHJwbSBvbmx5IGluY2x1ZGVkCiAgICAgaWZmIGhyX3N3aW5zdCBnZXRzIGNvbmZpZ3VyZWQgaW4KCjIwMDQtMTAtMTkgMTQ6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIHJlbW92ZSBjcHAgd2FybmluZwoKMjAwNC0xMC0xOSAxNDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0xOSAxNDowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gdXBkYXRlIHJlbGVhc2UKICAgLSBmb3IgZXZlcnkgQUNfQVJHX0VOQUJMRSwgYWRkIGNvcnJlc3BvbmRpbmcgQUNfQVJHX1dJVEggd2l0aCBlcnJvciBtZXNzYWdlCiAgIC0gZm9yIGV2ZXJ5IEFDX0FSR19XSVRILCBhZGQgY29ycmVzcG9uZGluZyBBQ19BUkdfRU5BQkxFIHdpdGggZXJyb3IgbWVzc2FnZQogICAtIG1vdmUgbGlicndhcC9ycG0gY2hlY2tzIGVhcmxpZXIsIHNvIHRoZXkgd2lsbCBmYWlsIGJlZm9yZSBtb2R1bGUgcHJvY2Vzc2luZwogICAtIGNoZWNrIG1ic3RhdCBzdHJ1Y3QgZm9yIG1fY2x1c3RlcnMgKGZyZWVic2QgYXBwYXJlbnRseSBkcm9wcGVkIGl0KQoKMjAwNC0xMC0xOSAwMzoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgRG9uJ3QgZ2VuZXJhdGUgJ0dldCcgY29kZSBmb3IgaW5hY2Nlc3NpYmxlIG9iamVjdHMuCgoyMDA0LTEwLTE5IDAzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIGFnZW50IGNyYXNoaW5nIGlmIG5vICdkZWxldGVfcm93JyBvcgogICAnZHVwbGljYXRlX3Jvdycgcm91dGluZXMgd2VyZSBjb25maWd1cmVkLgoKMjAwNC0xMC0xOSAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJldmVudCB0aGUgYWdlbnQgZnJvbSBzcGlubmluZyBpbiBhbiBpbmZpbml0ZSBsb29wCiAgIGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlLgoKMjAwNC0xMC0xOSAwMzowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUmVwb3J0ICp3aGljaCogYWdlbnR4IHNvY2tldCBjb3VsZG4ndCBiZSBvcGVuZWQuCgoyMDA0LTEwLTE4IDIwOjI0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHJlbGVhc2UKCjIwMDQtMTAtMTggMjA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZXBsYWNlIGluY29ycmVjdCBjb21tZW50IGJsb2NrIHcvbm90ZSBhYm91dCBwb3NzaWJsZSBmdXR1cmUgb3B0aW1pemF0aW9uCgoyMDA0LTEwLTE4IDIwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSB1c2UgbmV3IGlvY3RsIGlmSW5kZXggZmluZAogICAtIG1ha2UgbmV4dCBhbGlhcyBmdW5jIHN0YXRpYwoKMjAwNC0xMC0xOCAyMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgLSB1c2UgbmV3IGlwYWRkcmVzcyBlbnRyeSBjb3B5IGZ1bmN0aW9uIGZvciB0YWJsZSBsZXZlbCB1bmRvIHNldHVwCiAgIC0gcmVtb3ZlIG5vZGUgbGV2ZWwgdW5kbyBzZXR1cAogICAtIGltcGxlbWVudCB1bmRvX2NvbW1pdAoKMjAwNC0xMC0xOCAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIG5ldyBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfZW50cnlfY29weSB0byBjb3B5IGVudHJpZXMKCjIwMDQtMTAtMTcgMjA6NTYgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGZpeCBzbGlnaHQgbWVtb3J5IGxlYWsKCjIwMDQtMTAtMTcgMjA6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMTAtMTcgMjA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCBmZCBwYXJhbWV0ZXIgdG8gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2lmaW5kZXhfZ2V0CgoyMDA0LTEwLTE3IDE5OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IHRyYWNrIHdoZXRoZXIgdXNlciBhbGxvY2F0ZWQgZGF0YSBjb250ZXh0IGZvciBub24tdHJhbnNpZW50IGRhdGEKCjIwMDQtMTAtMTYgMTk6NTMgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMiBtYW5kaXIyaHRtbCBzY3JpcHQgd2FzIGN1dHRpbmcgb2ZmIHRoZSBib3R0b20gdGhlIG1hbiBwYWdlcy4gIEZpeGVkLgoKMjAwNC0xMC0xNiAxOTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHVzZSBuZXcgZmQgcGFyYW0gZm9yIGlmaW5kZXggbG9va3VwLCB3aXRoIGxvY2FsIHNvY2tldAogICAtIGRvbid0IGxvb2t1cCBpbnRlcmZhY2UgaWYgbm8gbmFtZQoKMjAwNC0xMC0xNiAxODo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZG9uJ3QgdXNlIG1fY2x1c3RlcnMgaWYgbm90IGF2YWlsYWJsZQoKMjAwNC0xMC0xNiAxODo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIHNpbXBseSByZXF1aXJlIGludGVyZmFjZSwgbGV0IGl0IGRlY2lkZSBhYm91dCBzcGVjaWZpYyBhcmNoIHJlcXVpcmVzCgoyMDA0LTEwLTE2IDE4OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBhbHdheXMgZGVmaW5lIGlmaW5kZXggZnVuY3Rpb247IHNpbXBseSByZXR1cm4gMCBpZiBTSU9DR0lGSU5ERVggbm90IGF2YWlsCiAgIC0gYWRkIGZkIHBhcmFtIHRvIGlmaW5kZXggZ2V0LCBmb3Igb3B0aW1pemF0aW9uCgoyMDA0LTEwLTE2IDE4OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gc2VwYXJhdGUgaW50ZXJmYWNlX2NvbW1vbiBpbml0IGZyb20gYWNjZXNzX2ludGVyZmFjZSBpbml0CiAgIC0gY2FsbCBhY2Nlc3MgZnVuY3Rpb24sIG5vdCBhcmNoIChzbyB1bnN1cHBvcnRlZCBhcmNoZXMgd29yaykKCjIwMDQtMTAtMTYgMTg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhbHdheXMgaW5jbHVkZSBpb2N0bCB3L2ludGVyZmFjZSBzdHVmZgoKMjAwNC0xMC0xNiAxODo0OCAgcnN0b3J5CgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICBtb3ZlIGFjY2VzcyBpbml0IGZyb20gYWdlbnQgdG8gbWliIGluaXQKCjIwMDQtMTAtMTYgMTM6NDQgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvdGVzdF9mdW46CgogICAtIGNvbW1lbnQgb3V0IGFuc2kgY29sb3JzIChpbmNvbnNpc3RlbnQgdXNlKQogICAtIHByZWZpeCBzdWItdGVzdHMgJiBzdW1tYXJ5IHdpdGggbWFpbiB0ZXN0IG51bWJlciB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTEwLTE2IDEzOjQzICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2g6CgogICB1c2Ugc25tcGdldG5leHQgaW5zdGVhZCBvZiBzbm1wdGFibGUgdGVzdGluZyB0YWJsZXMKCjIwMDQtMTAtMTYgMTM6NDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIGNoZWNrIGZvciBubyBwaWQgZmlsZXMgZm91bmQKICAgLSBjaGVjayBmb3IgcGlkZmlsZSB2YW5pc2hpbmcKCjIwMDQtMTAtMTYgMTM6NDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcmVtb3ZlIHN0cmF5IHF1b3RlCgoyMDA0LTEwLTE2IDEwOjMyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGlmIG5ldHN0YXQgaXMgYXZhaWxhYmxlLCB0ZXN0IGZvciBwb3J0IGluIHVzZSBhbmQgdHJ5IDIgbW9yZSByYW5kb20gcG9ydHMKCjIwMDQtMTAtMTUgMjE6MDEgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjE6MDAgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OSAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTkgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMTUgMjA6NDggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjIucHJlMwoKMjAwNC0xMC0xNSAyMDozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cwoKMjAwNC0xMC0xNSAyMDoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHVwZGF0ZSBmb3IgZGF0YSBhY2NjZXNzIGNoYW5nZQoKMjAwNC0xMC0xNSAyMDowNCAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYwo6CgogICBsbVNlbnNvcnMgY2hhbmdlcyBmcm9tIEJydWNlCgoyMDA0LTEwLTE1IDE4OjAwICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzIgbWFuZGlyMmh0bWwgc2NyaXB0IHdhcyBjdXR0aW5nIG9mZiB0aGUgdG9wIG9mIHRoZSBtYW4gcGFnZXMuICBGaXhlZC4KCjIwMDQtMTAtMTUgMTc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuaCwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLzogaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwgaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTY6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmMKLCBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvOgogICAgIGlwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtRklSU1QudHh0LAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtaXBTeXN0ZW1TdGF0c1RhYmxlLnR4dDoKCiAgIHJlbW92ZSBub24tc291cmNlIGZpbGVzCgoyMDA0LTEwLTE1IDE1OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgZml4IG1heCBpbmRleCBsZW4KCjIwMDQtMTAtMTUgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGluIGxvZyBtc2cKCjIwMDQtMTAtMTUgMTU6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICB1c2UgU0lPQ0dJRklOREVYIGlvY3RsIGZvciBpZkluZGV4CgoyMDA0LTEwLTE1IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGludGVyZmFjZV9pb2N0bC5jLCBpbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIHVzZSBTSU9DR0lGSU5ERVggaW9jdGwgZm9yIGlmSW5kZXgKCjIwMDQtMTAtMTUgMTE6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICB0d2VhayBidWZmZXIgc2l6ZSBjb2RlIGFuZCBhcHBseSB0byB0Y3Agc29ja2V0cyB0b28KCjIwMDQtMTAtMTQgMjA6MjkgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgTW9kaWZpZWQgaW5jbHVkZXMgZm9yIFdpbmRvd3MgYnVpbGRzIHRvIGluY2x1ZGUgd2luc29jayByYXRoZXIgdGhhbiBVbml4IHNvY2tldHMuCgoyMDA0LTEwLTE0IDE4OjE1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgb3B0aW1pemUgbWliIGluZGV4IHNpemUgZGVmcyAocmVkdWNlIGNhY2hlIHNpemUgYnkgaGFsZiEpCgoyMDA0LTEwLTE0IDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmgsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBkb24ndCB1c2Ugc3RydWN0IHB0ciBhcyBkYXRhIGNvbnRleHQKCjIwMDQtMTAtMTQgMTc6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBkZWZpbmUgbWF4IHBvbGljeSBsZW5ndGgKCjIwMDQtMTAtMTQgMTc6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBmcmVlIGEgZGF0YSBjb250ZXh0IHdlIGRpZG4ndCBhbGxvY2F0ZQoKMjAwNC0xMC0xNCAxNzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgY2xhcmlmeSB0aGF0IGEgcG9pbnRlciBzaG91bGRuJ3QgYmUgdXNlZCBhcyB0aGUgZGF0YSBjb250ZXh0IHR5cGUKCjIwMDQtMTAtMTQgMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIGFjY291bnQgZm9yIGlwYWRkcmVzLT5PSUQgY29udmVyc2lvbiBpbiBpbmRleCBzcGFjZSBhbGxvY2F0aW9ucwoKMjAwNC0xMC0xNCAxNzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LXNldC5tMmksCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZml4IHZhciBuYW1lCgoyMDA0LTEwLTE0IDA1OjU3ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbWliMmMuY29udGFpbmVyLmNvbmYKLCBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFJldHVybiAnU05NUF9FUlJfTk9FUlJPUicgb24gIm5vcm1hbCIgU0VUIGVycm9ycy4KICAgKFN1Y2ggZXJyb3JzIHNob3VsZCBvbmx5IGJlIHJlcG9ydGVkIHZpYSBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKQoKMjAwNC0xMC0xMyAxOToyMSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdXNlIGNvcnJlY3QgZmFjaWxpdHkgd2hlbiBpbml0aWFsaXppbmcgc3lzbG9nIGxvZyBoYW5kbGVyLgoKMjAwNC0xMC0xMyAxODozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZW1vdmUgcmVib290IHdhcm5pbmcgZnJvbSByZWdpc3RlciBzY3JpcHRzIGFuZCBjbGFyaWZ5IHN0ZXAgaW4gYnVpbGQgc3RlcHMKCjIwMDQtMTAtMTMgMTU6MjQgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENyZWF0ZSBsaWJzbm1wLmRlZi5pbiBmaWxlIGZvciBzbm1wbGliX2RsbCBhbmQgbW9kaWZ5IHdpbjMyXENvbmZpZ3VyZSB0bwogICBnZW5lcmF0ZSBsaWJzbm1wLmRlZiBpZiBkeW5hbWljIGlzIHNwZWNpZmllZCBhbmQgd2l0aCBvciB3aXRob3V0IHRoZSBJUHY2CiAgIGxpbmVzIGluIGxpYnNubXAuZGVmLgoKMjAwNC0xMC0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGJ1ZyBbIDEwNDU2MDUgXSBzeW50YXggZXJyb3IgaW4gc25tcHRyYXBkLmMgKHdyb25nIGFyZyBvcmRlcikKCjIwMDQtMTAtMTIgMTc6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWxsb3cgYnVpbGRfb2lkX25vYWxsb2MgdG8gY29tcGxldGVseSBmaWxsIGluY29taW5nIGJ1ZmZlcgoKMjAwNC0xMC0xMiAxNjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLW1vdmUgaW5pdGlhbGl6YXRpb24gb2YgaW50ZXJuYWxzIGJhY2sgYmVmb3JlIHdlIHVzZSB0aGVtCiAgICAgICAgICAgIChhaCwgdGhlIGpveXMgb2YgYXV0b21hdGVkIHBhdGNoaW5nKQoKMjAwNC0xMC0xMiAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpZi1taWIvaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0Q2lkclJvdXRlVGFibGUubTJkCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2RlZmF1bHQtdGFibGUtaW5ldE5ldFRvTWVkaWFUYWJsZS5tMmQKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2RlZmF1bHQtdGFibGUtaXBTeXN0ZW1TdGF0c1RhYmxlLm0yZAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKOgoKICAgcmVtb3ZlIGZpbGVzIHVzZWQgZm9yIGNvZGUgZ2VuIChtb3ZlZCB0byBuZXRzbm1wL21vZHVsZS10ZW1wbGF0ZXMgY3ZzIHRyZWUpCgoyMDA0LTEwLTEyIDEzOjI0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggSVBWNiBjb21waWxlIGlzc3VlcyB3aXRoIFBlcmwKCjIwMDQtMTAtMTIgMTM6MDMgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEZpeCBQZXJsIGNvbXBpbGUgaXNzdWUgd2l0aCBkYmdfdG9rZW5zIGFuZCBkZWJ1Z19udW1fdG9rZW5zLiAgRml4IHNubXB0cmFwZAogICBjb21waWxlIGlzc3VlIGJ5IGFkZGluZyBpcGhsYXBpLmxpYiB0byBuZXRzbm1wbWlic3Nkay4KCjIwMDQtMTAtMTIgMTA6NDAgIHdhc21pdGgzMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgZ2NjIHdpdGggTWluR1cgZG8gbm90IGxpa2UgYSBsYWJsZSB3aXRoIG5vIHN0YXRlbWVudHMgZm9sbG93aW5nLgogICBUaGUgc29sbHV0aW9uIHdhcyB0byBhZGQgYW4gZW1wdHkgc3RhdGVtZW50IGluIHRoZSBzdWRvIGV4Y2VwdGlvbiBoYW5kbGluZwogICBjb2RlIGluIHdpbnNlcnZpY2UuYy4gTmV0LVNOTVAgd2lsbCBub3cgY29tcGlsZSB1c2luZyBhIExpbnV4IGhvc3RlZCBXaW5kb3dzCiAgIGNyb3NzIGNvbXBpbGVyLgoKMjAwNC0xMC0xMSAyMTowNiAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJlIG9mIHJhbmdlX3N1YmlkCgoyMDA0LTEwLTExIDIxOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICByZW1vdmUgdW51c2VkIHZhciBzZXNzX2NvbW11bml0eQoKMjAwNC0xMC0xMSAyMTowMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGdldCBkZWZpbml0aW9uIG9mIHNob3VsZF9pbml0CgoyMDA0LTEwLTExIDIxOjAyICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIHBpY2t1cCBuZXcgZGVmaW5pdGlvbiBvZiBzdHJ0b2tfciBhcyBuZWVkZWQuCgoyMDA0LTEwLTEwIDIxOjI4ICBic2hhdzY2NgoKICAgKiBSRUFETUUuc29sYXJpcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBMTS1TRU5TT1JTLU1JQiBmb3IgU29sYXJpcwoKMjAwNC0xMC0wOSAwNzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGZ1bmM7IHJlbW92ZSBleHRyYSB9CgoyMDA0LTEwLTA5IDA0OjQ4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgcmVtb3ZlIGJ1Z2ZpeCAjMTA0MzE5NyAtIHdyb25nIHBhdGNoIGRvbmUgdGhlIHdyb25nIHdheSBhdCB0aGUgd3JvbmcgdGltZQoKMjAwNC0xMC0wOCAyMjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgLSAoZGlzdC9NYWtlZmlsZSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIGVkaXRzCgoyMDA0LTEwLTA4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTA4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGF1dG9jb25mIHZlcnNpb24gcmVxOyB1cGRhdGUgbmV0LXNubXAgdmVyc2lvbiB0byAucHJvMgoKMjAwNC0xMC0wOCAyMTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBjaGFuZ2UgdGhlIGFub24gZ3JvdXBzL2V0YyBjcmVhdGVkIGJ5IHRoZSBzaW1wbGUgdG9rZW5zIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUgYW5kIHVuaXF1ZQoKMjAwNC0xMC0wOCAyMTo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHRlc3QgdGhlIHJpZ2h0IHZhcmlhYmxlCgoyMDA0LTEwLTA4IDIxOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBvYnNvbGV0ZSBzZWN0aW9uIHBpbmtpc2gKCjIwMDQtMTAtMDggMjE6MzggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZW5hYmxlIHN0ZGVycmxvZwoKMjAwNC0xMC0wOCAyMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBmaXggaW5jb25zaXN0ZW5jaWVzIHBvaW50ZWQgb3V0IGJ5IFBhdHJpY2sgV2VsY2hlCgoyMDA0LTEwLTA4IDIwOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBzdXJlIHNubXBFbmdpbmVUaW1lIGNhbGN1bGF0aW9ucyBkb24ndCB3cmFwIHBhc3QgYW4gdWludCBzaXplCgoyMDA0LTEwLTA4IDE5OjI3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICByZW1vdmUgZHVwbGljYXRlIGZ1bmN0aW9uCgoyMDA0LTEwLTA4IDE5OjI1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggdHlwbwoKMjAwNC0xMC0wOCAxOToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIHR3ZWFrIHNvbWUgbWFjcm8gYW5kIGZ1Y3Rpb24gbmFtZXMvdmFsdWVzCgoyMDA0LTEwLTA4IDE5OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCiwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAo6CgogICB1cGRhdGUgZ2VuZXJlYXRlZCBjb2QKCjIwMDQtMTAtMDggMTk6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHR3ZWFrIG1heCBvaWQgZ3Vlc3N3b3JrCgoyMDA0LTEwLTA4IDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXJlZHVjZSBzb21lIGdlbmVyYXRlZCBjb21tZW50cyBpZiB2ZXJib3NlIG5vdCBzZXQKCjIwMDQtMTAtMDggMTY6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC11c2UgbmV3IG1hY3JvIGZvciBzaXplIG9mIGluZGV4IG9pZCBidWZmZXIKCjIwMDQtMTAtMDggMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC1pbml0IGlycmV2ZXJzaWJsZSBjb21taXQgdG8gMAoKMjAwNC0xMC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgYWdlbnQvc25tcF9hZ2VudC5jCjoKCiAgIEFwcGx5IHBhdGNoIGZvdW5kIGluIGJ1ZyAjMTA0MDQzMSB0byBpbmNsdWRlIHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbiB0aGUgZHVtcCBvdXRwdXQKCjIwMDQtMTAtMDggMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXVzZSBuZXcgZGVmaW5lIGluIGhlYWRlciBmb3IgY2FjaGUgdGltb3VldAoKMjAwNC0xMC0wOCAxNjo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXJlbW92ZSBzb21lIHJlZHVuZGFudCBjb21tZW50cwoKMjAwNC0xMC0wOCAxNjo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdHJ5IHRvIHNob3J0ZW4gc2l6ZSBvZiBvaWQgYnVmZmVycyBmb3IgaW5kZXhlcwoKMjAwNC0xMC0wOCAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLWRvbid0IGdlbiBpbnRlcm5hbCBlbnVtcyBpZiBub3QgbWFwcGluZwoKMjAwNC0xMC0wOCAxNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjCiwgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYywKICAgICBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbm9kZS1nZXQubTJpCiwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIHBhcmVudC1zZXQubTJpLAogICAgIHN5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksCiAgICAgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCgoyMDA0LTEwLTA4IDE2OjAyICBzbGlmCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEZyb20gRGViaWFuIHBhdGNoIG5ldC1zbm1wXzUuMS4yLTUuZGlmZi5neiAtLSBwcm9wYWdhdGUgV1JBUExJQlMKCjIwMDQtMTAtMDggMTU6MzIgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFwcGx5IHRoZSBpbnRlbnQgb2YgcGF0Y2ggOTQ3MDMzIGZyb20gQ2xhdXMgS2xlaW4gdG8gYWxsb3cgZm9yIGNyb3NzIGNvbXBpbGF0aW9uIHN1cHBvcnQgdGhyb3VnaCB0aGUgdXNlIG9mIC0tcHJlZml4PSBhbmQgLS1leGVjLXByZWZpeD0gZmxhZ3MuICBEaWRuJ3QgYXBwbHkgdGhlIHdoaXRlIHNwYWNlLCByZWZvcm1hdHRpbmcsIGV0YyBwb3J0aW9ucyBzaW5jZSBpdHMgYWdhaW5zdCBvdXIgcGF0Y2ggYWNjZXB0YW5jZSBzdGFuZGFyZHMuICBBbHNvIG1hZGUgYSBzbWFsbCBmaXggc28gdGhhdCAtLXBlcmZpeD0vc29tZXRoaW5nIGRvZXNuJ3QgYWRkIGEgL25ldC1zbm1wIHN1ZmZpeCB0byB0aGUgaW5jbHVkZSBkaXJlY3RvcnkKCjIwMDQtMTAtMDggMTU6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgWyAxMDIyNzg3IF0gUGF0Y2ggKGZyb20gR2VlcnQgRGUgUGV1dGVyKSB0aGF0IGFsbG93cyBVRFAgYnVmZmVyIHR1bmluZy4uLiAgVGFrZSAyIGFmdGVyIGRpc2N1c3Npb24gb24gLWNvZGVycwoKMjAwNC0xMC0wOCAxNDoxNSAgc2xpZgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwKICAgICBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbSwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBtYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbQo6CgogICBTZWVuIGluIGEgRGViaWFuIHBhdGNoLiAgSW5zZXJ0IHJlcXVpcmVkIGJsYW5rIGxpbmUgZm9sbG93aW5nIF9fRU5EX18gY3V0IG1hcmsuCgoyMDA0LTEwLTA4IDEzOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRG9uJ3Qgc2hvdyBzbXV4IHBlZXIgcGFzc3dvcmQgaW4gY29ubmVjdCBhY2NlcHQvcmVmdXNlIGxvZyBtZXNzYWdlcy4KCjIwMDQtMTAtMDggMTE6NTIgIHNsaWYKCiAgICogdGVzdGluZy86IHJmYzEyMTMvUkVBRE1FLCByZmMxMjEzL3J1biwKICAgICByZmMxMjEzL3NubXBmdW4uc2gsIHJmYzEyMTMvdGVzdF9mdW4sCiAgICAgcmZjMTIxMy90ZXN0bWliMS5zaCwgcmZjMTIxMy90ZXN0bWliMi5zaCwKICAgICByZmMxMjEzL3Rlc3RtaWIzLnNoLCB0ZXN0cy9UMTYwcmZjMTIxMywKICAgICB0ZXN0cy9UMTYxcmZjMTIxMywgdGVzdHMvVDE2MnJmYzEyMTM6CgogICBwYXRjaCAjNjg5NzU3IC0gYWRkIHRlc3QgY2FzZXMgZm9yIGFjY2Vzc2luZyBSRkMtMTIxMyBNSUIgdmFyaWFibGVzLgogICB0aGFua3MgdG8gTGluZyBYaWFvZmVuZyBmb3IgdGhlIG9yaWdpbmFsIHdvcmsuCgoyMDA0LTEwLTA4IDEwOjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBpbml0aWFsaXplIHB0ciB0byBOVUxMCgoyMDA0LTEwLTA4IDEwOjMxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgZml4IGJ1ZyMxMDQzMTk3IC0gcHJvdmlkZSBhIGZ1bmN0aW9uIHRvIHRlc3Qgb3MgdmVyc2lvbiBhbmQgcmVsZWFzZQoKMjAwNC0xMC0wOCAxMDoyMiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICAtIGZpeCBidWcgWyAxMDI1NDU0IF0gdW5kZWZpbmVkIHN5bWJvbHMgaW4gc25tcHRyYXBkCiAgICAgLSBtb3ZlIGluY2x1ZGUgImFnZW50X21vZHVsZV9pbml0cy5oIiBpbmNsdWRlIGluc2lkZSBpbml0X2FnZW50CgoyMDA0LTEwLTA4IDA5OjI5ICB3YXNtaXRoMzIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMm1zdmMuaDoKCiAgIFRoZSBMaW51eCBob3N0ZWQgdmVyc2lvbiBvZiBNaW5HVyByZXBvcnRzIGl0c2VsZiBhcyBtaW5ndzMybXN2Yy4gVGhpcyBzeXN0ZW0KICAgaGVhZGVyIGRvZXMgbm90aGluZyBtb3JlIHRoYW4gZGVmaW5lIG1pbmd3MzIgYW5kIGluY2x1ZGUgbWluZ3czMi5oLiBBbGwgY2hhbmdlcwogICBzaG91bGQgYmUgbWFkZSBpbiBtaW5ndzMyLmguCgoyMDA0LTEwLTA4IDA5OjA0ICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgbmV0c25tcF9nZXRlbnYoKTogTW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbnRvIFdJTjMyIElGREVGCgoyMDA0LTEwLTA4IDA5OjAxICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIGxvY2FsL3NubXBjb25mLAogICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBBZGQgbmV0c25tcF9nZXRlbnYoKSB3aGljaCBpcyBhIHdyYXBwZXIgZm9yIGdldGVudigpIHRvIGFkZAogICBiYXNpYyBXaW5kb3dzIHJlZ2lzdHJ5IHN1cHBvcnQuCgoyMDA0LTEwLTA3IDE5OjMxICBzbGlmCgogICAqIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oIGFuZCBuZXQtc25tcC90eXBlcy5oCiAgIGZvciBpbXByb3ZlZCBVQ0RfQ09NUEFUSUJMRSB1c2VzIChmcm9tIEZlZG9yYSBuZXQtc25tcC01LjAuNi1jb21wYXQucGF0Y2gpLgoKMjAwNC0xMC0wNyAxODo0NCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSBtaWIyYy5pdGVyYXRlMi5jb25mCgoyMDA0LTEwLTA3IDE3OjE1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmUtaW5zdGFsbCBwYXRoIGZpeCwgcHJvbXB0IG92ZXJ3cml0ZSBzbm1wLmNvbmYKCjIwMDQtMTAtMDcgMTY6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyIERMTCBzdXBwb3J0IGZvciBzdHJ0b2tfcgoKMjAwNC0xMC0wNyAxNToyMSAgYWxleF9iCgogICAqIHNubXBsaWIvc3RydG9rX3IuYywgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIE1TVkMgc3VwcG9ydCBmb3Igc3RydG9rX3IKCjIwMDQtMTAtMDcgMTQ6NTcgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBkZWZpbmVkIE5FVFNOTVBfKiBkZWZpbmVzCgoyMDA0LTEwLTA3IDA1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzdHJ0b2tfci5jOgoKICAgYWRkIHN0cnRva19yCgoyMDA0LTEwLTA2IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIG1ha2UgcHJveHkgbm8tY29tbXVuaXR5IHN1cHBvcnQgdXNpbmcgLUNjIGluc3RlYWQgb2YgYXNzdW1pbmcgeW91IHdhbnRlZCBpdCB0aGF0IHdheQoKMjAwNC0xMC0wNiAxOToyMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHRlbXAgdmFyICJpIiBpbnRyb2R1Y2VkIGJ5IHJlY2VudCBpcHY2IHBhdGNoLgoKMjAwNC0xMC0wNiAxOToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oOgoKICAgcmVuYW1lIHRvIE5FVFNOTVBfUk5ELiAoZm9yZ290IHRvIGNoZWNrIHRoaXMgZmlsZSBpbiBmcm9tIGVhcmxpZXIgY2hlY2tpbgoKMjAwNC0xMC0wNiAxNzo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXgga3NtIHBhdGNoIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgQnVjayBIdXBwbWFubgoKMjAwNC0xMC0wNiAxNzo0OSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICBhZGQgbWlzc2luZyBkZWZpbmUgRU5HSU5FSURfVFlQRV9ORVRTTk1QX1JORCAyNTYKCjIwMDQtMTAtMDYgMTY6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGZpeCBidWcgWyA5ODYyMzggXSBzbm1wZCBsb29wcyBmb3JldmVyCgoyMDA0LTEwLTA2IDE2OjAxICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgZml4IGJ1ZyMxMDQwNDI5OiB0ZXN0IGV2ZXJ5IGZfZm10YWRkciBjYWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nIG9yIGZyZWVpbmcuCiAgIENhdGNoIG1lbW9yeSBsZWFrcyBpbiBzbm1wdGVzdCwgc25tcHRyYXBkLCBhbmQgc25tcHN0YXR1cy4KCjIwMDQtMTAtMDYgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUGF0Y2ggWyA5MjM0OTQgXSBmcm9tIEJ1Y2s6IGltcHJvdmVkIGF1dG9jb25mIHN1cHBvcnQgYW5kIGhlaW1kYWwgc3VwcG9ydCBmb3Iga3NtLgoKMjAwNC0xMC0wNiAxNDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggWyA5NDIxNTUgXSBGcm9tIERhaS5IOyBJUHY2IGFkZHJfc3RyaW5nIGZpeCBmb3IgbGlid3JhcAoKMjAwNC0xMC0wNiAxNDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBidWcgWyA2MTU3NDQgXSBTcHVyaW91cyBESVNNQU4tRVZFTlQgdHJhcAoKMjAwNC0xMC0wNiAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUGF0Y2ggWyAxMDQwNzE4IF0gZnJvbSBCZW4gUm9nZXJzOiBBZ2VudHggZXJyb3IgcHJvcGFnYXRpb24gYW5kIGluZmluaXRlIGxvb3AKCjIwMDQtMTAtMDYgMTQ6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBwdHIgaW5pdCBiZWZvcmUgZGVyZWZlcmVuY2U7IG5vIGlkZWEgaG93IHRoaXMgaGFzIGJlZW4gd29ya2luZyBmb3IgdGhlCiAgIGxhc3QgNiBtb250aHMsIGFuZCB3aHkgaXQgc3RhcnRlZCBjcmFzaGluZyBvbiBtZSB0b2RheS4KCjIwMDQtMTAtMDYgMTM6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICAtIGJhY2sgb3V0IGFsbCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUKICAgICAtIGhlYWRlcl9pZkVudHJ5IGRlcGVuZHMgb24gY29udGlndW91cyBpZkluZGV4IHZhbHVlcywgYW5kIEknbSBub3QgYWJvdXQKICAgICAgIHRvIHRyeSBhbmQgZml4IHRoYXQgaW4gdGhpcyBpZmRlZiBoZWxsLWhvbGUuIFRob3NlIHdhbnRpbmcgbm9uLWNoYW5naW5nCiAgICAgICBpZkluZGV4ZXMgd2lsbCBqdXN0IGhhdmUgdG8gbW92ZSB0byB0aGUgbWZkLXJld3JpdGUuCgoyMDA0LTEwLTA2IDEzOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBiYWNrIG91dCBhbGwgb2YgZml4IGZvciBidWcgODY1NDE1CiAgICAgLSBoZWFkZXJfaWZFbnRyeSBkZXBlbmRzIG9uIGNvbnRpZ3VvdXMgaWZJbmRleCB2YWx1ZXMsIGFuZCBJJ20gbm90IGFib3V0CiAgICAgICB0byB0cnkgYW5kIGZpeCB0aGF0IGluIHRoaXMgaWZkZWYgaGVsbC1ob2xlLiBUaG9zZSB3YW50aW5nIG5vbi1jaGFuZ2luZwogICAgICAgaWZJbmRleGVzIHdpbGwganVzdCBoYXZlIHRvIG1vdmUgdG8gdGhlIG1mZC1yZXdyaXRlLgoKMjAwNC0xMC0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYmFjayBvdXQgcGFydCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUsIGl0IGJyb2tlIHNvbGFyaXMgJiBwcm9iYWJseSBvdGhlcnMKICAgICAobm90IGFsbCBwbGF0Zm9ybXMgaGF2ZSBJbnRlcmZhY2VfU2Nhbl9Jbml0LEludGVyZmFjZV9TY2FuX05leHQpCgoyMDA0LTEwLTA2IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoICMxMDQxMzc4IGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggdGhlIGRlc2NyaXB0aW9uIG9mIGhvdyBlbmdlSURzIGFyZSBjcmVhdGVkLgoKMjAwNC0xMC0wNiAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCB0aGUgY29tcGxhaW50IG91dGxpbmVkIGJ5IFRob21hcyBBbmRlcnMgaW4gUGF0Y2ggMTA0Mzc4IHVzaW5nIHRoZSBuZXQtc25tcCBlbnRlcnByaXNlIG51bWJlciBpbnN0ZWFkIG9mIHRoZSBVQ0Qgb25lIGZvciByYW5kb21seSBjb21wb3NlZCBlbmdpbmVJRHMKCjIwMDQtMTAtMDYgMTA6MzUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmVkIE5FVFNOTVBfKiBkZWZpbmVzCgoyMDA0LTEwLTA1IDIyOjI3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hZ251cyBGcm9tcmVpZGUsIE1hcmN1cyBNZWlzc25lciwgQW5kcmV3IFJ1Y2tlciBKb25lcywgRGFpLkguCgoyMDA0LTEwLTA1IDIxOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGFydCBvZiBwYXRjaCBbIDkzOTU5NSBdIGZyb20gc3VuICh1cGRhdGUgY2FjaGUgdGltZXMpCgoyMDA0LTEwLTA1IDIxOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBhcHBseSB0aW55IHBpZWNlIG9mIHBhdGNoIFsgODM2MzkwIF0KICAgICAtIGFwcGxpZWQgbW9yZSBpZm5hbWUgdG8gaWZ0eXBlIG1hcHBpbmdzCgoyMDA0LTEwLTA1IDIxOjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIGFwcGx5IHBhdGNoIFsgODExNjg3IF0gUHJveHkgc3VwcG9ydCBpZ25vcmVzIGNvbW11bml0eSBzdHJpbmcgaWYgLWMgb3B0aW9uIG9taXR0ZWQKCjIwMDQtMTAtMDUgMjA6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFwcGx5IHBhdGNoIFsgNTUxMTgzIF0gTFJVIHJlcGxhY2VtZW50IGZvciBhZGRyZXNzIGNhY2hlCgoyMDA0LTEwLTA1IDIwOjA2ICBhbGV4X2IKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgbWlzc2luZyByZWZlcmVuY2UgZm9yIHdpbnNlcnZpY2VyYyBpbiBNaW5HVyBzZWN0aW9uCgoyMDA0LTEwLTA1IDE5OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIGFwcGx5IHBhdGNoIFsgOTk2NDYyIF0gYWdlbnR4IGZhaWxzIG9uIGxpdHRsZSBlbmRpYW4gNjRiaXQKCjIwMDQtMTAtMDUgMTk6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhcHBseSBwYXRjaCBbIDEwMDk3OTkgXSBBZ2VudFggUmVnaXN0ZXItUERVIHdpdGggbXVsdGlwbGUgaXRlbXMKCjIwMDQtMTAtMDUgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSBhcHBseSBbIDEwMTE0NzEgXSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMgKyBpbmxpbmUgbWFjcm8gcHJvYmxlbXMKICAgICAtIGRlZmluZSBtYWNybyBmb3IgdW5peHdhcmUgaW5jbHVkZXMKCjIwMDQtMTAtMDUgMTk6MDEgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgZW5kaWYKCjIwMDQtMTAtMDUgMTg6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTA1IDE3OjQ2ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgLSBhcHBseSBbIDEwMTE0NzEgXSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMgKyBpbmxpbmUgbWFjcm8gcHJvYmxlbXMKICAgICAtIGNoZWNrIGZvciBuZXN0ZWQgc3RhdGljIGlubGluZSBzdXBwb3J0CgoyMDA0LTEwLTA1IDE3OjM4ICBhbGV4X2IKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3dpbnNlcnZpY2VyYy5yYzoKCiAgIEFwcGx5IHBhdGNoIDEwNDAzMjUgLSB3aW4zMiBNaW5HVyBhZ2VudC90cmFwZCBzZXJ2aWNlIEV2ZW50bG9nIGZpeGVzCgoyMDA0LTEwLTA1IDE2OjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhcHBseSBwYXRjaCBbIDEwNDAyNTQgXSBTdHJlbmd0aGVuIEFHRU5UWCBPSUQgY2hlY2tzCgoyMDA0LTEwLTA1IDE2OjI2ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggWyAxMDQwMjYxIF0gTWFrZSBpdCBwb3NzaWJsZSB0byBzZWxlY3QgdGVzdHMgb24gYWdlbnQgbW9kdWxlcwoKMjAwNC0xMC0wNSAxNjoxNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMDUgMTY6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgYWRkIGNoZWNrIGZvciBzdHJ0b2tfciBhbmQgcnVuIGF1dG9oZWFkZXIKCjIwMDQtMTAtMDUgMTY6MTMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgR2VlcnQgRGUgUGV1dGVyIHRvIGNvbnRyaWJ1dG9ycwoKMjAwNC0xMC0wNSAxNjoxMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFwcHMvc25tcHZhY20uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgc25tcGxpYi9jb250YWluZXIuYywKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDEwNDAzMzAgXSBHZXR0aW5nIHJpZCBvZiBzdHJ0b2sKCjIwMDQtMTAtMDUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICByZW1vdmUgYXR0cmlidXRpb24gY29tbWVudAoKMjAwNC0xMC0wNSAwNzowNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSAtQyBhbmQgLWMgcmVnaXN0ZXIgb3B0aW9ucyBhbmQgYWRkIG5vdGUgYWJvdXQgcmVib290CgoyMDA0LTEwLTA1IDAwOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHBhdGNoIGZyb20ganByYWthc2hiYWJ1OiBtb3ZlIGVuZGZzZW50IGNhbGwgbmVhciBzZXRmc2VudCB0byBhdm9pZCBjb21waWxlIGVycm9yCgoyMDA0LTEwLTA0IDIwOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZWxtaW5hdGUgdXNlIG9mIFRPRE9fZmluZF8qIHVuZGVmaW5lZCBtYWNyb3MKCjIwMDQtMTAtMDQgMjA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHB1dCBpcnJldmVyc2libGVfY29tbWl0IHNldHRpbmcgaW4gZ2VuZXJhdGVkIGRlZmF1bHQtdGFibGUtKgoKMjAwNC0xMC0wNCAyMDoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBlbG1pbmF0ZSB1c2Ugb2YgVE9ET19maW5kXyogdW5kZWZpbmVkIG1hY3JvcwoKMjAwNC0xMC0wNCAxNTowOSAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBSZW5hbWUgZ19zekFwcE5hbWUgdG8gYXBwX25hbWUgdG8gZm9sbG93IG5hbWluZyBzdGFuZGFyZHMKCjIwMDQtMTAtMDQgMTE6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLCBub2RlLXNldC5tMmkKOgoKICAgLSBtYWtlIGNvbW1lbnRzIG1vcmUgdW5pcXVlIChoZWxwIG91dCBkaWZmKQogICAtIHJlbW92ZSBzb21lIGV4dHJhbmVvdXMgY29tbWVudHMKCjIwMDQtMTAtMDQgMTE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB1c2UgZnVsbCBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCgoyMDA0LTEwLTA0IDExOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFkZCBkZWJ1ZyB0b2tlbnMKCjIwMDQtMTAtMDQgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzdG9yZSBwZXJtYW5lbnQgcm93cyB0b28KCjIwMDQtMTAtMDQgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBkb24ndCByZXNldCBvcGVyX3N0YXR1cyBmbGFncywgaW9jdGwgY29kZSBoYXMgYWxyZWFkeSBzZXQgdGhlbQoKMjAwNC0xMC0wNCAwOTo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGxpc3QgYWxsIGxvY2F0aW9ucyB0byB1cGRhdGUgaW4gZmxvd2NoYXJ0IGNvbW1lbnRzCgoyMDA0LTEwLTAzIDE4OjIyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgVW5yZWdpc3RlciBzZXJ2aWNlcyBvbiB1bmluc3RhbGwsIGFkZCBtaXNzaW5nIG1pYnMsIG1pYjJjIGFuZCBoZWFkZXIgZmlsZXMuCgoyMDA0LTEwLTAzIDE0OjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgZnJvbSBDb3JleSBXcmlnaHQ6IGZpeCBzZW5zb3JfYXJyYXkgc2l6ZSBsaW1pdCB0ZXN0CgoyMDA0LTEwLTAzIDEwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBhcHBseSBtaXNzZWQgYml0IGZyb20gcHJldmlvdXMgcGF0Y2gKCjIwMDQtMTAtMDMgMDg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIC0gYXBwbHkgcGF0Y2ggZnJvbSBHZWVydCBEZSBQZXV0ZXIgWyAxMDIyOTQxIF0gU3BlZWQgdXAgYWRkaW5nIGEgcm93IHRvIGEgdGFibGUKICAgICAtIChzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uKQogICAgIC0gdGVzdCBmb3IgYXBwZW5kIGJlZm9yZSBsaW5lYXIgc2VhcmNoCiAgICAgLSBzYXZlIHJjIGluc3RlYWQgb2YgcmVwZWF0aW5nIGZ1bmN0aW9uIGNhbGwKCjIwMDQtMTAtMDMgMDc6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcGF0Y2ggZnJvbSBQYXRyaWNrIFdlbGNoZTsgY2hlY2sgZm9yIE5VTEwgYmVmb3JlIGRlcmVmCgoyMDA0LTEwLTAyIDIwOjUxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgQWRkIHN0ZXAgdG8gY29tcGFyZSBjb21waWxlZCBhbmQgaW5zdGFsbGVkIGZvbGRlcnMgdG8gbG9jYXRlIG1pc3NpbmcgZmlsZXMKCjIwMDQtMTAtMDEgMjA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc3lzY29uZiBhbmQgdGltZXMgZnVuY3Rpb25zIGFuZCBzeXMvdGltZXMuaCBoZWFkZXIKCjIwMDQtMTAtMDEgMjA6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBzbm1wdjMuYzoKCiAgIFByb3BlciBmaXggaXQgdjMgZW5naW5ldGltZSB3cmFwcGluZyBwcm9ibGVtLiAgRmFpcmx5IHBvcnRhYmxlICYmIHVzZXMgdGltZXMoKS4KCjIwMDQtMTAtMDEgMjA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGNyZWF0ZSBhIG5ldyBjYWxjdWxhdGVfc2VjdGltZV9kaWZmIGZ1bmN0aW9uCgoyMDA0LTEwLTAxIDIwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc2V0IGhlbnQgdmFyaWFibGUgdG8gTlVMTCB0byBzcXVhc2ggYm9ndXMgY29tcGlsZXIgd2FybmluZwoKMjAwNC0xMC0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICBmaXggYnVnIFsgODY1NDE1IF0gaW5jb3JyZWN0IGlmQWRFbnRJZkluZGV4IGZpZWxkCgoyMDA0LTEwLTAxIDA4OjU4ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgU2ltcGxpZnkgYnVpbGQgc3RlcHMKCjIwMDQtMTAtMDEgMDU6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZiwKICAgICBsb2NhbC9taWIyYy5jb25mLCBORVdTOgoKICAgQnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUsIGhhdmUgdGhlIGNvdXJhZ2Ugb2YgbXkgY29udmljdGlvbnMsCiAgIGFuZCBwdXNoIHRoZSBuZXcgKGZ1bGxlcikgaXRlcmF0ZSBjb25maWcgaW4gcHJlZmVyZW5jZSB0byB0aGUgZWFybGllcgogICAocmVsYXRpdmVseSBlbXB0eSkgZnJhbWV3b3JrLgogICAgIFtJIGp1c3Qga25vdyBJJ20gZ29pbmcgdG8gcmVncmV0IGRvaW5nIHRoaXMuLi4uLl0KCjIwMDQtMDktMzAgMjA6MTAgIHdhc21pdGgzMgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBVcGRhdGVkIHRoZSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBiYXRjaCBmaWxlcyBmb3IgdGhlIFdpbmRvd3MgaW5zdGFsbGVyIHNjcmlwdC4KICAgQXBwbGllZCBhIG1vZGlmaWVkIHBhdGNoIFsgMTAzNzY5NSBdIHdpdGggZWRpdHMgbWFkZSBieSBBbGV4IEJ1cmdlciBhbmQgbXlzZWxmLgogICBUaGUgcGF0Y2ggYWxzbyByZW1vdmVzIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB0aGUgc2NyaXB0IHRoYXQgd2VyZSBub3QKICAgYmVpbmcgaW5zdGFsbGVkLgoKMjAwNC0wOS0zMCAxMToxMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNoYW5nZSA1IC0+IHZhcmlvdXMgc28gd2Ugc3RvcCBnZXR0aW5nIGl0IHdyb25nCgoyMDA0LTA5LTMwIDA4OjU5ICBhbGV4X2IKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBGb3IgYnVnIDEwMzc1MjQ6IFNldCBwYXRoIHRvIC5ETEwgZm9yIFBlcmwgYnVpbGQgLyB0ZXN0CgoyMDA0LTA5LTMwIDA1OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBIYXZlICdyZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZycgdGFrZSBub3RlIG9mIHRoZQogICBpbml0aWFsIGxlbmd0aCB3aGVuIHVzaW5nIGV4aXN0aW5nIGJ1ZmZlcnMuCgoyMDA0LTA5LTMwIDAyOjU1ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBlcnJvcnMgZm9yIGFueSBtaXNzaW5nIE1BTjVHIGZpbGVzIChlLmcuLCBtaWIyYy5jb25mLjUpCgoyMDA0LTA5LTMwIDAyOjQzICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICBhZGQgREVMQVkgYWZ0ZXIgc2V0IHRvIGFsbG93IHRpbWUgZm9yIHRyYXAgdG8gZmlyZSBhbmQgYmUgbG9nZ2VkLgoKMjAwNC0wOS0zMCAwMTozOCAgc2xpZgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCAiSW5jb25zaXN0ZW50IG9wZXJhdG9yIGZvciB0ZXN0IiB3aGljaCB3YXMgaW50cm9kdWNlZCB3aGVuCiAgIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBpbiBpbnN0YWxsc3ViZGlyaGVhZGVycy4KICAgSW5kZW50IGxpbmVzIG9mIHJ1bGUgYm9kaWVzIHVzaW5nIHRhYiBvbmx5IChhIHJlcXVpcmVtZW50IGZvciBzb21lICJtYWtlIikuCiAgIFJlbW92ZSBleHRyYW5lb3VzIHdoaXRlc3BhY2UgbmVhciB0aGUgZW5kIG9mIGNvbnRpbnVhdGlvbiBsaW5lcy4KCjIwMDQtMDktMjkgMjM6MTggIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCB0cnkgdG8gaW5zdGFsbCB1Y2Qtc25tcC9hZ2VudF9tb2R1bGVfY29uZmlnLmggKG5vIHN1Y2ggZmlsZSkKCjIwMDQtMDktMjkgMTg6MDIgIGFsZXhfYgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIHNucHJpbnRmIG5vdyB1c2VzIHNpemVvZihvYmplY3QpCgoyMDA0LTA5LTI5IDE3OjM1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBub3RlIGltcG9ydGFuY2Ugb2YgbWF0Y2hpbmcgTWVzc2FnZUlkIHZhbHVlIGZvciBSZXBvcnRFdmVudC4KCjIwMDQtMDktMjkgMTU6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFBhdGNoOiAxMDMxMDQ2IHdoaXRlIHNwYWNlIHRhYiBkYW1hZ2UKCjIwMDQtMDktMjkgMTU6NDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNC0wOS0yOSAxNTozOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaDogWyAxMDM0MTU2IF0gQ2xhcmlmeSBPcGVuU1NMIHJlcS4gaW4gc25tcGQuY29uZi41CgoyMDA0LTA5LTI5IDE1OjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIHNlY3Rpb24gdG8gbWVudGlvbiB0aGUgbmVlZCBmb3IgYSByZWJvb3QgdG8KICAgYWxsb3cgc3lzdGVtIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBiZSB1c2VkLgoKMjAwNC0wOS0yOSAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBbIDEwMTEzMzEgXSB2YWNtX2Rlc3Ryb3lBY2Nlc3NFbnRyeSB3YXMgZG91YmxlIGNoZWNraW5nIGEgdmFsdWUgYW5kIG1pc3NuaWcgYW5vdGhlci4KCjIwMDQtMDktMjkgMTU6MDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgcmVtb3ZlIGphcGFuIG1pcnJvciBhcyB0aGUgbWFpbnRhaW5lciBwYXNzZWQgYXdheQoKMjAwNC0wOS0yOSAxNDoyMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgZml4IGJ1ZyAjSUZvcmdvdCB0byBmaXggYWdlbnR4IHVzYWdlIG9uIHdpbmRvd3MgdG8gdXNlIGEgcmVhbCBzbm1wZC5jb25mIHRva2VuIGZvciBzb2NrZXQgYWRkcmVzcyBzdXBwb3J0CgoyMDA0LTA5LTI5IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIHJlbW92ZSBub24tcG9ydGFibGUgKGJ1dCBuaWNlIGdvYWwpIG9wdGltaXplZCBoZWFkZXIgaW5zdGFsbGF0aW9uLiAgQnJlYWtzIG9uIGZyZWVic2Qgc3lzdGVtcyB3aGVyZSBjbXAgZXhpdHMgd2l0aCBzdGF0dXMgMgoKMjAwNC0wOS0yOSAxMDozNCAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQXBwbHkgcGF0Y2ggaW4gYnVnIDkyNjM4OSBieSBNaWtlIFNsaWZjYWsgdG8gZml4IFdpbjMyIGV2ZW50IGxvZyBsb2dnaW5nCiAgIGZvciBzbm1wdHJhcGQgYW5kIHNubXBkLiAgQWRkcyBzbm1wX2xvZ19zeXNsb2duYW1lKCkgZnVuY3Rpb24gd2hpY2gKICAgaXMgbm93IHVzZWQgYnkgb3BlbmxvZygpLgoKMjAwNC0wOS0yOSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcmVtb3ZlIHh4eCBjb21tZW50cyBpbiBnZW5lcmF0ZWQgY29kZQogICAtIHVwZGF0ZSBmb3IgcmVuYW1lIHRhYmxlX2NvbnRhaW5lciBmdW5jdGlvbnMKCjIwMDQtMDktMjkgMDc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIHJlbW92ZSB4eHggY29tbWVudHMgaW4gZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjkgMDc6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBjb252ZXJ0IG1pc3NpbmcgZGlyIGVycm9yIG1zZyB0byBkZWJ1ZyBtc2cKCjIwMDQtMDktMjggMTg6NDYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMjggMTg6NDUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSBjaGVjayBmb3IgbmV0L2lmX2FycC5oIGhlYWRlcgogICAtIHJ1biBhdXRvaGVhZGVyIHRvIHVwZGF0ZSBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAwNC0wOS0yOCAxODo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCB2bW5ldCB0byB0eXBlLWJ5LW5hbWUgZGV0ZWN0aW9uCgoyMDA0LTA5LTI4IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBpbmNsdWRlIG5ldC9pZl9hcnAuaCBzbyBhcnAgdHlwZSBkZXRlY3Rpb24gaGFzIGEgY2hhbmNlIHRvIHdvcmsKICAgLSBpZmRlZiBhcnBocmQgdHlwZXMgdGhhdCBhcmVuJ3QgY29tbW9uIChwcmV0dHkgbXVjaCBhbGwgb2YgdGhlbSkKICAgLSBkZWJ1ZyBtc2cgb24gdW5rbm93biB0eXBlCgoyMDA0LTA5LTI4IDE1OjI0ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgdXNlIHRoZSBjb3JyZWN0IGh0b25zIGZ1bmN0aW9uIHRvIGFzc2lnbiB0byBhIE5CTyBvYmplY3QuCgoyMDA0LTA5LTI4IDEzOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgLSBmaXJzdCB1cGRhdGUgaW4gYSB3aGlsZQogICAtIHVzZSBjcmVhdGVfZmV3ZXJfZmlsZXMgdG8gZGV0ZXJtaW5lIGNvcnJlY3QgZmlsZSBuYW1lCiAgIC0gY2hnIGluZGV4IGNvbnRleHQgdG8gbWliIGNvbnRleHQKICAgLSBjaGcgdGFibGUgY29udGV4dCB0byByb3cgcmVxdWVzdCBjb250ZXh0CiAgIC0gcmVtb3ZlIGFzc3VtcHRpb25zIGFib3V0IGRhdGEgYWNjZXNzIG1ldGhvZAogICAtIGFkZCBleGFtcGxlIGZ1bmN0aW9uIGZsb3cgKHcvc291cmNlIGZpbGUpIGZvciB2YXJpb3VzIHJlcXVlc3Qgc2NlbmFyaW9zCgoyMDA0LTA5LTI4IDA2OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIGRlYnVnCgoyMDA0LTA5LTI4IDA1OjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIGZpeCBsZW5ndGggZm9yIG1lbWNweQoKMjAwNC0wOS0yNyAxNzoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZml4IGEgZmV3IGRlYnVnIG1lc3NhZ2VzCiAgIC0gbG9nIGVycm9yIG9uIHVrbm93biBjb2x1bW4KICAgLSBkb24ndCBwdXQgdW5kb18oc2V0dXB8Y2xlYW51cCkgaW4gaW50ZXJmYWNlIGNvZGUgZm9yIGdlbmVyYXRlZCBzdHJ1Y3R1cmVzCiAgIC0gY2FsbCBub2RlIHVuZG9fc2V0dXAgZnVuY3Rpb25zIGFmdGVyIHJvdyB1bmRvX3NldHVwCgoyMDA0LTA5LTI3IDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHJlbW92ZSBhIGJsYW5rIGxpbmUgdGhhdCBzbnVjayBpbgoKMjAwNC0wOS0yNyAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgZml4IGxvZ2ljIHRlc3QgKGRlZnZhbCBpcyBhIHN0cmluZywgbm90IGEgZmxhZykKCjIwMDQtMDktMjcgMTc6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHNraXAgdW5kb19jbGVhbnVwIGlmIHVuZG9fc2V0dXAgd2Fzbid0IHJ1bgoKMjAwNC0wOS0yNyAxNDozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIGZpeGluZyBTWU5PUFNJUyBpbiBzbm1wbmV0c3RhdCwgc25tcGRlbHRhIGFuZCBzbm1wZGYKCjIwMDQtMDktMjcgMTQ6MjEgIGFsZXhfYgoKICAgKiBtYW4vOiBzbm1wZGVsdGEuMSwgc25tcGRmLjEsIHNubXBuZXRzdGF0LjE6CgogICBNYWtlIGNvbW1hbmRzIGluIFNZTk9QU0lTIC8gREVTQ1JJUFRJT04gc2VjdGlvbiBib2xkCgoyMDA0LTA5LTI3IDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWxsb3cgZm9yIGZpbmVyIGdyYWluZWQgZGVidWcgY29udHJvbAoKMjAwNC0wOS0yNyAxMDo0NCAgYWxleF9iCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWVyZ2VkIG1vc3QgV3JpdGVUb0V2ZW50TG9nIGFuZCBEaXNwbGF5RXJyb3IgY2FsbHMgaW50byBQcm9jZXNzRXJyb3Igc28gZXZlbnQsIGNvbnNvbGUgJiBwb3AtdXAgbWVzc2FnZXMgYXJlIGNvbnNpc3RlbnQuICBDaGFuZ2VkIGFsbCBzdHByaW50ZidzIHRvIHNucHJpbnRmcy4KCjIwMDQtMDktMjcgMDY6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IHR5cG8KCjIwMDQtMDktMjcgMDU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZG9uJ3QgbW9kaWZ5IHRhYmxlIHJlcXVlc3QgZGF0YSBpZiBubyBuZXh0IGNvbHVtbgoKMjAwNC0wOS0yNiAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgLSBkZWJ1ZyB0b2tlbiBjb25zaXN0ZW5jeQogICAtIHJlbW92ZSBkdXBsaWNhdGUgdmFsdWUgbWFwIGZvciBpbmRleGVzCgoyMDA0LTA5LTI2IDEzOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIG5vZGUtZ2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgICAgcGFyZW50LXNldC5tMmk6CgogICAtIGRlYnVnIHRva2VuIGNvbnNpc3RlbmN5CiAgIC0gYWRkIG1pc3NpbmcgZGVidWdzCgoyMDA0LTA5LTI2IDEzOjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBmaXggcGF0aHMKCjIwMDQtMDktMjQgMTI6MDMgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICB3aGVuIGNyZWF0aW5nIGFkZHJlc3MgZnJvbSBvc3RyaW5nLCBjb252ZXJ0IHBvcnQgdG8gbmV0d29yayBieXRlIG9yZGVyCgoyMDA0LTA5LTI0IDA5OjE1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gZml4IGNvbW1hcyBpbiBjb21tZW50ZWQgb3V0IGl0ZW1zCgoyMDA0LTA5LTI0IDA3OjU0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgTGludXggbWVtb3J5IGJ1ZmZlcnMgcGF0Y2ggZnJvbSBLYWogTmllbWkgKEZlZG9yYSAqaHJfc3RvcmFnZS1tYnVmLXYyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGluaXQgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIHNhX2VudGVycHJpc2VvaWRfbGVuIChGZWRvcmEgKnNtdXgtc3RhY2stdmFyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgd2hlbiBjcmVhdGluZyBhZGRyZXNzIGZyb20gb3N0cmluZywgY29udmVydCBwb3J0IHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgoKMjAwNC0wOS0yNCAwNjoxOCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcGF0Y2ggOTIzNTExIGFkZHMgc3VwcG9ydCBmb3Igbm9uLWhvc3Qgc2VydmljZSBwcmluY2lwYWwgZm9yIGtzbQoKMjAwNC0wOS0yNCAwNTo1MCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoIDEwMTAzOTUgcmVtb3ZlIGR1cGxpY2F0ZSBjaGVja3MgZm9yIHNucHJpbnRmIGFuZCBzdHJ0b3VsCiAgIHBhdGNoIDEwMDk3MTIgY2hlY2sgZm9yIGdldGhvc3RieW5hbWUgaW4gLWxzb2NrZXQgZm9yIFVuaXh3YXJlCgoyMDA0LTA5LTI0IDA1OjMwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggMTAzMjYwMiBzdXBwb3J0cyBMaW51eCBjcm9zcyBjb21waWxlciBmb3IgV2luZG93cyAodGFyZ2V0IG1pbmd3MzJtc3ZjKS4KCjIwMDQtMDktMjMgMTY6MTUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQ6CgogICB1bmRvIHBhdGNoICMxMDI3NTIyIGFzIGl0IHZpb2xhdGVzIFJGQyAxOTAyIHNlY3Rpb24gMTAuMgogICB3aGVuIHRoZSBNSUIgb2JqZWN0cyB3ZXJlIGNoYW5nZWQuCgoyMDA0LTA5LTIzIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9zY2FwaS5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgcmVxdWlyZWQgbGVuZ3RoIG9mIGEgcHJpdmFjeSBrZXkKCjIwMDQtMDktMjMgMTM6MjQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKOgoKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlCiAgIC0gZml4IGZ1bmN0aW9uIGNhbGwKICAgLSBmaXggcmVuYW1lZCB2YXIgbWlzc2VkIGluIG1lcmdlCgoyMDA0LTA5LTIzIDA5OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0OgoKICAgYXBwbHkgcGF0Y2ggIzEwMjc1MjIgdG8gcGVybWl0IHJlcG9ydGluZyBuZWdhdGl2ZSBzZW5zb3IgdmFsdWVzCgoyMDA0LTA5LTIzIDA5OjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYXBwbHkgbW9kaWZpZWQgcGF0Y2ggIzEwMjc1MjEgdG8gZml4IHByb2JsZW1zIHdpdGggc2Vuc29yIGNhdGVnb3JpZXMgKHR5cGVzKS4KCjIwMDQtMDktMjMgMDg6NTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBhcHBseSBwYXJ0IG9mIHBhdGNoICM5NjAyNjkgdG8gcmVsZWFzZSBtZW1vcnkgcmV0dXJuZWQgZnJvbSBzZW5zb3JfZ2V0X2xhYmVsCgoyMDA0LTA5LTIyIDE3OjUxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaHRtbGhlbHAvOiBzbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBzbm1wZC5jb25mLndpbjMyLmh0bWwsIHNubXB0cmFwZC5jb25mLndpbjMyLmh0bWw6CgogICBwYXRjaCAxMDMzMDUyIGZyb20gQWxleCBCdXJnZXI6IFdpbjMyOiBVcGRhdGVkIGh0bWxoZWxwIGZpbGVzIGZvciAqLmNvbmYKCjIwMDQtMDktMjIgMTE6MjAgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICBhcHBseSBwYXRjaCAjMTAzMDkxMyB0byBzdXBwcmVzcyB3aW5kb3dzIHBvcHVwcyBmb3Igc2VydmljZSByZWcvdW5yZWcgZXJyb3JzLgogICBlcnJvcnMgYXJlIHByaW50ZWQgdG8gc3RkZXJyIGlmIC1xdWlldCBwYXJhbWV0ZXIgaXMgc3VwcGxpZWQuCgoyMDA0LTA5LTIyIDExOjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sOgoKICAgYXBwbHkgcGF0Y2gjMTAzOTAwIHNvIHRoYXQgaW50cm8gbW9yZSBjbG9zZWx5IG1hdGNoZXMgY3VycmVudCB3ZWIgc2l0ZSBob21lIHBhZ2UuCiAgIGFsc28gYWRqdXN0IGJ1aWxkIGluc3RydWN0aW9ucyB0byByZW1vdmUgZXhhbXBsZSBhbmQgZGVtbyBNSUJzIGZyb20gYnVpbGQuCgoyMDA0LTA5LTIyIDExOjAxICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYXBwbHkgcGF0Y2gjMTAyODk3NiBjaGVjayB2YWx1ZXMgZm9yIGxhYmVsLCBpaWQgYmVmb3JlIGRlcmVmZXJlbmNlLgogICBGaXhlcyBwZXJsIG1vZHVsZSBmYXVsdCwgYXN5bmMgY2FsbGJhY2suIFNlZSBSZWRIYXQgYnVnICMxMTEzMTkKCjIwMDQtMDktMjIgMDk6MzYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgcGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gc3VwcG9ydCBrZXkgY2hhbmdpbmcgZm9yIGxvY2FsaXplZC1vbmx5IGtleXMKCjIwMDQtMDktMjIgMDc6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGF0Y2ggMTAyODkyNyBmcm9tIEFuZHkgU21pdGggZml4ZXMgYnVnIDk3Mjc5NzsgcmVnaXN0ZXJpbmcgd2luMzIKICAgc25tcGQvc25tcHRyYXBkIHNlcnZpY2VzIGluY2x1ZGVzIHBhdGhzIHRvIGNvbmZpZyBmaWxlIGFuZCB0byBsb2cgZmlsZS4KCjIwMDQtMDktMjIgMDc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yMSAxOTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yMSAxOTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIG1hY3JvcyB0aGF0IGFyZSBpbiBtZmQuaAoKMjAwNC0wOS0yMSAxOTozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGZpeCB0eXBvCgoyMDA0LTA5LTIxIDE5OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIG9ubHkgZ2VuZXJhdGUgcm93IGNyZWF0aW9uIGNoZWNrIGlmIG0yY190YWJsZV9yb3dfY3JlYXRpb24gc2V0CgoyMDA0LTA5LTIxIDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICAtIHNldCB1cCBtYWNybyB3L3JlcXVpcmVkIGNvbHVtbnMgZm9yIHJvdyBjcmVhdGlvbgoKMjAwNC0wOS0yMSAxNjo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmY6CgogICBzdG9yYWdlIGZvciB0YWJsZSBpbmRleGVzIGFuZCBjb2x1bW5zCgoyMDA0LTA5LTIxIDE2OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBtb3ZlIHJvd19tZXJnZSBhZnRlciB0YWJsZV9jb250YWluZXIgaW4gaGFuZGxlciBjaGFpbgoKMjAwNC0wOS0yMSAxNjozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gaW5jcmVhc2UgY29udGV4dCBmb3IgZGlmZgogICAtIGluY3JlYXNlIGZ1enogZm9yIHBhdGNoCgoyMDA0LTA5LTIxIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSBhbGxvY2F0ZSB0YWcgc3RvcmFnZSBlYXJsaWVyLCB3aXRoIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0aW9uCiAgIC0gYWxsb2Mgc3BhY2UgZm9yIG51bGwgdGVybWluYXRpb24gb2YgbmFtZQogICAtIHJldHVybiBlcnJvciBpZiBhbGxvY2F0aW9ucyBmYWlsCgoyMDA0LTA5LTIxIDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHNldCBlbmRvZm1pYnZpZXcgd2hlbiBnZXRuZXh0IGdvZXMgYmV5b25kIGxhc3QgaXRlbSBpbiB0YWJsZQoKMjAwNC0wOS0yMSAxNjoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBtYXJrIHByb2Nlc3NlZCByZXF1ZXN0cyBhcyBET05FIHNvIHRoZXkgYXJlbid0IG1lcmdlZAoKMjAwNC0wOS0yMSAxNDo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGlmZGVmL2NvbW1lbnQgc29tZSBkZWJ1ZyBhc3NlcnQgY29kZSB0aGF0IGdldHMgaGl0IGluIHJhcmUgY2FzZXMKCjIwMDQtMDktMjEgMTI6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgcGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gc3VwcG9ydCBrZXkgY2hhbmdpbmcgZm9yIGxvY2FsaXplZC1vbmx5IGtleXMKCjIwMDQtMDktMjEgMDY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmEgdG8gZml4IERIIGtleSBsZW5ndGhzCgoyMDA0LTA5LTIxIDA2OjQzICBoYXJkYWtlcgoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKOgoKICAgY2hlY2sgYSBmZXcgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0KCjIwMDQtMDktMTcgMDE6MjIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3IgYW5kIGluY2x1ZGUgcnBtL3JwbWRiLmgKCjIwMDQtMDktMTcgMDE6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFRoaXMgd2FzIG5vdCBhbHdheXMgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDA0LTA5LTE3IDAwOjU4ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBGaXggT3BlblNTTCBjaGVjaCB0byB3b3JrIG9uIDY0LWJpdCBTb2xhcmlzIGNvbXBpbGUgd2l0aCAzMi1iaXQgT3BlblNTTAogICBpbnN0YWxsZWQgLi4uCgoyMDA0LTA5LTE2IDEwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmYKCjIwMDQtMDktMTYgMTA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIGRvbid0IGZyZWUgTlVMTCBwb2ludGVyCiAgIC0gdXBjYXNlIGZpcnN0IHdvcmQgaW4gc2VudGVuY2UKICAgLSBleHBhbmQgbW9yZSBvbiBub0NyZWF0aW9uIGV4cGxhbml0b3J5IG1lc3NhZ2UKICAgLSBhZGQgZXhwbGFuaXRvcnkgbWVzc2FnZSBmb3IgaW5jb25zaXN0ZW50TmFtZQoKMjAwNC0wOS0xNiAxMDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGxvZyBlcnJvciBtZXNzYWdlIGlmIGEgTUlCIGRpcmVjdG9yeSBjYW5ub3QgYmUgb3BlbmVkCgoyMDA0LTA5LTE2IDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ublRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvTWFrZWZpbGUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgZGF0YSBhY2Nlc3MgZm9yIHRjcC1taWIgdGNwIGNvbm5lY3Rpb25zIChpcHY0IG9ubHkpCgoyMDA0LTA5LTE2IDA4OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzCiAgIC0gY3JlYXRlIGRlZmF1bHQtbm9kZS0ke25vZGV9Lm0yZCB3L2N1cnJlbnQgdmFsdWVzLCBpZmYgZG9lc24ndCBleGlzdAoKMjAwNC0wOS0xNiAwODoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBkb24ndCBnZW5lcmF0ZSBtYXBwaW5nIGNvZGUgaWYgc2tpcCBtYXBwaW5nIHNldAoKMjAwNC0wOS0xNSAxNzoyMiAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgZnJlZWJzZDUvNiBoZWFkZXJzCgoyMDA0LTA5LTE1IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBhbiBvcHBzLiAgRGVsZXRlIHRoZSB1c20gc3RhdGUgcmVmIGJlZm9yZSB0aGUgaGFuZGxpbmcgb2YgcmVwb3J0cyBzaW5jZSBpdCBkaWRuJ3QgbmVlZCBpdCBiZWZvcmUKCjIwMDQtMDktMTUgMDk6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgbWFrZSB0aGUgSGFuZGxlUmVwb3J0IGNhbGxiYWNrIHRha2UgYSB0cmFuc3BvcnQgcG9pbnRlcgoKMjAwNC0wOS0xNSAwOTo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBNYWtlIHRoZSB1c20gbW9kdWxlIGhhbmRsZSBpdHMgb3duIHJlcHJvdHMKCjIwMDQtMDktMTUgMDk6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IGZyZWUgdGhlIHN0YXRlIHJlZmVyZW5jZSB0aWxsIGFmdGVyIHRoZSBoYW5kbGVfcmVwb3J0X3BkdSBjYWxsYmFjayBpcyBjYWxsZWQuICBBbHNvIHBhc3MgaW4gdGhlIHRyYW5zcG9ydCB0byB0aGUgc2FtZSBob29rLgoKMjAwNC0wOS0xNSAwOToxOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBkYXJ3aW43IGhlYWRlcgoKMjAwNC0wOS0xNSAwNzoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGNoZWNrIGNvbHVtbl9zZXRfZmxhZ3MgdG8gc2VlIGlmIHJvd3N0YXR1cyBzZXQKICAgICAtIG9ubHkgY2hlY2sgdHJhbnNpdGlvbiBpZiBzZXQKICAgICAtIGNoZWNrIHJlcXVpcmVkIHJvd3Mgb24gY3JlYXRlQW5kR28KICAgICAtIGRvbid0IGFsbG93IGRlc3Ryb3kgaWYgb3RoZXIgY29sdW1ucyBzZXQKICAgLSBkb24ndCBhbGxvdyBjcmVhdGlvbiBpZiByb3dzdGF0dXMgbm90IHNldAoKMjAwNC0wOS0xNSAwNzoyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgLSByZW5hbWUgc2V0X2ZsYWdzCiAgIC0gYWRkIGNvbW1lbnQgYWJvdXQgcm93IGNyZWF0ZWQgZmxhZyBpbiByb3dyZXFfZmxhZ3MKCjIwMDQtMDktMTUgMDc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgY29tbWVudCBncmFtbWFyIHR3ZWFrCgoyMDA0LTA5LTE1IDA3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgcm93cmVxX2ZsYWdzCiAgIC0gcmVuYW1lIHNldF9mbGFncyB0byBjb2x1bW5fc2V0X2ZsYWdzCiAgIC0gdXNlIGNvbnRleHQgbmFtZSBmb3IgZXhhbXBsZSB1c2VyIGNvbnRleHQgZGF0YSBsaXN0CgoyMDA0LTA5LTE1IDA3OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IG1hY3JvIHRvIHZhbGlkYXRlIFNOTVAgZXJyb3IgY29kZXMKICAgLSB1c2UgbmV3IHJvd3JlcV9mbGFncyB0byBzZXQvY2xlYXIgbmV3IHJvdyBmbGFnCiAgIC0gc2V0IHJlcXVlc3QgZXJyb3Igb24gaW52YWxpZCBvaWQgZm9yIG5ldyByb3cKICAgLSBjbGVhciB1bmRvIHBvaW50ZXIgYWZ0ZXIgcmVsZWFzaW5nIGl0CiAgIC0gc2V0IFdST05HTEVOR1RIIGZvciBiYWQgdmFyaWFibGUgc2l6ZQoKMjAwNC0wOS0xNSAwNzoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgYWRkIGluY2x1ZGUgdG8gcXVpZXQgY29tcGlsZXIKCjIwMDQtMDktMTUgMDc6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICAtIGFkZCBwcm90b3R5cGUgZm9yIHNlX2ZpbmRfc2xpc3QKICAgLSB0d2VhayBjb21tZW50CgoyMDA0LTA5LTE1IDA3OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIG5ldyBtYWNybyB0byB2YWxpZGF0ZSBTTk1QIGVycm9yIGNvZGVzCgoyMDA0LTA5LTE1IDA3OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIC0gZGVmaW5lIGZsYWdzIGZvciByb3dyZXFfZmxhZ3MKCjIwMDQtMDktMTUgMDc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gbW92ZSBzdG9yYWdlIHR5cGUgaW50byBkYXRhIGFjY2VzcyBpbnRlcmZhY2UKICAgLSBhZGQvdXNlIHVuZG8gc3RvcmFnZSBmb3IgTGFzdENoYW5nZWQKICAgLSBhZGQgc3VwcG9ydCBmb3IgY3JlYXRpb24vZGVsZXRpb24gb2YgaXBhZGRyZXNzZXMgdmlhIFJvd1N0YXR1cwogICAtIGFkZCBmbGFncyBmb3IgcmVxdWlyZWQgY29sdW1ucwoKMjAwNC0wOS0xNSAwNjo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCgoyMDA0LTA5LTE1IDA2OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSB0d2VhayBsb2cgbWVzc2FnZSwgY29tbWVudHMKCjIwMDQtMDktMTUgMDY6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIHJlbW92ZSBhcmNoIGZsYWdzLCBhZGQgZGF0YSBsaXN0IGZvciBhcmNoIGRhdGEKICAgICAtIGFkZCAmIGNhbGwgYXJjaCBmdW5jdGlvbnMgb24gY3JlYXRlLCBjb3B5LCBkZWxldGUgaXBhZGRyZXNzIGVudHJ5CiAgIC0gYWRkIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAtIG5ldyBpcGFkZHJlc3Mgc2V0IChjcmVhdGUvZGVsZXRlIGlwIGFkZHJlc3MgYWxpYXNlcykKICAgLSBjaGFuZ2UgbWFjcm8gbmFtZQogICAtIGFkZCBmbGFnIGZvciBhbGlhc2VzCgoyMDA0LTA5LTE1IDA2OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSBhZGQgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGZpbmQgaW50ZXJmYWNlIG5hbWUgZnJvbSBpZkluZGV4CgoyMDA0LTA5LTE0IDE1OjAxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFVwZGF0ZSB0byBtb2R1bGFyaXplIGEgYml0IG1vcmUgdGhlIHNlY3VyaXR5IG1vZGVsIGluZnJhc3RydWN0dXJlOiByZXBvcnQgaGFuZGxpbmcgb3V0c291cmNlZCB0byB0aGUgc2VjbW9kCgoyMDA0LTA5LTEzIDE5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oLAogICAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwKICAgICBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIC0gcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIHJlbW92ZSAnOycgZnJvbSBleHRlcm4gJ0MnIGhlYWRlciBjb250cnVjdHMKICAgICAoYWxsb3cgZysrIDMuNCBhbmQgYWJvdmUgdG8gY29tcGlsZSBuZXQtc25tcCkKCjIwMDQtMDktMTMgMDM6MzQgIHNsaWYKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2M2NvbmZpZzoKCiAgIHdoZW4gbWF0Y2hpbmcgQ1BQIGRlZmluZXMsIG1hdGNoIHRoZSBvbmVzIHdoaWNoIGJlZ2luIHRoZSBzb3VyY2UgaGVhZGVyIGxpbmUuCgoyMDA0LTA5LTEzIDAzOjIwICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaGMKLCB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhocCwKICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3JlYWRtZTJodG1sOgoKICAgYXBwbHkgcGF0Y2ggIzEwMjY2OSBXaW4zMiA1LjIgYnVpbGQgdXBkYXRlc2AKCjIwMDQtMDktMTIgMjI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgLSBpbmNsdWRlIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cwogICAtIGluaXRpYWxpemUgZGVmYXVsdHMgcGVyIHRoZSBtaWIKCjIwMDQtMDktMTIgMjI6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBjaGFuZ2UgY29tbWVudAogICAtIGFkZCBzdG9yYWdlIHR5cGUKICAgLSBkZWZpbmUgZmxhZ3MgZm9yIHNldCBzdXBwb3J0CgoyMDA0LTA5LTEyIDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCBkYXRhIGxvb2t1cCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSB2YXJiaW5kcwoKMjAwNC0wOS0xMiAyMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggc2tpcHBpbmcgb2YgdW4tcmVnaXN0ZXJlZCBtb2RlcwogICAtIHJlbW92ZSByZXF1ZXN0IG5leHRfbW9kZSBzdHVmZiAobmV2ZXIgdXNlZCkKICAgLSBzaG9ydGVuIG11eCBkZWJ1ZyB0b2tlbgoKMjAwNC0wOS0xMCAxNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBkb24ndCBtYXNrIHJldHVybiBjb2RlcyBpbiBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMDQtMDktMTAgMTU6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaDoKCiAgIGFkZCB1bmRvIHN0b3JhZ2UgZm9yIHJvd3N0YXR1cyBhbmQgc3RvcmFnZSB0eXBlCgoyMDA0LTA5LTEwIDE0OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICAtIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2JhYnlfc3RlcF9tb2RlMmZsYWcKICAgLSB1c2UgbmV3IGZ1bmN0aW9uLCBzbyBza2lwcGluZyB1bnJlZ2lzdGVyZWQgbW9kZXMgd29ya3MKCjIwMDQtMDktMTAgMTQ6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICAtIHVzZSBtZmQgc3VjY2UgbWFjcm8gaW5zdGVhZCBvZiBzbm1wIG1hY3JvCiAgIC0gaWYgY2hlY2sgcmV0dXJucyBhbiBlcnJvciwgcmV0dXJuIGltbWVkaWF0ZWx5CgoyMDA0LTA5LTEwIDE0OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1TdG9yYWdlVHlwZS1kZXBlbmRlbmNpZXMubTJpOgoKICAgdXNlIGNvcnJlY3QgZnVuY3Rpb24gbmFtZQoKMjAwNC0wOS0xMCAxMzowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGFkZCBkZWZpbmUgdG8gYWxsb3cgcm93LWNyZWF0aW9uCgoyMDA0LTA5LTEwIDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMTAgMDU6MzAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ2hlY2sgdGhhdCBhIHZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgdmFsaWQgTUlCIG9iamVjdCwKICAgYmVmb3JlIHRyeWluZyB0byBsb29rIGF0IGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIG9iamVjdC4KICAgKEZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBNRkQgc2NyaXB0cywgd2hpY2ggdXNlIHRoZSBtaWIyYwogICAgdmFyaWFibGUgZXhwYW5zaW9ucyBmb3Igbm9uLU1JQi1vYmplY3QgbmFtZXMgYXMgd2VsbCkuCgoyMDA0LTA5LTA5IDE2OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggbG9nIG1zZyB0eXBvCiAgIC0gc2V0IHJlcXVlc3QgZXJyb3JzIGluc3RlYWQgb2YgcmV0dXJuaW5nIGVycm9yIGZyb20gaGFuZGxlcgogICAtIGRlYnVnIG1zZ3MgZm9yIHJlcXVlc3QgZXJyb3JzCgoyMDA0LTA5LTA5IDE2OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBhZGQgbWlzc2luZyBxdW90ZQoKMjAwNC0wOS0wOSAwOToxNyAgZHRzMTIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gbmV3IE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydAogICAocGx1cyBtaW5vciBncmFtbWFyIGFuZCBmb3JtYXR0aW5nIHR3ZWFrcykKCjIwMDQtMDktMDkgMDc6MDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgYXBwbHkgcGF0Y2ggIzEwMjQzNTIgQ2hhbmdlcyBXaW5kb3dzIGluc3RhbGxlciB0byBhbGxvdyBzbm1wdHJhcGQgYXMgc2VydmljZS4KCjIwMDQtMDktMDkgMDY6NDkgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgZm9ybWF0dGluZyBwYXRjaCAjMTAyNDc0NiAob25lLWxpbmVyKSBmcm9tIEFsZXggQnVyZ2VyLgoKMjAwNC0wOS0wOSAwMzo0MyAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgZml4IGJ1ZyMxMDI1MDE0IC0gcmVtb3ZlIHVudXNlZHMsIHF1ZWxsIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5ncyBpbiA1LjIucHJlMQoKMjAwNC0wOS0wOSAwMzozMSAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbGFyZSBleHRlcm5hbCBmdW5jdGlvbiB3aXRoaW4gc2NvcGUgdXNlZC4KCjIwMDQtMDktMDkgMDM6MjIgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBidWcjMTAyNTAwNCBhcHBseSBtaW5vciBjb21tZW50IGFuZCBncmFtbWFyIGZpeGVzIHRvIHNubXBkLHNubXB0cmFwZAoKMjAwNC0wOS0wOCAyMDo1MiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcGFydGlhbCBmaXggYnVnICM5MDkyMjIgLSBtb3ZlIHdpbjMyIGNoYW5nZXMgaW5zaWRlICBfZGlzYWJsZV9zeXNsb2d7ZW50cnl9LAogICBkb250IHdyaXRlIHN0YW5kYXJkIGVycm9yIG9uIGZhaWx1cmUgdG8gY2xvc2UgZXZlbnQgbG9nIGZyb20gZGlzYWJsZV9zeXNsb2cuCgoyMDA0LTA5LTA4IDE4OjQzICBzbGlmCgogICAqIHdpbjMyLzogYWdlbnRfbW9kdWxlX2RvdF9jb25mLmgsIGFnZW50X21vZHVsZV9pbmNsdWRlcy5oCiwgYWdlbnRfbW9kdWxlX2luaXRzLmgsIGJ1aWxkLnBsLAogICAgIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIG5ldHNubXBtaWJzL01ha2VmaWxlLmluCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEFwcGx5IG1vZHMgaW4gcGF0Y2ggIzEwMjQ4MTAgaW4gb3JkZXIgdG8gYnVpbGQgNS4yLnByZTEgb24gd2luMzIgTVNWQytNaW5HVy4KCjIwMDQtMDktMDggMDg6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIGZpeCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSBtYWNybyBuYW1lCgoyMDA0LTA5LTA3IDIwOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBtYXAgZGF0YSBhY2Nlc3MgaWYgYWRkcmVzcyB0eXBlIHRvIG1pYiB0eXBlIGluIGluZGV4CgoyMDA0LTA5LTA3IDIwOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgcGFzcyBjb3JyZWN0IGNvbnRhaW5lciB0byB1cGRhdGUgY2hlY2sgZnVuY3Rpb25zbyBtaXNzaW5nIGFkZHJzIGFyZSByZW1vdmVkCgoyMDA0LTA5LTA3IDIwOjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgbnVsbCByb3dyZXFfY3R4IGlzIHZhbGlkIGluIHVuZG9fY2xlYW51cDsgc2ltcGx5IHJldHVybiBzdWNjZXNzCgoyMDA0LTA5LTA3IDIwOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSBmaXggaWZJbmRleCBsb29rdXAgZm9yIGludGVyZmFjZSBhbGlhc2VzCiAgIC0gYWRkIGRlYnVnIG1lc3NhZ2UKICAgLSBuZXcgZnVuY3Rpb24gdG8gc2V0IGlwYWRkcmVzcwoKMjAwNC0wOS0wNyAyMDozNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGFkZCBzZSBwYWlycyBmb3IgYmFieSBzdGVwIG1vZGVzCgoyMDA0LTA5LTA3IDIwOjMyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIGtlZXAgcmVnaXN0ZXJlZCBtb2RlcyB3aXRoIG1pYiBoYW5kbGVyCiAgIC0gc2tpcCBsb3dlciBoYW5kbGVycyBmb3IgbW9kZXMgdGhhdCBoYW5kbGVyIGRpZG50IHJlZ2lzdGVyIGZvcgogICAtIHNraXAgdW5kbyBjb21taXQgaWYgaGFuZGxlciB3YXNudCBjYWxsZWQgZm9yIGNvbW1pdAogICAtIGRvbnQgYnJlYWsgb24gcmVxdWVzdCBlcnJvciBpbiBmaW5hbCBzdGVwcyAoZXF1aXZhbGVudCBvZiBjb21taXQvdW5kby9mcmVlKQogICAtIG1vcmUgZGVidWcgbXNncwoKMjAwNC0wOS0wNyAyMDoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgLSBzeW5jIG5hbWVzIG9mIEJBQllfU1RFUF8qIHdpdGggTU9ERV9CU1RFUF8qCiAgIC0gZGVmaW5lIHN0cnVjdHVyZSBmb3IgYmFieSBzdGVwcyBoYW5kbGVyIG1vZGUgdHJhY2tpbmcKCjIwMDQtMDktMDcgMjA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGFkZCBkZWJ1ZyBtc2cKCjIwMDQtMDktMDYgMjA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC0gYWRkIHBlcnNpc3RlbmNlIGZvciBpZkFsaWFzLCBpZkxpbmtVcERvd25UcmFwRW5hYmxlCiAgIC0gZG9uJ3QgYWxsb3cgc2V0IG9mIHByb21pc2N1b3VzIG1vZGUsIHNpbmNlIGl0J3Mgbm90IGltcGxlbWVudGVkCgoyMDA0LTA5LTA2IDE5OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBmaXggZml4ZWQgc2l6ZSBjaGVjawogICAtIGFkZCBhY2Nlc3MgdG8gY29udGFpbmVyIHBvaW50ZXIKCjIwMDQtMDktMDYgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIGRvbid0IGdlbmVyYXRlIGZpeGVkIHNpemUgY2hlY2sgZm9yIG9jdGV0IHN0cmluZ3MKCjIwMDQtMDktMDYgMTk6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgc2V0IHVwIHZhcnMgZm9yIGxlbmd0aHMgdG8gYmUgY29waWVkIGNvcnJlY3RseQoKMjAwNC0wOS0wNSAxODo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgcmVtb3ZlIGV4dGVybiBvZiBub24tZXhpc3RhbnQgdmFyCgoyMDA0LTA5LTAyIDA3OjIyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGRvbnQgaW5jbHVkZSBieXRlb3JkZXIuaCAtLSBhdm9pZHMgd2FybmluZyBzZWVuIG9uIFJlZEhhdAoKMjAwNC0wOS0wMiAwNjo1OCAgZHRzMTIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gdGhlIG90aGVyIG5ldyBtaWIyYyBjb25maWcgdGVtcGxhdGVzLCBhbmQgcHJvdmlkZSBhIGxpdHRsZQogICBtb3JlIGV4cGxhbmF0aW9uLiAgKFBsdXMgZml4aW5nIGEgY291cGxlIG9mIHR5cG9zKQoKMjAwNC0wOS0wMiAwNjo1MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBmaXggIzk5NTQ4OSBieSBvYnRhaW5pbmcgc3lzRGVzY3IgYW5kIHN5c0NvbnRhY3QgdGhyb3VnaCB3aW5kb3dzIG5hdGl2ZSBtZXRob2RzLgoKMjAwNC0wOS0wMiAwMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gcmVxdWlyZSBhbGwgaWYtbWliIGludGVyZmFjZSBmb3IgbGludXgKCjIwMDQtMDktMDIgMDA6MDQgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAyICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAxICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDEgMjM6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgcmVxdWlyZSBleHBsaWNpdCBjb25maWd1cmUgZmxhZyBmb3IgZXhwZXJpbWVudGFsIG1mZCByZXdyaXRlIG1vZHVsZXMKCjIwMDQtMDktMDEgMjM6NTEgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBtZXJnZSA1LjEuMiBuZXdzCiAgIC0gYWRkIG90aGVyIHRpZGJpdHMgZ2xlYW5lZCBmcm9tIENoYW5nZWxvZwoKMjAwNC0wOS0wMSAyMzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4yLnByZTEKCjIwMDQtMDktMDEgMjI6NTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIG1hbiBwYWdlcwoKMjAwNC0wOS0wMSAyMjo1MSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zOgoKICAgY2hlY2sgaW4gbmV3IG1hbiBwYWdlcwoKMjAwNC0wOS0wMSAyMjozNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0wOS0wMSAyMjoxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgYWZ0ZXIgcnVubmluZyBhdXRvaGVhZGVyCgoyMDA0LTA5LTAxIDIyOjE0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB1cGRhdGUgZm9yIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIyOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNvbnZlcnQgQysrIHN0eWxlIGNvbW1lbnRzIHRvIEMgc3R5bGUgY29tbWVudHMgKG9yIHJlbW92ZSB0aGVtKQoKMjAwNC0wOS0wMSAyMjowNSAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICByZWFkbWUgZm9yIE1hYyBPUyBYCgoyMDA0LTA5LTAxIDIyOjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAyMjowMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIxOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXhwcmVzc2lvbi9nbnVjLmgsIGV4cHJlc3Npb24vaW42LmgKLCBleHByZXNzaW9uL2lwX3Zhci5oLCBleHByZXNzaW9uL2lwdjYuaCwKICAgICBleHByZXNzaW9uL3VkcF92YXIuaCwgcGluZy9nbnVjLmgsIHBpbmcvaW42LmgsCiAgICAgcGluZy9pcF92YXIuaCwgcGluZy9pcHY2LmgsIHBpbmcvdWRwX3Zhci5oLAogICAgIHRyYWNlcm91dGUvZ251Yy5oLCB0cmFjZXJvdXRlL2luNi5oLAogICAgIHRyYWNlcm91dGUvaXBfdmFyLmgsIHRyYWNlcm91dGUvaXB2Ni5oLAogICAgIHRyYWNlcm91dGUvdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmg6CgogICByZW1vdmUgR1BMIGxpY2Vuc2UgY29kZSwgcGx1cyBzb21lIGd1aWx0eS1ieS1hc3NvY2lhdGlvbiBmaWxlcwoKMjAwNC0wOS0wMSAyMDoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDIwOjEzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgb3BlbmJzZCBuZWVkcyBzeXMvdHlwZXMgYmVmb3JlIHRjcGQuaAoKMjAwNC0wOS0wMSAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgdHdlYWsgY29tbWVudCBhbmQgbG9nIG1lc3NhZ2UgZm9ybWF0CgoyMDA0LTA5LTAxIDE5OjMyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAtIHdoaXRlc3BhY2UgY2hhbmdlIHRvIGFkZCByZWFsIGxvZyBtZXNzYWdlIChsYXN0IGNoZWNraW5nIGhhZCB3cm9uZyBsb2cgbWVzc2FnZSkKICAgLSBhZGQgcG9ydCBudW1iZXIgdG8gZGVidWcgc3RhdGVtZW50CgoyMDA0LTA5LTAxIDE5OjI4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICAtIGluY3JlYXNlIG1heF9zZW5zb3JzCiAgIC0gYnJlYWsgd2hlbiBudW1iZXIgb2Ygc2Vuc29ycyBleGNlZWRzIG1heF9zZW5zb3JzCiAgIC0gYWRkIGRlYnVnCgoyMDA0LTA5LTAxIDE5OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAxOToyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJhaWwgaWYgbG1fc2Vuc29ycyBoZWFkZXIvbGliIGNoZWNrcyBmYWlsCgoyMDA0LTA5LTAxIDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIC0gZG9uJ3QgcmV0dXJuIGhhbmRsZXIgaWYgY2FuJ3QgYWxsb2NhdGUgc2dyb3VwCiAgIC0gdXNlIGxvY2FsIHZhciBmb3Igcm9vdG9pZCBtYWNoaW5hdGlvbnMsIGluc3RlYWQgb2YgcmVnaW5mbyByb290b2lkCiAgICAgKHJlYWxsb2Mgb2YgZXh0cmEgc3Vib2lkcyBkb2Vzbid0IHN1cnZpdmUgcmVnaXN0cmF0aW9uLCB3aGVuIHN1YnRyZWVfc3BsaXQKICAgICBjYWxscyBuZXRzbm1wX3N1YnRyZWVfZGVlcGNvcHkoKSkgW3Njb3JlIG9uZSBmb3IgbGliZWZlbmNlXQoKMjAwNC0wOS0wMSAxNzowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIG9ubHkgY29uZmlnX3JlcXVpcmUgaWYtbWliIGludGVyZmFjZV9jb21tb24sIG5vdCBhbGwgb2YgaWYtbWliIGludGVyZmFjZQoKMjAwNC0wOS0wMSAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICByZW1vdmUgY29uZmlnX3JlcXVpcmUgZm9yIHBsYXRmb3JtcyB3aGljaCBoYXZlbid0IGJlZW4gcG9ydGVkIHlldAoKMjAwNC0wOS0wMSAxNzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9jb21tb24uYzoKCiAgIGlmZGVmIG91dCBhcmNoIHNwZWNpZmljIGZ1bmN0aW9ucyBpZiBhcmNoIG5vdCBzdXBwb3J0ZWQKCjIwMDQtMDktMDEgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgb25seSByZXF1aXJlIG5ldyBtZmQgbW9kdWxlcyBmb3IgbGludXgsIHVudGlsIG90aGVyIHBsYXRmb3JtcyBhcmUgcG9ydGVkCgoyMDA0LTA5LTAxIDE1OjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGluY2x1ZGUgYXNtL3R5cGVzLmggc28gdGhhdCBhZ2VudCB3aWxsIGJ1aWxkIG9uIE1hbmRyYWtlIGZsYXZvcmVkIExpbnV4LgoKMjAwNC0wOS0wMSAxNDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50CiAgIC0gZG9jdW1lbnQgdXNlIG9mIHNpbXBsaXN0aWMgX2xvY2sKCjIwMDQtMDktMDEgMTQ6MzAgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDYuaDoKCiAgIHByb3ZpZGUgaGVhZGVyIGZvciBGcmVlQlNEIDYuIGZpeGVzIGJ1ZyMxMDE4MjA5CgoyMDA0LTA5LTAxIDE0OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBvbmx5IGxvZyBvcGVuIGVyciBvbmNlICh1bnRpbCBzdWNjZXNzLCB0aGVuIHJlc2V0IGZsYWcpCgoyMDA0LTA5LTAxIDE0OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBjaGVjayBmb3IgTlVMTCBwb2ludGVyIGZyb20gZGF0YSBhY2Nlc3Mgcm91dGluZXMsICYgcmV0dXJuIHJlc291cmNlIHVuYXZhaWxhYmxlCgoyMDA0LTA5LTAxIDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gb25seSBsb2cgZmlsZSBvcGVuIGVycm9yIG9uY2UgKHVudGlsIGEgc3VjY2Vzc2Z1bCBvcGVuKQogICAtIHJldHVybiBubyBlcnJvciBpZiBjb3VsZG4ndCBvcGVuIGlwdjYsIHNvIHdlIGNhbiBjb250aW51ZSB3L2lwdjQKCjIwMDQtMDktMDEgMTA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBlbGltaW5hdGUgZG91YmxlIGZyZWUgb24gZHVwbGljYXRlIHJlZ2lzdHJhdGlvbgogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgICAoaS5lLiBhbHdheXMgZnJlZSByZWdpbmZvIGlmIHJlZ2lzdHJhdGlvbiBmYWlscykKCjIwMDQtMDktMDEgMTA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGVsaW1pbmF0ZSBkb3VibGUgZnJlZSBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCgoyMDA0LTA5LTAxIDA4OjI1ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEF0dGVtcHQgdG8gZW5zdXJlIHRoYXQgJ2ludDMyX3QnIGFuZCAoaWYgYXBwcm9wcmlhdGUpICdpbnQ2NF90JwogICB0eXBlcyAocGx1cyB1bnNpZ25lZCBlcXVpdmFsZW50cykgYXJlIGF2YWlsYWJsZS4KCjIwMDQtMDktMDEgMDY6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIFJlbW92ZSB1bmJhbGFuY2VkICJAZW5kQCIgc3RhdGVtZW50cy4KCjIwMDQtMDktMDEgMDU6NTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBQcm92aWRlIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGFibGUgY29uZmlnIHRlbXBsYXRlcywgYW5kCiAgIGRlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZW0gYSBsaXR0bGUgbW9yZSBmdWxseS4KCjIwMDQtMDktMDEgMDU6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmY6CgogICBGaXggbWlub3IgdHlwbwoKMjAwNC0wOC0zMSAyMTozNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gaW5mb3JtYXRpb24KICAgLSBhZGQgbm90ZSBvbiBydW5uaW5nIGN2czJjbCBvbiBhIGJyYW5jaAoKMjAwNC0wOC0zMSAyMToyNiAgcnN0b3J5CgogICAqIG1hbi9taWIyYy4xLmRlZiwgbG9jYWwvbWliMmMuY29uZjoKCiAgIGFkZCBpbmZvcm1hdGlvbiBhYm91dCBtaWIyYy5tZmQuY29uZgoKMjAwNC0wOC0zMSAyMDowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gdXBkYXRlIGNvbW1lbnRzIG9uIGxpYnRvb2wgdmVyc2lvbmluZwogICAtIHVwZGF0ZSBmb3IgNS4yCgoyMDA0LTA4LTMxIDE2OjQzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGZpeCBmbG9hdCBjYWxjIGluIHZhcl9leHRlbnNpYmxlX2Rpc2sgcGVyIEhhcmFsZCBTdHJh32JlcmdlciA8aHNAc3lzbG9nLmF0PgoKMjAwNC0wOC0zMSAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGFnZW50X21vZHVsZV9jb25maWcuaAoKMjAwNC0wOC0zMSAwMzoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgRGVjbGFyZSBoYW5kbGVycyBhcyBSV1JJVEUvUk9OTFkgYXMgYXBwcm9wcmlhdGUuCiAgIFN1cHByZXNzIFNFVCBoYW5kbGluZyBjb2RlIGZvciByZWFkLW9ubHkgdGFibGVzLgoKMjAwNC0wOC0zMSAwMzoyNSAgZHRzMTIKCiAgICogbG9jYWwvOiBzbm1wY29uZiwgbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmksCiAgICAgbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpLAogICAgIG1pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBtaWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtaWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBEYXZlJ3MgYmVpbmcgcGVybmlja2l0eSBhYm91dCBncmFtbWFyIGFnYWluLgogICAiSXQncyIgaXMgc2hvcnQgZm9yICJpdCBpcyIuCiAgICJCZWxvbmdpbmcgdG8gaXQiIGlzICJpdHMiIC0gbm8gYXBvc3Ryb3BoZS4KCjIwMDQtMDgtMzEgMDM6MjMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBJbXByb3ZlIGVycm9yIGhhbmRsaW5nIGZvciBpbnZhbGlkIFNFVCByZXF1ZXN0cy4KCjIwMDQtMDgtMzEgMDM6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBTdXBwcmVzcyBTRVQgaGFuZGxpbmcgY29kZSBmb3IgcmVhZC1vbmx5IHRhYmxlcy4KCjIwMDQtMDgtMzEgMDM6MTggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mCjoKCiAgIE9vcHMhICBtaWIyYyBjb25maWcgdHlwbwoKMjAwNC0wOC0zMSAwMzoxNiAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYKOgoKICAgRGVjbGFyZSBoYW5kbGVycyBhcyBSV1JJVEUvUk9OTFkgYXMgYXBwcm9wcmlhdGUuCgoyMDA0LTA4LTMxIDAzOjExICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mOgoKICAgQWx0ZXJuYXRpdmUgaXRlcmF0b3IgdGVtcGxhdGUuICBCYXNlZCBvbiBhIHNpbmdsZSBoYW5kbGVyICh1bmxpa2UKICAgJ2l0ZXJhdG9yX2FjY2VzcycpLCBidXQgc29tZXdoYXQgbW9yZSBjb21wbGV0ZSB0aGFuIHRoZSBvcmlnaW5hbCwKICAgcGFydGljdWxhcmx5IHcuci50LiBTRVQgaGFuZGxpbmcuCgoyMDA0LTA4LTMxIDAzOjA5ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbXByb3ZlIHRoZSBleGFtcGxlIGRhdGEgc3RydWN0dXJlIGRlZmluaXRpb24gKGVzcC4gdy5yLnQuIGluZGV4IHZhbHVlcykKCjIwMDQtMDgtMzEgMDA6MzcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIG5ldyBzdHJ1Y3QgdHlwZWRlZiwgbmV0c25tcF9oYW5kbGVyX2FyZ3MKCjIwMDQtMDgtMzEgMDA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5ldyB2b2lkIHBvaW50ZXIgZm9yIGNhY2hlIGhpbnQKICAgLSBkZWZpbmUgbmV3IGZsYWcgZm9yIGhhbmRsZXIgYXJncyBjYWNoZSBoaW50CiAgIC0gcGFzcyBoYW5kbGVyIGFyZ3MgY2FjaGUgaGludCB3aGVuIGZsYWcgc2V0CgoyMDA0LTA4LTI4IDE1OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgY29uZmlnX3JlcXVpcmUgbWliSUkvdmFyX3JvdXRlIChVU0VfU1lTQ1RMX0lGIG5lZWRzIGdldF9hZGRyZXNzKQoKMjAwNC0wOC0yOCAxMjozOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIC0gbmV0c25tcF9hc3NlcnQgb24gc2VsZi1yZWZlcmVuY2UgaW4gbGlua2VkIGxpc3QKCjIwMDQtMDgtMjggMTI6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIGFkZCBjb21tZW50cwoKMjAwNC0wOC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gY29tbWVudCBvdXQgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGZvciB1bndyaXR0ZW4gbW9kdWxlcwoKMjAwNC0wOC0yOCAxMjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gZG9jdW1lbnQgc2NhbmxpbmUgZm9ybWF0CgoyMDA0LTA4LTI4IDEyOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgJzsnCiAgICAgKGlzc3VlIG5vdGVkIGluIGJ1Zy9wYXRjaCAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjggMTI6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIC0gaW5saW5lIGZpeGVzIGZyb20gU3RlcGhlbiBKLiBGcmllZGwsIHBsdXMgYSBmZXcgSSBmb3VuZAogICAgIChpc3N1ZXMgbm90ZWQgaW4gYnVnL3BhdGNoIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yOCAxMjoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCgoyMDA0LTA4LTI4IDEyOjA4ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gb25seSBkZWZpbmUgaW5saW5lIG1hY3JvcyBpZiBlbmFibGVkCiAgICAgKGlzc3VlIG5vdGVkIGluIGJ1ZyAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjcgMjM6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGZpeCAxLzIgb2YgYnVnIDcwMjQzNTogbWVtb3J5IGxlYWsgWy4uLl0gZm9yIGFnZW50eCBzdWJhZ2VudHMKICAgICAtIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW56IEcuIEZpc2NoZXIKCjIwMDQtMDgtMjcgMjM6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgdmFyIGFuZCBwcm90b3R5cGVzCiAgIC0gYWRkIGNvbW1lbnQgZG9jdW1lbnRpbmcgc2NhbiBsaW5lIGZvcm1hdAoKMjAwNC0wOC0yNyAyMzoyMiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gb21pdCByb3V0ZXMgdGhhdCBhcmUgZG93bgogICAtIGhhcmRjb2RlIGFjdGl2ZSByb3cgc3RhdHVzIGZvciBuZXdseSBkaXNjb3ZlcmVkIHJvdXRlcwoKMjAwNC0wOC0yNyAyMzoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHR3ZWFrIGxvZyBtZXNzYWdlcyBzeW50YXgKICAgLSBmaXggaXB2NCBtYXNrIGNhbGN1bGF0aW9uCiAgIC0gaW1wbGVtZW50IGlwdjYgcm91dGVzCiAgIC0gY29tbW9uIGZ1bmN0aW9uIHRvIHNldCByb3V0ZSB0eXBlIGZyb20gZmxhZ3MKICAgLSBzZXQgcG9saWN5IG9pZCBiYXNlZCBvbiBhcmJpdHJhcnkgaW5kZXgKCjIwMDQtMDgtMjcgMjM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGRvbnQgZnJlZSBwb2xpY3kgb2lkIGlmIHN0YXRpYyBmbGFnIHNldAoKMjAwNC0wOC0yNyAyMzoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gYWRkIGZsYWcgZm9yIHN0YXRpYyBwb2xpY3kgb2lkCiAgIC0gY2hhbmdlIGludGVybmFsIGluZGV4IHR5cGUgdG8gb2lkCgoyMDA0LTA4LTI3IDA3OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIFRyeSBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBtdWx0aS10eXBlIGNvbmZpZyBoYW5kbGluZy4KICAgRG9uJ3QgYXV0b21hdGljYWxseSByZWdpc3RlciBjb25maWcgdG9rZW5zIGFnYWluc3QgbXVsdGlwbGUgdHlwZXMuCiAgIEluc3RlYWQsIGV4cGxpY2l0bHkgcmVnaXN0ZXIgQWdlbnRYLXJlbGF0ZWQgY29uZmlnIHRva2VucyBhcyBzdWNoLgogICAoVGhlIGNvbmZpZyBtZWNoYW5pc20gd2lsbCBhbHJlYWR5IGF1dG9tYXRpY2FsbHkgbG9hZCBhbnkgY29uZmlnCiAgIGZpbGUgdHlwZXMgdGhhdCBpdCBrbm93cyBhYm91dCkuCgoyMDA0LTA4LTI3IDAzOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBVc2UgYSBjb25zaXN0ZW50ICJob3N0cy57YWxsb3csZGVueX0iIHRva2VuIGZvciBrbm93biBhbmQgdW5rbm93biBhZGRyZXNzZXMuCgoyMDA0LTA4LTI3IDAzOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJZiB3ZSdyZSByZWFkaW5nIGluIHRoZSBtdWx0aWNhc3Qgc3RhdHMsIHRoZW4gdGhlIHNjYW4gbGluZSBuZWVkcyB0byBiZQogICB0d2Vha2VkIG5vdCB0byBza2lwIHRoaXMgdmFsdWUhCgoyMDA0LTA4LTI2IDA3OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBTdXBwcmVzcyAzMi1iaXQgc2hpZnQgd2FybmluZ3Mgb24gMzItYml0IHN5c3RlbXMuCiAgIChUaG91Z2ggdGhpcyBtYXkgbm90IGJlIHRoZSBiZXN0IHdheSB0byBkZXRlY3Qgc3VjaCBzeXN0ZW1zISkKCjIwMDQtMDgtMjYgMDc6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIERlY2xhcmUgbWlzc2luZyB2YXJpYWJsZSBvbiBub24tU0NOdU1BWCBzeXN0ZW1zLgoKMjAwNC0wOC0yNSAxMjozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSBtZW1iZXJzIHRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMKICAgICAtIG5vdGVkIG9uIHVzZXJzIGJ5IEFraWhpcm8gSUlKSU1BCgoyMDA0LTA4LTI1IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBhcHBseSByZXZpc2VkIHBhdGNoIGZvciBidWcgODk3MDAyOiBzbm1wZCBjYW5ub3QgaGFuZGxlIDY0IGJpdCBpbnRlcmZhY2UgY291bnRlcnMKICAgICAoaGFkIGJlZW4gbWFya2VkIGFzIGZpeGVkIGJ1dCB3YXNuJ3QpCgoyMDA0LTA4LTI1IDA4OjM4ICBkdHMxMgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgRG9jdW1lbnQgdGhlIG5ldyBtaWIyYyBub2RlIHRhZ3MuCgoyMDA0LTA4LTI1IDA4OjM1ICBkdHMxMgoKICAgKiBtaWJzLzogRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgRElTTUFOLU5TTE9PS1VQLU1JQi50eHQKLCBESVNNQU4tUElORy1NSUIudHh0LCBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0CjoKCiAgIEFkZCBEaXNNYW4gUmVtb3RlIE9wZXJhdGlvbnMgTUlCIGZpbGVzCgoyMDA0LTA4LTI1IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmgsIHBpbmcvZ251Yy5oLCBwaW5nL2luNi5oLAogICAgIHBpbmcvaXBfdmFyLmgsIHBpbmcvaXB2Ni5oLCBwaW5nL3VkcF92YXIuaCwKICAgICB0cmFjZXJvdXRlL2dudWMuaCwgdHJhY2Vyb3V0ZS9pbjYuaCwKICAgICB0cmFjZXJvdXRlL2lwX3Zhci5oLCB0cmFjZXJvdXRlL2lwdjYuaCwKICAgICB0cmFjZXJvdXRlL3VkcF92YXIuaDoKCiAgIExvY2FsbHktdHdlYWtlZCB2ZXJzaW9ucyBvZiBzdGFuZGFyZCBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgbm90IHRoZSBtb3N0IGFwcHJvcHJpYXRlIHdheSB0byBwcm9jZWVkLAogICBidXQgaXMgbmVlZGVkIHRvIGdldCB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiB3b3JraW5nLgoKMjAwNC0wOC0yNSAwNzozMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHBvcnQgaG9sZXMgaW4gIml0ZXJhdGVfYWNjZXNzIiB0YWJsZXMuCgoyMDA0LTA4LTI1IDAxOjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmM6CgogICBGaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgUm1vbiBjb2RlLiAoUmVwb3J0ZWQgYnkgRm9uZyBUc3VpKQoKMjAwNC0wOC0yNCAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZW5hbWUgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkgbWVtYmVycyB0byBhdm9pZCBuYW1lc3BhY2UgY29uZmxpY3RzCiAgICAgLSBub3RlZCBvbiB1c2VycyBieSBBa2loaXJvIElJSklNQQoKMjAwNC0wOC0yNCAwOToyOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBGaXggdGhlIG1pbmltYWwgY29uZmlnIHRlc3RzIHRvIHVzZSB0aGUgY29ycmVjdCBzZXQgb2YgTUlCIG1vZHVsZXMuCiAgIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0yNCAwOToyNCAgZHRzMTIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICBTdXBwb3J0IGFkZGl0aW9uYWwgdHJhcGQgZmxhZ3MgKHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKICAgKEFuZCB1cGRhdGUgdGhlIFJFQURNRSB0byBrZWVwIE1pa2UgaGFwcHkhKQoKMjAwNC0wOC0yNCAwOToxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIExvZyByZWNvbmZpZy9zaHV0ZG93biBtZXNzYWdlcyBtb3JlIHJlbGlhYmx5LiAgKFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMjQgMDk6MTYgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBBZGQgQ2lzY28vQlVQVE5JQyBjb3B5cmlnaHQgbm90aWNlLCB0byBjb3ZlciB0aGUgbmV3IERpc01hbiBSZW1PcHMgY29kZS4KCjIwMDQtMDgtMjQgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuLmgsIGRpc21hbi9leHByZXNzaW9uLW1pYi5oLAogICAgIGRpc21hbi9uc2xvb2t1cC1taWIuaCwgZGlzbWFuL3BpbmctbWliLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUtbWliLmgsIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYwosIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmgsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCBkaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaAosIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLAogICAgIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBSZW1vdGUgT3BlcmF0aW9uIE1JQiBncm91cHMuCiAgIE5vdGUgdGhhdCB0aGVzZSBhcmUgbm90IHlldCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UuCgoyMDA0LTA4LTIzIDA4OjA2ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBuZXcgdGFyZ2V0IHRvIG9ubHkgbWFrZSBvYmplY3RzIGZvciBjdXJyZW50IGRpcmVjdG9yeSAobm8gc3ViZGlycykKCjIwMDQtMDgtMjMgMDc6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgT3B0aW9uIHRvIGV4Y2x1ZGUgdGhlIGZpbmFsIEdFVCByZXF1ZXN0IHdoZW4gd2Fsa2luZyBhIHNpbmdsZSBpbnN0YW5jZS4KCjIwMDQtMDgtMjMgMDI6MzkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIE5ldyB0ZW1wbGF0ZSBjb25maWdzIGZvciByb3ctYmFzZWQgImludGVybmFsLWRhdGEiIGltcGxlbWVudGF0aW9ucy4KCjIwMDQtMDgtMjMgMDI6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgTmV3IHZhcmlhYmxlIHRva2VucyB0byBpZGVudGlmeSAiY3JlYXRhYmxlIiBvciBSb3dTdGF0dXMgY29sdW1uIG9iamVjdHMuCiAgIEV4dGVuZCB0aGVzZSB0d28gdG9rZW5zLCBwbHVzICJzZXR0YWJsZSIgdG8gYXBwbHkgdG8gdGFibGVzIGFzIHdlbGwKICAgKHJlcG9ydGluZyBvbiB0aGUgY29uc3RpdHVlbnQgY29sdW1uIG9iamVjdHMpLgoKMjAwNC0wOC0yMyAwMTo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgSW1wbGVtZW50IGNvbnRleHQgZXJyb3IgY291bnRlcnMgYXMgcHJvcGVyIHNjYWxhciBvYmplY3RzCiAgIChyYXRoZXIgdGhhbiBzaW1wbHkgaW5zdGFuY2VzKQoKMjAwNC0wOC0yMyAwMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYzoKCiAgIEZ1bGxlciBpbXBsZW1lbnRhdGlvbiBvZiBzbm1wU2V0U2VyaWFsTm8gb2JqZWN0LCBpbmNsdWRpbmcgcGVyc2lzdGFuY2UgYWNyb3NzCiAgIGFnZW50IHJlc3RhcnQsIHJhbmRvbSBpbml0aWFsaXNhdGlvbiB2YWx1ZSAoYm90aCBwZXIgVGVzdEFuZEluY3IgZGVzY3JpcHRpb24pCiAgIGFuZCBwcm9wZXIgb2JqZWN0IGluc3RhbmNlIGJlaGF2aW91ci4KCjIwMDQtMDgtMjMgMDE6NTYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEb24ndCBpbnZva2UgY2FsbGJhY2sgcmVnaXN0cmF0aW9ucyBpZiB0aGUgb3JpZ2luYWwgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAoU2VlIGJ1ZyAjOTkwMDcwKQoKMjAwNC0wOC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSBwcm9qZWN0IG51bWJlciB0byA1LjIuZGV2CgoyMDA0LTA4LTIwIDA4OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgc3RhdGljIGF0dHJpYnV0ZSBmb3IgZnVuY3Rpb24KICAgLSBmaXggcGFyZW4gZ3JvdXBpbmcKCjIwMDQtMDgtMjAgMDg6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIGRvIG5vdCBpbmNsdWRlIGRhdGEgYWNjZXNzIGhlYWRlcnMsIGFzIHRoZXkgYXJlIG5vdCBpbnN0YWxsZWQKCjIwMDQtMDgtMjAgMDg6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBpbmNsdWRlIGludGVyZmFjZSBkYXRhIGFjY2VzcyBoZWFkZXIKCjIwMDQtMDgtMjAgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBUaWR5IHVwIGhhbmRsaW5nIG9mIHBpZF9maWxlLiAoUGF0Y2hlcyBmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE5IDAyOjIzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW1wcm92ZWQgaGFuZGxpbmcgb2Ygc25tcHRyYXBkIFBJRCBmaWxlLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA0LTA4LTE5IDAyOjE3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEhhbmRsZSBhZ2VudF9tb2R1bGUgaGVhZGVyIGZpbGVzIGluIHRoZSBzYW1lIHdheSBhcyBtaWJfbW9kdWxlIG9uZXMuCiAgIChSZW1vdmluZyB0aGVtIHdoZW4gY2xlYW5pbmcgdXAsIGFuZCBpbnN0YWxsaW5nIHRoZSBjb25maWcgaGVhZGVyKQoKMjAwNC0wOC0xOSAwMjoxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQWRkIGFnZW50X21vZHVsZSBjb25maWd1cmF0aW9uIHRva2VucyB0byB0aGUgbGlzdCBvZgogICBzdGFuZGFyZCBhZ2VudCBpbmNsdWRlcy4gIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaDoKCiAgIENvcnJlY3QgYWdlbnRfbW9kdWxlIGNvbmZpZyBzZXR0aW5nLgogICAoU3BvdHRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOCAxNToxMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFsbG93IFRPS0VOUklORy1NSUIgYW5kIERTMS1NSUIgdG8gb3ZlcnJpZGUgb2xkZXIgUkZDIG1pYnMKCjIwMDQtMDgtMTggMDI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFVzZSB0aGUgY29udGV4dCBuYW1lIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBjYWxsLAogICByYXRoZXIgdGhhbiB0aGUgY29udGV4dCBmcm9tIHRoZSBpbmNvbWluZyByZXF1ZXN0LgogICBUaGVzZSBvdWdodCB0byBiZSB0aGUgc2FtZSwgYnV0IGFyZSBzdWJ0bHkgZGlmZmVyZW50IHdoZW4KICAgbm8gY29udGV4dCBpcyBzcGVjaWZpZWQuICAoUGF0Y2ggc3VwcGxpZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTcgMDg6NDAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgTW9yZSBwb3J0YWJsZSBhcHByb2FjaCB0byBhdm9pZGluZyB1bm5lY2Vzc2FyeSBoZWFkZXIgaW5zdGFsbHMuCiAgIChUaGFua3MgdG8gYm90aCBCZW4gUm9nZXJzIGFuZCBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDgtMTcgMDI6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXR0ZW1wdCB0byBzdXBwb3J0IG11bHRpcGxlICd7eHh4eH0uY29uZicgYXBwbGljYXRpb24gdHlwZXMuCgoyMDA0LTA4LTE3IDAyOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgSW5jbHVkZSB0aGUgbmV3ICdORVQtU05NUC1FWFRFTkQtTUlCJyBtb2R1bGUgaW4gYSBkZWZhdWx0IGNvbmZpZy4KCjIwMDQtMDgtMTcgMDI6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBBbGxvdyAidHJhcGhhbmRsZSIgZGlyZWN0aXZlcyB0byBtYXRjaCBhIHN1YnRyZWUgcmF0aGVyCiAgIHRoYW4ganVzdCBhIHNpbmdsZSB0cmFwLiAgKFN1Z2dlc3RlZCBieSBCb3NrbyBNaWxla2ljKQoKMjAwNC0wOC0xNyAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIERvbid0IGJvdGhlciBsb29raW5nIHVwIHRoZSBob3N0bmFtZSB1bmxlc3MgaXQnbGwgYWN0dWFsbHkKICAgYmUgbmVlZGVkIGZvciBnZW5lcmF0aW5nIHRoZSBlbmdpbmVJRC4gIFN1Z2dlc3RlZCBieSBKb2UgQy4KCjIwMDQtMDgtMTcgMDE6NTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIEVuc3VyZSB0aGF0IGEgbm9uLW1hdGNoaW5nIGNvbTJzZWMgbG9va3VwIHdpbGwgcmV0dXJuIGEgTlVMTCAnc2VjTmFtZScKICAgKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDgtMTcgMDE6NDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFwcGx5ICdob3N0cy57YWxsb3csZGVueX0nIGNoZWNraW5nIHRvIGNhbGxiYWNrIGNvbm5lY3Rpb25zCiAgICh3aGljaCB0eXBpY2FsbHkgd29uJ3QgbWF0Y2ggYW55dGhpbmcgb3RoZXIgdGhhbiAiQUxMIikKCjIwMDQtMDgtMTcgMDE6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYXJhbWV0ZXJzLiAgKFN1Z2dlc3RlZCBieSBKb2huIExhc2gpCgoyMDA0LTA4LTE3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBBUEkgZm9yIGFkZGluZyBhIChuZXdseSBjcmVhdGVkKSByb3cgdG8gdGhlIHZhcmJpbmQgcmVxdWVzdCBsaXN0LAogICBzbyBpdCdzIGF2YWlsYWJsZSBkdXJpbmcgbGF0ZXIgU0VUIHBhc3Nlcy4gICBUaGVyZSdzIHByb2JhYmx5CiAgIGEgYmV0dGVyIHdheSBvZiBjb21wYXJpbmcgaW5kZXggdmFsdWVzLCBidXQgdGhpcyBzZWVtcyB0byB3b3JrLgoKMjAwNC0wOC0xNyAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wdjNtaWJzLmgsIHNubXB2My91c21Db25mLmMsCiAgICAgc25tcHYzL3VzbUNvbmYuaCwgc25tcHYzL3VzbVVzZXIuYzoKCiAgIFNwbGl0IG9mZiBVU00gY29uZmlnIGhhbmRsaW5nIGludG8gYSBzZXBhcmF0ZSBtb2R1bGUKICAgKGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgYWdlbnQgbGlicmFyeSkKCjIwMDQtMDgtMTcgMDE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2FnZW50eF9jb25maWcuaCwgYWdlbnR4L2NsaWVudC5oCiwgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgICAgYWdlbnR4L3Byb3RvY29sLmgsIGFnZW50eC9zdWJhZ2VudC5oLAogICAgIG1pYklJL3ZhY21fY29uZi5oOgoKICAgTW92ZSBWQUNNIGNvbmZpZyBoYW5kbGluZyBhbmQgQWdlbnRYIHN1cHBvcnQgaW50byB0aGUgYWdlbnQgbGlicmFyeS4KCjIwMDQtMDgtMTcgMDE6MjMgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgbWliX21vZHVsZXMuYzoKCiAgIFBpY2sgdXAgYWdlbnRfbW9kdWxlIGluaXRpYWxpc2F0aW9uIGFuZCBkb3RfY29uZiByb3V0aW5lcy4KICAgKE5vdCBjb252aW5jZWQgdGhpcyBpcyB0aGUgYmVzdCBwbGFjZSBmb3IgdGhlIGFnZW50X21vZHVsZQogICAgaW5pdCByb3V0aW5lcyB0byBiZSBjYWxsZWQsIGJ1dCBpdCdsbCBkbyBmb3Igbm93LikKCjIwMDQtMDgtMTcgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgU3dpdGNoIGxpbmtpbmcgb3JkZXIgb2YgYWdlbnQgYW5kIG1pYiBsaWJyYXJpZXMgKHNpbmNlIGxpYm5ldHNubXBtaWJzCiAgIG1heSB3ZWxsIHVzZSByb3V0aW5lcyBkZWZpbmVkIGluIGxpYm5ldHNubXBhZ2VudCwgYnV0IG5vdCB2aWNlIHZlcnNhKQoKMjAwNC0wOC0xNyAwMToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBFbnN1cmUgYWdlbnQgdnMgbWliIG1vZHVsZXMgYXJlIHBpY2tlZCB1cCBjb3JyZWN0bHkgKGVzcC4gZm9yIG1vZHVsZXMKICAgd2l0aG91dCBhIGhlYWRlciBmaWxlLCB3aGljaCBzaG91bGQgZGVmYXVsdCB0byAnbWliX21vZHVsZXMnKQoKMjAwNC0wOC0xNyAwMToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTbGlnaHRseSBwcmVmZXJhYmxlIGNvbmZpZyB0b2tlbiBmb3IgdGhlIG5ldyBleHRlbnNpYmxlIHNjcmlwdGluZyBtaWIsCiAgIGRvY3VtZW50IHRoaXMgZmVhdHVyZSwgYW5kIGFkZCBhIHdhcm5pbmcgcmVnYXJkaW5nIHRoZSBvbGQgKGludmFsaWQpCiAgIHJlbG9jYXRhYmxlIG91dHB1dCBmb3JtYXQuCgoyMDA0LTA4LTE2IDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBkb24ndCBkcm9wIHJlLWF0dGFjaGVkIGhlYWQgKHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4pCiAgIC0gZml4IHR5cG8KCjIwMDQtMDgtMTYgMTQ6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtZmQuaAoKMjAwNC0wOC0xNiAxNDo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgdmVyc2lvbiBmcm9tIGF1dG9jb25mCgoyMDA0LTA4LTE2IDE0OjIzICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gYWRkIHVuZGVmIGZvciBTVFJVQ1RfVE1fSEFTX1RNX0dNVE9GRkYKICAgLSBkZWZpbmUgY29uZmlnX2JlbG9uZ3NfaW4gdG8gbm90aGluZwoKMjAwNC0wOC0xNiAxMjoxMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIE1vcmUgYXV0b21hdGljIGluc3RhbGxhdGlvbiBvZiBSRkMgYmFzZWQgbWlicwoKMjAwNC0wOC0xMyAwNjo1OSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGNvbmZpZy1nZW5lcmF0ZWQgJ2FnZW50X21vZHVsZScgZmlsZXMKCjIwMDQtMDgtMTMgMDY6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgY29uZmlnLWdlbmVyYXRlZCAnYWdlbnRfbW9kdWxlJyBmaWxlcwoKMjAwNC0wOC0xMyAwNjo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2F1dGhlbnRpY2F0aW9uLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9ydW50aW1lLAogICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpCjoKCiAgIEFkZCBzbm1wdHJhcGQgY29uZmlnIHN1cHBvcnQgZm9yIGxvZ2dpbmcsIGF1dGhlbnRpY2F0aW9uIGFuZCBydW50aW1lIG9wdGlvbnMuCiAgIChQYXRjaCAjOTgxMzE5IGZyb20gQWxleCBCdXJnZXIpCgoyMDA0LTA4LTEzIDA2OjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFN0cmlwIHBvcnQtbnVtYmVyIHNwZWNpZmljYXRpb24gZnJvbSAicGVlcm5hbWUiIHdoZW4gY29uc3RydWN0aW5nIEtTTSBjcmVkZW50aWFscy4KICAgKEJhc2VkIG9uIHBhdGNoICM5OTI0NDApCgoyMDA0LTA4LTEzIDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBIYW5kbGUgImdlbmVyYWwiIEFnZW50WCBlcnJvcnMsIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2YXJiaW5kLgogICAoQmFzZWQgb24gcGF0Y2ggIzk4Mzk3MiBmcm9tIGxvcmVuemltKQoKMjAwNC0wOC0xMyAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiAnaW5zdGFsbHN1YmRpcmhlYWRlcnMnIHJ1bGUuCiAgIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgIkxhenkiIGluc3RhbGxhdGlvbiBvZiBoZWFkZXIgZmlsZXMuICBPbmx5IGluc3RhbGwgYSBoZWFkZXIgZmlsZSBpZgogICBpdCdzIG5ld2VyIHRoYW4gdGhlIGV4aXN0aW5nIG9uZS4gIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIFVzZSBhbiBleHBsaWNpdCBjaGVjayBmb3IgJ3RtX2dtdG9mZicsIHJhdGhlciB0aGFuIHBlci1hcmNoaXRlY3R1cmUgI2RlZmluZXMKICAgKFBhdGNoICMxMDA2Mjk4IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTA4LTEzIDAyOjE3ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgaWFuYWxpc3QsIHJmY2xpc3Q6CgogICBVcGRhdGVkIFJGQyBNSUIgaW5mb3JtYXRpb24KCjIwMDQtMDgtMTIgMDc6NDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhbmRsZSBhIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mICJhcHBsaWNhdGlvbi10eXBlIiBjb25maWcgZmlsZXMuCiAgIChlLmcuICJhZ2VudHg6c25tcGQiIHRvIHNlYXJjaCAqYm90aCogJ3NubXBkLmNvbmYnICphbmQqICdhZ2VudHguY29uZicpCiAgIFNlZSBjb2RlcnMtdGhyZWFkICJBZ2VudFggY29uZmlndXJhdGlvbiIgLSBKdWwgJzA0CgoyMDA0LTA4LTEyIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQW4gZXhhbXBsZSBvZiBjb25maWd1cmluZyBjb2RlIGludG8gdGhlIGFnZW50IHJhdGhlciB0aGFuIHRoZSBtaWIgbGlicmFyeS4KCjIwMDQtMDgtMTIgMDU6MTggIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KLCBjb25maWd1cmU6CgogICBTdXBwb3J0IGEgbWVjaGFuaXNtIGZvciBpbmNsdWRpbmcgcGFydGljdWxhciBjb2RlIG1vZHVsZXMgd2l0aGluIGVpdGhlcgogICB0aGUgbWliIGxpYnJhcnkgb3IgdGhlIGFnZW50IGxpYnJhcnkgKG9yIHBvdGVudGlhbGx5IGVsc2V3aGVyZSBhcyB3ZWxsKS4KICAgKFNlZSBjb2RlcnMtdGhyZWFkICJNb3ZpbmcgQWdlbnRYIG91dCBvZiB0aGUgbWlibW9kdWxlcyIgLSBKdW5lICcwNCkKCjIwMDQtMDgtMTIgMDU6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgYW4gb2Z0LW92ZXJsb29rZWQgaGVscGVyLgoKMjAwNC0wOC0xMiAwNToxMSAgZHRzMTIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZm9sbG93aW5nIE5VTEwgcG9pbnRlcnMKICAgKHBsdXMgc29tZSBwZXR0eSBncmFtbWF0aWNhc3RpZ2F0aW9uKQoKMjAwNC0wOC0xMSAxMzo1NyAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGxvb2sgZm9yIC5pbiBmaWxlIGluIHNyY2Rpciwgd2hpY2ggbWF5ICE9IGN1cnJlbnQgZGlyCgoyMDA0LTA4LTExIDA1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIE9ubHkgc3RvcmUgdGhlIHRhYmxlIHN0cnVjdHVyZSBvbiB0aGUgZmlyc3QgcGFzcyB0aHJvdWdoLgogICBTdWJzZXF1ZW50IHBhc3NlcyBjYW4gcmV0cmlldmUgdGhpcyBzdG9yZWQgdmFsdWUgYW55d2F5LgoKMjAwNC0wOC0xMSAwNDo1NSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlbGV0ZWQgbWFuIHBhZ2VzICh0b2RvICYgZGVwcmVjYXRlZCkKCjIwMDQtMDgtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nIGEgYml0CgoyMDA0LTA4LTA0IDA1OjUxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfZGVwcmVjYXRlZC4zLAogICAgIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIERvbid0IGluc3RhbGwgJ3RvZG8nIG9yICdkZXByZWNhdGVkJyBtYW4gcGFnZXMKICAgKHNpbmNlIHRoZXNlIGFyZSBjb25zdHJ1Y3RlZCB3aXRoIHN1c3BlY3QgZm9ybWF0dGluZykKCjIwMDQtMDgtMDMgMDg6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGxlbmd0aCBvZiBzdHJpbmcgZm9yIEFFUyAnc3RybmNtcCcgY29tcGFyaXNvbnMuCiAgIChTZWUgYnVnICM5OTY4OTQpCgoyMDA0LTA4LTAyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IGNvbnRleHQgcmVnaXN0cmF0aW9uIHNvIG5ldyBjb250ZXh0IHRyZWVzIGdldCBwcm9wZXJseSBpbml0aWFsaXplZC4KCjIwMDQtMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBEb24ndCBkb3VibGUtcHJvZHVjZSBIVE1MIG91dHB1dCBmb3IgcmVwZWF0ZWQgTUlCcy4KCjIwMDQtMDctMzAgMTc6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIGRvY3VtZW50IEFnZW50WCBjb250ZXh0IGZpeGluZwogICAtIGRvY3VtZW50IHRoZSB1c21Vc2VyIHRhYmxlIHBvcHVsYXRpb24gdW5kZXIgc25tcHRyYXBkCgoyMDA0LTA3LTMwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBEb3VibGUgY2hlY2sgdGhhdCB0aGUgY29udGV4dE5hbWUgYXJyYXkgaXMgcHJvcGVybHkgaW5pdGlhbGl6ZS4KCjIwMDQtMDctMzAgMTc6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIEFkZCBjb250ZXh0TmFtZSB0byB0aGUgcmVnaXN0cmF0aW9uIHBhcmFtYXRlcnMgc3RydWN0dXJlLgoKMjAwNC0wNy0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlZ2lzdGVyIHRoZSB1c21Vc2VyVGFibGUgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjggIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSByZWdpc3RlciBhbGwgdGhlIHNubXB0cmFwZCBtaWIgbm9kZXMgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgQ3JlYXRlIGEgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIHVzbVVzZXIgdGFibGUgb3RoZXIgYSBkaWZmZXJlbnQgY29udGV4dC4KCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwgbWFzdGVyLmMKLCBzdWJhZ2VudC5jOgoKICAgLSBGaXggYWdlbnR4IHRvIHdvcmsgcHJvcGVybHkgdW5kZXIgbm9uLWRlZmF1bHQgY29udGV4dHMuCgoyMDA0LTA3LTMwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBBZGQgYSBidW5jaCBvZiBmdW5jdGlvbnMgdG8gcmVnaXN0ZXIgaW5zdGFuY2VzIHVuZGVyIG5vbiBkZWZhdWx0IGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gZml4IGFkZF9zdWJ0cmVlIHNvIGl0IHJlZ2lzdGVycyB0b3AgbGV2ZWwgbnVsbCBoYW5kbGVycyB0b28KICAgICAtIGZpeGVzIGEgbnVtYmVyIG9mIGNvbnRleHQgcHJvYmxlbXMKICAgLSBwYXNzIGNvbnRleHQgaW5mb3JtYXRpb24gZG93biBpbnRvIHJlZ2lzdHJhdGlvbiBpbmZvIHN0cnVjdCAodXNlZCBieSBhZ2VudHgpCgoyMDA0LTA3LTMwIDE3OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmg6CgogICAtIGFkZCBhIG51bGwgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGZvciBjb250ZXh0cyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0LgoKMjAwNC0wNy0zMCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIFBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIGZpeCBVU00gcHJpdmFjeSBrZXkgbGVuZ3RocwoKMjAwNC0wNy0zMCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBJIHdhcyBzbGVlcGluZyBlYXJsaWVyIHdoZW4gSSBmaXhlZCBjb2RlIHRoYXQgd2Fzbid0IGJyb2tlbi4KCjIwMDQtMDctMzAgMTM6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGNvbW11bml0eSBzdHJpbmcgLT4gY29udGV4dCBtYXBwaW5ncwoKMjAwNC0wNy0zMCAxMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgbmV3IGNvbTJzZWMgdG9rZW4gb3B0aW9ucy4KCjIwMDQtMDctMzAgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGNvbTJzZWMqIHRva2VucyBhY2NlcHQgYSAtQ24gQ09OVEVYVCBmbGFnIHRvIGFsbG93IHRoZQogICBtYXBwaW5nIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIFNOTVB2MyBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhc3MgdGhlIGFjdHVhbCBwZHUgYmVpbmcgcHJvY2Vzc2VkIGludG8gY2hlY2tfYWNjZXNzIGluc3RlYWQgb2YgdGhlIGNvcHkKCjIwMDQtMDctMzAgMTE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4IGNvbnRleHQgY2hlY2tpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MgZm9yIG5vbiBkZWZhdWx0IGNvbnRleHRzCgoyMDA0LTA3LTI4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBjb25maWd1cmVfcmVxdWlyZSAtPiBjb25maWdfcmVxdWlyZQoKMjAwNC0wNy0yOCAwNTo0MCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgT3BlblNTTCBpcyBuZWVkZWQgZm9yIFNIQS1iYXNlZCBhdXRoZW50aWNhdGlvbiwgcmF0aGVyIHRoYW4gTUQ1LgogICAoSXQncyB1c2VkIGZvciBib3RoIGlmIGF2YWlsYWJsZSwgYnV0IGl0J3Mgb25seSAqbmVlZGVkKiBmb3IgU0hBKQoKMjAwNC0wNy0yOCAwMjoxNyAgZHRzMTIKCiAgICogRkFROgoKICAgRGlzY3VzcyBSUE0tZGVwZW5kZWN5IHByb2JsZW1zLgoKMjAwNC0wNy0yOCAwMTowNCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUGVyLW9iamVjdCBzd2l0Y2ggc3RhdGVtZW50IGlzIG1pc3NpbmcgdGhlICJjYXNlIiBrZXl3b3JkLgogICAoUmVwb3J0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5KQoKMjAwNC0wNy0yMiAxNzo1NSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmb3Igd2luMzIgYWdlbnQsIGludGVycHJldCBpZk9wZXJTdGF0dXMgY29ycmVjdGx5LAogICBhbmQgc2V0IGlmTGFzdENoYW5nZSB0byB6ZXJvLiBUaGVzZSBjaGFuZ2VzIGZpeGVzIGJ1ZyAjOTA3NzE2LgoKMjAwNC0wNy0yMiAxMzowNiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICB0eXBlZGVmIGxvbmcgaW50MzJfdCB0byBzdWNjZWVkIGJ1aWxkaW5nIHdpdGggTVNWQysrLgoKMjAwNC0wNy0yMiAxMDo0NSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBwYXRjaCAjOTgyNjI4IGFwcGxpZWQgdG8gZml4IGxlYWsgb24gZXJyb3JzIGluIG5ldHNubXBfdWRwNl90cmFuc3BvcnQKCjIwMDQtMDctMjIgMDg6NDkgIGR0czEyCgogICAqIEZBUToKCiAgIEVtcGhhc2lzZSB0aGUgbmVlZCB0byBleHBsaWNpdGx5IGNyZWF0ZSB1c2Vycy4KCjIwMDQtMDctMjAgMjM6MjYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgZml4IGJ1ZyAjOTkyNzM1IE9TWCAxMC4zLjQgbWFrZSBmYWlscyBieSBpbmNsdWRpbmcgZGFyd2luIGluICNpZiBleHByZXNzaW9ucy4KCjIwMDQtMDctMjAgMjI6MjkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oOgoKICAgY3JlYXRlIHN5c3RlbSBoZWFkZXIgZm9yIC1EZGFyd2luNy4gcGFydGlhbCBmaXggZm9yIGJ1ZyA5OTI3MzUuCgoyMDA0LTA3LTIwIDE5OjQwICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBidWcgOTk0MTk0IGJ5IGNoZWNraW5nIGZvciBudWxsIGJlZm9yZSBkZS1yZWZlcmVuY2luZyBwb2ludGVyIGFyZ3VtZW50LgoKMjAwNC0wNy0yMCAxMzozMSAgc2xpZgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHBhdGNoIDk4ODI4NiBmcm9tIEJydWNlIFNoYXcgLSBMb3RzIG9mIHVwZGF0ZXMgb24gUkVBRE1FLnNvbGFyaXMKCjIwMDQtMDctMjAgMTM6MjIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGtpbGwuZXhlIG9ubHkgaWZmIE9TVFlQRSA9IG1zeXMgKHBhdGNoICM5ODc2MjYgYXBwbGllZCkKCjIwMDQtMDctMTkgMDk6MjggIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEZpeCBlcnJvbmVvdXMgdHJvZmYgbWFjcm8sIGFzIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZAoKMjAwNC0wNy0xNiAyMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtaWJJSV9jb21tb24uaCwgdGNwVGFibGUuYzoKCiAgIEF0dGVtcHRlZCBmaXhlcyBmb3IgZGFyd2luCgoyMDA0LTA3LTE2IDExOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmg6CgogICBBZGRlZCBtaXNzaW5nIGlwU3lzdGVtU3RhdHNUYWJsZS5oIGZpbGUgd2hpY2ggUm9iZXJ0IHByb2JhYmx5IGZvcmdvdCB0byBjaGVjayBpbi4gIEknbSBndWVzc2luZyBhdCB0aGUgIHByb3BlcmNvbnRlbnRzLCBidXQgaXQgc2hvdWxkIGJlIHJpZ2h0CgoyMDA0LTA3LTE2IDA5OjA4ICBkdHMxMgoKICAgKiBGQVE6CgogICBBIGZldyBhZGRpdGlvbmFsIGVudHJpZXMgKGVzcC4gcmVsYXRpbmcgdG8gZ2VuZXJhdGluZyB0cmFwcykKICAgcGx1cyBzb21lIG1pbm9yIHJlc3RydWN0dXJpbmcgYW5kIHdvcmRzbWl0aGluZy4KCjIwMDQtMDctMTAgMjE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIC0gcmVtb3ZlIGRlYnVnIG1zZwogICAtIGxvZyB3YXJuaW5nIGlmIGhlYWRlciBsZW5ndGggaXNuJ3Qgd2hhdCB3ZSBleHBlY3QKCjIwMDQtMDctMTAgMjE6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIGZpeCBpbnZlcnRlZCBjb25kaXRpb25hbCB0ZXN0CiAgIC0gZG9uJ3QgYXNzdW1lIDY0IGlmIHdyYXBjaGVjayBza2lwcGVkCgoyMDA0LTA3LTEwIDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGNvbW1lbnQgdG8gZG9jdW1lbnQgc3RydWN0dXJlIHZhcgoKMjAwNC0wNy0xMCAxOTo1MSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBidW1wIHVwIHRpbWVvdXQgdG8gMzAgc2Vjb25kcywgaW5zdGVhZCBvZiAzCgoyMDA0LTA3LTEwIDE5OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gcmVtb3ZlIHJlbWluZGVyIGNvbW1lbnQKICAgLSBmaXggdHlwbywgaW5kZW50ZW50YXRpb24KCjIwMDQtMDctMTAgMTk6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICB1c2UgdWludG1heF90IHZhcnMgZm9yIHBhcnNpbmcgZGF0YQoKMjAwNC0wNy0xMCAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBtYWtlIGxvY2FsIGZ1bmN0aW9uIG1vcmUgZ2VuZXJpYyBhbmQgbW92ZSB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUKCjIwMDQtMDctMTAgMTM6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLCBpcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbW92ZSBjb25maWcgcmVxdWlyZXMgdXAgYSBsZXZlbAoKMjAwNC0wNy0xMCAxMzowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaAo6CgogICBhZGQgaXBzdGF0cy9zeXN0ZW1zdGF0cyBoZWFkZXJzCgoyMDA0LTA3LTEwIDEzOjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUKCjIwMDQtMDctMTAgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIGFkZCBpcFN5c3RlbVN0YXRzVGFibGUKCjIwMDQtMDctMTAgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvZGVmYXVsdC10YWJsZS1pcFN5c3RlbVN0YXRzVGFibGUubTJkCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtRklSU1QudHh0CiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtaXBTeXN0ZW1TdGF0c1RhYmxlLnR4dAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIGltcGxlbWVudCBpcFN5c3RlbVN0YXRzVGFibGUKCjIwMDQtMDctMDkgMjI6NTggIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwo6CgogICAtIHJlbW92ZSBteSBxdWljayAvLyBjb21tZW50cwogICAtIHJlbW92ZSBhIGZldyBYWFggY29tbWVudHMgdGhhdCB3ZXJlIGZlZWRiYWNrIGZvciBSb2JlcnQgKG5vdyBlbWFpbGVkKS4KCjIwMDQtMDctMDkgMTU6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSBQdWxsIHRoZSBESCBwYXJhbWV0ZXJzIGZyb20gdGhlIGFnZW50IHRvIHVzZSBpdHMgY3VycmVudGx5IGNvbmZpZ3VyZWQgcGFyYW1zLgogICAtIHByb3RlY3QgYWdhaW5zdCAhb3BlbnNzbCB1c2VycwoKMjAwNC0wNy0wOSAxNToyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQdWxsIHRoZSBESCBwYXJhbWV0ZXJzIGZyb20gdGhlIGFnZW50IHRvIHVzZSBpdHMgY3VycmVudGx5IGNvbmZpZ3VyZWQgcGFyYW1zLgoKMjAwNC0wNy0wOSAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYywKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAo6CgogICBBZGRlZCB0aGUgdXNtREhQYXJhbWV0ZXJzIG9iamVjdCBmb3IgbWFuYWdlbWVudCBvZiB0aGUgREggcGFyYW1ldGVycwoKMjAwNC0wNy0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSB0aGUgcGVyc2lzdGVudCBmaWxlIHdhcm5pbmcgYSBiaXQsIHVtLCBtb3JlIHN0cm9uZwoKMjAwNC0wNy0wOSAwOTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIuaCwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL2RlZmF1bHQtdGFibGUtdXNtREhVc2VyS2V5VGFibGUubTJkCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kb3h5Z2VuLmNvbmYKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIEltcGxlbWVudGVkIHRoZSBTTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQiB1c21ESFVzZXJLZXlUYWJsZSB0YWJsZS4KCjIwMDQtMDctMDkgMDk6NTcgIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZQo6CgogICBpZ25vcmUgZmlsZQoKMjAwNC0wNy0wOSAwOTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgU3VwcG9ydCBhIGRpZmZpZS1oZWxtYW4gYmFzZWQgImNoYW5nZWtleSIgY29tbWFuZC4KCjIwMDQtMDctMDkgMDk6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBBZGQgZGlmZmllLWhlbG1hbiB2b2lkICogY29udGFpbmVyIHBvaW50ZXJzLgoKMjAwNC0wNy0wOSAwOToyNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgTWFrZWZpbGUuaW46CgogICByZmMyNzg2OiBkaCB1c20gbWliCgoyMDA0LTA3LTA5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdCBmb3Igb3BlbnNzbC9kaC5oCgoyMDA0LTA3LTA4IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gTGludXg6IHVzZSBub24gMCBzb2NrZXQgcHJvdG9jb2wgd2hlbiBjcmVhdGluZyBzb2NrZXQgKG9yIGNhbGwgZmFpbHMpCiAgIC0gZG9uJ3QgcmV0dXJuIHN1Y2Nlc3MgaWYgc29ja2V0IGNhbGwgZmFpbHMKICAgLSBjbG9zZSBzb2NrZXQgYmVmb3JlIHJldHVybmluZwogICAtIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDQtMDctMDggMTc6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gbW92ZSB3cml0ZV9tZXRob2QgYXNzaWdubWVudCBiZWZvcmUgY2hlY2sgZm9yIGV4aXN0aW5nIG5vZGUsIHNvIHJvdyBjcmVhdGlvbgogICAgIGNhbiBiZSBzdXBwb3J0ZWQKCjIwMDQtMDctMDggMTc6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXBkYXRlIHRlc3QgZm9yIGNvcnJlY3Qgbm9kZSBkZWNsIHR5cGUKCjIwMDQtMDctMDggMTc6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGdlbmVyYXRlIGhpZ2ggJiBsb3cgYXNzaWdubWVudHMgZm9yIGNvdW50ZXI2NCBub2RlcwoKMjAwNC0wNy0wOCAxNTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xvc2UgZmlsZXMgYmVmb3JlIGV4aXQsIHRvIGZsdXNoIHBlbmRpbmcgb3V0cHV0CgoyMDA0LTA3LTA4IDA5OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gYXNzaWduIGRzdCBhZGRyIHRvIG5ldyBjYWNoZSBlbnRyeSwgc28gd2UgY2FuIGZpbmQgaXQgaW4gbmV4dCBwYXNzCgoyMDA0LTA3LTA4IDA4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiYWNrIG91ciBwcmV2aW91cyB0cmFwIGJpbmRpbmcgY2hhbmdlCiAgIC0gc2V0IG5ldyBzZXNzaW9uLmxvY2FsbmFtZSB0byBsb2NhbGhvc3QgZm9yIHYxL3YyYyB0cmFwcyAoYnV0IG5vdCBpbmZvcm1zKQoKMjAwNC0wNy0wOCAwODozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgLSBhbGxvdyBwZXIgc2Vzc2lvbiBiaW5kaW5nIHRvIHNwZWNpZmljIGxvY2FsIGFkZHJlc3MgZm9yIHVkcCB0cmFuc3BvcnRzCgoyMDA0LTA3LTA4IDA3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiaW5kIHYxIHRyYXAgc2Vzc2lvbnMgY2xpZW50IGFkZHJlc3MgdG8gbG9jYWxob3N0CgoyMDA0LTA3LTA4IDA2OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBjbG9zZSBmaWxlIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDA0LTA3LTA3IDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBzd2l0Y2ggdG8gdW5pZmllZCBkaWZmCgoyMDA0LTA3LTA3IDE2OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW1vdmUgc29tZSBkdXBsaWNhdGVkIGNvZGUgKHVzZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgdmVyc2lvbnMpCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDctMDcgMTY6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIFByb3Blcmx5IHF1b3RlIG1pYjJjIHZhcmlhYmxlIGluIGEgQGlmQCBjbGF1c2UuCgoyMDA0LTA3LTA3IDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNoYW5nZSByb3cgc3RhdHVzIG9iamVjdCBuYW1lIHRvIG1hdGNoIG1pYiAod2hpY2ggZG9lc24ndCBlbmQgaW4gUm93U3RhdHVzKQoKMjAwNC0wNy0wNyAxNjoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDcgMTM6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWdyZWUgb24gdmFyaWFibGUgbmFtZQoKMjAwNC0wNy0wNyAxMzo0MSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gcmVnaXN0ZXIgdGFibGUgYXMgQ0FOX1JPTkxZCgoyMDA0LTA3LTA3IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBpbXBsZW1lbnQgcm93IHN0YXR1cyAoaGFyZGNvZGVkIGFzIGFjdGl2ZSkKCjIwMDQtMDctMDcgMTM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gcmVwbGFjZSB1X2ludE5fdCB3aXRoIG1vcmUgcG9ydGFibGUgdWludE5fdAoKMjAwNC0wNy0wNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaDoKCiAgIC0gaW5jbHVkZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaGVhZGVyIGZvciBzdHJ1Y3QvZW51bXMKCjIwMDQtMDctMDcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICAtIGluaXRpYWxpc2UgY29udGFpbmVyIHZpYSBkYXRhIGFjY2VzcyBsaWJyYXJ5CgoyMDA0LTA3LTA3IDEwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSB1c2UgZW51bXMgZnJvbSBtaWIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzCgoyMDA0LTA3LTA3IDEwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gYWRkIG1pc3NpbmcgVEMgdmFsdWUKCjIwMDQtMDctMDcgMTA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIHVwZGF0ZSBpcHY2IGltcGxlbWVudGF0aW9uICh0YWtlIGEgc3RhYiBhdCBzdGF0dXMsIHR5cGUsIG9yaWdpbikKCjIwMDQtMDctMDcgMDc6MTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIGNvbW1lbnQgY2hlY2sgcGF0dGVybiB0byBleGNsdWRlIGxvZ3Mgb2YgbWZkIG1hdGNoZXMKCjIwMDQtMDctMDcgMDc6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgLSBhZGQgdW5zb3J0ZWQgc2luZ2x5IGxpbmtlZCBsaXN0IChmaWZvIG9yIGxpZm8pCgoyMDA0LTA3LTA3IDA1OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFF1b3RlICJyW293XWNvbW11bml0eSIgc3RyaW5nIGJlZm9yZSBwYXNzaW5nIHRvIGNvbTJzZWMtc3R5bGUgcGFyc2VyLAogICB0byByZXRhaW4gYW55IGludGVybmFsIHdoaXRlc3BhY2UuCgoyMDA0LTA3LTA3IDA1OjIxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIGNvcHlfbndvcmQgcmF0aGVyIHRoYW4gc3RydG9rIGZvciBwYXJzaW5nIGNvbTJzZWMgZW50cmllcy4KICAgKFRvIGhhbmRsZSBxdW90ZWQgc3RyaW5ncyBwcm9wZXJseSkKCjIwMDQtMDctMDcgMDI6MTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgQ29udmVydCB0byB1c2UgdGhlIG5vbi1yZWN1cnNpdmUgJ0FVVE9fTkVYVCcgYXBwcm9hY2gKICAgZm9yIGFsbCBiYXIgR0VUTkVYVC9HRVRCVUxLIHJlcXVlc3RzLgoKMjAwNC0wNy0wNyAwMjoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFNwYXJzZSB0YWJsZXMgYXJlIGhhbmRsZWQgd2l0aGluIHRoZSB0YWJsZXIgaGVscGVyLAogICBzbyBkb24ndCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgaGVyZS4KCjIwMDQtMDctMDcgMDI6MTEgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIERvbid0IHRocm93IGFuIGVycm9yIGlmIHRoZSBmaW5hbCBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBkaWRuJ3QKICAgaW5jbHVkZSBhbiBleHBsaWNpdCBoYW5kbGVyIHJvdXRpbmUuICBUaGlzIGlzIHBlcmZlY3RseSByZWFzb25hYmxlCiAgIGlmIHRoZSBNSUIgb2JqZWN0IGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSB0aGUgcHJlY2VkaW5nIGhlbHBlcnMuCgoyMDA0LTA3LTA2IDIxOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBpbXBsZW1lbnQvZW5hYmxlIGlwQWRkcmVzc1R5cGUsIGlwQWRkcmVzc0NyZWF0ZWQsIGlwQWRkcmVzc0xhc3RDaGFuZ2VkCiAgICAgaXBBZGRyZXNzUm93U3RhdHVzIChoYXJkY29kZWQgYWN0aXZlKSwgaXBBZGRyZXNzU3RvcmFnZVR5cGUgKGhhcmRjb2RlZCB2b2xhdGlsZSkKICAgLSByZXR1cm4gbm90IHdyaXRhYmxlL25vIGNyZWF0aW9uIHVudGlsIHNldCBzdXBwb3J0IGltcGxlbWVudGVkCiAgIC0gY29uZmlnX3JlcXVpcmUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzCiAgIC0gdXBkYXRlIGNhY2hlIHBvbGljeSB0byBhdXRvIHJlbG9hZCwgZm9yIGxhc3QgY2hhbmdlZC9jcmVhdGVkCgoyMDA0LTA3LTA2IDIxOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBuZXcgZnVuYyB0byBjb21wYXJlIGFuZCB1cGRhdGUgaXBhZGRyZXNzIGVudHJpZXMKICAgLSBuZXcgZmxhZy9jb2RlIGZvciBzZWNvbmQgY29udGFpbmVyIGluZGV4LCBieSBhZGRyZXNzCgoyMDA0LTA3LTA2IDIxOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZXR1cm4gcmVzb3VyY2UgdW5hdmFpbGFibGUgb24gZW1wdHkgaW50ZXJmYWNlIGNvbnRhaW5lcgogICAtIGxvZyBtYWxsb2MgZmFpbHVyZQoKMjAwNC0wNy0wNiAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVuYW1lIGludGVyZmFjZSBkYXRhIGFjY2VzcyBpbml0IHJvdXRpbmUKICAgLSBjcmVhdGUgY29udGFpbmVyIG9uY2UgZHVyaW5nIGluaXQsIHRvIGRpc2NvdmVyIGlmSW5kZXhlcwoKMjAwNC0wNy0wNiAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgaW5pdCBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaW4gaW5pdF9hZ2VudAoKMjAwNC0wNy0wNiAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNyZWFzZSBkZWZhdWx0IG9pZCBwcmludGluZyBzaXplLgoKMjAwNC0wNy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGluY3JlYXNlIGRlZmF1bHQgYnVmZmVyIHNpemUgcGFzc2VkIHRvIGdldF9zeW1ib2xfcmVhbGxvYyAodXNlZnVsCiAgIGZvciBsb25nIE9JRHMgd2hlbiByZWFsbG9jIGlzIGFjdHVhbGx5IG9mZikuCgoyMDA0LTA3LTA2IDE1OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIG5ldyBtZmQgaGVhZGVyCgoyMDA0LTA3LTA2IDE1OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIGNvbW1vbiBtZmQgaW5jbHVkZQoKMjAwNC0wNy0wNiAxNTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzZQoKMjAwNC0wNy0wNiAxNDoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBPbmx5IHByaW50IG9uZSBvZiB0aGUgZXJyb3IgbWVzc2FnZXMgaWYgdGhlIHJlc3VsdCB3YXMgYW4gYXJyYXkuCgoyMDA0LTA3LTA2IDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICAtIGZpeCBhIGZldyAid2hvb3BzIiAocmVtb3ZlIGRlYnVnZ2luZzsgcHJvcGVybHkge30gbXVsdGkgaWYgc3RhdGVtZW50cykuCgoyMDA0LTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gaWYgYSB0YWJsZSBpcyBjb21wb3NlZCBvZiBvbmx5IGluZGV4ZXMsIHdhbGsgYXQgbGVhc3Qgb25lIHNvIHJlc3VsdHMKICAgICBhcmUgcmV0dXJuZWQgZm9yIGdldHRhYmxlKCkuCgoyMDA0LTA3LTA2IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICAtIHByb3Blcmx5IHJldHVybiBOVUxMcyB3aGVuIGFwcHJvcHJpYXRlLgogICAtIG1ha2UgZ2V0X2luZGV4ZXMgcmV0dXJuIGluZGV4ZXMgZnJvbSBhdWdtZW50ZWQgdGFibGVzLgoKMjAwNC0wNy0wNiAxNDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGludWNhc3QsIG9udWNhc3QgY291bnRlcnMgdG8gc3RhdHMgc3RydWN0CiAgIC0gbW92ZSBpbnVjYXN0LCBvbnVjYXN0IGNhbGN1bGF0aW9ucyBpbnRvIGxpbnV4IGludGVyZmFjZSBkYXRhX2FjY2VzcwoKMjAwNC0wNy0wNiAxMTo1MyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgLSB1cGRhdGUgbWFrZSBjaGVja3MgdG8gY2hlY2sgZm9yIGNwcCAjd2FybmluZ3MKCjIwMDQtMDctMDUgMjA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBkb2N1bWVudCAtVCBvcHRpb24gaW4gdXNhZ2UKCjIwMDQtMDctMDUgMjA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbmFzdHkga2VybmVsIHRyaWNrIGRlZmluZXMKICAgLSBhZGQgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgdHlwZWRlZiBmb3IgY29uZl9pZl9saXN0CgoyMDA0LTA3LTA1IDE5OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSBpbmNsdWRlIG5ldyBkYXRhIGFjY2VzcyBpbmNsdWRlCgoyMDA0LTA3LTA1IDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9uZXQtc25tcC1kYXRhLWFjY2Vzcy1pbmNsdWRlcy5oCjoKCiAgIG5ldyBoZWFkZXIgZm9yIGFsbCBkYXRhIGFjY2VzcyBpbmNsdWRlcwoKMjAwNC0wNy0wNSAxNTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gcmVtb3ZlIHJvdyBzdGF0dXMgZm9yIG5vdzsgd2FybmluZyB0byByZW1pbmQgYmVmb3JlIDUuMgoKMjAwNC0wNy0wNSAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIGFkZCBjb25maWdfcmVxdWlyZSBvZiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UKCjIwMDQtMDctMDUgMTQ6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgY29uZl9pZl9saXN0IGRlY2xhcmF0aW9uIChpdCdzIGluIGRhdGFfYWNjZXNzL2ludGVmYWNlcy5oIG5vdykKCjIwMDQtMDctMDUgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIGFzc2VydHMgc2hvdWxkIGJlIG5ldHNubXBfYXNzZXJ0cwoKMjAwNC0wNy0wNSAxNDoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGRvbid0IHVzZSBuYXN0eSBrZXJuZWwgdHJpY2sgKGF2b2lkIHVuZXhwZWN0ZWQgbWFjcm8gc3Vic3RpdHV0aW9ucykKCjIwMDQtMDctMDUgMDk6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDctMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjIuZGV2CgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDg6MzEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgbWFrZSB0ZXN0IHJlc3VsdHMgdG8gdXBsb2FkCgoyMDA0LTA3LTA1IDA1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCByZWFkX29ubHkuYywKICAgICB0YWJsZV9kYXRhc2V0LmMsIHdhdGNoZXIuYzoKCiAgIFVzZSAiQVVUT19ORVhUIi1zdHlsZSBoYW5kbGluZyBmb3IgdGhlIHRyaXZpYWwgY2FzZXMKICAgKG5vdGluZyB0aGlzIGJlaGF2aW91ciB3aXRoaW4gdGhlIGhhbmRsZXIgaXRzZWxmKS4KCjIwMDQtMDctMDUgMDU6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYzoKCiAgIFVzZSBzd2l0Y2ggZmFsbHRocm91Z2ggdG8gaGFuZGxlciBHZXRCdWxrLT5HZXROZXh0LT5HZXQgaGFuZGxlciBmYWxsYmFja3MuCiAgIFRoZSBwcmV2aW91cyBjb2RlIGRpZG4ndCBjb3BlIHdpdGggYSBtaXNzaW5nIEdFVCBoZWxwZXIgZm9yIEdldEJ1bGsvR2V0TmV4dC4KCjIwMDQtMDctMDQgMTg6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgLSBjb252ZXJ0IHRvIHVzZSBBVVRPX05FWFQKCjIwMDQtMDctMDQgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oOgoKICAgLSByZXN0b3JlIGNvbmZpZ19yZXFpcmUgb2Ygb2xkIHRhYmxlIChlbmFibGUtbWZkLXJld3JpdGVzIGNvZXhpc3RlbmNlKQoKMjAwNC0wNy0wNCAxODoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGlmZGVmIG91dCB0YWJsZSByZWdpc3RyYXRpb24gaWZmICEgZW5hYmxlLW1mZC1yZXdyaXRlcwogICAtIGluaXQgY2FjaGUgZWFybGllciAoaXQgaGFwcGVucyBldmVuIGlmICEgZW5hYmxlLW1mZC1yZXdyaXRlcywgZm9yIGlmWFRhYmxlKQoKMjAwNC0wNy0wNCAxODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5oLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWRkIGZsYWcgdG8gaW5kaWNhdGUgaWYgYSBjYWNoZWQgaW50ZXJmYWNlIGlzIG5vdCBtaXNzaW5nCiAgIC0gc2V0IGFkbWluIChhbmQgbWF5YmUgb3Blcikgc3RhdHVzIGRvd24gZmlyc3QgdGltZSBpbnRlcmZhY2UgZ29lcyBtaXNzaW5nCiAgIC0gc2V0IGlmTGFzdENoYW5nZWQgd2hlbiBvcGVyIHN0YXR1cyBjaGFuZ2VzCiAgIC0gc2V0IGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lIHdoZW4gbWlzc2luZyBpbnRlcmZhY2UgcmV0dXJucwoKMjAwNC0wNy0wNCAxODoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gdXNlIGlmTmFtZSBmb3IgZGVzY3JpcHRpb24gaWZmIE5VTEwgZGVzY3JpcHRpb24KICAgLSByZXR1cm4gZW1wdHkgc3RyaW5nIGZvciBwaHlzYWRkciBpZmYgYWxsIDBzCgoyMDA0LTA3LTA0IDE4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBkb2N1bWVudCB0aGF0IFNJT0NHSUZIV0FERFIgaW9jdGwgbWlnaHQgbm90IHJldHVybiBmdWxsIDYgYnl0ZXMKICAgLSBhZGQgbWVtc2V0IHRvIDAgYmVmb3JlIFNJT0NHSUZIV0FERFIgaW9jdGwsIGlmIG5lZWRlZAogICAtIHVzZSBzdGFuZGFyZCBJRkhXQUREUkxFTiBtYWNybyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCA2CiAgIC0gdHJpdmlhbCBvcHRpbWl6YXRpb24gKGRvbid0IGFzc2lnbiB2YXIgdHdpY2UgaW4gY2VydGFpbiBjYXNlcykKICAgLSBjb21tZW50IG91dCBhbGwgaWZUYWJsZSBmcm9tIHZhcmlhYmxlIHN0cnVjdCBpZmYgLS1lbmFibGUtbWZkLXJld3JpdGVzCgoyMDA0LTA3LTA0IDE4OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgdHVubmVsL3R1bm5lbC5jOgoKICAgLSBkb2N1bWVudCB0aGF0IFNJT0NHSUZIV0FERFIgaW9jdGwgbWlnaHQgbm90IHJldHVybiBmdWxsIDYgYnl0ZXMKICAgLSBhZGQgbWVtc2V0IHRvIDAgYmVmb3JlIFNJT0NHSUZIV0FERFIgaW9jdGwsIGlmIG5lZWRlZAogICAtIHVzZSBzdGFuZGFyZCBJRkhXQUREUkxFTiBtYWNybyBpbnN0ZWFkIG9mIGxvY2FsIG9uZQoKMjAwNC0wNy0wNCAxODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGRvbid0IGFzc3VtZSBvcGVyIHN0YXR1cyBpcyB1cAogICAtIHJlbW92ZSBncmF0dWl0b3VzIGxvZyBtZXNzYWdlCgoyMDA0LTA3LTA0IDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgcmVtb3ZlIHByb3RvdHlwZXMgY2F1c2luZyBjb21waWxlIGVyciAoZmluZCBmaXggbGF0ZXIpCgoyMDA0LTA3LTA0IDE4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wNCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuaCwgaWYtbWliL2lmVGFibGUuaCwKICAgICBpZi1taWIvaWZYVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgLSByZS1lbmFibGUgb2xkIGltcGxlbWVudGF0aW9ucyBmb3IgLS1lbmFibGUtbWZkLXJld3JpdGVzCiAgICAgKGV4Y2VwdCBmb3IgaWZUYWJsZTsgdHVybnMgb3V0IHRoZSByZXN0IGFyZSBhbGwgbmV3IHRhYmxlcykKICAgLSBpZmRlZiBvdXQgaWZUYWJsZSByZWdpc3RyYXRpb24gZm9yIGVuYWJsZS1tZmQtcmV3cml0ZXMsIGxlYXZpbmcgdGhlIHJlc3QKICAgICBvZiB0aGUgY29kZSBpbnRhY3QgZm9yIG90aGVyIHRhYmxlcy9vYmplY3QgdGhhdCBuZWVkIGl0LgoKMjAwNC0wNy0wNCAxMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gc2V0IGlmIHR5cGUgdG8gdHVubmVsIGlmIG5vdCBzZXQgJiBpZiBuYW1lIHN0YXJ0cyB3aXRoICdzaXQnCgoyMDA0LTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBzZXQgcGh5c2FkZHIgbGVuIHRvIDAgaWYgcGh5c2FkZHIgbm90IGtub3duCiAgIC0gc2V0IG9wZXIgc3RhdHVzIGZyb20gaWYgZmxhZ3MKCjIwMDQtMDctMDQgMTA6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBsZWF2ZSBpZl9kZXNjciBOVUxMIHVudGlsIHdlIGNhbiBkZXRlcm1pbmUgaXQuCgoyMDA0LTA3LTA0IDEwOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBMaW51eDogb25seSBsb2cgbWlzc2luZyAvcHJvYy9tZW1pbmZvIGVycm9ycyBvbmNlLCBhdCBzdGFydHVwCgoyMDA0LTA3LTA0IDEwOjAzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW5pdCB2YXIgYmVmb3JlIHVzaW5nIGl0CgoyMDA0LTA3LTA0IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGFkZCBuZXRzbm1wIGFzc2VydCBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCgoyMDA0LTA3LTAzIDE3OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBmaXggY2FjaGUgbG9va3VwIG9pZCBwYXJhbQoKMjAwNC0wNy0wMyAxNzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzOyBkb2N1bWVudCB0aGF0IG1hZ2ljIGlzIGZvciB1c2VyIGhhbmRsZXIKCjIwMDQtMDctMDMgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDMgMTc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gc29tZSB3YXJuaW5ncyBmb3Igc3R1ZmYgdG8gYmUgZG9uZSBiZWZvcmUgNS4yCgoyMDA0LTA3LTAzIDE1OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGZpeCBjb25kaXRpb25hbCB0ZXN0IGZvciBza2lwcGluZyBtYXBwaW5nCgoyMDA0LTA3LTAzIDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgb25seSBkZWNsYXJlIHZhciBpZiBpdCB3aWxsIGJlIHVzZWQKCjIwMDQtMDctMDMgMTM6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGFkZCBub3RlIGluIHN0cnVjdCB0byB1cGRhdGUgX2Nsb25lX2hhbmRsZXIgd2hlbiBub3QgaXRlbXMgYWRkZWQKCjIwMDQtMDctMDMgMTM6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRvbid0IHVzZSAnOicgaW4gZmlsZSBuYW1lCiAgIC0gYWRkIC0tc2hvdy1jLWZ1bmN0aW9uIHRvIGRpZmYgcGFyYW1zCgoyMDA0LTA3LTAzIDEzOjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCB1cGxvYWQgZm9yIG5zYi1wYWNrYWdlIGFib3J0IGNhc2UKCjIwMDQtMDctMDMgMTM6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHZlcmJvc2UgaW5mbyBvbiB1cGxvYWQKCjIwMDQtMDctMDMgMTA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHJldHVybiBlcnJvciBmcm9tIHVzbV9jaGVja19zZWNMZXZlbCBpZiB1c2VyU3RhdHVzIGlzIG5vdCBhY3RpdmUKCjIwMDQtMDctMDMgMTA6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgLW5ldyBuZXRzbm1wX2hleF90b19iaW5hcnkgKGFsbG93cyBzcGVjaWZ5aW5nIGRlbGltaXRlcnMgZm9yIGhleCBzdHJpbmcpCiAgIC1hZGQgZG94eWdlbiBkb2NzOyBtb3ZlIHNvbWUgY29tbWVudHMgdG8gZnVuY3Rpb24gZG9jcwoKMjAwNC0wNy0wMyAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICB1cGNhc2UgY29uc3RhbnRzCgoyMDA0LTA3LTAzIDEwOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgaW5jbHVkZSBkZWxldGVkIGhlYWRlcgoKMjAwNC0wNy0wMyAxMDoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLSBjb25zaXN0ZW5jeSBiZXR3ZWVuIG5vbi1pbmRleCBhbmQgaW5kZXggdmFyIHJlZmVyZW5jZXMKCjIwMDQtMDctMDMgMTA6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gYWxsb3cgdGFibGUgdG8gc3BlY2lmeSBubyBtYXBwaW5nIGZvciBub2RlcwogICAtIG5ldyBvcHRpb24gdG8gZ2VuZXJhdGUgdGFibGUgZGVmYXVsdHMgJiBleGl0CgoyMDA0LTA3LTAzIDEwOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgLSBtb3ZlIGFzc2lnbm1lbnQgbGF0ZXIgdG8gZ2V0IGNvcnJlY3QgdmFsdWUKCjIwMDQtMDctMDMgMTA6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLWdldC1vaWQubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywKICAgICBtZmQtcmVhZG1lLm0yYzoKCiAgIC0gYWxsb3cgdGFibGUgdG8gc3BlY2lmeSBubyBtYXBwaW5nIGZvciBub2RlcwoKMjAwNC0wNy0wMiAxMDowNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBmaXggYnVnIzgxOTE1NCBieSBhbGxvd2luZyBnZXRuZXh0IGZhaWx1cmUgdG8gY29udGludWUgdHJhdmVyc2luZyB0aGUgZXh0ZW5zaWJsZSBsaXN0cy4KCjIwMDQtMDctMDIgMDc6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBtYWtlIGEgc2FmZSBjb3B5IG9mIHRoZSBjb21tYW5kIHN0cmluZyB0byB0aGUgbmFtZSBzdHJpbmcuCgoyMDA0LTA3LTAyIDA2OjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgYXBwbHkgcGF0Y2ggIzkxMDA5NCBTb2xhcmlzIGNhbiBvbmx5IHNlZSBzb21lIGRpc2tzIC0tIGluY3JlYXNlIExVTiByYW5nZSAwLTcKCjIwMDQtMDctMDIgMDY6MzggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggYnVnICM5ODQwNjEgLSBjaGVjayBsaW1pdHMsIGJ1aWxkIGRldmljZSB0eXBlIHNwYW5zIHByb3Blcmx5CgoyMDA0LTA3LTAyIDA2OjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHdhcm4sIHRoZW4gcHJldmVudCBhZGRpbmcgbW9yZSBkZXZpY2VzIHRoYW4gdGhlIGRpc2tzIGFycmF5IHdpbGwgaG9sZC4KCjIwMDQtMDctMDIgMDU6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgYXBwbHkgcGF0Y2ggIyA5ODM4NTEgQ2hlY2sgcmV0dXJuIHZhbHVlIGZvciBjZ2V0bmV4dCgpIGFuZCBmaXggI2lmZGVmCgoyMDA0LTA3LTAyIDA0OjQ3ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgUkVBRE1FLm1pYnMsIHNtaXN0cmlwOgoKICAgTm90ZXMgYW5kIHR3ZWFrcyB0aGF0IHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBhIGZ1bGwgcmZjIG1pYiBjb21wbGVtZW50CiAgIHVuZGVyIFNvbGFyaXMKCjIwMDQtMDctMDIgMDQ6MzcgIG5iYQoKICAgKiBtaWJzLzogcmZjbGlzdCwgcmZjbWlicy5kaWZmOgoKICAgTmV3IHZlcnNpb24gb2cgUHJpbnRlci1NSUIKCjIwMDQtMDctMDIgMDM6MTkgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIFVwZGF0ZSB0cCBjb3JyZWN0IFJGQyBmb3IgRXRoZXJsaWtlLU1JQgoKMjAwNC0wNi0zMCAyMDowNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBhdm9pZCBzb3J0IHdoZW4gb25seSBvbmUgcGFzcyBvciBwYXNzX3BlcnNpc3QgZGlyZWN0aXZlIGlzIGluc3RhbnRpYXRlZC4KICAgcHJldmVudCBvdmVyZmxvd2luZyBiaW4yYXNjJ3MgYnVmZmVyLCBhbmQgcmVtb3ZlIGEgc2V0IGJ1dCBub3QgdXNlZCAiaXRtcCIgdmFyaWFibGUuCgoyMDA0LTA2LTMwIDE5OjM4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGZpeCBidWcgOTgxMjc1IGJ5IE9JRCBzb3J0aW5nIHRoZSAiZXhlYyIgYW5kICJzaCIgZGlyZWN0aXZlcy4KCjIwMDQtMDYtMzAgMDc6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggY3V0LW4tcGFzdGVzIHRvIHVzZSBjb3JyZWN0IGZ1bmN0aW9uL3ZhciBuYW1lcwoKMjAwNC0wNi0zMCAwNjozNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBmaXggYnVnIyA1MDIyMTUgIm9pZCBub3QgaW5jcmVhc2luZyIgYnVncyBmb3IgSVB2NiBVRFAvVENQIG9uIEZyZWVCU0QKCjIwMDQtMDYtMzAgMDY6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYwosIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTI5IDE2OjA1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIGZpeCBuYW1lICh1ZGJ0YWJsZSAtLT4gdGNidGFibGUpIGluIFRDUDYgdmVyc2lvbiBvZiB2YXJfdGNwNi4KCjIwMDQtMDYtMjkgMDU6MTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBhcHBseSBwYXRjaCA5Nzk0MzYgdG8gbWFrZSBzeXMvZGtzdGF0Lmggb2Jzb2xldGUgd2hlbiBidWlsZGluZyByZWNlbnQgRnJlZUJTRDUKCjIwMDQtMDYtMjkgMDQ6NTcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseSBwYXRjaCA5Nzk0MzQgdG8gU3VwcG9ydCBGcmVlQlNEIDUuMCBhbmQgNS4xIGluIGRpc2tpby5jCgoyMDA0LTA2LTI5IDA0OjAwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgVXNlIHVfbG9uZyBmb3IgcGh5c19tZW0gaW4gbWVtb3J5X2ZyZWVic2QyLmMgKHBhdGNoICM5NzkwMzQpCgoyMDA0LTA2LTI5IDAzOjQ4ICBzbGlmCgogICAqIHBlcmwvT0lEL3Rlc3QucGwsIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHBlciBBbGV4IEJ1cmdlciwgYXBwbHkgcGF0Y2ggIzk4MDExOCB0byBmaXggTVNWQyBQZXJsIG1vZHVsZSBidWlsZCBhbmQKICAgcHJldmVudCB0ZXN0IGZyb20gc3RvcHBpbmcgaW4gV2luZG93cyBkdWUgdG8gYW4gdW4taW5pdGlhbGl6ZWQgdmFyaWFibGUuCgoyMDA0LTA2LTI5IDAzOjM2ICBzbGlmCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgTVNWQyBidWlsZHMgdmFjbV9jb25mIG9iamVjdCBpbiBvcmRlciB0byBmaXggYnVnICM5ODEzNzcuIEdvb2QgQ2FsbCwgRGF2ZS4KCjIwMDQtMDYtMjkgMDA6MDMgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXA6CgogICB1c2UgQVVUSFRFU1RBUkdTIHRvIGZpeCBidWcjOTczNjczCgoyMDA0LTA2LTI4IDE3OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKCjIwMDQtMDYtMjggMTY6NTkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBhZGQgTkVUU05NUF9FTkFCTEVfTUZEX1JFV1JJVEVTCiAgIC0gYWRkICcoaW5jb21wbGV0ZSknIHRvIGNvbW1lbnQgZm9yIE5TX1JFRU5UUkFOVAoKMjAwNC0wNi0yOCAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNi0yOCAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIC0gbmV3IGNvbmZpZ3VyZSBmbGFnZTogLS1lbmFibGUtbWZkLXJld3JpdGVzIHdpbGwgdHVybiBvbiByZXdyaXR0ZW4gbW9kdWxlcy4KICAgICAtIGN1cnJlbnRseSBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGRpc2FibGluZyBkZXByZWNhdGVkIHRhYmxlcwoKMjAwNC0wNi0yOCAxNToxOCAgcnN0b3J5CgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICAtIHVwZGF0ZSBmb3IgYXV0by1nZW4gZnJvbSBtaWIyYwoKMjAwNC0wNi0yOCAxNToxMSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIHVwZGF0ZSBvaWQgY2hhbmdlZCBpbiBpZXRmIGRyYWZ0CgoyMDA0LTA2LTI4IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIGNvbmZpZyBleGNsdWRlIG1pYklJL2lwLCBub3QgbWliSUkvdmFyX3JvdXRlCgoyMDA0LTA2LTI4IDE1OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIHVudXNlZCAoZHVlIHRvIGRhdGEgc2hhcmluZyB3L2lmVGFibGUpIGZ1bmN0aW9ucwoKMjAwNC0wNi0yOCAxNTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgdXNlIGxvY2FsLCBub3Qgc3l0ZW0sIHN0eWxlIGluY2x1ZGUgZm9yIG1pYmdyb3VwIGhlYWRlcgoKMjAwNC0wNi0yOCAxNTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIG1vdmUgdmFyIGRlY2wgYmVmb3JlIGZpcnN0IHN0YXRlbWVudAoKMjAwNC0wNi0yOCAxMTo1NCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IHNldHRpbmcgb2YgT1NUWVBFIGZvciBGcmVlQlNEIGJ1aWxkIHBsYXRmb3JtcyAoY29uc2lkZXIgYWNjb25maWcuaCkuCgoyMDA0LTA2LTI4IDExOjQ0ICBzbGlmCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBpbnQgZm9yIGF0b2ksIGNhc3QgdG8gdW5zaWduZWQgc2hvcnQ7CiAgIHRoaXMgZml4ZXMgYnVnIDk4MTQzOCB0cmFwc2luayBwb3J0IHJhbmdlIGNoZWNrcyBhcmUgd3JvbmcKCjIwMDQtMDYtMjggMDU6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDYtMjggMDU6MzIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG5ldyAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNraW5nIHRvIGZhaWwgb24gbW9kdWxlIGNvbmZsaWN0cwoKMjAwNC0wNi0yOCAwNToyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICAtIGFkZCBuYW1lIHRvIGNvbnRhaW5lciBzdHJ1Y3R1cmUKICAgLSBuZXcgbWFjcm8gdG8gZmluZCBuYW1lZCBjb250YWluZXIgaW4gbGlzdAoKMjAwNC0wNi0yOCAwNToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgcmVtb3ZlIGNvbmRpdGlvbiBmb3IgaGVhZGVyIGZ1bmN0aW9uIHByb3RvdHlwZSBnZW5lcmF0aW9uCgoyMDA0LTA2LTI4IDA1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVtb3ZlIGRlcHJlY2F0ZWQgbGFiZWwgZnJvbSBmdW5jLCBhZGQgbm90ZSBvbiBwcmVmZXJyZWQgZnVuYyBpbnN0ZWFkCiAgIC0gYWRkIHNvbWUgbmV0c25tcF9hc3NlcnRzICYgZGVidWcgb3V0cHV0CiAgIC0gcmVkdWNlIGR1cGxpY2F0ZWQgY29kZQogICAgIC0gbmV0c25tcF9kYXRhX2xpc3RfYWRkX2RhdGEgbm93IGNhbGxzIG5ldHNubXBfZGF0YV9saXN0X2FkZF9ub2RlCiAgIC0gbG9nIHdhcm5pbmcgaWYgZHVwbGljYXRlIGtleSBhZGRlZCB0byBhIGRhdGEgbGlzdAogICAtIG5ldHNubXBfYWRkX2xpc3RfZGF0YSBub3cgY2FsbHMgcHJlZmVycmVkIG5ldHNubXBfZGF0YV9saXN0X2FkZF9ub2RlCgoyMDA0LTA2LTI4IDA1OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYWRkIG1pc3NpbmcgZGVmYXVsdAoKMjAwNC0wNi0yOCAwNToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlhUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5taWIyYy11cGRhdGVyYzoKCiAgIHJjIGZpbGUgdXNlZCBmb3IgY29kZSBnZW5lcmF0aW9uCgoyMDA0LTA2LTI4IDA1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIG1pYjJjLXVwZGF0ZSBkaXJzCgoyMDA0LTA2LTI4IDA1OjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICBBdXRvbWF0aWNhbGx5IHVucmVnaXN0ZXIgcHJveHkgc2V0dGluZ3Mgb24gYWdlbnQgc2h1dGRvd24gb3IgcmVzdGFydC4KICAgKEJ1ZyAjNzQ4NzMzKQoKMjAwNC0wNi0yOCAwNDo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgVW5yZWdpc3RlciBwcm94eSByZWdpc3RyYXRpb25zIHdoZW4gZnJlZWluZyB0aGUgY29uZmlnIHNldHRpbmdzLgoKMjAwNC0wNi0yOCAwNDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgU2tpcCBlbXB0eSBjb250ZXh0cyB3aGVuIGR1bXBpbmcgdGhlIGludGVybmFsIE1JQiByZWdpc3RyeS4KICAgKFByb2JhYmx5IGFzIGEgcmVzdWx0IG9mIHJlbW92aW5nIHJlZ2lzdHJhdGlvbnMpLgoKMjAwNC0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBEcm9wIHNwZWNpYWwtY2FzZSBoYW5kbGluZyBvZiAibG8vbG8wIiBzaW5jZSB0aGlzIGdpdmVzIGJvZ3VzIHJlc3VsdHMKICAgKEJ1ZyAjNDIyMzk0KQoKMjAwNC0wNi0yOCAwNDoyMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIERvbid0IHRyeSB0byBzZXQgdGhlIE9JRCBvZiBhIHZhcmlhYmxlIHRoYXQgaXNuJ3QgdGhlcmUuCiAgIChQcm9iYWJseSB0cmlnZ2VyZWQgYnkgcnVubmluZyBHZXRCdWxrIG9uIGEgIm5vbi1zaW1wbGUiCiAgICB2aWV3IC0gc2VlIEJ1ZyAjNzA2MDg5KQoKMjAwNC0wNi0yNyAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSByZW5hbWUgbmV0c25tcF9jYWNoZV9leHRyYWN0X2Zyb21fcmVxaW5mbyB0byBuZXRzbm1wX2NhY2hlX3JlcWluZm9fZXh0cmFjdAoKMjAwNC0wNi0yNyAxODozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgICB1ZHAuYzoKCiAgIC0gdXNlIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQgaW5zdGVhZCBvZiBuZXRzbm1wX2lzX2NhY2hlX3ZhbGlkCgoyMDA0LTA2LTI3IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIGFkZCBuYW1lIHBhcmFtZXRlciB0byBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkCiAgIC0gbmV3IG5ldHNubXBfY2FjaGVfcmVxaW5mb19pbnNlcnQsIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0CiAgIC0gdXNlIENBQ0hFX05BTUU6aGFuZGxlck5hbWUgYXMgZGF0YV9saXN0IGtleSBmb3IgY2FjaGUKICAgICAtIHRoaXMgZml4ZXMgQnVnICM5NzM3MjggdGhlIHJpZ2h0IHdheS4gc2VlIGJ1ZyByZXBvcnQgZm9yIGRldGFpbHMKCjIwMDQtMDYtMjcgMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICAtIGFkZCBuZXRzbm1wX3JlcXVlc3RfcmVtb3ZlX2xpc3RfZGF0YQoKMjAwNC0wNi0yNyAxNzoxMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgLSBhZGQgbmV0c25tcF9hZ2VudF9yZW1vdmVfbGlzdF9kYXRhCgoyMDA0LTA2LTI2IDE1OjExICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBhZGQgZGVidWcgbXNnIHdoZW4gbW9kdWxlIHBhdGggY2hhbmdlcwogICAtIHR3ZWFrIGRlYnVnIG1zZyBvdXRwdXQgaW5kZW50CgoyMDA0LTA2LTI2IDE1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWFrZSBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5IGFuZCBoYW5kbGVfbWlic19jb25mIGNvbnNpc3RlbnQ6CiAgICAgLSAnLS9kaXInIGFkZHMgL2RpciBiZWZvcmUgZXhpc3RpbmcgZGlycwogICAgIC0gJysvZGlyJyBhZGRzIC9kaXIgYWZ0ZXIgZXhpc3RpbmcgZGlycwogICAgICAgTk9URTogdGhpcyByZXN0b3JlcyBvcmlnaW5hbCBiZWhhdmlvciBvZiAnKycgdG8gdGhhdCBvZiA1LjAuMS4gQWZ0ZXIKICAgICAgICAgICAgIDUuMC4yLCBpZiBJIHJlYWQgdGhlIGNvZGUgcmlnaHQsICcrJyBiZWhhdmlvdXIgb24gdGhlIGNtZCBsaW5lIGFuZAogICAgICAgICAgICAgaW4gTUlCRElSUyB3YXMgcmV2ZXJzZWQgYW5kIG5vdCBjb25zaXN0ZW50IHdpdGggaGFuZGxlX21pYnNfY29uZi4KCjIwMDQtMDYtMjYgMDY6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG11bHRpcGxlIG1pYmRpcnMgaW4gY29uZiBmaWxlcyB3b3JrIHdpdGggJ2xlYXN0IHN1cnByaXNlJyAoaWUgY29tcGxldGVseQogICAgIHJlcGxhY2UgbWliZGlycywgdW5sZXNzICsgc3BlY2lmaWVkCiAgIC0gbmV3IG1pYmRpciBiZWhhdmlvdXI6IGlmIC0gc3BlY2lmaWVkLCBhZGQgc3BlY2lmaWVkIGRpcnMgYmVmb3JlIGV4aXN0aW5nCiAgICAgb25lcyBpbnN0ZWFkIG9mIGFmdGVyCgoyMDA0LTA2LTI2IDA1OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgIm11bHRpLXRva2VuIiBtYXNrcyAtIGkuZS4gdXNpbmcgc3BhY2UgKHJhdGhlciB0aGFuCiAgICcuJyBvciAnOicpIHRvIHNlcGFyYXRlIHRoZSBtYXNrIG9jdGV0cy4gIChTZWUgYnVnICM3MDYwODkpCgoyMDA0LTA2LTI2IDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFdvcmsgd2l0aCB0aGUgc2FtZSBjYWNoZSBzdHJ1Y3R1cmUgY29uc2lzdGVudGx5LAogICByYXRoZXIgdGhhbiByZS1leHRyYWN0aW5nIGl0IGZyb20gdGhlIHJlcWluZm8gc3RydWN0dXJlLgogICAoU2hvdWxkIGZpeCBCdWcgIzk3MzcyOCkKCjIwMDQtMDYtMjUgMDQ6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeCB0aGUgY2hlY2sgZm9yIGEgdmFsaWQgSUNNUCBjYWNoZQogICAoU3BvdHRlZCBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDYtMjUgMDI6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBBIG1pc3NpbmcgJ2lwT3V0Tm9Sb3V0ZXMnIHZhbHVlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gKG5vdCBhbiBlcnJvcikKICAgYW5kIGFsbG93IGFueSBvdGhlciBJUC1yZWxhdGVkIHZhcmJpbmRzIGluIHRoZSBzYW1lIHJlcXVlc3QgdG8gYmUgcHJvY2Vzc2VkLgoKMjAwNC0wNi0yNCAxMzowNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIC1JciBlZmZlY3RpdmUgZm9yIGEgTmV0d29ya0FkZHJlc3MKCjIwMDQtMDYtMjQgMDk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAtIG1ha2UgY2xvbmVfaGFuZGxlciBzdGF0aWMsIHJlbmFtZSB0byBfY2xvbmVfaGFuZGxlcgogICAtIGRlbGV0ZSBoYW5kbGVyICYgcmV0dXJuIG51bGwgb24gY3JlYXRlIGlmIG5hbWUgc3RyZHVwIGZhaWxzCiAgIC0gcG9zc2libGUgZml4IGZvIDk3MzcyOCBdIG1haW4gYnJhbmNoIGZhaWxzIHRvIGxvYWQgdGNwQ29ubmVjdCBhbmQgdWRwIFRhYmxlCiAgICAgLSBjb3B5IGZsYWdzIGluIF9jbG9uZV9oYW5kbGVyCiAgICAgLSB1cGRhdGUgbmV0c25tcF9oYW5kbGVyX2R1cCB0byB1c2UgX2Nsb25lX2hhbmRsZXIsIG5ldHNubXBfaGFuZGxlcl9mcmVlCgoyMDA0LTA2LTI0IDA0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGRlYnVnIHN0YXRlbWVudCBwYXJhbWV0ZXIKCjIwMDQtMDYtMjMgMTE6NTcgIG5iYQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERveHlnZW4gaW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBjb250cmlidXRlZCBieSBDeXJpbCBNQVJHQVJJQQoKMjAwNC0wNi0yMyAxMDo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIDk3ODA4NzogYmFkIGluZGV4IGNoZWNrIGZvciBOZXR3b3JrQWRkcmVzcwoKMjAwNC0wNi0yMiAxNTo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggY3B1LWJ1cm5pbmcgYnkgcnVubmluZyBhbGFybXMuIERpYWdub3NlZCBieSByZ3JlYWJAdXNlcnMuc291cmNlZm9yZ2UubmV0CgoyMDA0LTA2LTIyIDE1OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGFmdGVyIGFsbG9jYXRpb24KCjIwMDQtMDYtMjIgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgLSBtb3ZlIGRhdGFfaW5pdCBjYWxsIGludG8gaW50ZXJmYWNlIGNvZGUKICAgLSBjYWxsIGRhdGFfaW5pdCBiZWZvcmUgY29udGFpbmVyX2luaXQKCjIwMDQtMDYtMjIgMTU6MTMgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQXV0b2RldGVjdCAtbGRldnN0YXQgZm9yIEZyZWVCU0QgNSAoYXMgd2FzIGRvbmUgZm9yIDQpCgoyMDA0LTA2LTIyIDA2OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBGaXggaGFuZGxpbmcgb2YgdGFibGUgcm93IHJlZ2lzdHJhdGlvbiBpbiBvbGQtQVBJIChCdWcgIzcwMjQ1OCkKCjIwMDQtMDYtMjIgMDI6MDMgIGR0czEyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQZXJsIEFQSSBmb3Igc2V0dGluZyBNSUIgcGFyc2luZyBvcHRpb25zIChCdWcgIzU1NDc0OSkKCjIwMDQtMDYtMjEgMTE6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZXMuaAoKMjAwNC0wNi0yMSAxMDo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIHNldCB2YWxpZF9jb2x1bW5zCgoyMDA0LTA2LTIxIDA2OjMxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGR1cGxpY2F0ZSBhbGxvY2F0aW9uIG9mIG1lbW9yeSB3aGVuIGRlZmluaW5nIGVudW1lcmF0aW9uIGxpc3RzCiAgIChCdWcgIzkyMzc2NikKCjIwMDQtMDYtMjEgMDM6MTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIENvcnJlY3QgZGVzY3JpcHRpb24gb2YgcmV0dXJuIHZhbHVlcyB0byB1c2UgKEJ1ZyAjOTQ3OTI2KQoKMjAwNC0wNi0yMSAwMzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBzaXplIGZvciBwYXJzaW5nIGFuIGludGVnZXIgY29ycmVjdGx5IChCdWcgIzk0NzQwMykKCjIwMDQtMDYtMTkgMTY6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRml4IGNvbW1lbnQgdHlwby4KCjIwMDQtMDYtMTkgMDY6MzQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBtb2RpZnkgcGF0Y2ggOTU2MjcyIHRvIG1ha2UgaXQgU29sYXJpczIgc3BlY2lmaWMKCjIwMDQtMDYtMTggMTM6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gaW5zdGFsbCBuZXcgbWliMmMtdXBkYXRlIGJhc2ggc2NyaXB0CiAgIC0gaW5zdGFsbCB0b3AgbGV2ZWwgbWZkIGNvbmYgZmlsZQogICAtIG1ha2UgaW5zdGFsbCB0YXJnZXQgZGVwZW5kIG9uICdtYWRlJyBwZXJsIHNjcmlwdHMKCjIwMDQtMDYtMTggMTI6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjaGFuZ2UgdV9pbnQzMl90IHRvIGludDMyIHRvIG1ha2UgaXQgbW9yZSBwb3J0YWJsZQoKMjAwNC0wNi0xOCAxMTo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVtb3ZlZCBhIHNraXBfdG9rZW4gdGhhdCB3YXMgY2F1c2luZyBhIGZvbGxvdy1vbiB0b2tlbiB0byBiZSBza2lwcGVkLgoKMjAwNC0wNi0xOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlZCByZmMgbGlzdCBmb3IgdXNtLWFlcwoKMjAwNC0wNi0xOCAxMTo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gRml4ZWQgdXNhZ2Ugb2YgZl9mcnNpemUgdW5kZXIgYXJjaGl0ZWN0dXJlcyB0aGF0IGhhZCBpdCBmb3Igc3RhdHZmcwogICAgIGJ1dCBub3Qgc3RhdGZzLgoKMjAwNC0wNi0xOCAxMDozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIG1pYnMvTWFrZWZpbGUuaW4KLCBtaWJzL1NOTVAtVVNNLUFFUy1NSUIudHh0LCBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gVXBkYXRlZCB0aGUgQUVTIE9JRCB0byBtYXRjaCB0aGUgcmVjZW50bHkgcHVibGlzaGVkIFVTTS9BRVMgZHJhZnQKICAgLSBBZGRlZCB0aGUgVVNNLUFFUyBNSUIgdG8gdGhlIGxpc3Qgb2YgbWlicy4KCjIwMDQtMDYtMTggMDk6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG5ldyBtaWIyYy1kYXRhIGRpciB0byBzZWFyY2ggcGF0aAoKMjAwNC0wNi0xOCAwOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBhZGQgaW5zdGFsbC91bmluc3RhbGwgZm9yIG1mZCBtaWIyYyBmaWxlcwoKMjAwNC0wNi0xOCAwNzozMCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFN1cHBvcnQgZm9yIGludGVycHJldGluZyBJbmV0QWRkcmVzc1R5cGUvSW5ldEFkZHJlc3MgaW5kZXhlcyB3aXRoaW4gYW4gT0lELgogICAoUGF0Y2ggIzg0MTYyNSBmcm9tIFlpeGlvbmcgWm91KQoKMjAwNC0wNi0xOCAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUmVjb2duaXNlIEluZmluaWJhbmQgaW50ZXJmYWNlcwogICAoUGF0Y2ggIzk3MDYxNyBmcm9tIEthbm9qIFNhcmNhcikKCjIwMDQtMDYtMTggMDY6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRml4IGhhbmRsaW5nIG9mIC0tZW5hYmxlLWxvY2FsLXNtdXggb3B0aW9uCiAgIChQYXRjaCAjOTQ5ODA4IGZyb20gRXJpayDEbmdn5XJkKQoKMjAwNC0wNi0xOCAwNjo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgYWN0aXZhdGluZyBhbmQgZGVhY3RpdmF0aW5nIHVzZXJzLAogICBuZWNlc3NhcnkgZm9yIGZ1bGwgY29tcGxpYW5jZSB3aXRoIFJGQyAzNDE0LiAoUGF0Y2ggIzk0Mzc2MikKCjIwMDQtMDYtMTggMDY6MzggIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTFzb2xhcmlzaG9zdGRpc2sKLCBUMTUyaG9zdHVwdGltZSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgVXNlIHRyYW5zcG9ydCB2YXJpYWJsZXMgZm9yIHRlc3RpbmcgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyB1ZHA6bG9jYWxob3N0CiAgIChQYXRjaCAjOTQwMzAyIGZyb20gTWlrZSBTbGlmY2FrKQoKMjAwNC0wNi0xOCAwNjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgVXNlIC9kZXYvYXJwIHJhdGhlciB0aGFuIC9kZXYvaXAsIHNpbmNlIHRoaXMgd29ya3MgcHJvcGVybHkgd2l0aCBtdWx0aXBsZSB6b25lcy4KICAgKFBhdGNoICM5NDAwMjUgZnJvbSBCb2IgUm93bGFuZHMpCiAgIFtObyBpZGVhIHdoYXQgdGhpcyBtZWFucywgYnV0IGl0IHNvdW5kcyBpbXByZXNzaXZlLi4uLl0KCjIwMDQtMDYtMTggMDY6MjUgIGR0czEyCgogICAqIHNubXBsaWIvcGtjcy5jOgoKICAgSW5pdGlhbGlzZSBwU2xvdExpc3QgdG8gZ3VhcmQgYWdhaW5zdCBmcmVlaW5nIGdhcmJhZ2UuCiAgIChQYXRjaCAjOTM4MTM5IGZyb20gQm9iIFJvd2xhbmRzKQoKICAgSWYgZ2FyYmFnZSBpc24ndCBrZXB0IHN0cmljdGx5IGNvbnRyb2xsZWQsCiAgICB3aG8ga25vd3Mgd2hhdCBzdGF0ZSBzb2NpZXR5IG1pZ2h0IGdldCBpbnRvLi4uLgogICAoSG9tZXNwdW4gcGhpbG9zb3BoaWNhbCBtdXNpbmdzIGZyb20gRGF2ZSBTaGllbGQpCgoyMDA0LTA2LTE4IDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIERvbid0IHNldCB0aGUgaW5kZXggdmFsdWUgdW50aWwgd2UndmUgY2hlY2tlZCB0aGlzIGlzIGEgdmFsaWQgcmVxdWVzdC4KICAgKFBhdGNoICM5MzA3MTIgZnJvbSBKb2NoZW4vQ2hyaXN0b3BoZXIgUHJpY2UpCgoyMDA0LTA2LTE4IDA2OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIERvbid0IGluY2x1ZGUgdGhlIHZpZXdUcmVlIGxlbmd0aCB3aGVuIHNhdmluZyBhIHBlcnNpc3RlbnQgdmFjbVZpZXcKICAgKFBhdGNoICM5MjEyNzkgZnJvbSBCb2IgUm93bGFuZHMpCgoyMDA0LTA2LTE4IDA1OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgUGFzcyAqcG9pbnRlcnMqIHRvIHJlbG9hZC9jb21wYXJlIGZ1bmN0aW9ucyBpbnRvIEluaXRpYWxpc2VfVGFibGUKICAgKFBhdGNoICM5MjI1MTkgZnJvbSBSb2JlcnQgV2lsY294KQoKMjAwNC0wNi0xNyAyMDo1NyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIHBlciBCcnVjZSBTaGF3LCBpbmNsdWRlIHRoZSBPSUQgZm9yIENQVSBkZXZpY2UgaW4gdGhlIG1hdGNoIHN0cmluZy4KCjIwMDQtMDYtMTcgMTk6NDIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBhcHBseSBwYXRjaCA5NTYyNzIgLSB1c2UgY29ycmVjdCBzdHJ1Y3R1cmUgbWVtYmVyIGZvciBTb2xhcmlzIGhyUGFydGl0aW9uU2l6ZQoKMjAwNC0wNi0xNyAxOTowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBkb2N1bWVudCBub2RlLmRlc2NyaXB0aW9uCgoyMDA0LTA2LTE3IDE5OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSBmaXggcmV0dXJuIGNvZGUgZm9yIG1hbGxvYyBmYWlsdXJlCgoyMDA0LTA2LTE3IDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIC0gY29udmVydCBkZWJ1ZyBjb2RlIHRoYXQgc2hvdWxkIGhhdmUgbmV2ZXIgYmVlbiBjaGVja2VkIGluIHRvIG5ldHNubXBfYXNzZXJ0CgoyMDA0LTA2LTE3IDE4OjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgLSBhZGQgbG90cyBvZiBkZWJ1ZyBmb3IgdHJhY2tpbmcgaW5kZXggcHJvY2Vzc2luZwogICAtIG1ha2UgY29kZSBhbmQgY29tbWVudHMgY29uc2lzdGVudCB3aXRoIGVhY2ggb3RoZXIKICAgLSBmaXggYSAwLWJhc2VkIHZzIDEtYmFzZWQgcHJvYmxlbXMgd2hlbiB1c2luZyB2YWxpZF9jb2x1bW4gdmVyaWZpY2F0aW9uCiAgIC0gZml4IGNvbXBhcmlzb24gdG8gd3JvbmcgdmFyaWFibGUKICAgLSBkdWUgdG8gb3RoZXIgZml4ZXMsIGluaXQgdGJsX3JlcV9pbmZvLT5jb2xudW0gZWFybGllcgoKMjAwNC0wNi0xNyAxODo1MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgLSB1cGRhdGUgZmxvdyBjaGFydAogICAtIHN3YXAgcm93IGNyZWF0ZSAvIGNoZWNrIHZhbHVlczsgbm90IHF1aXRlIHN1cmUgaWYgSSBzaG91bGQsIHRob3VnaAoKMjAwNC0wNi0xNyAxODo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gaWZkZWYgb3V0IGNvbW1pdCBjb2RlIChjb21pbmcgc29vbikKCjIwMDQtMDYtMTcgMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNi0xNyAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gbWFrZSBzdXJlIHRvIHNldCBkb250IGludmFsaWRhdGVvbiBzZXQgY2FjaGUgZmxhZwoKMjAwNC0wNi0xNyAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gaW1wbGVtZW50IHNldCBvZiBhZG1pbiBzdGF0dXMKCjIwMDQtMDYtMTcgMTg6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBzcGVjaWFsIGNhc2UgcHJvY2Vzc2luZyBmb3IgaWZhZG1pbiBzdGF0dXMgKGJ5cGFzcyBzaXplb2YgY2hlY2spCgoyMDA0LTA2LTE3IDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLXVzZSBuZXcgZnVuY3Rpb25zIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsCiAgICBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfbXR1X2dldAogICAtbmV3IGZ1bmN0aW9uIG5ldHNubXBfYXJjaF9zZXRfYWRtaW5fc3RhdHVzCgoyMDA0LTA2LTE3IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmg6CgogICAtbmV3IGZ1bmN0aW9ucyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfZmxhZ3Nfc2V0LAogICAgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX210dV9nZXQKICAgLW1vdmUgd2hvbGUgZnVuY3Rpb25zIGluc2lkZSBpZmRlZiBjb25kaXRpb25hbCwgdG8gZm9yY2UgbGluayBlcnJvcnMgaW5zdGVhZAogICAgb2YgYSBmYWxzZSBzZW5zZSBvZiBzZWN1cml0eSB0aGF0IGFuIGlvY3RsIGlzIGF2YWlsYWJsZQoKMjAwNC0wNi0xNyAxODoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGRlZmluZSBwcml2YXRlICdhcmNoJyBmdW5jdGlvbiBwcm90b3R5cGVzIHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA0LTA2LTE3IDE4OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLXJlbmFtZSBzdGF0cyBzdHJ1Y3QgbWVtYmVycyB0byBub3QgbWF0Y2ggbWFjcm8gbmFtZXMKICAgLWFkZCBwb2ludGVyICYgbWFjcm9zIGZvciBvbGQgc3RhdHMgdG8gaW50ZXJmYWNlIGVudHJ5CiAgIC1tb3ZlIGNvbmYgb3ZlcnJpZGUgc3RydWN0L3JvdXRpbmVzIGhlcmUKICAgLWFkZCBpbml0IHJvdXRpbmUgZm9yIGNvbmZpZ3VyZSB0byBkZXRlY3QgJiBjYWxsCiAgIC1hZGQgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX3NldF9hZG1pbl9zdGF0dXMKICAgLWFkZCBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfdXBkYXRlX3N0YXRzIHRvIGRlYWwgd2l0aCAzMmJpdCBjb3VudGVyCiAgICB3cmFwcywgdW5sZXNzIDY0Yml0IGNvdW50ZXJzIGFyZSBkZXRlY3RlZAoKMjAwNC0wNi0xNyAxODoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCBzbm1wbGliL2ludDY0LmM6CgogICBuZXcgZnVuY3Rpb25zIHU2NEluY3IsIHU2NFVwZGF0ZUNvdW50ZXIsIHU2NENvcHksIG5ldHNubXBfYzY0X2NoZWNrX2Zvcl8zMmJpdF93cmFwCgoyMDA0LTA2LTE3IDE3OjM2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHRlc3Qgc2Vzc2lvbiBwdHIgYmVmb3JlIHVzaW5nLiBmaXhlcyBidWcgIzk3NTA2MyBzbm1wX3Nlc3NfY2xvc2UgTlVMTCBkZXJlZgoKMjAwNC0wNi0xNyAwOTo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIFVwZGF0ZWQgdGhlIGRvY3VtZW50YXRpb24gdG8gbWFrZSBpdCBtdWNoIG1vcmUgZXh0ZW5zaXZlIGFuZCBjb21wbGV0ZS4KCjIwMDQtMDYtMTcgMDY6MzkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFBhdGNoICA5Njg4Mzk6IG5ldC1zbm1wLWNvbmZpZyBmYWlscyB0byBwcmludCAtbHdyYXAKCjIwMDQtMDYtMTcgMDY6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBQYXRjaCAjOTczNzAyOiBQT0QgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIFRvbmkgV2lsbGJlcmcKCjIwMDQtMDYtMTYgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZ2V0dGFibGUgY2hhbmdlczoKICAgICAtIERvbid0IHJldHJpZXZlIGluZGV4ZXMgc2luY2Ugd2UgY2FsY3VsYXRlIHRoZW0uCiAgICAgLSBCdWcgZml4IGZvciBzZWxmLXNwZWNpZmllZCBjb2x1bW4gbGlzdHMuCgoyMDA0LTA2LTE2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBVc2UgY29weV9ud29yZCBmb3IgYWxsIHJlYWRfY29uZmlnIGF1dG8tcGFyc2luZyBvZiB0b2tlbnMgdG8gaGVscAogICBzdHJpcCBxdW90ZXMgaWYgdGhleSB3ZXJlIHVzZWQgZXZlbiBmb3IgaW50ZWdlcnMuCgoyMDA0LTA2LTE1IDE5OjU1ICByc3RvcnkKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmM6CgogICBmaXggbGlicmFyeSByZXNvdXJjZSBsb2NrcywgYXMgbm90ZWQgb24gY29kZXJzIGJ5IFlpbmcgSHUKCjIwMDQtMDYtMTUgMTc6MjcgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjNzbm1wdjNnZXRNRDVBRVMsIFQwMjNzbm1wdjNnZXRNRDVERVMKOgoKICAgY29ycmVjdCB2YXIgUFJJVlRFU1RBUkdTICh3YXMgUFJJVlRFU1RGTEFHUykKCjIwMDQtMDYtMTUgMTU6NDAgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgYXBwbHkgcGF0Y2ggIzk3MzU3MiBwZXIgQWxleCBCdXJnZXIgdG8gY2xhcmlmeSBuYW1pbmcgb2YgdGhlIHBhY2thZ2UsIGV0Yy4KCjIwMDQtMDYtMTUgMDc6MjcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ29uc2lzdGVuY3kgdHdlYWtzIHRvIHRoZSB1c2FnZSBvdXRwdXQgbWVzc2FnZS4KCjIwMDQtMDYtMTUgMDY6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBhcHBseSB1cGRhdGVkIHBhdGNoIGF0dGFjaGVkIHRvIGJ1ZyM3NTg0MzcKICAgdXNlIFNOTVBfRlJFRSB0byBtYW5hZ2UgYnVmZmVyIHBvaW50ZXIKICAgb3BlbiBzb2NrZXQgYmVmb3JlIGluY3JlYXNpbmcgYnVmZmVyIHNpemUKCjIwMDQtMDYtMTUgMDU6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIERlZmluZSB0aGUgZXhhbXBsZSBub3RpZmljYXRpb24gYXMgYSBub3RpZmljYXRpb24gKHVzaW5nIGFuIFJGQzI1NzYtc2FmZQogICBPSUQpLCByYXRoZXIgdGhhbiBhIE1JQiBvYmplY3QsIGFuZCBkZWZpbmUgZXhhbXBsZSBjb21wdWxzb3J5IGFuZCBvcHRpb25hbAogICBwYXlsb2FkIG9iamVjdHMuIFR3ZWFrIHRoZSBleGFtcGxlIGNvZGUgdG8gdXNlIHRoZXNlIG5ldyBkZWZpbml0aW9ucy4KCjIwMDQtMDYtMTUgMDQ6MjkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSB0cm9udG9yIHRvIGZpeCBidWcgOTQyNDk4IE5ldEJTRCAyLjBEIGFuZCBhYm92ZSB1c2Ugc3RhdHZmcwoKMjAwNC0wNi0xNCAxMjowMiAgc2xpZgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBkaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgYXBwbHkgcGF0Y2ggIzk3MjcxNSBXaW4zMiBidWlsZDogbWFrZWZpbGUsIHJlYWRtZSBhbmQgLm5zaSBzY3JpcHQgY2hhbmdlcwogICB0aGVzZSBiYWNrIG91dCB0d28gcHJldmlvdXMgY2hhbmdlcyBhbmQgZml4ZXMgYSBwcm9ibGVtIGNyZWF0aW5nIHNubXBjb25mLmJhdAoKMjAwNC0wNi0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnBtLCBhZ2VudC54cywgdGVzdC5wbDoKCiAgIEltcGxlbWVudGVkICRyZXF1ZXN0LT5zZXRFcnJvcigpIHRvIHNldCBlcnJvciBjb2RlcyBmb3IgcmVxdWVzdHMuCgoyMDA0LTA2LTE0IDEwOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIHBhdGNoIGZyb20gTWF0aGlhcyBTY2hlbGVyIGZpeGVzIGJ1ZyAjODA1OTU2IGJ5IGFsdGVyaW5nIGNvbmRpdGlvbmFsCiAgIGNoZWNrcyBmb3IgTmV0QlNEIGFuZCBEYXJ3aW4gZGVmaW5lcy4KCjIwMDQtMDYtMTIgMDg6MDQgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgZHlzbGV4aWMgIHMtTS1uLXAgIHRvIHMtbi1NLXAKCjIwMDQtMDYtMTIgMDg6MDEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGF0Y2ggOTcxMjYzIFdpbmRvd3MgaW5zdGFsbGVyIHNjcmlwdCBjaGFuZ2UgY29tcG9uZW50IGxhYmVsK2Rlc2NyCgoyMDA0LTA2LTEyIDA3OjU1ICBzbGlmCgogICAqIHdpbjMyLzogYnVpbGQuYmF0LCBpbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICBubWFrZXBlcmwuYmF0LCBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2ksCiAgICAgbG9jYWwvbWliMmMuYmF0LCBsb2NhbC9zbm1wY29uZi5iYXQsCiAgICAgbG9jYWwvdHJhcHRvZW1haWwuYmF0OgoKICAgY29udmVydCAuYmF0IGZpbGVzIHRvIHVzZSBET1MgQ1ItTEYgbGluZSB0ZXJtaW5hdGlvbi4KICAgYXBwbHkgcGF0Y2ggOTcxNDcxIE5TSSBpbnN0YWxsZXIgc2NyaXB0IGZpeGVzIGFkZHJlc3NpbmcgbGluZS1lbmQgcHJvYmxlbXMuCgoyMDA0LTA2LTExIDE3OjM4ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSAiZXJhc2Ugd2F0Y2hlci5vYmoiLCBmb3IgYSBmaWxlIHRoYXQgaXMgbWFuYWdlZCBpbiBsaWJoZWxwZXJzIHByb2plY3QuCgoyMDA0LTA2LTExIDE1OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGRlZmF1bHQgY2FjaGUgdG8gbm90IGludmFsaWRhdGUgb24gc2V0CgoyMDA0LTA2LTExIDE1OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBkZWZhdWx0IHRvIGFsbG9jYXRlZCB1bmRvIGNvbnRleHQsIGV2ZW4gaWYgZGF0YSBjb250ZXh0IGlzIGVtYmVkZGVkCiAgIC0gZml4IG1pc2Fzc2lnbmVkIGNhbGxiYWNrIGZ1bmN0aW9uCiAgIC0gYWRkIG1pc3NpbmcgYnJhY2VzIGZvciBtdWx0aWxpbmUgY29uZGl0aW9uYWwKCjIwMDQtMDYtMTEgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKICAgLSBhZGQgY29kZSB0byBoYW5kbGUgcGVyIGNvbHVtbiBiZWhhdmlvciBvbiBjb21taXQKICAgLSBhZGQgbm90ZSBvbiB1bmRvIGNvbnRleHQgd2hlbiBkYXRhIGluaXQgaXMgc2V0CgoyMDA0LTA2LTExIDE1OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX3RhYmxlLm0yaSwgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsIG1mZC10b3AubTJjOgoKICAgLSBkZWZhdWx0IHRvIGFsbG9jYXRlZCB1bmRvIGNvbnRleHQsIGV2ZW4gaWYgZGF0YSBjb250ZXh0IGlzIGVtYmVkZGVkCgoyMDA0LTA2LTExIDE1OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmk6CgogICAtIHR3ZWFrIHRvIHdvcmsgZXZlbiBmb3IgZ2VuZXJhdGVkIGRhdGEgY29udGV4dHMKICAgLSBmaXggdmFyIHR5cG8sIGNvbW1lbnQgdHlwbwoKMjAwNC0wNi0xMSAxNTozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgLSByZW1vdmUgb3Zlcmx5IGNvbmZ1c2luZyBtZXRob2QgZm9yIGNoYW5naW5nIGRlZmF1bHRzLCBiZWNhdXNlIGl0IHdhcwogICAgIGNvbmZsaWN0aW5nIHcvY29tbWFuZCBsaW5lIHZlcnNpb24uIG1heWJlIHJldmlzaXQgbGF0ZXIKICAgLSBkZWZhdWx0IChmYWxzZSkgZm9yIG5ldyB1bmRvX2VtYmVkCgoyMDA0LTA2LTExIDEzOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFJldHVybiBhbHJlYWR5IGdhdGhlcmVkIHJlc3VsdHMgZXZlbiBpZiBnZXRidWxrIGZhaWxzIHRvIHJldHVybiB0aGUKICAgZXhwZWN0ZWQgZGF0YSAodHlwaWNhbGx5IGR1ZSB0byBlbmQtb2YtbWliIGNvbmRpdGlvbnMpLgoKMjAwNC0wNi0xMSAxMzoxMyAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIE1lbnRpb24gdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCB2ZXJzaW9uIG51bWJlciBuZWVkcyBjaGFuZ2luZy4KCjIwMDQtMDYtMTEgMTA6MTggIHNsaWYKCiAgICogd2luMzIvTWFrZWZpbGUuaW46CgogICBwYXRjaCA5NzExMTMgIm5tYWtlIGNsZWFuIiB2aXNpdHMgbGlic25tcCBhbmQgbGlic25tcF9kbGwgZXZlcnkgdGltZS4KCjIwMDQtMDYtMTAgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIG5ldyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfZ3Vlc3Nfc3BlZWQKICAgLSBuZXcgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2VudHJ5X292ZXJyaWRlcwogICAtIHJlc3RvcmUgaWZfYWRtaW5fc3RhdHVzCiAgIC0gYWRkIHBsYXRmb3JtIHNwZWNpZmljIGlmX2ZsYWdzLCAmIGRlZmluZSBmb3IgZmxhZ3MgdG8gaW5kaWNhdGUgYXZhaWxhYmlsaXR5CiAgIC0gc3BlY2lmeSBhbGwgNCBoZXggYnllcyBmb3IgZmxhZyBkZWZpbmVzCgoyMDA0LTA2LTEwIDIxOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGxpbnV4IHJlcXVpcmVzIG5ldyBpb2N0bCBpbnRlcmZhY2UgYWNjZXNzCiAgIC0gdXNlIGlvY3RsIGZvciBod2FkZHIsIGlmX2ZsYWdzCiAgIC0gZ3Vlc3MgaWYgdHlwZSBiYXNlZCBvbiBuYW1lIGlmIG5vdCBrbm93bgogICAtIG1vdmUgZ2V0SWZTcGVlZCBjb2RlICYgcmVuYW1lIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9saW51eF9nZXRfaWZfc3BlZWQKCjIwMDQtMDYtMTAgMjA6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIC0gbmV3IGlvY3RsIGludGVyZmFjZSBhY2Nlc3MKCjIwMDQtMDYtMTAgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywgaWZUYWJsZS5oOgoKICAgLSBtb3ZlIGFkbWluIHN0YXR1cyBiYWNrIHRvIGludGVyZmFjZSBlbnRyeQogICAtIHVzZSBkZXNjcmlwdGlvbiBmcm9tIGludGVyZmFjZSBlbnRyeQoKMjAwNC0wNi0xMCAxMDo1OSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBwZXIgQW5keSBTbWl0aCwgYXBwbHkgcGF0Y2ggIzk3MDQ4MCBXaW4zMiBSRUFETUUuYnVpbGQud2luMzIudHh0IHVwZGF0ZQoKMjAwNC0wNi0wOSAyMDoyOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBhcHBseSBjaGFuZ2VzIGlkZW50aWZpZWQgaW4gcGF0Y2ggIzk2OTMzOCBwYXRjaGVzIGZvciBGcmVlQlNEIDUueCBzdWNjZXNzZnVsIGJ1aWxkCgoyMDA0LTA2LTA5IDE4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2NvbnN0YW50cy5oLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSBVcGRhdGUgZm9yIE1GRCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzICsgc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQgKwogICAgIElGLU1JQiBjaGFuZ2VzCiAgIC0gcmVtb3ZlIGFiaWxpdHkgdG8gYnVpbGQgaW5kZXBlbmRlbnQgb2YgaWZUYWJsZQoKMjAwNC0wNi0wOSAxODo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9jb25zdGFudHMuaCwgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSBVcGRhdGUgZm9yIE1GRCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzICsgc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQgKwogICAgIElGLU1JQiBjaGFuZ2VzCiAgIC0gdXNlIG5ldyBwYXJhbSB0byBzYXZlIGludGVyZmFjZSBlbnRyeSB3L2dlbmVyYXRlZCBjb250ZXh0CiAgIC0gZm9yIGRhdGEgZnJvbSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSwgdXNlICNkZWZpbmVzIHNvIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QKICAgICBjaGFuZ2UgKGVnIGRlZmluZSBpZk5hbWUgaWZlbnRyeS5pZl9uYW1lKS4gd29ya3MgZm9yIG1vc3QgY2FzZXMKICAgLSBhZGQgZ2VuZXJhdGVkIHN0b3JhZ2UvZGVmaW5lcyBmb3IgaWZYVGFibGUgY29sdW1ucyB0byBkYXRhIGNvbnRleHQKICAgLSBjaGFuZ2UgY2FjaGUgdGltZW91dCB0byAzMCBzZWNvbmRzCiAgIC0gdXNlIG5ldyBjYWNoZSBmZWF0dXJlcyB0byBhdXRvIGxvYWQgYW5kIGF1dG8gcmVmcmVzaCBjYWNoZQogICAtIHVzZSBuZXcgVU5LTk9XTiBpZk9wZXJTdGF0dXMgZm9yIGludGVyZmFjZXMgdGhhdCB2YW5pc2gKICAgLSB1c2UgbmV3IGludGVyZmFjZSBjb3B5IGZ1bmN0aW9uIHdoZW4gdXBkYXRpbmcgY2FjaGUKICAgLSBvbmx5IHVwZGF0ZSBMYXN0Q2hhbmdlZCBvbiBpZk9wZXJTdGF0dXMgY2hhbmdlcwoKMjAwNC0wNi0wOSAxODozNyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aCwgYXBwbHkgcGF0Y2gjOTY4ODAwIFNOTVBDT05GUEFUSCBmaXggZm9yIFdpbjMyIGJpbmFyeSBpbnN0YWxsZXIKICAgYW5kIHBhdGNoICM5NzAwMTIgUmVtb3ZlIHNubXBjb25mLnBsIGZyb20gV2luZG93cyBpbnN0YWxsZXIKCjIwMDQtMDYtMDkgMTg6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQ6CgogICAtIHN3aXRjaCB0byBhIG1peGVkLW1vZGUgZGF0YSBjb250ZXh0CiAgICAgLSBjaGcgZGF0YSBjb250ZXh0IHRvIGRlZmF1bHQgZ2VuZXJhdGVkCiAgICAgLSBkb24ndCBhbGxvY2F0ZSBkYXRhIGNvbnRleHQKICAgICAtIGRvIHJlcXVlc3QgYSBpbml0IGNhbGwgZm9yIG5ldyBjb250ZXh0cwoKMjAwNC0wNi0wOSAxODoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVtb3ZlIG1pYiBzcGVjaWZpYyBzdHVmZiAoaWZfYWxpYXMsIGlmX2FkbWluX3N0YXR1cywgaWZfbGlua191cGRvd25fdHJhcCkKICAgICAoc3RpbGwgbm90IHN1cmUgYWJvdXQgbGFzdCBjaGFuZ2VkIGFuZCBkaXNjb250aW51aXR5KQogICAtIG5ldyBmdW5jdGlvbiB0byBjb3B5IGludGVyZmFjZSBlbnRyeSBkYXRhCiAgIC0gbWFrZSBjYWxsYmFjayBmdW5jdGlvbnMgc3RhdGljCgoyMDA0LTA2LTA5IDE3OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBpZiBkYXRhX2luaXQgc2V0LCBhZGQgdXNlciB2b2lkIHBvaW50ZXIgdG8gYWxsb2NhdGVfcm93cmVxX2N0eCwgYW5kIHBhc3MgaXQKICAgICB0byByb3dyZXFfY3R4X2luaXQKICAgLSBmaXggdHdvIHR5cG9zIGluIGNvZGUgb25seSBnZW5lcmF0ZWQgd2hlbiBkYXRhX2luaXQgaXMgc2V0CiAgIC0gcmVsZWFzZSB1bmRvIGRhdGEgaW4gZnJlZV9yb3dyZXFfY3R4CiAgIC0gZG9uJ3QgZ2VuZXJhdGUgdW5kbyBzZXR1cCBjb2RlIGZvciBub24tc2V0dGFibGUgY29sdW1ucwoKMjAwNC0wNi0wOSAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLXRvcC5tMmM6CgogICAtIGlmIGRhdGFfaW5pdCBzZXQsIGFkZCB1c2VyIHZvaWQgcG9pbnRlciB0byBhbGxvY2F0ZV9yb3dyZXFfY3R4LCBhbmQgcGFzcyBpdAogICAgIHRvIHJvd3JlcV9jdHhfaW5pdAoKMjAwNC0wNi0wOSAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICAtIGNvbnZlcnQgY29udGFudCBwcmVmaXhlcyB0byB1cHBlcmNhc2UKICAgLSBhZGQgJ192YWwnIHN1ZmZpeCB0byBhbGwgbm9kZSBwYXJhbWV0ZXIgbmFtZXMKCjIwMDQtMDYtMDkgMTc6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIGFkZCBkZXNjcmlwdGlvbgoKMjAwNC0wNi0wOSAwMjozNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBwZXIgTWlrZSBIZWlzbGVyLCBmaXggYnVnICM5MzY0ODMgKHJlc3RvcmUgc3NpemVfdCkuCgoyMDA0LTA2LTA4IDIxOjU1ICBzbGlmCgogICAqIGFjY29uZmlnLmg6CgogICBVcGRhdGUgdG8gd2luMzIgaWZkZWYgdG8gaW5jbHVkZSBvdGhlciBlbnZpcm9ubWVudHMKCjIwMDQtMDYtMDggMTM6NTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZml4IGJ1aWxkIGZhaWx1cmUgKG5vIHN1Y2ggbWVtYmVyIGtwX2NvbW0sIGV0Yy4pIGZvciBGcmVlQlNEIDUueAoKMjAwNC0wNi0wOCAxMzo1MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgZml4IGJ1aWxkIGZhaWx1cmUgKG5vIHN1Y2ggbWVtYmVyIHh0X3RwKSBmb3IgRnJlZUJTRCA0LnggYW5kIEZyZWVCU0QgNS54CgoyMDA0LTA2LTA4IDEzOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggY29tcGlsZSBmYWlsdXJlIChubyBpbnBfbmV4dCBpbiBzdHJ1Y3QgaW5wY2IpIGZvciBGcmVlQlNEIDQueCBhbmQgNS54CgoyMDA0LTA2LTA4IDEzOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIGZpeCBidWcgODk1Njc5IGJ5IGVuc3VyaW5nIHVwcGVyIGxpbWl0IHRyYWNrcyBidWZmZXIgYWxsb2NhdGlvbi9mcmVlIGFjdGlvbnMuCgoyMDA0LTA2LTA4IDEyOjAzICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICByZW1vdmUgdW5uZWNlc3NhcnkgdW5kZWYgb2YgU1RSVUNUX1NUQVRGU19IQVNfRl9GQVZBSUwgKG5ldmVyIGlzIGRlZmluZWQpLgoKMjAwNC0wNi0wOCAxMDo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLXNldC5tMmMsIHBhcmVudC1zZXQubTJpCjoKCiAgIC0gY29tbWVudHMgYWJvdXQgZmxhZyBhbmQgZGVmaW5lcyBmb3IgdHJhY2tpbmcgd2hpY2ggY29sdW1ucyBoYXZlIGJlZW4gc2V0CiAgIC0gbWlzc2VkIGEgZmV3IGVycm9yIGRlZmluZSB1cGRhdGVzCgoyMDA0LTA2LTA4IDEwOjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMsCiAgICAgcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBhZGQgZmxhZyBhbmQgZGVmaW5lcyBmb3IgdHJhY2tpbmcgd2hpY2ggY29sdW1ucyBoYXZlIGJlZW4gc2V0CgoyMDA0LTA2LTA3IDE5OjUyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggc2V0dGluZyBvZiBPU1RZUEUgZm9yIEZyZWVCU0QgYnVpbGQgcGxhdGZvcm1zLgoKMjAwNC0wNi0wNyAxOTo0NyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgY3JlYXRlIHN5c3RlbSBpbmNsdWRlIGZpbGUgZm9yIEZyZWVCU0QgNS54IGJ1aWxkIHBsYXRmb3Jtcy4KCjIwMDQtMDYtMDcgMTk6NDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgaW4gc3dhcG1vZGUKCjIwMDQtMDYtMDcgMTI6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICByZWNoZWNrIHBlcnNpc3RlbnQgcGF0aCBpbiBsb29wLCBzaW5jZSBpdCBtaWdodCBjaGFuZ2UKCjIwMDQtMDYtMDcgMTI6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHNwZWNpZnkgZnVsbCAzMiBiaXRzIGZvciBoYW5kbGVyIGZsYWdzCgoyMDA0LTA2LTA3IDEyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIGFsd2F5cyBjb25zaWRlciBjYWNoZSB3L3RpbWVvdXQgb2YgLTEgYXMgZXhwaXJlZCAobG9hZCBjYWNoZSBldmVyeSByZXF1ZXN0KQogICAtIGFkZCBORVRTTk1QX0NBQ0hFX0RPTlRfRlJFRV9CRUZPUkVfTE9BRCAmIE5FVFNOTVBfQ0FDSEVfQVVUT19SRUxPQUQgZmxhZ3MKICAgLSBhZGQgZXhhbXBsZSB1c2FnZXMgc2NlbmFyaW9zIGFuZCBzdWdnZXN0ZWQgZmxhZ3MKICAgLSBhZGQgbmV0c25tcF9jYWNoZV90aW1lcl9zdGFydCAmIG5ldHNubXBfY2FjaGVfdGltZXJfc3RvcAogICAtIGNsZWFyIGV4cGlyZWQgZmxhZyBhZnRlciBjYWNoZV9sb2FkCiAgIC0gYWRkIGFub3RoZXIgbm90ZSBhYm91dCBwb3RlbnRpYWwgY2FjaGUgaXNzdWUgdy9kZWxlZ2F0ZWQgcmVxdWVzdHMKICAgICAoc29tZSBsb2NraW5nL3JlZmVyZW5jZSBjb3VudCBtZWNoYW5pc20gaXMgbmVlZGVkKQoKMjAwNC0wNi0wNyAxMTo1MCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gYWNjZXB0IGFiYnJldmlhdGVkIHZlcnNpb25zIG9mIHNvbWUgZmxhZ3MKICAgLSBwb2ludCBpbmRlbnQtb3B0b2lucyBhdCBhIHJlYWwgZGlyZWN0b3J5CiAgIC0gZG9uJ3Qgc3Vic3RpdHV0ZSBwcmVmaXggbXVsdGlwbGUgdGltZXMKCjIwMDQtMDYtMDcgMTE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIGZpeCBjb21tZW50IHJlZiBmb3IgaW50ZWdlciBmcm9tIE5VTEwgdG8gMAoKMjAwNC0wNi0wNyAxMTozOSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBza2lwIHNjcCBpZiBiYWMgcmMgZnJvbSBjdnMgY29tbWFuZAoKMjAwNC0wNi0wNyAxMTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlYW1lICRpX0lEWDIgdG8gJElfQ1VTVE9NX1NPUlQgdG8gcmVkdWNlIGNvbmZ1c2lvbgoKMjAwNC0wNi0wNyAxMTozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIGFkZCBtaXNzaW5nIHVuZG9fY29tbWl0LCB1bmRvX2NsZWFudXAgc3RhdGVzCiAgIC0gbW92ZSBwcmUvcG9zdCByZXF1ZXN0IGluaXQgb3V0c2lkZSBtaWIyYyBjb25kaXRpb25hbAogICAtIG1vdmUgdW5kbyBkYXRhIGNvbnRleHQgcmVsZWFzZSB0byB1bmRvX2NsZWFudXAKICAgLSB2YWxpZGF0ZSByYyBmcm9tIG5vZGUgY2hlY2sgdmFsdWUgcm91dGluZQoKMjAwNC0wNi0wNyAxMTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBtb3JlIGhlbHAgdGV4dCBmb3IgZGlzdGluY3Rpb24gYmV0d2VlbiB3cm9uZ1ZhbHVlL2luY29uc2lzdGVudFZhbHVlCgoyMDA0LTA2LTA3IDExOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gbW9yZSBoZWxwIHRleHQgZm9yIHZhbGlkYXRlX2luZGV4CiAgIC0gaW5jbHVkZSBiYWJ5LXN0ZXBzIGZsb3ctY2hhcnQgYmVmb3JlIHNldCBmdW5jdGlvbnMKICAgLSBhZGQgbWlzc2luZyB1bmRvX2NvbW1pdCwgdW5kb19jbGVhbnVwIHN0YXRlcwoKMjAwNC0wNi0wNyAxMToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgdXNlIFNOTVB2MiBlcnJvcnMgaW5zdGVhZCBvZiB2MSBlcnJvcnMKCjIwMDQtMDYtMDcgMTE6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIHR1cm4gb2ZmIGluZGVudCBhcm91bmQgY29uZmlnX3JlcXVpcmUgKGRvZXNuJ3QgbGlrZSAgJy8nIG9yICctJyBjaGFycykKICAgLSBzaW1wbGlmeSBzb21lIGVycm9yIGRlZmluZSBuYW1lcwoKMjAwNC0wNi0wNyAxMToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdXBkYXRlIHNvbWUgcXVlc3Rpb24vaGVscCB0ZXh0CgoyMDA0LTA2LTA3IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYzoKCiAgIHJlc3RvcmUgZm9yZWFjaCB0YWJsZQoKMjAwNC0wNi0wNyAxMToxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgcmV2ZXJ0IGNoYW5nZXMgZm9yIHNldHRpbmcgc29tZSBtaWIyYyBkZWZhdWx0cyAodXNlIG1pYjJjIC1TIHh4eCBpbnN0ZWFkKQoKMjAwNC0wNi0wNyAxMToxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHBhc3MgZXh0cmEgYXJncyB0byBtaWIyYwoKMjAwNC0wNi0wNyAxMToxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBjaGFuZ2UgZXhhbXBsZSBjb21tZW50IGJsb2NrIHNvIGluZGVudCB3aWxsIGluZGVudCBpdAogICAtIHNraXAgc3Vic3RpdHV0aW9uIGNoZWNrcyBpZiB0aGV5IHdvbid0IG1hdGNoCiAgIC0gYXBwbHkgZGF2ZSdzIGhhY2sgZm9yIDkzOTA0MTogLi4uIGJhZCBtYWNybyBuYW1lIGlmZiBlbnVtIGNvbnRhaW5zIGh5cGhlbgoKMjAwNC0wNi0wNyAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBCYWNrd2FyZHMtY29tcGF0YWJpbGl0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVUNELVNOTVAtTUlCOjpleHRUYWJsZQogICAoaWYgdGhlIHVjZC1zbm1wL2V4dGVuc2libGUgbW9kdWxlIGlzbid0IGNvbmZpZ3VyZWQgaW4pLgoKMjAwNC0wNi0wNyAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwKICAgICB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgICB1Y2Qtc25tcC9wYXNzLmgsIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oOgoKICAgTW92ZSAnZ2V0X2V4dGVuX2luc3RhbmNlJyBpbnRvIHRoZSB1dGlsaXR5IGZ1bmN0aW9uIGZpbGUsCiAgIHNvIHRoYXQgdGhlIHR3byBwYXNzIGhhbmRsZXJzIGFyZW4ndCBkZXBlbmRlbnQgb24gJ2V4dGVuc2libGUnCgoyMDA0LTA2LTA2IDIzOjQ3ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgbW9kdWxlcyB3aGVuIHRoZXJlIGFyZSByZXBsYWNlbWVudHMgZm9yIHRoZW0KCjIwMDQtMDYtMDYgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjdnMgc2VydmVyIG5hbWUgY2hhbmdlCgoyMDA0LTA2LTA0IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICByZW1vdmUgcmVkdW5kYW50IHJlZmVyZW5jZSByb3cgZnJvbSBvdXRwdXQKCjIwMDQtMDYtMDQgMTM6MzkgIGhhcmRha2VyCgogICAqIG1pYnMvbm9kZW1hcDoKCiAgIGFkZGVkIGEgbm9kZW1hcCBmb3IgaHRtbCBvdXRwdXQgZ2VuZXJhdGlvbgoKMjAwNC0wNi0wNCAxMzozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgbWFrZSBodG1sIG91dHB1dCBkaXNwbGF5IHRoZSByZWZlcmVuY2UgaW4gaXRhbGljcyBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGRzLgoKMjAwNC0wNi0wNCAxMzozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMsIG1hbi9taWIyYy5jb25mLjU6CgogICBtYWtlICR4LnJlZmVyZW5jZSBleHBhbmQgdG8gYSBvYmplY3RzIHJlZmVyZW5jZQoKMjAwNC0wNi0wNCAxMzozNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1ha2UgU05NUDo6TUlCIG9iamVjdHMgaGFuZGxlIGEgJ3JlZmVyZW5jZScga2V5d29yZC4KCjIwMDQtMDYtMDQgMTM6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIFNhdmVkIHRoZSB2YWx1ZSBvZiBwYXJzZWQgcmVmZXJlbmNlIGNsYXVzZXMuCgoyMDA0LTA2LTA0IDA1OjUxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEEgbGl0dGxlIGVycm9yLWNoZWNraW5nIHdoZW4gZm9yd2FyZGluZywgYW5kIGNoYW5nZSBmcHJpbnRmIHRvIHNubXBfbG9nCgoyMDA0LTA2LTA0IDAzOjE3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFByb3Blcmx5IGZyZWUgcHJpbnRidWZmZXIKCjIwMDQtMDYtMDQgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBNYWtlIHN1cmUgYWxsIHJlZ2lzdHJhdGlvbiBhcmUgcmVtb3ZlZCBmb3IgZXhlYydzCgoyMDA0LTA2LTA0IDAyOjQ1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGdhcmJsZWQgcGFja2V0cyB3aXRoIGJhZCBwYWNrZXQgdHlwZXMKCjIwMDQtMDYtMDQgMDE6NTcgIG5iYQoKICAgKiBtYW4vc25tcF9hcGkuMy5kZWY6CgogICBTaW1wbGUgc3BlbGxpbmcgZml4CgoyMDA0LTA2LTA0IDAxOjE1ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZHVwIGluc3RhbGxhdGlvbiBvZiBzY3JpcHRzIGFmdGVyIGFkZGl0aW9uIG9mIC0tZGlzYWJsZS1zY3JpcHRzCgoyMDA0LTA2LTA0IDAwOjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgdW5kbyBwcmV2aW91cyBjaGFuZ2UsIHNpbmNlIGludHJvZHVjdGlvbiBvZiBmcmVlYnNkNS5oIGhlYWRlciBkZWZpbmVzIGZyZWVic2Q0LgoKMjAwNC0wNi0wMyAxMjo1OSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCBidWcgIzk0MzM1MSBieSBjb25zaWRlcmluZyBmcmVlYnNkNSB3aGVuIGRlY2xhcmluZyAiaHoiLgoKMjAwNC0wNi0wMiAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtcmVhZG1lLm0yYzoKCiAgIGZpeCBhIGZldyBtaXNzZWQgcHJvY2Vzc2luZ190eXBlIHR3ZWFrcwoKMjAwNC0wNi0wMiAwNTozNyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvU05NUC9SRUFETUUsIHdpbjMyL0NvbmZpZ3VyZQosIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICB3aW4zMi9ubWFrZXBlcmwuYmF0LCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQKLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmb3Igd2luMzIgZG9jIGFuZCBzY3JpcHRzLCBtYXRjaCB0aGUgYmFzZSBkaXJlY3RvcnkgdXNlZCBhcyBjdXJyZW50IGRlZmF1bHQuCgoyMDA0LTA2LTAxIDAyOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEhhbmRsZSByb3cgZGVsZXRpb24gKGFuZCBmYWlsZWQgcm93IGNyZWF0aW9uKSBwcm9wZXJseS4KICAgTW92ZSByb3cgY3JlYXRpb24gYW5kIG5ldyB2YWx1ZSBhc3NpZ25tZW50cyB0byB0aGVpciBuYXR1cmFsCiAgIHBhc3Nlcywgd2l0aCBhIHNlY29uZCAoc2VwYXJhdGUpIGNoZWNrIGZvciByb3cgdmFsaWRpdHkuCiAgIChmb2xsb3dpbmcgUm9iZXJ0J3Mgc3VnZ2VzdGlvbikKCjIwMDQtMDYtMDEgMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIGZvbGxvd2luZyB0aGUgYWRkaXRpb24gb2YgJ3JlbG9jYXRhYmlsaXR5Jy4KICAgRW5zdXJlIHRoYXQgdGhlICJzdGFuZGFyZCIgbG9jYXRpb24gaXMgcmVnaXN0ZXJlZCBhdXRvbWF0aWNhbGx5CiAgIChzbyB0aGUgbnVtUm93cyBvYmplY3QgaXMgcHJlc2VudCwgZXZlbiB3aXRoIGFuIG90aGVyd2lzZSBlbXB0eSB0YWJsZSkuCgoyMDA0LTA1LTI3IDIwOjA2ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHVwZGF0ZSBzdGF0dXMgdG8gcmVmbGVjdCBzbm1wdHJhcGQgY2FuIGJlIHJ1biBhcyBhIFdpbmRvd3Mgc2VydmljZS4KCjIwMDQtMDUtMjcgMDU6MzcgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBDb3JyZWN0IHRoZSBudW1iZXIgb2YgY29weXJpZ2h0IG5vdGljZXMKICAgbGlzdGVkLCBhbmQgdGhlIHRleHQgb2YgdGhlIFNwYXJ0YSBvbmUuCiAgIChJIHRydXN0IHRoaXMgaXMgT0ssIFdlcyEpCgoyMDA0LTA1LTI2IDAxOjM5ICBkdHMxMgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgUmVtb3ZlIHdhcm5pbmdzIG9mIEFnZW50WCAiYmV0YS1zdGF0dXMiLgogICAoSSBrbm93IEknbSBnb2luZyB0byByZWdyZXQgZG9pbmcgdGhpcy4uLi4pCgoyMDA0LTA1LTI1IDA4OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQWNjZXB0IHRoZSBzYW1lIHNlY3VyaXR5IGxldmVsIHRva2VucyBhcyB1c2VkIGluIHRoZQogICAiclt3b111c2VyIiBhbmQgImFjY2VzcyIgZGlyZWN0aXZlcy4KCjIwMDQtMDUtMjQgMDM6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgSW1wbGVtZW50IHJlbG9jYXRhYmxlIGZvcm0gb2YgYWdlbnQgZXh0ZW5zaW9uIHRhYmxlLgoKMjAwNC0wNS0yNCAwMzozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBJbXBsZW1lbnQgJ3J1bi1vbi13cml0ZScgc3VwcG9ydCwgYW5kIHVzZSBpdCB0byBoYW5kbGUgYQogICBuZXcgJ2V4ZWNGaXgnLXN0eWxlIGRpcmVjdGl2ZS4KCjIwMDQtMDUtMjMgMTA6NDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGg6IGFwcGx5IHBhdGNoIFs5NTc5NDJdIFdpbjMyIHNlcnZpY2UgaW5zdGFsbCBwYXVzZQoKMjAwNC0wNS0yMSAxMDoxMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIGZvci9wcm9jZXNzIGRlbGVnYXRlZCByZXF1ZXN0cyBpbiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcwoKMjAwNC0wNS0yMCAyMTowOSAgc2xpZgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBpZ25vcmUgZmFpbHVyZSByZXN1bHQgc2hvdWxkIGN2cyBjaGVja291dCBjb25kaXRpb24gbm90IGFwcGx5LgogICBUaGlzIHBlcm1pdHMgYnVpbGRzIG91dHNpZGUgQ1ZTIHRyZWUgdG8gc3VjY2VlZC4KCjIwMDQtMDUtMjAgMTY6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIE1pbm9yIHdvcmRpbmc6IGFkZGVkIHRhYmxlIG5hbWUgdG8gImluZGV4IiBhbmQgIm90aGVyIGNvbHVtbnMiIGxpbmUuCgoyMDA0LTA1LTIwIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgcmVtb3ZlIGNoYW5nZXMgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHRoYXQgd2VyZW4ndCByZWFkeQoKMjAwNC0wNS0yMCAxNTowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBWZXJzaW9uLU11bmdlLnBsLCBtaWIyYy5nZW5odG1sLmNvbmY6CgogICAtIGFkZGVkIHN1cHBvcnQgZm9yIG5vdGlmaWNhdGlvbiBkZXNjcmlwdGlvbnMKCjIwMDQtMDUtMTkgMTg6MDkgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBhZGQgZ2V0X3RjX2Rlc2NyaXB0aW9uIGFuZCBpbml0X3VzbV9jb25mIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzIGxpc3QuCgoyMDA0LTA1LTE5IDE4OjAyICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQZXJtaXQgQ3lnd2luIGJ1aWxkIHRvIHRha2UgYWR2YW50YWdlIG9mIGJhY2tzbGFzaCBwcnVuaW5nIGFuZCBzaW5nbGUgbGV0dGVyIHZvbHVtZSBzcGVjaWZpZXIuCgoyMDA0LTA1LTE5IDE3OjU0ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sOgoKICAgcGVyIEFsZXggQnVyZ2VyOiAgc25tcGNvbmYgZGFzaCBsaXR0bGUtZXllCgoyMDA0LTA1LTE5IDE2OjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBhcnNpbmcgb2YgZXhwbGljaXQgaGFuZGxlciB0eXBlcwoKMjAwNC0wNS0xOSAxMzoxNCAgaGFyZGFrZXIKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIHVwZGF0ZSBhZnRlciBhIG1pYjJjIHVwZGF0ZQoKMjAwNC0wNS0xOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgLSBzdXBwb3J0IGEgdGFibGUgb2YgY29udGVudHMKICAgLSBuYW1lIGFsbCBub2RlcyB1c2luZyBodG1sIG5hbWVzCiAgIC0gc3VwcG9ydCBhIHRyZWUtdmlldwogICAtIG1pc2MgYnVnIGZpeGVzCgoyMDA0LTA1LTE5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gc3VwcG9ydCAiZm9yZWFjaCAkaSBzdHVmZiBMSVNUIgogICAtIHVzZSB1bnNoaWZ0IGluc3RlYWQgb2YgcHVzaCBmb3IgY2FsbGRlZmluZSB0byBlbnN1cmUgcHJvcGVyIHJlY3Vyc2lvbgogICAtIHJlZ2V4cCBtdW5naW5nCgoyMDA0LTA1LTE5IDEwOjMwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBsb2FkIHRoZSBjYWNoZSBmb3IgcmVzZXJ2ZTEgKG90aGVyd2lzZSBhIGdldCBpcyByZXF1aXJlZCBiZWZvcmUgc2V0IHdvcmtzKQoKMjAwNC0wNS0xOCAxMzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgYWxsb3cgZm9yIHVzZXIgb3ZlcnJpZGUgb2YgbWZkIG9wdGlvbiBkZWZhdWx0cwoKMjAwNC0wNS0xOCAxMzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgYWxsb3cgZm9yIGludGVyYWN0aXZlIHNldHVwIG9mIG1mZCBvcHRpb25zCgoyMDA0LTA1LTE4IDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBhbGxvdyBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgb2Ygb3B0aW9uczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDEzOjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDEzOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgc2V0IHZhcmJpbmQgZXJyb3Igb24gY29sdW1uIHNldCBlcnJvcjsgYWx3YXlzIGNhbGwgcm93X3ByZXA7IGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQKICAgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIHNldCB2YXJiaW5kIGVycm9yIG9uIGNvbHVtbiBzZXQgZXJyb3I7IGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZgogICAkdGFibGU7IHNlcGFyYXRlIG1mZF9wcm9jZXNzaW5nX3R5cGVzIGZyb20gbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wNS0xOCAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC10b3AubTJjOgoKICAgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgc2VwYXJhdGUgbWZkX3Byb2Nlc3NpbmdfdHlwZXMKICAgZnJvbSBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTA1LTE4IDEzOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyByZW1vdmUgZGF0YSBzZXR1cCBmcm9tIHJvd19wcmVwCgoyMDA0LTA1LTE4IDExOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBkZWZhdWx0IHRvIHNldHRpbmcgdXAgZGF0YQogICBjb250ZXh0IGluIGNhY2hlX2xvYWQsIGluc3RlYWQgb2Ygcm93X3ByZXAKCjIwMDQtMDUtMTggMTE6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgYXNzdW1lIG1hcHBpbmcgYWxyZWFkeSBkb25lOyBzZXQgbGVuIHRvIG1heCBzaXplIGJlZm9yZQogICBjaGVja2luZyBpZiBpdCBpcyBsYXJnZSBlbm91Z2ggdG8gaG9sZCBhIHZhbHVlCgoyMDA0LTA1LTE4IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgbG9nIGVycm9yIGlmIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHZhcgoKMjAwNC0wNS0xOCAxMToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBjb21tZW50IHR3ZWFrcwoKMjAwNC0wNS0xOCAxMToxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBmaXggY2FzZSBvZiBzb21lIGNvbnN0YW50cwoKMjAwNC0wNS0xOCAxMDo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYywKICAgICBnZW5lcmljLXRhYmxlLWVudW1zLm0yYywgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgbWFrZSBnZW5lcmljLXRhYmxlLShlbnVtc3xvaWRzKSBvbmx5IHJ1biBvbiBjdXJyZW50CiAgIHRhYmxlOyBhZGQgdGFibGUgbG9vcCBpbiBnZW5lcmljLXRhYmxlLWNvbnN0YW50cwoKMjAwNC0wNS0xOCAxMDozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBhZGQgZGVidWcgdHJhY2luZyBmb3Igc2V0IGZ1bmN0aW9ucwoKMjAwNC0wNS0xOCAxMDozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtdGFibGUubTJpLAogICAgIGdlbmVyaWMtY3R4LWNvcHkubTJpLCBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmksIG1mZC1yZWFkbWUubTJjCjoKCiAgIGNvbW1lbnQgdHdlYWtzOyBjaGcgJHRhYmxlIHRvICRjb250ZXh0CgoyMDA0LTA1LTE4IDAyOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIFdyaXRlIHN1cHBvcnQsIGluY2x1ZGluZyBSb3dTdGF0dXMtYmFzZWQgY3JlYXRpb24gb2YgbmV3ICh2b2xhdGlsZSkgcm93cy4KICAgVGhlIGNvZGUgbmVlZHMgYSBiaXQgb2YgdGlkeWluZyB1cCwgYnV0IHNlZW1zIHRvIGJlIHJlYXNvbmFibHkgZnVuY3Rpb25hbC4KCjIwMDQtMDUtMTggMDI6MDEgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBNaW5vciB0d2Vha3MuCgoyMDA0LTA1LTE3IDIwOjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCAjIDk1NTU3OSB0byBjb21wbGV0ZSBtaW5vciBjaGFuZ2VzIHRvIGluc3RhbGwgdGFicy4KCjIwMDQtMDUtMTcgMTk6NTggIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWwsIGh0bWxoZWxwL05ldC1TTk1QLmhoYywKICAgICBodG1saGVscC9OZXQtU05NUC5oaHA6CgogICBBZGp1c3QgdXNhZ2UgdG8gYWNjb3VudCBmb3IgcmVtb3ZlZCBzcGFjZSBmcm9tIHBhdGhuYW1lcyBvZiBIVE1MIGhlbHAgZmlsZXMuCgoyMDA0LTA1LTE3IDE5OjUyICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaHRtbGhlbHAvOiBDb25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwsCiAgICAgQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLCBEZXZlbG9wZXIgRkFRLmh0bWwsCiAgICAgRGV2ZWxvcGVyX0ZBUS5odG1sLCBIZWxwIENhdmVhdHMuaHRtbCwKICAgICBIZWxwX0NhdmVhdHMuaHRtbDoKCiAgIHJlbW92ZSBzcGFjZSBmcm9tIHBhdGhuYW1lcyBvZiBIVE1MIGhlbHAgZmlsZXMuCgoyMDA0LTA1LTE3IDE1OjQ1ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIHBlciBBbGV4IEJ1cmdlciwgb25lLWxpbmUgY2hhbmdlIChsaW5lIDE1OSwgY2hhbmdlIHBlcmlvZCB0byBjb2xvbikuCgoyMDA0LTA1LTE3IDA3OjEzICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQsCiAgICAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQKLCB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbCwKICAgICB3aW4zMi9sb2NhbC9NYWtlZmlsZS5pbiwgd2luMzIvbG9jYWwvbWliMmMuYmF0LAogICAgIHdpbjMyL2xvY2FsL3NubXBjb25mLmJhdCwgd2luMzIvbG9jYWwvdHJhcHRvZW1haWwuYmF0CjoKCiAgIHBlciBBbGV4IEJ1cmdlcjogdGVzdCBleGlzdGVuY2Ugb2YgcGVybDsgcHJvdmlkZSBhY2Nlc3MgdG8gbW9yZSBQZXJsIHByb2dyYW1zLgoKMjAwNC0wNS0xNyAwNjo0NCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aDogYXBwbHkgcGF0Y2ggIzk1NTI1NSB0byBlbmhhbmNlIHRoZSBOU0lTIGluc3RhbGxlci4KCjIwMDQtMDUtMTcgMDU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgSW1wbGVtZW50IHRoZSBtdWx0aS1yb3cgb3V0cHV0IE1JQiB0YWJsZS4KCjIwMDQtMDUtMTQgMDQ6MjIgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBPb3BzISAgQ2xvc2UgLSBidXQgaXQncyBhIGdvb2Qgam9iIEkgZG9uJ3Qgc21va2UuLi4uCgoyMDA0LTA1LTEzIDIxOjIzICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIHBlciBBbGV4QjogZGVzY3JpYmUgZnVydGhlciBkZXRhaWxzIG9mIGJ1aWxkaW5nIChjcmVhdGluZyBlbXB0eSBmaWxlcywgZXRjKS4KCjIwMDQtMDUtMTMgMjE6MTMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgcGVyIEFsZXhCOiBhZGRlZCBzZWN0aW9uICJjby1leGlzdGluZyB3aXRoIG0kIHNlcnZpY2VzIgoKMjAwNC0wNS0xMyAyMDoyOSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci86IEFkZDJQYXRoLm5zaSwgU2V0RW5WYXIubnNpLAogICAgIG5ldC1zbm1wLWhlYWRlcjEuYm1wLCBuZXQtc25tcC5uc2k6CgogICBQZXIgQW5keSBTbWl0aDogcGF0Y2ggWzk1MjUwOV0gdG8gZml4IGxpbmsgbmFtZXMgZm9yIHRoZSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBiYXRjaCBmaWxlcy4KCjIwMDQtMDUtMTMgMjA6MTIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgUGVyIEFsZXggQnVyZ2VyIGFuZCBBbmR5IFNtaXRoOiB1cGRhdGVkIGluc3RydWN0aW9ucyBmb3IgY3JlYXRpbmcgYSB3aW4zMiBpbnN0YWxsYWJsZSBwYWNrYWdlLgoKMjAwNC0wNS0xMyAyMDowNCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICByZW1vdmUgTkVUU05NUF9DUFBfV1JBUCBtYWNyb3MKCjIwMDQtMDUtMTMgMDU6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgU3BsaXQgbmV3IGV4dGVuc2lvbiB0YWJsZSBpbnRvIHR3byAoY29uZmlndXJhdGlvbiBhbmQgb3V0cHV0KS4KICAgSW1wbGVtZW50IHNjYWxhciB0byB0cmFjayB0aGUgbnVtYmVyIG9mIGVudHJpZXMuCiAgIFBhcnNlIG11bHRpLWxpbmUgb3V0cHV0IHRvIGltcGxlbWVudCAnbnNFeHRlbmRPdXRwdXQxTGluZScgb2JqZWN0LgoKMjAwNC0wNS0xMyAwNDowNiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFNlcGFyYXRlIGNvbmZpZ3VyYXRpb24gYW5kIG91dHB1dCBpbnRvIHNlcGFyYXRlIHRhYmxlcywgYXMgc3VnZ2VzdGVkLgogICBEcm9wICdvdXRwdXQgbGVuZ3RoJyBvYmplY3QgYXMgcHJvYmFibHkgdW5uZWNlc3NhcnkuCiAgIE5ldyBzY2FsYXIgdG8gdHJhY2sgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSB0YWJsZS4KICAgVGhpcyBhbHNvIG1lYW5zIHRoYXQgdGhpcyBncm91cCB3aWxsIG5vdCBiZSBlbXB0eSwKICAgZXZlbiB3aGVuIG5vIGV4dGVuc2lvbnMgYXJlIGNvbmZpZ3VyZWQgZm9yIGEgZ2l2ZW4gYWdlbnQuCiAgIChJJ20gc3RpbGwgbm90IGhhcHB5IHdpdGggc29tZSBvZiB0aGUgbmFtZXMsIHRob3VnaCEpCgoyMDA0LTA1LTExIDAzOjU5ICBzbGlmCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgY2xlYW51cCBlcnJvciBtZXNzYWdlcy4gY2xhcmlmeSBTQ00gaW50ZXJhY3Rpb25zIHdpdGggd29ya2VyIHRocmVhZCBpbiBjb21tZW50cy4KCjIwMDQtMDUtMTEgMDM6MTIgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXggc29tZSBTTUkgZXJyb3JzLgogICBXZXMgY2FuIGJlIGEgcGlja3kgYmVnZ2FyIGF0IHRpbWVzLi4uLgoKMjAwNC0wNS0xMCAxNzo1MCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbmV0LXNubXAtcGVybC10ZXN0LnBsOgoKICAgcGVyIEFsZXggQnVyZ2VyIC0gYWRkIG1pc3NpbmcgdGVzdCBzY3JpcHQuCgoyMDA0LTA1LTEwIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBBbm90aGVyIGRvYyB1cGRhdGUgZnJvbSBBbGV4CgoyMDA0LTA1LTEwIDAzOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbXRhdGlvbiBvZiBuZXcgbnNFeHRlbmRUYWJsZQoKMjAwNC0wNS0xMCAwMzo0NCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFJldmlzZWQgTUlCIGZvciBzY3JpcHRlZCBleHRlbnNpb25zLgogICAoVG8gcmVwbGFjZSBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlKQoKMjAwNC0wNS0xMCAwMzo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRGVmZW5zaXZlIHByb2dyYW1taW5nIC0gZG9uJ3QgY3Jhc2ggb24gTlVMTCBwYXJhbWV0ZXJzLgoKMjAwNC0wNS0xMCAwMzo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBFeHRlcm5hbCBBUEkgZm9yIGNoZWNraW5nIGFuZCByZWxvYWRpbmcgYSBjYWNoZWQgdmFsdWUuCiAgIFdlYWtlbiB0aGUgbGlua3MgYmV0d2VlbiB0aGlzIGhlbHBlciBhbmQgJ25zQ2FjaGVUYWJsZScuCgoyMDA0LTA1LTA3IDE1OjQxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeSBmb3IgRlJORVRTRVJWLU1JQgoKMjAwNC0wNS0wNyAxNToxOSAgbmJhCgogICAqIG1pYnMvOiBFdGhlckxpa2UtTUlCLnR4dCwgSUFOQWlmVHlwZS1NSUIudHh0LAogICAgIHJmY21pYnMuZGlmZjoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQiB2ZXJzaW9ucwoKMjAwNC0wNS0wNyAxNTowNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgVGhlIHdvcmQgUFJFRklYIGlzIG5vdCBlbmRhbmdlcmVkIGZvciBzdWJzdGl0dXRpb24sIHNvIG1ha2UgaXQgbG9vayBub3JtYWwKCjIwMDQtMDUtMDcgMTQ6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGZvciB0cnVuY2F0ZWQgb2lkIHdoZW4gdXNpbmcgT0JKRUNUIElERU5USUZJRVIgYXMgaW5kZXgKCjIwMDQtMDUtMDcgMTQ6MTUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IHRvIGFsbG93IHNwZWNpZnlpbmcgbnVtZXJpYyBvaWQgZm9yIHRhYmxlCgoyMDA0LTA1LTA2IDIwOjE1ICBzbGlmCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbToKCiAgIFBlciBBbGV4IEJ1cmdlciwgYWRkIG5hbWVzIHRvIGFja25vd2xlZGdlIHRoZSBpbmRpdmlkdWFsIGNvbnRyaWJ1dG9ycy4KCjIwMDQtMDUtMDYgMTk6NDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsIGluc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgcmVmbGVjdCB0aGF0IFJFQURNRS1GSVJTVC50eHQgYW5kIEluc3RhbGxhdGlvbi5odG1sIGhhdmUgYmVlbiBtZXJnZWQgaW50byBSRUFETUUudHh0CgoyMDA0LTA1LTA2IDE5OjAyICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFBlciBBbmR5IFNtaXRoLCBwYXRjaCAjOTQyNzY2IGNyZWF0ZXMgU05NUENPTkZQQVRIIGFuZCBTTk1QU0hBUkVQQVRIIGFzIHN5c3RlbSBlbnYgdmFycy4KCjIwMDQtMDUtMDYgMTg6NTQgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBQZXIgQW5keSBTbWl0aCwgZG9uJ3Qgc2hvdyBtZXNzYWdlIGRpYWxvZ3Mgd2hlbiByZWcvdW5yZWcgT0sgKHBhdGNoIDk0ODkyNiBmaXhlcyBidWcgOTQ4MTQ2KS4KCjIwMDQtMDUtMDYgMTg6MDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS1GSVJTVC50eHQsIFJFQURNRS5idWlsZC53aW4zMi50eHQKLCBSRUFETUUudHh0LCBodG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwKLCBodG1saGVscC9IZWxwIENhdmVhdHMuaHRtbCwKICAgICBodG1saGVscC9JbnN0YWxsYXRpb24uaHRtbCwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgIGh0bWxoZWxwL05ldC1TTk1QLmhocCwgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWw6CgogICBwYXRjaCB3aW5kb3dzIGJ1aWxkIHBhY2thZ2luZyBwZXIgQWxleCBCdXJnZXIncyBwYXRjaC13aW4zMi01LjEuMi1jbGVhbnVwLmRpZmYKCjIwMDQtMDUtMDYgMDg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtb3ZlIHZhciBkZWNsIHRvIHRvcCBvZiBibG9jayBzY29wZTsgYWRkIGhlYWRlciB0byBxdWlldCBwcm90b3R5cGUgd2FybmluZwoKMjAwNC0wNS0wNSAxNDo0MSAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3Q6CgogICBBZGQgSUFOQS1NQUxMT0MtTUlCCgoyMDA0LTA1LTA1IDEzOjQ5ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIFByb3RlY3Qgb2lkIHRhYmxlIGFnYWluc3Qgb3ZlcmZsb3cKCjIwMDQtMDUtMDUgMDc6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBzaG91bGRfaW5pdCBiZWZvcmUgaW5pdGlhbGl6aW5nIHNtdXgKCjIwMDQtMDUtMDQgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlc19sb2NhbC5jb25mOgoKICAgRml4IGEgaGVhZGVyIHByb3RvdHlwZSBkZWNsYXJhdGlvbgoKMjAwNC0wNS0wNCAwNzoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV9jb25mLmMsCiAgICAgdmFjbV9jb25mLmgsIHZhY21fdmFycy5oOgoKICAgU3BsaXQgVkFDTSBoYW5kbGluZyBpbnRvIHR3byAtIG9uZSBjb25jZXJuZWQgd2l0aCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKICAgYW5kIHZhbGlkYXRpbmcgYWNjZXNzLCB0aGUgb3RoZXIgdG8gaGFuZGxlIHRoZSBNSUIgdGFibGUgcmVwcmVzZW50YXRpb24uCiAgIFRoaXMgYWxsb3cgdGhlIGFnZW50IHRvIHN1cHBvcnQgVkFDTS1iYXNlZCBhY2Nlc3MgY29udHJvbCB3aXRob3V0IG5lY2Vzc2FyaWx5CiAgIGluY2x1ZGluZyB0aGUgVkFDTS1yZWxhdGVkIHRhYmxlcy4KCjIwMDQtMDUtMDQgMDc6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wdXNtLmMKLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgTW92ZSBVU00gY29uZmlnIGhhbmRsaW5nIGludG8gdGhlIGxpYnJhcnksIHNvIGl0IGNhbiBiZSBzaGFyZWQgYmV0d2VlbgogICBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyLiAgIFRoaXMgYWxzbyBwYXZlcyB0aGUgd2F5IGZvciBzZXBhcmF0aW5nCiAgIGNvbmZpZy1iYXNlZCBoYW5kbGluZyBvZiBzZXR0aW5nIHVwIHVzZXJzIGZyb20gdGhlIFVTTSBNSUIgaGFuZGxlci4KCjIwMDQtMDUtMDQgMDE6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ29uZmlndXJlIGluZGVudCB0byByZWNvZ25pc2UgJ3NpemVfdCcgYXMgYSB0eXBlIG5hbWUgKEJ1ZyAjOTQ2OTM5KQoKMjAwNC0wNS0wMyAxNTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBTZXQgbm8gcmVwZWF0LWNvdW50IHRvIDEgd2hlbiBub2dldGJ1bGsgaXMgc3BlY2lmaWVkIGZvciBtYXRoIHB1cnBvc2VzLgoKMjAwNC0wNS0wMyAxNDoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgU29sYXJpcyBDUFVfV0FJVCBsb29rcyBzdHJhbmdlIG9uIHNvbWUgc2VydmVycy4gVXBkYXRlIHRvIHNhbWUgYWxnb3JpdGggdG9wIHVzZXMKCjIwMDQtMDQtMzAgMTc6MDAgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBNYW55IG1pc2MgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzLgogICAgLSBOb3cgdGFrZXMgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgY2hhbmdpbmcgTUlCRElScyBhbmQgb3V0cHV0IGRpcnMuCiAgICAtIGFjY2VwdHMgYSBub2RlbWFwIHRvIG1hcCBNSUJzIHRvIG90aGVyIG5vZGVzLgoKMjAwNC0wNC0zMCAxNTo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgQWRkZWQgYSB0b3VjaCBvZiBjb2xvci4KCjIwMDQtMDQtMzAgMTU6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWIyYy5nZW5odG1sLmNvbmYKCjIwMDQtMDQtMzAgMTE6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgbWFrZWh0bWwucGw6CgogICAtIEEgbWFrZSByb3V0aW5lIHRvIGdlbmVyYXRlIGEgSFRNTCBkdW1wIG9mIG91ciBEaXN0cmlidXRlZCBNSUJzLgogICAgIC0gSW5zdGFsbGVkIGF0IGh0dHA6Ly93d3cuTmV0LVNOTVAub3JnL21pYnMvCgoyMDA0LTA0LTI4IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgdXBkYXRlIGFmdGVyIGV4dHJhY3Rpb24KCjIwMDQtMDQtMjggMTc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgbWFueSBtb3JlIHVwZGF0ZXMgYW5kIGRvY3VtZW50YXRpb24gZm9yIG1pYjJjIGNvbW1hbmRzLgoKMjAwNC0wNC0yOCAxNjo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGRvY3VtZW50IG1vcmUgYW5kIGNsZWFuIHVwICR2YXIuWFhYIGNvbW1lbnRzCgoyMDA0LTA0LTI4IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBPbmx5IGJ1aWxkIHRoZSBtaWIyYy5jb25mIG1hbiBwYWdlIGlmIGNvbWluZyBmcm9tIGEgY3ZzIGNoZWNrb3V0CiAgICAgLSBhdm9pZHMgcGVybCBkZXBlbmRlbmNpZXMgb24gZW5kLXVzZXIgbWFjaGluZXMuCgoyMDA0LTA0LTI4IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZi41LCBtaWIyYy5jb25mLjUuaW4KLCBtaWIyYy5leHRyYWN0LnBsOgoKICAgTmV3IGRvY3VtZW50YXRpb24gZm9yIGhvdyB0byB3cml0ZSBtaWIyYy5jb25mIGZpbGVzLgogICAgIC0gbm90ZSwgbXVjaCBpcyBhdXRvLWV4dHJhY3RlZCBmcm9tIGNvbW1lbnRzIGluIG1pYjJjLgoKMjAwNC0wNC0yOCAxNjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBjb25zdHJ1Y3QgY29tbWVudHMgYmV0dGVyIGZvciBhdXRvLWV4dHJhY3Rpb24gaW50byBhIG1hbnVhbCBwYWdlLgoKMjAwNC0wNC0yOCAxNTo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgTmV3IG1pYjJjLmdlbmh0bWwuY29uZiBjb2RlIHRvIGdlbmVyYXRlIGEgSFRNTCBkb2N1bWVudCBmcm9tIGEgTUlCCiAgIGRvY3VtZW50IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlYWQuCgoyMDA0LTA0LTI4IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gbmV3IEBzdGFydHBlcmxAIC8gQGVuZHBlcmxAIGRlZmluaXRpb25zIHRvIGNvbXBsZXRlbHkgb3V0c291cmNlIHNvbWUKICAgICB0ZXh0IHRvIGEgbGFyZ2UgYmxvY2sgb2YgcGVybC4KICAgLSBhZGRlZCBtaWIyY19vdXRwdXQoKSB0byBvdXRwdXQgYSBsaW5lIG9mIHRleHQgdG8gdGhlIHJpZ2h0IHBsYWNlCiAgICAgZnJvbSBhbnl3aGVyZSBpbiBwZXJsIChldmFsZWQpIGNvZGUuCgoyMDA0LTA0LTI4IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgc3VwcG9ydCB0aGUgYWJpbGl0eSB0byBnZXQgVEMgZGVzY3JpcHRpb25zIGZyb20gcGVybAoKMjAwNC0wNC0yOCAxNTozOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4IG91dHB1dCB0byByZXNwZWN0IHRoZSBvdXRwdXQgbGVuZ3RoIHJldHVybmVkIGJ5IHRoZSB2YXJpYWJsZQogICBwcmludGluZyByb3V0aW5lcy4KCjIwMDQtMDQtMjggMTU6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIFNhdmUgdGV4dHVhbCBjb252ZW50aW9uIGRlc2NyaXB0aW9uJ3MKICAgLSBJbXBsZW1lbnQgK2NvbnN0IGNoYXIgICAgICpnZXRfdGNfZGVzY3JpcHRpb24oaW50IHRjX2luZGV4KQoKMjAwNC0wNC0yOCAxNTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNoYW5nZSB2YXJpYWJsZSB0byBjb25zdCB2YXIgdG8gYXZvaWQgd2FybmluZy4KCjIwMDQtMDQtMjcgMTE6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGF1dG8tZW5hYmxpbmcgb2YgLS13aXRoLXBlcmwtbW9kdWxlcyB3aGVuIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgaXMgc2VsZWN0ZWQKCjIwMDQtMDQtMjYgMDM6MjQgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIFJlc3RvcmUgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gJ2Nsb25lRnJvbScgYW5kICdjcmVhdGUnKCtjbG9uZSkKICAgc3ViY29tbWFuZHMuICBGaXggaGFuZGxpbmcgb2YgYmFyZSAnY3JlYXRlJyBzdWJjb21tYW5kIChzaW5jZSBhbgogICB1bmNsb25lZCB1c2VyIGNhbid0IGJlIG1hcmtlZCBhcyBBQ1RJVkUgd2l0aCB0aGUgTmV0LVNOTVAgYWdlbnQpCiAgIERvY3VtZW50IHRoZSBiZWhhdmlvdXIgbW9yZSBjbGVhcmx5LgoKMjAwNC0wNC0yMyAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUHJvdmlkZSBhbiBBUEkgZm9yIHJldHJpZXZpbmcgdGhlIHRhYmxlIGNvbnRhaW5lciAob3IgJ3RhYmxlX2RhdGEnKQogICBzdHJ1Y3R1cmUgZnJvbSB3aXRoaW4gYSBoYW5kbGVyIHJvdXRpbmUuCiAgIFRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciB1c2luZyBnbG9iYWwgdmFyaWFibGVzLgoKMjAwNC0wNC0yMyAwNDoyMCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L3Rvc29jazEuc2g6CgogICBzY3JpcHQgdGhhdCBjb252ZXJ0cyBiYWNrIHRvIHdpbnNvY2sgMSBsaWJyYXJ5LiAgbm8gdW5kbyBpcyBleHBsYWluZWQuCgoyMDA0LTA0LTIyIDE5OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIG5vZGUtc2V0Lm0yaSwgcGFyZW50LXNldC5tMmk6CgogICBjaGFuZ2UgYWxsIERFQlVHVFJBQ0UgdG8gREVCVUdNU1RMKCgidmVyYm9zZTpmdW5jdGlvbl9uYW1lIi4uLgoKMjAwNC0wNC0yMiAwNzoxMyAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBwYXRjaCBmcm9tIEFuZHkgU21pdGg6IFs5MzE2NzNdIFJ1biBzbm1wdHJhcGQgYXMgYSBXaW5kb3dzIHNlcnZpY2U7CiAgIHNsaWYgZGlkIHRoZSBtYWtlZmlsZS9wcm9qZWN0IGZpbGUgdG91Y2hlcy4KCjIwMDQtMDQtMjIgMDc6MTEgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1hdGNoIGFwcGxpY2F0aW9uIG5hbWUgd2l0aCBkaXNwbGF5IG5hbWUgdG8gaW1wcm92ZSBldmVudCBsb2cgbGVnaWJpbGl0eS4KCjIwMDQtMDQtMjIgMDc6MDggIHNsaWYKCiAgICogd2luMzIvOiBzbm1wZC9NYWtlZmlsZS5pbiwgc25tcGRzZGsvTWFrZWZpbGUuaW46CgogICBDaGFuZ2UgaW5jbHVkZSBzZWFyY2ggcGF0aCBmb3Igc25tcGxpYiB0byAiLi5cLi4iIFt3YXMgcG9pbnRpbmcgZWxzZXdoZXJlXS4KCjIwMDQtMDQtMjEgMTk6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgcmVtb3ZlIHVudXNlZCB2YXI7IHVwZGF0ZSBoZWxwIG1lc3NhZ2UKCjIwMDQtMDQtMjEgMTk6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLCBtZmQtdG9wLm0yYwo6CgogICB1c2UgIyBpbnN0ZWFkIG9mICogZm9yIHNwZWNpYWwgY2hhciwgc2luY2UgcGVybCBkb2Vzbid0IGxpa2UgdGhlICoKCjIwMDQtMDQtMjEgMTk6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgdW51c2VkIHZhcgoKMjAwNC0wNC0yMSAxOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgZml4IHF1b3RpbmcgcHJvYmxlbQoKMjAwNC0wNC0yMSAxOTozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIGZvciBub24taW5kZXggbWFwIGZ1bmN0aW9ucwoKMjAwNC0wNC0yMSAxOTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIGdldCByaWQgb2YgbG9vcF9pbml0X2NvbnRleHQsIG1vdmluZyBpdCdzIHdvcmsgaW50byBnZXRfZmlyc3Q7IGZpeCB0ZXN0CiAgIGZvciBjb2RlIGdlbiBmb3IgdHJhbnNpZW50IGRhdGEKCjIwMDQtMDQtMjEgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgZG9uJ3QgdXNlIHVjIGZ1bmN0aW9uLCBhcyBpdCBiYXJmcyBvbiBlbnVtcyB3L2h5cGhlbnMKCjIwMDQtMDQtMjEgMDU6NTMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvOiBBZGQyUGF0aC5uc2ksIFNldEVuVmFyLm5zaSwKICAgICBuZXQtc25tcC5uc2k6CgogICBmcm9tIEFuZHkgU21pdGg6IGluc3RhbGxlciBjb21wb25lbnRzCgoyMDA0LTA0LTIwIDIwOjQ4ICBzbGlmCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgoKICAgZml4IFs4MDczNDldIHVjZC1zbm1wL3ZlcnNpb24uaCB0cmllcyB0byB1c2UgYSBtdXRhYmxlIHZhcmlhYmxlIFsjZGVmaW5lXQoKMjAwNC0wNC0yMCAyMDoyMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICB1cGRhdGUgc3RhdHVzLCBjaGFuZ2UgYnVpbGQgbWVudSwgYW5kIG1hbnVhbCBidWlsZCBpcHY2IGluc3RydWN0aW9ucy4KCjIwMDQtMDQtMjAgMTg6NTcgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHBhdGNoLWJ1Zy05MTk0NjUtNCBhcHBsaWVkIHRvIGZpeCBbOTE5NDY1XSBidWcgaW4gc3lzdGVtLmMKCjIwMDQtMDQtMjAgMTc6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDMwc25tcHYzdXNlcmNyZWF0aW9uLCBUMTEwYWdlbnR4Z2V0CiwgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwsCiAgICAgVDExM2FnZW50eHRyYXAsIFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBVc2UgbmV3IGdsb2JhbCBTdjNjb25maWcgbWFzdGVyIHBhcmFtIHNldHVwCgoyMDA0LTA0LTIwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENUFFUywgVDAyNnNubXB2M2dldFNIQUFFUwo6CgogICBOZXcgdGVzdHMgZm9yIEFFUyBzdXBwb3J0CgoyMDA0LTA0LTIwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUwosIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgVXNlIG5ldyBnbG9iYWwgU3YzY29uZmlnIG1hc3RlciBwYXJhbSBzZXR1cAoKMjAwNC0wNC0yMCAxNzoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBkZXRlcm1pbmUgdGhlIGJlc3QgYXV0aC9lbmNyIHR5cGUgYXZhaWxhYmxlIGFuZCB1c2UgaXQuCgoyMDA0LTA0LTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBmb3IgZGlzYWJsZWQgc25tcHYxLzJjIGFuZCBtZDUvZGVzCgoyMDA0LTA0LTIwIDE1OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB1bmJhbGFuY2VkIGlmL2VuZGlmIG5vdGVkIG9uIGNvZGVycyBieSBPbGVnIEl2YW5vdgoKMjAwNC0wNC0yMCAxMjowOSAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9pbmV0X250b3AuYwosIHNubXBsaWIvaW5ldF9wdG9uLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggZXJyb3JzIGJ1aWxkaW5nIElQdjYgc3VwcG9ydCBmb3IgTVNWQysrLCBNaW5HVywgYW5kIEN5Z3dpbi4KCjIwMDQtMDQtMjAgMDc6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IGJyb2tlbiB1c2FnZSBvZiBxdygpCgoyMDA0LTA0LTIwIDA2OjIwICBzbGlmCgogICAqIHdpbjMyL0VYQU1QTEUuY29uZi53aW4zMjoKCiAgIGFkZCBzYW1wbGUgY29uZmlnIGZpbGUKCjIwMDQtMDQtMjAgMDQ6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IG5zQ2FjaGUuYywgbnNEZWJ1Zy5jLAogICAgIG5zTG9nZ2luZy5jOgoKICAgRml4IGludC9sb25nIG1peHVwIGZvciA2NC1iaXQgU29sYXJpcwoKMjAwNC0wNC0yMCAwNDozMyAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wLmM6CgogICBFbnN1cmUgZGlhZ25vc3RpY3Mgd2l0aCBBU04uMSBlbmNvZGluZyBlcnJvcnMKCjIwMDQtMDQtMjAgMDM6NTEgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjbGVhbnVwICJyZWFkaW5nIE1JQiBmaWxlIiB2ZXJib3NlIG1lc3NhZ2UgKGNvbXBpbGVkIE1JQkRJUlMvTUlCUyBub3QgdXNlZnVsL2Rpc2Nlcm5hYmxlKS4KCjIwMDQtMDQtMjAgMDI6NTEgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCB1bnNpZ25lZCBjb21wYXJlIG9mIGxlbiB0byBsaW5lX2xlbiBpbiBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcKCjIwMDQtMDQtMjAgMDI6NDggIHNsaWYKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgYWRkX21pYmRpciB2YXJpYWJsZSAndG9rZW4nIGlzIG5vdCB1c2VkIG9uIHdpbjMyLiAgbW92ZSB0byB1bmRlciB0aGUgaWZkZWYuCgoyMDA0LTA0LTE5IDIzOjQwICBzbGlmCgogICAqIHdpbjMyLzogQ29uZmlndXJlLCBNYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlcjogWzkyODg3Ml0gV2luMzIgYnVpbGQuYmF0IHNubXBjb25mLG1pYjJjLHRyYXB0b2VtYWlsCgoyMDA0LTA0LTE5IDIzOjIwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUtRklSU1QudHh0LCBSRUFETUUuYnVpbGQud2luMzIudHh0CiwgUkVBRE1FLnR4dCwgaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sCiwgaHRtbGhlbHAvRGV2ZWxvcGVyIEZBUS5odG1sLCBodG1saGVscC9GQVEuaHRtbAosIGh0bWxoZWxwL0hlbHAgQ2F2ZWF0cy5odG1sLAogICAgIGh0bWxoZWxwL0luc3RhbGxhdGlvbi5odG1sLCBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbAosIGh0bWxoZWxwL05ldC1TTk1QLmhoYywgaHRtbGhlbHAvTmV0LVNOTVAuaGhwLAogICAgIGh0bWxoZWxwL25ldC1zbm1wLTQuMi04MDAuanBnLAogICAgIGh0bWxoZWxwL3NubXAuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXBkLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wdHJhcGQuY29uZi53aW4zMi5odG1sLCBzY3JpcHRzL2NyZWF0ZS10b2MKLCBzY3JpcHRzL21hbmRpcjJodG1sLCBzY3JpcHRzL3BvZGRpcjJodG1sLAogICAgIHNjcmlwdHMvcmVhZG1lMmh0bWwsIHNjcmlwdHMvdHh0Mmh0bWw6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTM4MjE0XSBXaW4zMiBkaXN0IGZvbGRlciAtIGJ1aWxkaW5nIGEgYmluYXJ5IHJlbGVhc2UKCjIwMDQtMDQtMTkgMjM6MDUgIHNsaWYKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTE4NDEwXSBTTk1QQ09ORiBkeW5hbWljIHBhdGhzCgoyMDA0LTA0LTE5IDIxOjUyICBzbGlmCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY29uZGl0aW9uYWxseSBjb21waWxlIGZvciBwbGF0Zm9ybXMgd2l0aCBzdGF0aWMgb2JqZWN0IGxpc3RzIFtubyBjb25maWd1cmVdLgoKMjAwNC0wNC0xOSAyMTo0OSAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgbmV0c3RhdC5oOgoKICAgcmVkdWNlIHdhcm5pbmdzIGZvciB1bmRlY2wnZCBzdHJ1Y3Q7IGRlY2xhcmUgaW5ldDZwcmludCBvbmx5IHdoZXJlIGl0IGlzIG5lZWRlZC4KCjIwMDQtMDQtMTkgMjE6NDEgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG9uJ3QgZXhwb3NlIGdldGFkZHJpbmZvIGlmIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtLgoKMjAwNC0wNC0xOSAyMTozOSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBmaXggdW5zaWduZWQgaW50IGNvbXBhcmUKCjIwMDQtMDQtMTkgMjE6MzggIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgdHJhZGUgaW4gYSBzaW5nbGUgdHlwZWRlZiB1aW50OF90IGZvciB0aGUgd2lkZWx5IHVzZWQgdV9jaGFyLgoKMjAwNC0wNC0xOSAyMTozNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBjbGVhbnVwIHdoZW4gZmluaXNoZWQgd2l0aCBhZGRyaW5mbyBzdHJ1Y3R1cmUuCgoyMDA0LTA0LTE5IDIwOjA5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgYWRkIGluZXRfbnRvcCxpbmV0X3B0b24gdG8gc25tcGxpYiBvYmplY3RzIGZvciB3aW4zMiBidWlsZHMuCgoyMDA0LTA0LTE5IDIwOjA4ICBzbGlmCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIG1vcmUgcm9idXN0IGNoYW5nZSBmb3IgTkVUU05NUF9VU0VfRExMLgoKMjAwNC0wNC0xOSAxODozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaXggI2lmZGVmIGJ1ZwoKMjAwNC0wNC0xOSAxNjo0NyAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBhZGQgY29tbWVudCBmcm9tIE5pZWxzIEIuIHJlYXNvbiBmb3Igd2luMzIgaWZkZWZzIGluIGFkZF9taWJkaXIuCgoyMDA0LTA0LTE5IDE1OjU3ICBzbGlmCgogICAqIHdpbjMyLzogQ29uZmlndXJlLCBidWlsZC5wbCwgbWliX21vZHVsZV9pbml0cy5oCiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgc2VsZWN0aXZlIGJ1aWxkIG9mIElQdjYgdHJhbnNwb3J0IGZvciBNU1ZDKysgYnVpbGQKCjIwMDQtMDQtMTkgMTU6MDggIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdXNtLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywKICAgICB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgTmV3IGNvbmZpZ3VyZSBmbGFnczogLS1kaXNhYmxlLW1kNSBhbmQgLS1kaXNhYmxlLWRlcyB0byBjb21wbGV0ZWx5IHJlbW92ZSBzdXBwb3J0IGZvciB0aGUgbGVzcyB0cnVzdGVkL3NlY3VyZSBhbGdvcml0aG1zCgoyMDA0LTA0LTE5IDEzOjAxICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgZGVidWcgc3RhdGVtZW50IGFmdGVyIHZhcmlhYmxlIGRlZmluaXRpb24uCgoyMDA0LTA0LTE5IDEyOjM2ICBzbGlmCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIHVzZSBhIG1vcmUgcm9idXN0IHNlYXJjaCBmb3IgdW5kZWYgVVNFX09QRU5TU0wuCgoyMDA0LTA0LTE5IDA4OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9taWIuYzoKCiAgIE1vcmUgZmxleGlibGUgb3V0cHV0IG9mIGhleCBzdHJpbmdzIC0gZG9uJ3QgaGFyZGNvZGUgMTYtb2N0ZXRzLXBlci1saW5lCgoyMDA0LTA0LTE5IDA3OjU4ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgY29tbWVudCBvdXQgdmFyaWFibGVzIHdoaWNoIGFyZSBub3QgdXNlZC4KCjIwMDQtMDQtMTkgMDc6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhZGQgYWxhcm0gdG8gYWdlIGFkZHIgY2FjaGUgZXZlcnkgNSBtaW47IGFkZCBkZWJ1ZyBmb3IgYXNwLT5yZXFpbmZvCgoyMDA0LTA0LTE5IDA3OjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSAnc2NoZWQndWxlZCB0aW1lb3V0IHByb2Nlc3Npbmc7IG1vdmUgYWRkciBjYWNoZSBhZ2luZyBpbnRvIGFsYXJtOwogICBjaGFuZ2UgZGVhZnVsdCB0aW1lb3V0IGZyb20gVElNRVRJQ0sgdG8gTE9OR19NQVgKCjIwMDQtMDQtMTkgMDc6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIHZhcjsgYWRkIHRpbWVvdXQgZGVidWdnaW5nCgoyMDA0LTA0LTE5IDA3OjM2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCBbIDkxODk0OCBdIGZpeCBjeWd3aW4gY29uZmlnIHByb2JsZW0KCjIwMDQtMDQtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXhlZCBhIHYxL3YyYyBleGNsdXNpb24gYnVnCgoyMDA0LTA0LTE2IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE91dHB1dCBtZXNzYWdlIG5vdyBjb250YWlucyB2ZXJzaW9ucyBzdXBwb3J0ZWQKCjIwMDQtMDQtMTYgMTY6MzcgIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBsaWIvc25tcHYzLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsCiwgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsCiAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLAogICAgIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwCjoKCiAgIE5ldyBmbGFncyBmb3IgY29uZmlndXJlOiAtLWRpc2FibGUtc25tcHYxIC0tZGlzYWJsZS1zbm1wdjJjCgoyMDA0LTA0LTE2IDE2OjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQ6CgogICByZW1vdmUgZHVwbGljYXRlIGFuZCBjb25mbGljdGluZyBWQUNNIGVudHJ5LiAgSXQncyBhbWF6aW5nIHRoaXMgaGFzbid0CiAgIGNhdXNlcyBmYWxzZSBwcm9ibGVtcyBiZWZvcmUgbm93LgoKMjAwNC0wNC0xNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBhZGRyZXNzIGlzc3VlcyBub3RlZCBieSBkYXZlIG9uIGNvZGVycwoKMjAwNC0wNC0xNiAxMjo0MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCjoKCiAgIG5ldyAnbm8gY2hlY2snIGRlYnVnIG1hY3JvL2Z1bmN0aW9ucwoKMjAwNC0wNC0xNSAxNDo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBoZWFkZXIgZm9yIGFycCBkYXRhIGFjY2VzcwoKMjAwNC0wNC0xNSAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBWYXJpYWJsZXMgdXNlZCBmb3IgcmV0dXJuaW5nIHZhbHVlcyBuZWVkIHRvIGJlICdzdGF0aWMnLiAgIChvb3BzISkKCjIwMDQtMDQtMTUgMDU6NDcgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBNb3ZlIHRoZSBkZWZpbml0aW9uIG9mICdpcGFkZHJfcmV0dXJuJyB0byB0aGUgKG9ubHkpIHJvdXRpbmUgd2hlcmUKICAgaXQncyBhY3R1YWxseSB1c2VkLiAgKFNlZSBCdWcgIzkzNDQyMikKCjIwMDQtMDQtMTUgMDU6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgUmVtb3ZlIGV4dHJhbmVvdXMgJzsnIGluIG5vdGlmaWNhdGlvbiBnZW5lcmF0aW9uIHJvdXRpbmUgKEJ1ZyAjODk1ODAwKQoKMjAwNC0wNC0xNSAwNToxNCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIChCdWcgIzkzNDQxMSkKCjIwMDQtMDQtMTQgMjE6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaXhlZCBjdXQtbi1wYXN0ZSB0eXBvcyBwb2ludGVkIG91dCB0byBtZSBieSBNaWtlIFMuCgoyMDA0LTA0LTE0IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSBzdXBwb3J0IGxvY2FsL21hc3RlciBTTk1QdjMga2V5IHNldHRpbmdzIGRpcmVjdGx5CiAgIC0gaGF2ZSBnZXR0YWJsZSgpIHBhcnNlIGluZGV4ZXMgb3V0IG9mIHRoZSBPSUQgd2hlbiBOZXRTTk1QOjpPSUQgaXMgYXZhaWxhYmxlCiAgICAgLSBub3QgZXh0ZW5zaXZlbHkgdGVzdGVkIHlldC4KCjIwMDQtMDQtMTQgMTU6NDEgIHNsaWYKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBTcGVjaWZ5IGNvcnJlY3QgZGVmYXVsdCB2YWx1ZSBmb3IgTUlCRElSUy4KCjIwMDQtMDQtMTQgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIFN1cHBvcnQgZm9yIExpbnV4IDIuNiBpbmNsIFNvZnRJUlEgQ1BVIHN0YXRlCgoyMDA0LTA0LTE0IDE1OjI5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBPdmVyaGF1bCB0byByZW1vdmUgZml4ZWQgdGFibGUgc2l6ZSBhbmQgc3VwcG9ydCBMaW51eCAyLjYga2VybmVsCgoyMDA0LTA0LTE0IDE1OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfc29sYXJpczIuYwo6CgogICBDbGVhbiB1cCBjb21tZW50cyBtaXNoYW5kbGVkIG55IGluZGVudAoKMjAwNC0wNC0xNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcHYzLmM6CgogICBBZGRlZCBzdXBwb3J0IHRvIHRoZSBjcmVhdGVVc2VyIGRpcmVjdGl2ZSBmb3Igc3BlY2lmeWluZyBtYW51YWwgbG9jYWwKICAgb3IgbWFzdGVyIGtleXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBwYXNzd29yZCBkZXJpdmF0aW9ucy4KCjIwMDQtMDQtMTQgMTM6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIG51bGwgY2hlY2sgYmVmb3JlIHVzaW5nIHBvaW50ZXIKCjIwMDQtMDQtMTQgMTM6MTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBBZGRlZCBzdXBwb3J0IGZvciBuZXcgc25tcC5jb25mIHRva2VucyB0byBkaXJlY3RseSBzZXQgU05NUHYzIGhleCBrZXlzCgoyMDA0LTA0LTE0IDEyOjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBuZXcgc25tcC5jb25mIHRva2VucyB0byBkaXJlY3RseSBzZXQgU05NUHYzIGhleCBrZXlzCgoyMDA0LTA0LTE0IDA5OjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wdjMuYywgbWFuL3NubXBjbWQuMS5kZWY6CgogICBBZGRlZCBzdXBwb3J0IGZvciBkaXJlY3RseSBzcGVjaWZ5aW5nIFNOTVB2MyBoZXgga2V5cyB1c2luZyBuZXcgZmxhZ3MgKC0zW21Na0tdKQoKMjAwNC0wNC0xNCAwODoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNC0wNC0xNCAwODoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG1vcmUgZGVidWc7IHNpbXBsaWZ5IHR3byBjb25mbGljdCB0ZXN0cyBpbnRvIG9uZTsgcmV2ZXJ0IGNvbmZsaWN0IG1lc3NhZ2VzCiAgIGJhY2sgdG8gd2FybmluZywgYnV0IGFkZCBvYm5veGlvdXMgd2FybmluZyB0byBzdW1tYXJ5IGNhY2hlCgoyMDA0LTA0LTE0IDAzOjI1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQSBub24temVybyByZXBlYXQgY291bnQgd2l0aCBubyBub24tcmVwZWF0aW5nIHZhcmJpbmRzIGNvbmZ1c2VzIHRoZQogICBwZXJsICdidWxrd2Fsaycgcm91dGluZS4gICBUaGlzIHNob3VsZCByZWFsbHkgYmUgZml4ZWQgcHJvcGVybHksCiAgIGJ1dCB0aGlzIGF0IGxlYXN0IGFsbG93cyB0aGUgcmVzdCBvZiB0aGUgdGVzdHMgdG8gcnVuIHN1Y2Nlc3NmdWxseS4KCjIwMDQtMDQtMTQgMDM6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBTdXBwb3J0IHBlci1sb2doYW5kbGVyIHNodXRkb3duIHByb2Nlc3NpbmcgaW4gJ3NubXBfZGlzYWJsZV9sb2cnLgogICBUaGlzIHNob3VsZCBhbGxvdyBsb2dmaWxlcyB0byBiZSByb3RhdGVkIHByb3Blcmx5LgoKICAgSG93ZXZlciwgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGUgJ2VuYWJsZWQnIGZsYWcgaXMgYmVpbmcgdXNlZAogICBjb25zaXN0ZW50bHksIHBhcnRpY3VsYXJseSBieSBvdGhlciBzdHlsZXMgb2YgbG9nZ2luZyBjb25maWd1cmF0aW9uLgogICBTb21lIGNsZWFudXAgd29yayBpcyBwcm9iYWJseSBuZWVkZWQuCgoyMDA0LTA0LTE0IDAzOjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCjoKCiAgIFN1cHBvcnQgIjAxOjAyOjAzOjA0OjA1OjA2IiBzdHlsZSBoZXggb3V0cHV0IC0gaS5lLiBsZWFkaW5nIDAncwogICBvbiBzaW5nbGUtZGlnaXQgaGV4IHZhbHVlcy4gIChTdWdnZXN0ZWQgYnkgR2xlbm4gQW5kcmV3cykKCjIwMDQtMDQtMTQgMDM6MDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIElkZW50aWZ5IHdoaWNoIE1JQiBtb2R1bGVzIGFyZSBwcmVzZW50IGluIHRoZSBNSUJGSUxFUyBsaXN0IGJlZm9yZQogICBzdGFydGluZyB0byBsb2FkIGFueXRoaW5nLiAgIFRoaXMgYWxsb3dzIElNUE9SVCBzdGF0ZW1lbnRzIHRvIHdvcmsKICAgY29ycmVjdGx5LCByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciBpbiB3aGljaCBzdWNoIGZpbGVzIGFwcGVhci4KCjIwMDQtMDQtMTQgMDI6NTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogYWl4LmgsIGJzZC5oLCBjeWd3aW4uaAosIGR5bml4LmgsIGlyaXguaCwgbWluZ3czMi5oLCBvc2Y1LmgKLCBzdW5vcy5oLCBzdnI1LmgsIHN5c3YuaCwgdWx0cml4NC5oCjoKCiAgIEluY2x1ZGUgImdlbmVyaWMuaCIgdXNpbmcgdGhlIGZ1bGwgbmFtZSwgcmF0aGVyIHRoYW4KICAgcmVseWluZyBvbiB0aGUgaW5jbHVkZSBwYXRoIGJlaW5nIHNldCBjb3JyZWN0bHkuCiAgIChTdWdnZXN0ZWQgYnkgTmFnYXJhaiBOYXJheWFuYXN3YW15KQoKMjAwNC0wNC0xNCAwMjo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIENhdGNoIFNOTVB2MiBleGNlcHRpb24gdmFsdWVzLgoKMjAwNC0wNC0xNCAwMjozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIEF2b2lkIGNyYXNoaW5nIHRoZSBhZ2VudCB3aGVuIGJhY2tpbmcgb3V0IG9mIGFuIGludmFsaWQgU0VUIHJlcXVlc3QuCgoyMDA0LTA0LTE0IDAyOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBBbGxvdyAnbW9uaXRvcicgZGlyZWN0aXZlcyB0byBzcGVjaWZ5IGEgc2luZ2xlIGluc3RhbmNlIHJhdGhlciB0aGFuCiAgIGFsd2F5cyBtb25pdG9yaW5nIGFsbCByb3dzLgoKMjAwNC0wNC0xNCAwMjoyOCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIE1JQnMsIGFkdmljZSBvbiBydW5uaW5nIGFzIG5vbi1yb290CiAgIGFuZCBicmluZyBpbnRvIGxpbmUgd2l0aCA1LjEueCBicmFuY2ggdmVyc2lvbi4KCjIwMDQtMDQtMTMgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgdHdlYWsgYXNzZXJ0IGNvbmRpdGlvbiB0byBhbGxvdyBmb3IgdmFsaWQgYnV0IGV4cGlyZWQgY2FjaGUKCjIwMDQtMDQtMTMgMTM6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICBmaXggY29tbWVudCB0eXBvCgoyMDA0LTA0LTEzIDEyOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIuaCwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUuaAosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0TmV0VG9NZWRpYVRhYmxlLm0yZAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIG5ldyBpbmV0TmV0VG9NZWRpYVRhYmxlCgoyMDA0LTA0LTEzIDEyOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogYXJwLmgsIGFycF9jb21tb24uYwosIGFycF9saW51eC5jLCBpcGFkZHJlc3NfaW9jdGwuaDoKCiAgIG5ldyBmaWxlcwoKMjAwNC0wNC0xMyAxMTo0NCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwo6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNC0xMyAxMTo0MyAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIHVzZSBhY2Nlc3Mgcm91dGluZSB0byBhbGxvY2F0ZS9mcmVlIHJvdXRlIGVudHJpZXMKCjIwMDQtMDQtMTMgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHVzZSBhY2Nlc3Mgcm91dGluZSB0byBhbGxvY2F0ZS9mcmVlIGludGVyZmFjZSBlbnRyaWVzCgoyMDA0LTA0LTEzIDExOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGRlZmF1bHQgYWRtaW4vb3BlciBzdGF0dXMgdG8gdXAKCjIwMDQtMDQtMTMgMTE6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBpbnZlcnQgb3JkZXIgZm9yIGNhY2hlIHJlZnJlc2g7IHNldCBuZXcgcHJlbG9hZCBmbGFnIG9uIGNhY2hlIHRvIGluaXQgaWZJbmRleAogICBlbnVtIGxpc3QgKHVzZWQgYnkgb3RoZXIgbW9kdWxlcyk7IHNldCBvcGVyX3N0YXR1cyBkb3duIGlmIGludGVyZmFjZSB2YW5pc2hlczsKICAgbW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgY29tcGFyaW5nL3N3aXBpbmcgcG9pbnRlcnMKCjIwMDQtMDQtMTMgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oOgoKICAgcmVtb3ZlIHVudXNlZCBtYXBwaW5nIGRlZmluZXMKCjIwMDQtMDQtMTMgMTE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICByZW1vdmUgdW51c2VkIG1hcHBpbmcgZnVuY3Rpb25zCgoyMDA0LTA0LTEzIDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgcmV2ZXJ0IGV4dGVybmFsIGRlZmludGlvbiBjaGFuZ2UKCjIwMDQtMDQtMTMgMTE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIHVzZSBhY2Nlc3Mgcm91dGluZSB0byBhbGxvY2F0ZS9mcmVlIGlwYWRkcmVzc19lbnRyeQoKMjAwNC0wNC0xMyAxMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy86IGlwYWRkcmVzc19jb21tb24uYywKICAgICBpcGFkZHJlc3NfaW9jdGwuYywgaXBhZGRyZXNzX2xpbnV4LmM6CgogICB0d2VhayBpbnRlcm5hbCBpbmRleCB1c2FnZTsgdXNlIG5ldC1zbm1wIGlmSW5kZXggYmFzZWQgb24gbmFtZSBpbnN0ZWFkIG9mIGlvY3RsCiAgIGlmX2luZGV4OyBhZGQvdHdlYWsgY29tbWVudHMKCjIwMDQtMDQtMTMgMTE6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIG5ldyBmbGFnIGZvciBwcmVsb2FkaW5nIGNhY2hlOyBtb3ZlIGNhY2hlIGxvYWQvZnJlZSB0byBzdGF0aWMgc3Vicm91dGluZXMgZm9yCiAgIGNvZGUgcmV1c2U7IGFkZCBzb21lIGRlYnVnIG1zZ3MKCjIwMDQtMDQtMTMgMTE6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIGRlZmluZXMgZm9yIGFkbWluL29wZXIgc3RhdHVzIGVudW1zCgoyMDA0LTA0LTEzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZW50cmllcyBmb3IgaGF2ZV9ta3RpbWUgbmFkIGhhdmVfc3RpbWUKCjIwMDQtMDQtMTMgMTA6MzEgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHZlcnNpb24gY2hhbmdlLgoKMjAwNC0wNC0xMCAwNTo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDbG9uaW5nIGEgdXNlciByZXF1aXJlcyB1c2luZyB0aGUgdXNtVXNlclN0YXR1cyBjb2x1bW4gb2JqZWN0LgoKMjAwNC0wNC0xMCAwNTo1NyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZyb20gbGlzdCBvZiBkZWZhdWx0IE1JQiBtb2R1bGVzLgoKMjAwNC0wNC0wOSAxODo1MCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggdHdvIFNOTVBfRlJFRSBjYW5kaWRhdGVzIGluIHRkb21haW5fdW5yZWdpc3RlciwgY2xlYXJfdGRvbWFpbl9saXN0LgoKMjAwNC0wNC0wOSAxODo0NyAgc2xpZgoKICAgKiBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgZml4IGEgc2lnbiBjb21wYXJlIHdhcm5pbmcuCgoyMDA0LTA0LTA5IDE4OjM3ICBzbGlmCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYWRkIElQdjYgdHJhbnNwb3J0cyB0byBtc3ZjKysgYnVpbGRzLgoKMjAwNC0wNC0wOSAxODoyNyAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9nZXQudDoKCiAgIGRvbid0IHJlcXVpcmUgaW50ZXJmYWNlIGxheWVyIG9mIGFnZW50IGluIG9yZGVyIHRvIHBhc3MgdGhlc2UgdGVzdHMuCgoyMDA0LTA0LTA5IDE4OjI0ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIHVuZG8gbGFzdCBjaGFuZ2UgdG8gcmVzdG9yZSBwcm9wZXIgY29uc3RydWN0aW9uIG9mIFBlcmwgbW9kdWxlcy4KCjIwMDQtMDQtMDggMjE6MTEgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgbWF0Y2ggc25tcHNldCBvdXRwdXQgdG8gZml4IGJ1ZyBbOTE5MjY3XSB0ZXN0bnVtIDM0IFQxMjJwcm94eXNldGZhaWwgZmFpbGluZwoKMjAwNC0wNC0wOCAyMDoyNSAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgY2hhbmdlIHVzYWdlIGNvbW1lbnQgZm9yICItWE0iIHRvIG1hdGNoIGl0cyBmdW5jdGlvbgoKMjAwNC0wNC0wOCAyMDoxOSAgc2xpZgoKICAgKiB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBkbyBub3QgYnVpbGQgc25tcHRyYXBkLm9iaiBhcyBwYXJ0IG9mIG5ldHNubXB0cmFwZCBsaWJyYXJ5IChNU1ZDKysgYnVpbGQpLgoKMjAwNC0wNC0wOCAyMDoxNyAgc2xpZgoKICAgKiB3aW4zMi9saWJoZWxwZXJzLzogTWFrZWZpbGUuaW4sIGxpYmhlbHBlcnMuZHNwOgoKICAgYWRkIHRhYmxlX2NvbnRhaW5lci5vYmogdG8gbGlzdCBvZiBvYmplY3RzIHRvIGJlIGJ1aWx0IHVzaW5nIE1TVkMrKwoKMjAwNC0wNC0wOCAyMDoxMiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6IFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wNC0wOCAyMDowNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgYXBwbHkgbmJhJ3MgRmViLjIwMDQgcHV0dXRsaW5lIGZpeGVzIHRvIG1haW4gYnJhbmNoLgoKMjAwNC0wNC0wOCAxNTo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgVXNlIC1MZiBhbmQgLUxmIGluIHRoZSBtYWluIHRydW5rIHRvIG1hdGNoIHRoZSBwcm9wZXIgY29kZSB1c2UKCjIwMDQtMDQtMDggMTM6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTdXBwb3J0IGZvciB0aGUgLXJ3IGZsYWcgdG8gdGhlIG92ZXJyaWRlIHRva2VuIGFsbG93aW5nIHJlYWQvd3JpdGUKICAgYWNjZXNzIHRvIHRoZSBib2d1cyBtaWIgb2JqZWN0cy4KCjIwMDQtMDQtMDggMTM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBlbnVtIGxpc3RzIGZvciB1bnNpZ25lZCBhbmQgYml0IHN0cmluZ3MgdG8gcmVtb3ZlIGR1cGxpY2F0ZSB0eXBlcwoKMjAwNC0wNC0wNyAxOTo1MCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFRFU1RDT05GLnNoOgoKICAgcGF0Y2ggWzkxNzY0Nl0gdGVzdCB1c2luZyBpbnN0YWxsZWQgTUlCcyBmaXJzdAoKMjAwNC0wNC0wNyAxNTo1NyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlnLmluCgoyMDA0LTA0LTA3IDE1OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIGxvdHMgb2YgZGVidWcgdG8gbW9kdWxlIHByb2Nlc3Npbmc7IHVzZSBuZXcgdmFyIGZvciBleGNsdWRlZCBtb2R1bGVzOyBtYWtlCiAgIGNvbmZsaWN0cyBlcnJvcnMgaW5zdGVhZCBvZiB3YXJuaW5nczsgZG9uJ3QgdHJ5IHRvIHJlLXByb2Nlc3MgYSBzcmMgb25seSBtb2R1bGUKCjIwMDQtMDQtMDcgMTU6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICB0eXBvIGluIGNvbW1lbnRzCgoyMDA0LTA0LTA3IDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgb25seSBnZW4gcmVsZWFzZSB1bmRvIGNvZGUgaWYgc2V0dGFibGUKCjIwMDQtMDQtMDcgMTU6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICB0d2VhayBjb21tZW50cwoKMjAwNC0wNC0wNyAxNTo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlOgoKICAgZmlsZXMgdG8gaWdub3JlCgoyMDA0LTA0LTA3IDE1OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIHVudXNlZC91bmRlZmluZWQgdmFycwoKMjAwNC0wNC0wNyAxNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliLmgsIGlwLWZvcndhcmQtbWliLmg6CgogICBmaXggY29uZmlnX3JlcXVpcmUgcGF0aHMKCjIwMDQtMDQtMDcgMTU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBjb25maWdfZXhjbHVkZSBtaWJJSS9pbnRlcmZhY2VzOyB0d2VhayBleHRlcm5hbCBvaWQgZGVmCgoyMDA0LTA0LTA3IDE1OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIGlmVGFibGUKCjIwMDQtMDQtMDcgMTU6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZToKCiAgIGZpbGVzIHRvIGlnbm9yZQoKMjAwNC0wNC0wNyAxNTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcEFkZHJlc3NUYWJsZS5tMmQsIGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgbmV3IE1GRCBpcEFkZHJlc3NUYWJsZQoKMjAwNC0wNC0wNyAxNTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBpcGFkZHJlc3MgZGF0YSBhY2Nlc3MgKHY0ICYgdjYpCgoyMDA0LTA0LTA3IDE1OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIuaCwgaXAtbWliL2lwQWRkcmVzc1RhYmxlLmg6CgogICBuZXcgY29uZmlnIG1vZHVsZXMKCjIwMDQtMDQtMDcgMDY6MzggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgYSBzdXBlcmZsdW91cyB0cmFpbGluZyBjb21tYSAoYnVnICM5MzA3MDgpCgoyMDA0LTA0LTA3IDAzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFJvdXRpbmVzIHRvIGluZGljYXRlIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIGRhdGEtaGVscGVyLWJhc2VkIHRhYmxlCgoyMDA0LTA0LTA3IDAyOjEzICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENBUFRVUkUgcmV0dXJucyBleGl0IGNvZGUgZnJvbSBjb21tYW5kIHRoYXQgd2FzIHJ1bi4KCjIwMDQtMDQtMDYgMjM6MzMgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgcGF0Y2ggWzkzMDg4MF0gZG9uJ3QgYnVpbGQgQ01VIGNvbXBhdGlibGUgZnVuY3Rpb25zIG9uIHdpbjMyCgoyMDA0LTA0LTA2IDIzOjE5ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvbGlic2RsbC5kc3cKLCB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdywKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsCiAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAo6CgogICBwYXRjaCBbOTE1NjE1XSBQZXJsIFRyYXBSZWNlaXZlciBkb2VzIG5vdCBjb21waWxlIG9uIFdpbjMyIE1TVkMKICAgYWxzbyBmaXhlcyBidWcgWzg5NjAxMl0gd2luMzIgUGVybCBidWlsZCBkaWVzIGF0IFRyYXBSZWNlaXZlcgoKMjAwNC0wNC0wNiAyMTo1OSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBmaXggWzkwNzcxNl0gd2luMzIgYWdlbnQgc2hvd3MgdGNwLHVkcCBjb25uZWN0IE9JRHMgaW4gaG9zdCBieXRlIG9yZGVyCgoyMDA0LTA0LTA2IDE3OjM1ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMjJdIHRlc3Qgc2hvdWxkIGFsbG93IHRpbWUgZm9yIHByb2dyYW1zIHRvIHNldHRsZQoKMjAwNC0wNC0wNiAxNzozNCAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTE0XSBwcmVzZXJ2ZSB0ZXN0IHJlc3VsdCB3aGVuIHN0b3BwaW5nCgoyMDA0LTA0LTA2IDE3OjMyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMDVdIGJldHRlciBwaWQgY2hlY2sKCjIwMDQtMDQtMDYgMTA6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIHN0ZGludCwgaWYgYXZhaWxhYmxlCgoyMDA0LTA0LTA2IDA5OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBSZWdpc3RlciBuZXcgQVBJIG1vZHVsZXMgdXNpbmcgdGhlIGRlZmF1bHQgcHJpb3JpdHkgKDEyNykKICAgYW5kIHByb3ZpZGUgYW4gQVBJIGZvciB1bnJlZ2lzdGVyaW5nIHRoZW0gYWdhaW4uCgoyMDA0LTA0LTA1IDE2OjA0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJldmVyc2UgcGF0Y2gtdGVzdC1kZXByZWNhdGVkLW9wdGlvbnMgdG8gcGVybWl0IHRlc3RpbmcgdmVyc2lvbnMgYmVmb3JlIDUuMS4KCjIwMDQtMDQtMDQgMTE6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvbid0IHNoYXJlIGNhY2hlIHcvaW5ldENpZHJSb3V0ZSwgd2hpY2ggY2FuJ3Qgd29yaywgc2luY2UgaW5kZXhlcyBkb24ndCBtYXRjaAoKMjAwNC0wNC0wNCAxMToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmgsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBzaGFyZSBkYXRhIHN0cnVjdHVyZXMvY2FjaGUgdy9pZlRhYmxlIGlmIGVuYWJsZWQKCjIwMDQtMDQtMDQgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBkZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZAosIGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgsIGlmWFRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSB0byB1c2UgbmV3IGludGVyZmFjZSBkYXRhIGFjY2VzcwoKMjAwNC0wNC0wNCAxMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgdXBkYXRlIHRvIHN1cHBvcnQgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA0LTA0LTA0IDEwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIuaDoKCiAgIGFkZCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDQtMDQtMDQgMTA6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaCwgLmN2c2lnbm9yZSwKICAgICBkZWZhdWx0LXRhYmxlLWluZXRDaWRyUm91dGVUYWJsZS5tMmQ6CgogICBuZXcgaW5ldENpZHJSb3V0ZVRhYmxlLiBvbmx5IGRvZXMgaXB2NCBzbyBmYXIuCgoyMDA0LTA0LTA0IDA3OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICBzaGFyZSBjYWNoZSB3L2luZXRDaWRyUm91dGVUYWJsZSwgaWYgaXQgaXMgZW5hYmxlZAoKMjAwNC0wNC0wNCAwNzowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHVzZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTA0IDA3OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IG1pc3NlZCBjYXNlIGZvciBhbGxvY2F0ZSBwYXJtOyByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNC0wNCAwNzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIGZpeCBtaXNzZWQgY2FzZSBmb3IgYWxsb2NhdGUgcGFybQoKMjAwNC0wNC0wNCAwNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBhZGQgZGVidWcKCjIwMDQtMDQtMDMgMDU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGZpeCBidWcgOTI4NDgxIC0gY29uc2lzdGVuY3kgaW4gdmFjbV92YXJzLmMKCjIwMDQtMDQtMDIgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIGNvbmZpZ3VyZV9yZXF1aXJlIGZpbGVzIGZvciBpbmRpdmlkdWFsIG1vZHVsZXMKCjIwMDQtMDQtMDIgMTI6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgZGVmYXVsdCB0byBuZXRzbm1wX2luZGV4IGNvbXBhcmUgaWYgbm8gY29tcGFyZSBwcm92aWRlZAoKMjAwNC0wNC0wMiAxMjo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjbXVfY29tcGF0LmMsIHNubXBfdmVyc2lvbi5jOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAoKMjAwNC0wNC0wMiAxMjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIG5ldyBzdGF0aWMgbG9jayB2YXIgdG8gZGV0ZWN0IHdoZW4gYSBjYWxsYmFjayBpcyBhZGRlZC9yZW1vdmVkIGR1cmluZyBjYWxsYmFjawogICBwcm9jZXNzaW5nOyBkb24ndCBjYWxsIGZyZWUgb24gY2xpZW50IGFyZyBvZiBjYWxsYmFjayB3L05VTEwgY2FsbGJhY2sgcHRyCiAgIChpLmUuIG9uZSB0aGF0IHdhcyByZW1vdmVkIHdoaWxlIGNhbGxiYWNrcyB3ZXJlIGJlaW5nIHByb2Nlc3NlZCkKCjIwMDQtMDQtMDIgMTI6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBtYWtlIHRlbXAgZGlyIG5hbWVzIGNvbmZpZ3VyZWFibGUsIHcvZGVmYXVsdHMgbm93IHByZWZpeGVkIHcvJy4nOyB0d2VhayBkaWZmCiAgIGV4Y2x1ZGUgcGF0dGVybnM7IG90aGVyIG1pc2MgdHdlYWtzCgoyMDA0LTA0LTAyIDEyOjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBmaXggbWFjcm9zIHRvIGJlIHNhZmVseSB1c2VhYmxlIGFzIGEgc2luZ2xlIHN0YXRlbWVudDsgbmV3IFNOTVBfU1dJUEVfTUVNIG1hY3JvCgoyMDA0LTA0LTAyIDA4OjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyBjb25maWcuaC5pbiB0byBtYXRjaCBhY2NvbmZpZy5oIChhdXRvaGVhZGVyIGhhZG4ndCBiZWVuIHJ1biBpbiBhIHdoaWxlKToKICAgICAgcGNrcywgY3JvcHR5a2ksIGNvbmZpZ19leGNsdWRlLCBhZ2VudHggZG9tYWluIHNvY2tldCwgY3Bwd3JhcCBtYWNybwoKMjAwNC0wNC0wMiAwODowNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgcmVkdWNlIHJlZHVuZGFuY3kKCjIwMDQtMDQtMDIgMDg6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBhZGQgYXNzZXJ0cyBvbiBpbGxlZ2FsIGhhbmRsZXIgY2FsbHMKCjIwMDQtMDQtMDIgMDY6NDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXggaW5jbHVzaW9uIG9mIHV0aWxpdGllcy9leGVjdXRlLmgsIHNpbmNlIFJvYmVydCdzIE1ha2VmaWxlIGNoYW5nZXMKICAgYnJva2UgdGhlIHBhdGggbG9va3Vwcy4KCjIwMDQtMDQtMDEgMjI6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWFrZSBnZXR0YWJsZSB1c2UgZ2V0YnVsayB3aGVuIHBvc3NpYmxlCgoyMDA0LTA0LTAxIDE5OjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA0LTAxIDE5OjMyICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtb3ZlIFZQQVRIIHRvIGluZGl2aWR1YWwgTWFrZWZpbGUuaW4gZmlsZXM7IG5ldyBtYWtlZmlsZWNoZWNrIHRhcmdldCB0byBjaGVjawogICBmb3IgZ251IG1ha2UgY29uc3RydWN0czsgbmV3ICdjaGVja3MnIHRhcmdldCBydW5zIGNoZWNrcyBmb3IgY29tbWVudC9tYWtlZmlsZQoKMjAwNC0wNC0wMSAxOToyOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBlbXB0eSBkZWZpbmUgZm9yIGNvbmZpZ19leGNsdWRlOyBuZXcgTkVUU05NUF9DUFBfV1JBUCBtYWNyb3MKCjIwMDQtMDQtMDEgMTk6MjcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBuZXcgY29uZmlnX2V4Y2x1ZGU7IGNvbmZpZ19yZXF1aXJlIHR3ZWFrczoKICAgICAgIGRvbid0IHByb2Nlc3MgdGhlIHNhbWUgbW9kdWxlIHR3aWNlOyBhbGxvdyBjIGZpbGUgdy9ubyBoZWFkZXI7IG1vdmUKICAgICAgIG1vZHVsZSBsaXN0IGFkZCwgY29uZmlnX2xvYWRfbWliIGNoZWNrIGluc2lkZSBoZWFkZXIgY29uZGl0aW9uYWwKCjIwMDQtMDQtMDEgMTg6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBuZXcgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgoKMjAwNC0wNC0wMSAxODozNyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICByZXdvcmsgVlBBVEggc28gcGVvcGxlIHdpdGggR05VIG1ha2UgY2FuIHNoYXJlIGEgc291cmNlIGRpcmVjdG9yeSBmb3IgbXVsdGlwbGUKICAgYnVpbGQgKGluY2x1ZGluZyBvbmUgaW4gdGhlIHNvdXJjZSBkaXJlY3RvcnkpOyBjb21wbGV0ZWx5IHJld29yayBDUFBGTEFHUyBmb3IgYQogICBjb21tb24sIGNvbnNpc3RlbnQgb3JkZXIgKHRoYXQgaXMgYWxzbyBjb3JyZWN0IGZvciBub24gc291cmNlZGlyIGJ1aWxkcykKCjIwMDQtMDQtMDEgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBuZXcgZmlsZQoKMjAwNC0wNC0wMSAxODoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGRlZmF1bHQtdGFibGUtaXBDaWRyUm91dGVUYWJsZS5tMmQsIGlwQ2lkclJvdXRlVGFibGUuYwosIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIGZvciBtZmQgZ2VuZXJhdGVkIGNvZGUgY2hhbmdlczsgdXBkYXRlIHRvIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgc3R1ZmY7CgoyMDA0LTA0LTAxIDE4OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgc3R1ZmY7IGFkZCB0b2RvIGNvbW1lbnRzCgoyMDA0LTA0LTAxIDE4OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLCBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZQosIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlOgoKICAgbmV3IGN2c2luZ29yZSBmaWxlcwoKMjAwNC0wNC0wMSAxODowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgZGF0YSBhY2Nlc3Mgc3R1ZmYKCjIwMDQtMDQtMDEgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBuZXcgZGF0YSBhY2Nlc3MgZmlsZXMKCjIwMDQtMDQtMDEgMTg6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsIHJvdXRlLmg6CgogICBtb3ZlIGNvbmZpZ19yZXF1aXJlIHN0dWZmIGJhY2sgaW50byBtaWJncm91cCwgc2luY2UgdGhhdCdzIHRoZSBvbmx5IHBsYWNlCiAgIGNvbmZpZ3VyZSB3aWxsIGxvb2sgZm9yIHRoZW0KCjIwMDQtMDQtMDEgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgY29sb2lkIHNldHRpbmcgKHdhcyBkb25lIGFib3ZlIGFzIHdlbGwpCgoyMDA0LTA0LTAxIDE2OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBBbm90aGVyIGl0ZXJhdG9yIGZpeDogaW5pdGlhbGl6ZSBhIHZhcmlhYmxlIHByb3Blcmx5IGZvciBldmVyeSByZXF1ZXN0CgoyMDA0LTA0LTAxIDE2OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLCByb3V0ZS5oOgoKICAgbmV3IGRhdGEgYWNjZXNzIGhlYWRlcnMKCjIwMDQtMDQtMDEgMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEFub3RoZXIgaXRlcmF0b3IgcHJvYmxlbSB3aXRoIGdldGJ1bGsnczogbWFrZSBpdCBub3Qgc2V0IFJFVFJZIGlmIGl0cyBnb2luZyB0byBiZSBvdXQgb2Ygc2NvcGUgbmV4dCB0aW1lIGFyb3VuZCBzdGlsbCAoPiBtYXhjb2wpCgoyMDA0LTA0LTAxIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIFZhcmlvdXMgcGF0Y2hlcyB0byBmaXggaXRlcmF0b3IgcHJvYmxlbXMgd2l0aCBtdWx0aXBsZSB2YXJiaW5kcy4KCjIwMDQtMDMtMzEgMTI6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgUHJvcGVybHkgc2V0IHRoZSBhdXRvX25leHQgZmxhZy4KCjIwMDQtMDMtMzAgMjE6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQSBuZXcgaW1wbGVtZW50YXRpb24gb2YgZ2V0dGFibGUgdGhhdCB1c2VzIGJldHRlciBzdHJ1Y3R1cmVkIEdFVE5FWFQKICAgcGFja2V0cyBmb3IgZmFzdGVyIHJldHJpZXZhbCBhY3Jvc3Mgc2xvdyBsaW5rcy4KICAgICAtIGdldGJ1bGsgbm90IHlldCB1c2VkLCBidXQgc2hvdWxkIGJlLgoKMjAwNC0wMy0zMCAyMToxOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gbWlub3IgY2hhbmdlcyB0byB0aGUgY3ZzMmNsIGNvbW1hbmQgbGluZSBmbGFncwoKMjAwNC0wMy0zMCAyMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaDoKCiAgIGNoYW5nZSBzZXRfc29sYXJpc190aW1lIHRvIG5zX3NldF90aW1lIGFuZCBlbmFibGUgaXQgb24gYW55CiAgIGFyY2hpdGVjdHVyZSB0aGF0IHN1cHBvcnRzIG1rdGltZSgpIGFuZCBzdGltZSgpCgoyMDA0LTAzLTMwIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBzdGltZSBmdW5jdGlvbnMKCjIwMDQtMDMtMzAgMjE6MTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIHVuZGVmIHNzaXplX3QKCjIwMDQtMDMtMzAgMTc6MDYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHJlbW92ZSBjb21tZW50ZWQgYW5kIHVudXNlZCB2YXJpYWJsZXMuIGZsYWcgc3RhdGljIHZhcmlhYmxlIGFzIHByb2JsZW0gZm9yIHRocmVhZHMuCgoyMDA0LTAzLTMwIDE2OjU2ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgbWlsZGx5IGVuZm9yY2UgcnVubmluZyBmcm9tIGJhc2Ugc291cmNlIGRpcmVjdG9yeS4KCjIwMDQtMDMtMzAgMTY6NTMgIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgaW5pdCBleGFtcGxlcyBtb2R1bGVzCgoyMDA0LTAzLTMwIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGluY2x1ZGUgcHJldmlvdXNseS1icm9rZW4gdGVzdHMgYWdhaW4KCjIwMDQtMDMtMzAgMTA6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGEgcmVhbGx5IG9sZCBhbmQgYW5ub3lpbmcgYnVnOiB1c2Ugc2V0X2Jvb2xlYW4gaW5zdGVhZCBvZiB0b2dnbGVfYm9vbGVhbiBmb3IgdGVsbGluZyB0aGUgbGlicmFyeSB3aGVuIHRvIHJlcGxhY2Ugb2xkIE1JQnMgd2hpbGUgcGFyc2luZy4gIEFmZmVjdGVkIGEgYnVuY2ggb2Ygc3R1ZmYgaW4gb2RkIHdheXMuCgoyMDA0LTAzLTMwIDA1OjAxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIE5ldyBsb2dnaW5nIG9wdGlvbiAnLUxuJyB0byBleHBsaWNpdGx5IHR1cm4gb2ZmIGxvZ2dpbmcKCjIwMDQtMDMtMjkgMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi5oLCBpcC1mb3J3YXJkLW1pYi5oOgoKICAgY29uZmlnLXJlcXVpcmUgaGVhZGVycwoKMjAwNC0wMy0yOSAyMDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZlRhYmxlL2lmVGFibGUuYywgaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oCiwgaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQsCiAgICAgaWZYVGFibGUvaWZYVGFibGUuYywgaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICBuZXcgaW1wbGVtZW50YXRpb25zIG9mIGlmVGFibGUgYW5kIGlmWFRhYmxlLCBiYXNlZCBvbiBnZW5lcmF0ZWQgY29kZSBmcm9tCiAgIG1pYjJjIE1GRCArIGNvbnRhaW5lci1jYWNoZWQgY29uZiBmaWxlcwoKMjAwNC0wMy0yOSAxNjoyOCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCBzcGVsbCBBY2tub3dsZWRnZW1lbnRzLCBhZGQgYmxhbmsgYmVmb3JlID1jdXQgc28gdGhhdCBpdCB3aWxsIGJlIHBhcnNlZCBjb3JyZWN0bHkuCgoyMDA0LTAzLTI5IDE1OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlIHVudXNlZCB2YXJzCgoyMDA0LTAzLTI5IDE1OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHR3ZWFrIGNvbW1lbnQKCjIwMDQtMDMtMjkgMTU6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIHNsaWdodCByZS1vcmc7IGluY2x1ZGUgKGNvbW1lbnRlZCBvdXQpIGdudSBtYWtlIHN0dWZmCgoyMDA0LTAzLTI5IDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSk7IHVzZSB1bnVzZWQgdmFyczsgYWxsb3cgdXNlciB0byBwYXNzIGV4aXN0aW5nIGRhdGEKICAgcHRyIHdoZW4gY3JlYXRpbmcgcm93IGNvbnRleHQ7IHNldCB2YWxfbGVuIHRvIGJ1ZiBzaXplIGlmZiBub3QgYWxyZWFkeSBzZXQKCjIwMDQtMDMtMjkgMTU6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1nZXQubTJjCjoKCiAgIG1vdmUgdGFibGUgaW5kZXggZnVuY3Rpb25zIHRvIGRhdGEtZ2V0OyBpbmNsdWRlIGRhdGFfYWNjZXNzIGhlYWRlcgoKMjAwNC0wMy0yOSAxNTozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKTsgdHdlYWsgbTJjX3Byb2Nlc2luZyB0eXBlOyByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wMy0yOSAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmM6CgogICB0d2VhayBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTAzLTI5IDE1OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSk7IGluY2x1ZGUgbWliX21vZHVsZXMgaGVhZGVyOyB0d2VhayBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTAzLTI5IDE1OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKQoKMjAwNC0wMy0yOSAxNDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG1ha2UgcGFyc2Vfb25lX29pZF9pbmRleCBwcm9wZXJseSBkZWNvZGUgSVAgYWRkcmVzc2VzIGluIHRoZSByaWdodCBieXRlIG9yZGVyLgoKMjAwNC0wMy0yOSAxMjo1OCAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBpbml0IGV4YW1wbGVzIG1vZHVsZXMKCjIwMDQtMDMtMjkgMDk6MTkgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTBhZ2VudHhnZXQsIFQxMTFhZ2VudHhzZXQsCiAgICAgVDExMmFnZW50eHNldGZhaWwsIFQxMTNhZ2VudHh0cmFwOgoKICAgcGF0Y2ggWzkxODgzOF0gdGVzdCBhZ2VudHggdXNpbmcgVENQIHNvY2tldHMgLSBpZmYgdHJhbnNwb3J0IG5vdCAidW5peCIKCjIwMDQtMDMtMjkgMDc6NTQgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgc3luYyB3LzUuMS4xIChtb3ZlIHZhciBkZWNscyB0byB0b3Agb2YgZnVuY3Rpb25hbCBibG9jaykKCjIwMDQtMDMtMjYgMDg6NDEgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggIzkyMDIzNCB0byBzdGFydCBwcm9ncmFtcyBpbiBtaW5pbWl6ZWQgd2luZG93IChtaW5ndyBvbmx5KS4KCjIwMDQtMDMtMjYgMDg6MDMgIHNsaWYKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBwYXRjaCB0byBmaXggWzkyMTQyM10gaW5zdGFsbCB0ZXN0IHNlcXVlbmNlIG5vdCByaWdodCBmb3IgcGVybCBidWlsZAoKMjAwNC0wMy0yNiAwNzo1MyAgc2xpZgoKICAgKiBjb25maWd1cmUuaW46CgogICBwYXRjaCAjOTAxNDM0IHRvc29jazIuc2ggLS0gdXNlIFdpbnNvY2sgMi54IGZvciBXaW5kb3dzIHNvY2tldCBsaWJyYXJ5CgoyMDA0LTAzLTIyIDE1OjM3ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGZpeCBwYXRoIGZvciBjbGVhbnVwIG9mIHVwbG9hZGVkIHRhcmJhbGwKCjIwMDQtMDMtMjIgMTM6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtYWtlX2luZGV4LnBsLCBtYW5fc2VjdGlvbnMudHh0CjoKCiAgIG1hbi9pbmRleC5odG1sIGdlbmVyYXRpb24gc3R1ZmYKCjIwMDQtMDMtMjAgMjE6NDMgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG5ld2VyIG1hbjJodG1sIHVzYWdlCgoyMDA0LTAzLTIwIDEwOjAyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2g6CgogICBwYXRjaCBbOTE5MTMyXSB0ZXN0IHN0b3AgYmVmb3JlIGZpbmlzaCBpcyBzdXBlcmZsdW91cwoKMjAwNC0wMy0xOSAxNjoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgUGFydCBvZiBwYXRjaCA5MTc3MjYgdG8gZml4IGEgZmV3IHdpbmRvd3MgY29uZmlnIHByb2JsZW1zLgoKMjAwNC0wMy0xOSAxNjowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXA6CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg4MjggXSBjb25kaXRpb25hbCBza2lwIEhVUCB0ZXN0CgoyMDA0LTAzLTE5IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6IFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wMy0xOSAwODoyOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBBZGRlZCBhIG1pc3NpbmcgcHJvdG90eXBlOiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc3BpbmxvY2sKCjIwMDQtMDMtMTkgMDg6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBNaXNzZWQgYSBBRVMxMjggLT4gQUVTIGNvbnZlcnNpb24uCgoyMDA0LTAzLTE5IDAzOjAwICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBCcmllZiBkZXNjcmlwdGlvbiBvZiBhZGRpbmcgV2luMzIgSVB2NiB0cmFuc3BvcnQgc3VwcG9ydC4KCjIwMDQtMDMtMTggMTg6MzIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTExNl0gbWlub3IgZGlmZiBpbiBpbnZva2VkIGxvZwoKMjAwNC0wMy0xOCAxNTo0NCAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaF85MTUxNzgucmVkdXggdG8gZmluaXNoIHRoZSBzZWNvbmQgcGFydCBvZiB0aGF0IHBhdGNoLgoKMjAwNC0wMy0xOCAwODo1MSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGFwcGx5IHBhdGNoIFs5MTg4MjRdIGZpeCBwcm94eSB0ZXN0cwoKMjAwNC0wMy0xOCAwNzowNSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGN5Z3dpbi5oLCBtaW5ndzMyLmg6CgogICBwYXRjaCBbOTE3NjQ5XSBmaW5kIHVpbnQzMl90IGluIHdpbjMyLWdjYyBidWlsZCBlbnZpcm9ubWVudHMKCjIwMDQtMDMtMTYgMTM6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWVyZ2UgY29uZmlndXJlIHN1YnN0aXR1dGVkIHNycy9vYnMgZGVmIHcvcHJldmlvdXMgbGluZSwgdG8gYXZvaWQgaGF2aW5nIGEKICAgY29udGludWF0aW9uIGxpbmUgZm9sbG93ZWQgYnkgYSBibGFuayBsaW5lOwogICBmaXhlcyBmb3IgYnVpbGRpbmcgb3V0c2lkZSBvZiBzb3VyY2UgZGlyIChyZW9yZGVyIGluY2x1ZGUgaW4gQ1BQRkxBR1Mgc28gdGhhdAogICByZWxhdGl2ZSBkaXJzIGNvbWUgYmVmb3JlIHNyY2RpcnMpCgoyMDA0LTAzLTE2IDA3OjQ5ICBzbGlmCgogICAqIHdpbjMyLzogYnVpbGQuYmF0LCBidWlsZC5wbDoKCiAgIHN5bmNoIHdpdGggd29ya2luZyB2ZXJzaW9uLCBkZWx0YSBpbnN0YWxsIGJhc2UsIG9mIGNvdXJzZS4KCjIwMDQtMDMtMTYgMDY6NTMgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgYWRkIHR5cGVkZWYgZm9yIHVpbnQzMl90IC0tIGFic2VudCBmcm9tIE1TVlMKCjIwMDQtMDMtMTYgMDU6MTUgIHNsaWYKCiAgICogd2luMzIvOiBNYWtlZmlsZS5pbiwgaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBwYXJ0aWFsIGZpeCBmb3IgYnVnIDkxNTE3ODogYWRqdXN0IHRvIGFjY29tbW9kYXRlICdtYWtlIHRlc3QnIHZlcmlmaWNhdGlvbi4KCjIwMDQtMDMtMTUgMTY6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIFBhdGNoIGZyb20gQnJ1Y2UgU2hhdzogWyA4OTQ3MTEgXSBTb2xhcmlzIGRpc2sgdGVzdCBmYWlscyBvbiBzb21lIE9TJ3MgW3NlY29uZCBmaXggdG8gaGlzIHByZXZpb3VzIHBhdGNoIGZvciBldmVuIGJldHRlciBzdXBwb3J0XQoKMjAwNC0wMy0xNSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQnVnL3BhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgxNTM2MSBdIG92ZXJyaWRlIHRva2VuIGluIHNubXBkLmNvbmYgZG9lcyBub3QgYWxsb3cgc25tcHNldCBvbiBPSUQgW3JlYWxseSwgdGhpcyBqdXN0IHJldHVybnMgcHJvcGVyIGVycm9yIGNvZGVzIGZyb20gc3lzdGVtX21pYiB2YXJpYWJsZXNdCgoyMDA0LTAzLTE1IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBCdWcvcGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODE1MzMzIF0gc25tcHZhY20gYXBwIG5vdCB3b3JraW5nIHdpdGggU05NUCB2MSBbIHJlYWxseSBqdXN0IGZpeGluZyBtaWIgZXJyb3IgY29kZXMgcmVtZW1iZXJlZCBpbiBzbm1wX2FnZW50LmNdCgoyMDA0LTAzLTE1IDE1OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYzoKCiAgIEJ1Zy9QYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MDkyODIgXSBuZXRzbm1wX21vZGVfZW5kX2NhbGxfYWRkX21vZGVfY2FsbGJhY2sgY2FsbGVkIHJlcGVhdGVkbHkKCjIwMDQtMDMtMTUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODA4ODgxIF0gTG9nIGEgYXV0aGVudGljYXRpb24gZmFpbHVyZSBtZXNzYWdlIHdoZW4gYXV0aGVudGljYXRpb24gZmFpbHMuCgoyMDA0LTAzLTE1IDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIFBhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgwNzMzMyBdIDY0IGJpdCBhZ2VudCByZXR1cm5zIGluY29ycmVjdCB2YWx1ZXMgZm9yIElwQWRkcmVzcwoKMjAwNC0wMy0xNSAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGRlZmF1bHQtdGFibGUtaXBDaWRyUm91dGVUYWJsZS5tMmQsIGlwQ2lkclJvdXRlVGFibGUuYwosIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZS1pbXBsZW1lbnQgZXhpc3RpbmcgaXBDaWRyUm91dGVUYWJsZSBmdW5jdGlvbmFsaXR5IHcvTUZEIGhlbHBlcgogICAoaS5lLiByZWFkLW9ubHkgc3VwcG9ydDsgdXNlIHZhcl9yb3V0ZSBmdW5jdGlvbiB0byBnZXQgZGF0YSkKCjIwMDQtMDMtMTUgMTI6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB0d2Vha3MgZm9yIHJvdy1jcmVhdGlvbiBjYXNlCgoyMDA0LTAzLTE1IDEyOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZGVmYXVsdCB0byBpbmNvbnNpc3RlbnROYW1lIGluc3RlYWQgb2Ygbm9DcmVhdGlvbgoKMjAwNC0wMy0xNSAwNjoyNyAgZHRzMTIKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBUd2VhayB0aGUgb3B0aW9uIHByb21wdCBzbGlnaHRseS4KICAgKERhdmUncyBiZWluZyBwaWNreSBhZ2FpbiEpCgoyMDA0LTAzLTE1IDA2OjIwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTGlzdGVuIG9uIHBvcnQgMTYyIChyYXRoZXIgdGhhbiAxNjEpIGlmIGEgKGJhcmUpIGludGVyZmFjZQogICBhZGRyZXNzIGlzIHNwZWNpZmllZC4KCjIwMDQtMDMtMTMgMjI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBudWxsIGZyZWUnZCBwb2ludGVyIChiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5KQoKMjAwNC0wMy0xMyAyMTo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHBsdWcgbWVtb3J5IGxlYWsKCjIwMDQtMDMtMTMgMTk6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaDoKCiAgIGZpeCBmb3IgY29tcGlsaW5nIHcvZG1hbGxvYwoKMjAwNC0wMy0xMyAwNjo0MCAgc2xpZgoKICAgKiB3aW4zMi9idWlsZC5iYXQ6CgogICBzZXQgdGVtcCB2YXIgZW1wdHkgdG8gcmVtb3ZlIGZyb20gZW52CgoyMDA0LTAzLTEyIDE1OjUyICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2xlYW4gdXAgYmFzZSBwb29wLgoKMjAwNC0wMy0xMiAxMzowNyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2J1aWxkLmJhdDoKCiAgIGRvYyBjaGFuZ2UgZm9yIHBhdGNoIDkxMjQ0NwoKMjAwNC0wMy0xMiAxMjoxMyAgc2xpZgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaFs5MTUxNzhdIHRvIGZpeCBNaW5HVyAoTVNZUykgbWFrZSB0ZXN0IGZyZWV6ZXMKCjIwMDQtMDMtMTIgMTE6MjkgIHNsaWYKCiAgICogd2luMzIvOiBNYWtlZmlsZS1hcHBzLmluLCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGQvTWFrZWZpbGUuaW4sCiAgICAgc25tcGRzZGsvTWFrZWZpbGUuaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICAgIHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIG1vZGlmeSBwYXRjaFs5MTI0NDddIHRvIHVzZSBjb3JyZWN0IHdpbnNvY2sgbGlicmFyeQoKMjAwNC0wMy0xMiAxMToxNiAgc2xpZgoKICAgKiB3aW4zMi86IENvbmZpZ3VyZSwgTWFrZWZpbGUtYXBwcy5pbiwgTWFrZWZpbGUuaW4KLCBidWlsZC5iYXQsIGJ1aWxkLnBsLCBsaWJhZ2VudC9NYWtlZmlsZS5pbgosIGxpYmhlbHBlcnMvTWFrZWZpbGUuaW4sIGxpYnNubXAvTWFrZWZpbGUuaW4sCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluCiwgc25tcGQvTWFrZWZpbGUuaW4sIHNubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBhcHBseSBwYXRjaCBbOTEyNDQ3XSBXaW4zMiBNU1ZDIE1ha2VmaWxlIHN5c3RlbQoKMjAwNC0wMy0xMCAxOToyNCAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgYWdncmVzc2l2ZSBzZWFyY2ggZm9yIGV4ZWN1dGFibGVzIGJlbG93IHRoZSBiYXNlIGRpcmVjdG9yeS4KCjIwMDQtMDMtMTAgMTk6MTUgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRvbid0IHNldCBnbG9iYWwgc25tcF9lcnJubzsgZG8gcHJvdmlkZSB1bmRlZiBVU0VfT1BFTlNTTDsKICAgIHJlcGxhY2UgTkVUU05NUF9OT19ETEwgd2l0aCBORVRTTk1QX1VTRV9ETEw7CiAgICBkb2N1bWVudCB0aGUgY2hhbmdlLgoKMjAwNC0wMy0xMCAxOTowOSAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnZva2Ugc25tcGQsIHNubXB0cmFwZCB3aXRoIG5vbi1kZXByZWNhdGVkIHBhcmFtZXRlcnMgZm9yIFBJRCBhbmQgbG9nZmlsZS4KCjIwMDQtMDMtMTAgMTU6MDkgIHNsaWYKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgZml4IHNpZ25lZCBtaXNtYXRjaCB3aGVuIHRlc3RpbmcgcHJvcGVyIGxlbmd0aCBvZiBrZXllZCBoYXNoLgoKMjAwNC0wMy0xMCAxNTowMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbW9kcyBmb3IgYnVpbGRpbmcgd2luMzIgd2l0aCBPcGVuU1NMIHN1cHBvcnQuCgoyMDA0LTAzLTEwIDA4OjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHBlciBBbGV4QiAtIGNoYW5nZSBpbnN0cnVjdGlvbnMgdG8gdXNlIE1pbkdXIGRldmVsb3BlcidzIHJlY29tbWVuZGVkIE9wZW5TU0wuCgoyMDA0LTAzLTEwIDA3OjIxICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgVXNlIHRoZSBzYW1lIHRlc3RpbmcgcG9ydHMgYXMgdGhlIG1haW4gYWdlbnQgdGVzdCBzdWl0ZQogICAoc29tZXdoYXQgbGVzcyBsaWtlbHkgdG8gY2xhc2ggd2l0aCBvdGhlciBzZXJ2aWNlcykKCjIwMDQtMDMtMTAgMDc6MDggIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIERvY3VtZW50IHN1cHBvcnQgZm9yIG11bHRpcGxlICJvcHRpb25hbCIgY29uZmlnIGZpbGVzIHZpYSAtYwoKMjAwNC0wMy0xMCAwNTowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmV0cnkgdW5mdWxmaWxsZWQgR0VUTkVYVCByZXF1ZXN0cyB0aGF0IHNpbXBseSBoYXZlbid0IGJlZW4gYXR0ZW1wdGVkCiAgIChlLmcuIGR1ZSB0byBhIG1pc3NpbmcgY29sdW1uIG9iamVjdCksIGJ1dCBub3Qgb25lcyB0aGF0IGhhdmUgYmVlbgogICBleHBsaWNpdGx5IG1hcmtlZCBhcyBmYWlsZWQgKGUuZy4gYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUpLgoKICAgSSdtIG5vdCAxMDAlIGNvbnZpbmNlZCB0aGlzIGlzIGNvcnJlY3QsIGJ1dCBpdCBzZWVtcyB0byBoYXZlIHRoZQogICByaWdodCBlZmZlY3QgZm9yIGJvdGggJ3RhYmxlX2RhdGEnIGFuZCAndGFibGVfZGF0YXNldCcgYmFzZWQgbW9kdWxlcy4KCjIwMDQtMDMtMTAgMDQ6NTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgQ2hlY2sgZm9yIHByb2JsZW1zIHdpdGggYWxsIG9mIHRoZSByZXF1ZXN0ZWQgdmFyYmluZHMKICAgKG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUpLCBhbmQgaGFuZGxlICdub1N1Y2hPYmplY3QnIGV4Y2VwdGlvbnMuCiAgIFtUaG91Z2ggaW4gZmFjdCwgdGhpcyBjb2RlIGlzbid0IGFjdHVhbGx5IHVzZWRdCgoyMDA0LTAzLTA5IDEyOjUwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDMtMDkgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGRlYnVnZ2luZyBpc24ndCBwbGF0Zm9ybSBzcGVjaWZpYwoKMjAwNC0wMy0wOSAwNzo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIHRyYXBsaWJzIGZyb20gYWdlbnQgbGlicyBmb3IgZGVwZW5kZW5jaWVzCgoyMDA0LTAzLTA5IDA3OjEyICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgbWFrZSBTTk1QQ09ORlBBVEggY29uc2lzdGVudCB3aXRoIG90aGVyIHBsYXRmb3JtcyAoIiRwcmVmaXgvZXRjL3NubXAiKQoKMjAwNC0wMy0wOSAwNzowOSAgc2xpZgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IE1UQ1JJVElDQUxfUkVTT1VSQ0UgdG8gdXNlIG9mIHNubXBfZXJybm8gaW4gdGhyZWUgcGxhY2VzLgoKMjAwNC0wMy0wOSAwNToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgSGFuZGxlIG11bHRpcGxlICJvcHRpb25hbCBjb25maWciIGZpbGVzLgoKMjAwNC0wMy0wOSAwNDoyNCAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG1ha2UgU05NUENPTkZQQVRIIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBwbGF0Zm9ybXMgKCIkcHJlZml4L2V0Yy9zbm1wIikKCjIwMDQtMDMtMDggMjA6MjYgIHJzdG9yeQoKICAgKiBSRUFETUUuYWl4OgoKICAgbmV3IGZpbGUKCjIwMDQtMDMtMDggMTc6NTMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgcGF0Y2ggWzkxMTQzOV0gVXBkYXRlcyB0byB0aGUgUkVBRE1FLndpbjMyIGFuZCBTTk1QIFJFQURNRSBmb3IgV2luMzIKCjIwMDQtMDMtMDggMTY6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgaWZkZWYgb3V0IHJvdXRpbmVzIHRoYXQgb25seSBhdmFpbGFibGUgd2hlbiBhZ2VudHggaXMgZ29pbmcgdG8gYmUgdXNlZC4KCjIwMDQtMDMtMDggMTY6MDkgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgdXNlIGFwcCBsaWJzIGZvciBzbm1wdHJhcGQgd2hlbiBhZ2VudCBkaXNhYmxlZDsgbW92ZSB3cmFwbGliIHN1YnN0aXR1dGlvbiB0bwogICBhIG1vcmUgcmVhc29uYWJsZSBwbGFjZS4gc25tcHRyYXBkIHN0aWxsIGRvZXNuJ3QgbGluaywgYnV0IGl0J3MgY2xvc2VyLi4uCgoyMDA0LTAzLTA4IDE0OjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wMy0wOCAxNDozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBjb21tZW50cyBpbiBoYWlyeSBhZ2VudCBtb2R1bGUgcHJvY2Vzc2luZzsgZG9uJ3QgbXVuZ2UgZGVmYXVsdCBtaWJzIHVudGlsCiAgIHdlIGFyZSBkb24ndCBidWlsZGluZyBpdDsgdHdlYWtzIGZvciAtLWRpc2FibGUtYWdlbnQ6IHVzZSBzYW1lIGRlZmF1bHQgbWlic2V0CiAgIGFzIC0tZW5hYmxlLW1pbmktYWdlbnQsIGRvbid0IHRvIGhhaXJ5IGFnZW50IG1vZHVsZSBwcm9jZXNzaW5nCgoyMDA0LTAzLTA4IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBzeW50YXggZXJyb3JzLgoKMjAwNC0wMy0wOCAxMjo0MiAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgbG9jYWwgdmFyIGNhY2hlX3RpbWVvdXQKCjIwMDQtMDMtMDggMTI6NDEgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgdXNlIHF1b3RlcyB0byBzZWFyY2ggbG9jYWwgaW5jbHVkZSBwYXRocyBmb3IgcGVybF9zbm1wdHJhcGQuaAoKMjAwNC0wMy0wOCAxMTo0MyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBwYXRjaCBbOTEwOTAzXSBVcGRhdGVzIHRvIHRoZSBSRUFETUUud2luMzIgZm9yIEdDQwoKMjAwNC0wMy0wOCAwOTozNyAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgUGF0Y2ggZnJvbSBBbmRyZXcgSG9vZCB0byBpbmNsdWRlIHByb3BlciBoZWFkZXJzIGFuZCB7fSB3cmFwIHBlcmwgc3BlY2lhbCBkZWNscnMKCjIwMDQtMDMtMDggMDg6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICB1c2UgZGVmYXVsdCBsaWJyYXJ5IHZhbHVlcyBpbnN0ZWFkIG9mIGhhcmQtY29kZWQgZGVmYXVsdHMgZm9yIGF1dGgvcHJpdiBwcm90b2NvbHMKCjIwMDQtMDMtMDYgMTk6MjMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgZHVwbGljYXRlIHByb3RvdHlwZQoKMjAwNC0wMy0wNiAxOToxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHR3ZWFrIHBhdHRlcm4gZm9yIG5ldyBkb3h5Z2VuIGNvbmYgZmlsZXMKCjIwMDQtMDMtMDYgMTk6MTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBhZGQgcHJvdG90eXBlIHRvIGdldCBzcGFyc2UgdGFibGUgbWliIGhhbmRsZXIsIG5ldHNubXBfdGFibGVfbmV4dF9jb2x1bW47CiAgIHJlbmFtZSBuZXRzbm1wX3JlZ2lzdGVyX3NwYXJzZV90YWJsZSB0byBuZXRzbm1wX3NwYXJzZV90YWJsZV9yZWdpc3RlcjsgYWRkCiAgIG5ldHNubXBfc3BhcnNlX3RhYmxlX2hhbmRsZXJfZ2V0CgoyMDA0LTAzLTA2IDE5OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbWFrZSBzcGFyc2UgdGFibGUgaGVscGVyIHN0YXRpYzsgYWRkIG1ldGhvZCB0byBnZXQgc3BhcnNlIHRhYmxlIG1pYiBoYW5kbGVyOwogICB3YXJuIGlmIHNwYXJzZSB0YWJsZSBoYW5kbGVyIGhhcyBhIG5leHQgcG9pbnRlci4gdXNlIG5ldyBoYW5kbGVyIGN1c3RvbSBiaXQKICAgdG8gb25seSBsb2cgb25jZSwgaWYgcG9zc2libGUuCgoyMDA0LTAzLTA2IDE4OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICByZXNlcnZlciBsYXN0IDQgYml0cyBvZiBmbGFnIGZvciBoYW5kbGVyIHVzZQoKMjAwNC0wMy0wNiAxNzoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kb3h5Z2VuLm0yYywgbWZkLXRvcC5tMmM6CgogICBnZW5lcmF0ZSBzaW1wbHkgZG94eWdlbi5jb25mIGZpbGUKCjIwMDQtMDMtMDUgMjE6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRml4ZWQgdGhlIGFkZF9yb3cgdG9rZW4gYnkgc29ydGluZyBpbmNvbWluZyBjb2x1bW5zIGZyb20gdGhlIHBhcnNlcgoKMjAwNC0wMy0wNSAxNzowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIHVwZGF0ZXMgZnJvbSBvbGRlciBjaGFuZ2VzOyBzdGlsbCBzbGlnaHRseSBvdXQgb2YgZGF0ZQoKMjAwNC0wMy0wNSAxNzowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGRvbid0IHJlY3Vyc2Ugb24gZGlmZjsgY3AgZGVmYXVsdHMgaW5zdGVhZCBvZiBtb3ZpbmcKCjIwMDQtMDMtMDUgMTc6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgbmV3IHZhciBmb3IgcGFyYW0gY2FsbHMgYnkgdmFsCgoyMDA0LTAzLTA1IDE3OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBmaXggZXZhbHVhdGlvbiBwcm9ibGVtIGluIGdlbmVyYXRlZCBkZWZhdWx0IGZpbGUKCjIwMDQtMDMtMDUgMTY6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IG1vdmUgaW5kZXhlc19zZXQsIGluaXRfZGF0YSBpbnRvIGRhdGFfYWNjZXNzLm0yYwoKMjAwNC0wMy0wNSAxNjo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IGFkZCBleGFtcGxlIGNvZGU7IG1vdmUgYXMgbXVjaCBjYWNoZSBzdHVmZiBhcwogICBwb3NzaWJsZSBpbnRvIGludGVyZmFjZQoKMjAwNC0wMy0wNSAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgYnJlYWsgc2V0X2luZGV4ZXMgaW50byAyIHBpZWNlcwoKMjAwNC0wMy0wNSAxNjo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgcmUtYWRkIHByZS9wb3N0OyBkZWZpbmUgTUZEIHJldHVybiBjb2RlIGhlcmUsIHNpbmNlCiAgIHRhYmxlX21mZCBubyBsb25nZXIgZXhpc3RzOwoKMjAwNC0wMy0wNSAxNjo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgZml4IHN5bnRheCBlcnJvcgoKMjAwNC0wMy0wNSAxNjo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgcmUtYWRkIHByZS9wb3N0IHdyYXBwZXI7IGNhbGwgbmV3IHJvd19wcmVwCgoyMDA0LTAzLTA1IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWRhdGEtc2V0Lm0yYwo6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGUKCjIwMDQtMDMtMDUgMTY6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgbW92IGluaXRfZGF0YSBoZXJlOyBhZGQgcm93X3ByZXAKCjIwMDQtMDMtMDUgMTY6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCBub2RlLWdldC5tMmksCiAgICAgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaToKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291Y2UgaW4gc2FtZSBpbmNsdWRlCgoyMDA0LTAzLTA1IDE2OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBhZGQgZmxhZ3M7IGFkZCBleHBpcmVkOyBvbmx5IHVzZSBkZWZhdWx0IHRpbWVvdXQgd2hlbiBjYWNoZSBjcmVhdGVkOwoKMjAwNC0wMy0wNSAxNjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGhhdmUgbWliX3RvX2Fzbl90eXBlIHJldHVybiBBU05fVU5TSUdORUQgaW5zdGVhZCBvZiBBU05fVUlOVEVHRVIsCiAgIHdoaWNoIGlzIHRoZSBwcm9wZXIgZGF0YSB0eXBlLgoKMjAwNC0wMy0wNSAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBSZW1vdmUgdGhlIHNwYXJzZSB0YWJsZSByZWdpc3RyYXRpb24gYW5kIHJlZ2lzdGVyIGl0IGFzIGEgbm9ybWFsIHRhYmxlLgogICAgIDEpIHRoZSBoaWdoZXIgdGFibGUgaGFuZGxlciBhbHdheXMgY2FsbHMgdGhlIHNwYXJzZSB0YWJsZSBoYW5kbGVyCiAgICAgICAgYW55d2F5LCBzbyBpdCB3b3VsZCBiZSByZWR1bmRhbnQgZXZlbiBpZiBpdCBkaWQgd29yay4KICAgICAyKSBUaGUgc3BhcnNlIHRhYmxlIGhhbmRsZXIgZG9lc24ndCBjYWxsIGFueSBjaGlsZHJlbiwgYW5kIGRvZXNuJ3QKICAgICAgICBzZXQgdGhlIGF1dG9uZXh0IGZsYWcgc28gaXRzIGFsd2F5IHRoZSBlbmQgb2YgdGhlIGxpbmUgKHRoaXMgdG9vawogICAgICAgIG1lIGFuIGhvdXIgdG8gZmluZCkuCgoyMDA0LTAzLTA1IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGNoYW5nZSB0aGUgaGVscCBpbmZvcm1hdGlvbiBmb3IgYWRkX3JvdyB0byBtZW50aW9uIHRoYXQgeW91IG5lZWQgdGhlCiAgIHRhYmxlIG5hbWUgeW91IHdhbnQgdG8gYWRkIHRoZSBkYXRhIHRvLgoKMjAwNC0wMy0wNSAxNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmM6CgogICBGaXggdGhlIG9pZCByZWdpc3RyYXRpb24gY2FjaGUgbm90IGJlaW5nIGludmFsaWRhdGVkIHByb3Blcmx5LiAgQnVnICM5MDA5NjcKCjIwMDQtMDMtMDUgMTE6MjkgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBbNzA2MDkzXSBieSBub3QgZGVmaW5pbmcgdmFyaWFibGVzIGEgc2Vjb25kIHRpbWUuCgoyMDA0LTAzLTA1IDEwOjAzICBzbGlmCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01BTklGRVNUOgoKICAgcXVlbGwgbWFuaWZlc3QgY2hlY2sgZXJyb3JzIChtYWtlZmlsZSwgcG1fdG9fYmxpYiwgLmMgZmlsZSkuCgoyMDA0LTAzLTA1IDEwOjAzICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaDoKCiAgIHVzZSBvZiBTRVRfU05NUF9FUlJOTyByZXF1aXJlcyAtLSBlbmFibGUgRExMIGRlY29yYXRpb24gZm9yIHNubXBfZXJybm8KCjIwMDQtMDMtMDUgMTA6MDIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIG5ldHNubXBfdGFibGVfbmV4dF9jb2x1bW4KCjIwMDQtMDMtMDUgMTA6MDAgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBhZGQgc3ltYm9sIHVzbUFFU1ByaXZQcm90b2NvbAoKMjAwNC0wMy0wNSAwODoyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg6CgogICBmaXggbWFjcm8gbmFtZSwgYXMgbm90ZWQgb24gdXNlcnMKCjIwMDQtMDMtMDUgMDU6NTEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIgJ3NwYWNlJwoKMjAwNC0wMy0wNSAwNTozMCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwKICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBjb25maWd1cmU6CgogICBwYXRjaCBbOTAxNDM0XSBhcHBseSB1c2VXaW5zb2NrMi5zaCBbdW5kbyBieSB1c2luZyB1c2VXaW5zb2NrMS5zaF0KCjIwMDQtMDMtMDQgMjI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGluaXRpYWxpemUgdGhlIHRhYmxlX2RhdGFzZXQgaGVscGVyIChhZ2Fpbi4uLiAgSSAqa25vdyogaXQgd2FzIGluaXRpYWxpemVkIGluIHRoZSBwYXN0LiAgV2hhdCBoYXBwZW5lZD8pCgoyMDA0LTAzLTA0IDIyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdHVybiBvZmYgY2FjaGluZyB1bnRpbCByZWFsIGZpeCBmb3VuZCBmb3IgYnVnIDkwMDk2NzogYWdlbnR4LCBjYWNoaW5nCgoyMDA0LTAzLTA0IDIwOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAqZmluYWxseSogZml4IGFnZW50eCBoYW5nIHdoZW4gbWFzdGVyIGRpc2FwcGVhcnMKCjIwMDQtMDMtMDQgMTU6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBmaXggZXhlY2ZpeCBmb3IgcmVsb2NhdGFibGUgZXhlY3M7IGFkZCBmaXggY21kIHRvIHJlbG9jYXRhYmxlIHRyZWUKCjIwMDQtMDMtMDQgMDk6NDUgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMgYWJvdXQgdmVyc2lvbiBudW1iZXIgY2hhbmdpbmcKCjIwMDQtMDMtMDQgMDk6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBmaXggYnVpbGRpbmcgdHJhcGQgd2hlbiB0aGUgYWdlbnQgaXNuJ3QgYmVpbmcgYnVpbHQKCjIwMDQtMDMtMDQgMDk6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMOgoKICAgdXBkYXRlIHRvIHRoZSB3YXkgd2Ugbm9ybWFsbHkgZG8gcGVybCBNYWtlZmlsZXMsIHdoaWNoIGlzIG5vdCBub3JtYWwuCgoyMDA0LTAzLTA0IDA4OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC54cywgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywKICAgICBhZ2VudC9hZ2VudC54czoKCiAgIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSCgoyMDA0LTAzLTA0IDA4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBmaXggc3ludGF4IGVycm9ycwoKMjAwNC0wMy0wNCAwNTozOSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZQo6CgogICBwYXRjaCBbOTA5NDU5XSBDb25maWd1cmUgcGF0Y2ggdG8gYWxsb3cgZm9yIFdpbjMyIG9iamVjdHMuCgoyMDA0LTAzLTAzIDIyOjExICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgY2hhbmdlICJwcm9ncmF+MSIgdG8gIlByb2dyYW0gRmlsZXMiIHRvIGF2b2lkIHByb2JsZW0gd2l0aCBET1MgbmFtZSB3YXJwaW5nLgoKMjAwNC0wMy0wMyAyMToyMiAgc2xpZgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL1JFQURNRSwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBwYXRjaCBbOTA2Mjc0XSBXaW4zMiBQZXJsIGNvbXBpbGUgd2l0aCByZWxlYXNlL2RlYnVnIHBhdGggY2hhbmdlcwoKMjAwNC0wMy0wMyAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgc3BlY2lmeSBtb2RlIGluIHJlZ2luZm8KCjIwMDQtMDMtMDMgMTM6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZmlsZS5jLCBmaWxlLmg6CgogICAtIG1ha2UgdGhlIGZpbGUgdG9rZW4gYWNjZXB0IGEgZGVmYXVsdCBzaXplIGxpa2UgdGhlIGRvY3Mgc2F5IGl0IHdpbGwuCgoyMDA0LTAzLTAzIDEyOjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY29tbWVudCBvdXQgcGR1IGRvdWJsZSBmcmVlIGNoZWNrIHRpbCBiZXR0ZXIgKG5vbi1sZWFraW5nKSBzb2x1dGlvbiBmb3VuZAoKMjAwNC0wMy0wMyAwODo1NiAgcnN0b3J5CgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjM6CgogICByZW1vdmUgbWFuIHBhZ2UgZm9yIHJlbW92ZWQgc3RydWN0dXJlCgoyMDA0LTAzLTAzIDA4OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgbmV3IHV0aWxpdHkgdG8gcmVnZW5lcmF0ZSBtaWIyYyBjb2RlLCBwcmVzZXJ2aW5nIGV4aXN0aW5nIGN1c3RvbWl6YXRpb25zCgoyMDA0LTAzLTAzIDA3OjUyICBzbGlmCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICB0YWJsZV9tZmQgcmVtb3ZlZCAtLSBkb250IGJ1aWxkIGl0LgoKMjAwNC0wMy0wMyAwNzo0NiAgc2xpZgoKICAgKiB3aW4zMi86IGluc3RhbGwtbmV0LXNubXAuYmF0LCBubWFrZXBlcmwuYmF0OgoKICAgcGVyIEFsZXhCIC0gYWRkICItaGVscCIgZGVzY3JpcHRpb25zLiBjcmVhdGUgQkFTRS90ZW1wIHN1YmRpci4KCjIwMDQtMDMtMDIgMTM6NDUgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHBhdGNoIFs3NTM4OTRdICBjYXRjaCBTSUdYRlNaIHcvbyBzdHJzaWduYWwKCjIwMDQtMDMtMDIgMTI6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIHRvcCBsZXZlbCBtZmQgY29uZiBmaWxlCgoyMDA0LTAzLTAyIDA0OjE4ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBwYXRjaCBbNzUzODk0XSAgY2F0Y2ggU0lHWEZTWiwgbG9nIG1lc3NhZ2UgYW5kIGV4aXQsIGRvIG5vdCBjb3JlZHVtcAoKMjAwNC0wMy0wMiAwNDowNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBmaXggWzc3MTMxNV0gQWdlbnQgY29yZWR1bXBzIGR1cmluZyBzaHV0ZG93bgoKMjAwNC0wMy0wMSAyMTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFBDIHBvbGljZSAtIHRvbmUgZG93biBlcnJvciBtZXNzYWdlCgoyMDA0LTAzLTAxIDIxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgY2hhbmdlIGdsb2JhbHMgdG8gdXNlIGZ1bmN0aW9ucyB0byBhY2Nlc3MgY2FjaGVfaGFuZGxlciB2YXJzLCBvciB1c2UgbmV3CiAgIGRhdGFzdG9yZSB2YWx1ZXMKCjIwMDQtMDMtMDEgMjE6MDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudDsgcmVtb3ZlIG5vYWxsb2MgcHJvdG90eXBlCgoyMDA0LTAzLTAxIDIxOjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudDsgYWRkIE5PX0NBQ0hJTkcgYW5kIENBQ0hFX1RJTUVPVVQKCjIwMDQtMDMtMDEgMjE6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIG5ldyBiYWJ5X3N0ZXBzIGFjY2VzcyBtdWx0aXBsZXhlciBoYW5kbGVyOyBtYWtlIGFjdHVhbCBoZWxwZXIgcm91dGluZXMgc3RhdGljOwogICByZW5hbWUgZnVuY3Rpb25zLCBkZWZpbmVzIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eQoKMjAwNC0wMy0wMSAyMDo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzIHRvIGluaXRfYWdlbnQKCjIwMDQtMDMtMDEgMjA6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc2V0IGRlZmF1bHQgYWdlbnQgY2FjaGUgdGltZW91dDsgZGVidWcgbXNnIGZvciBlcnJubyBvbiBzZWxlY3QgZXJyb3IKCjIwMDQtMDMtMDEgMjA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtZXJnZSBjb21tb24gY2FzZSBpbiBzd2l0Y2gKCjIwMDQtMDMtMDEgMjA6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIHJlcGxhY2UgZ2xvYmFscyB3L2xvY2FsIHN0YXRpYyArIGFjY2VzcyBmdW5jdGlvbjsgdXNlIGRhdGFzdG9yZSBmb3IgY2FjaGluZwogICBlbmFibGVkLCBjYWNoZSB0aW1lb3V0OyB0ZXN0IGNhY2hlX2ZyZWUgZm9yIE5VTEwgYmVmb3JlIGNhbGxpbmcgaXQ7IGRvbid0CiAgIHVzZSBnb3RvOyB1c2UgbmV3IGF1dG8tbmV4dCBmdW5jdGlvbmFsaXR5IHRvIGNhbGwgY2hpbGQgaGFuZGxlcnM7IG5ldwogICBjYWNoZV9jcmVhdGUsIGNhY2hlX2hhbmRsZXJfcmVnaXN0ZXIsIGNhY2hlX2ZpbmRfYnlfb2lkOyBkb24ndCByZWxvYWQgY2FjaGUKICAgbW9yZSB0aGFuIG9uY2UgcGVyIHJlcXVlc3Q7IG5vdGUgcG9zc2liaWxpdHkgb2YgY2FjaGUgYmVpbmcgZnJlZSdkIG1pZC0KICAgcmVxdWVzdCBmb3IgZGVsZWdhdGVkIHJlcXVlc3RzLCB3L3Byb3Bvc2VkIHNvbHV0aW9uCgoyMDA0LTAzLTAxIDIwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlLmMsIGlmVGFibGUuaDoKCiAgIHN3aXRjaCBmcm9tIGl0ZXJhdG9yIHRvIG5ldyB0YWJsZV9jb250YWluZXIgaGFuZGxlci4KCjIwMDQtMDMtMDEgMTk6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICBydW4gdGhyb3VnaCBpbmRlbnQKCjIwMDQtMDMtMDEgMDY6MDYgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIHVuZG8gcGF0Y2ggYXQgcjUuMyAtLSByZXN0b3JlICgxNikgaW4gdGVzdCB0byBnZXQgb25seSBub24tcmVwZWF0ZXJzCgoyMDA0LTAyLTI5IDIxOjEzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIG1vdmUgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93IGhlcmUgZnJvbSB0YWJsZS5jCgoyMDA0LTAyLTI5IDIxOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIHRhYmxlX2NvbnRhaW5lcjsgcmVtb3ZlIHRhYmxlX21mZAoKMjAwNC0wMi0yOSAyMTowNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgbWZkIGRlcGVuZGVuY2llcwoKMjAwNC0wMi0yOSAyMDo1NCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGFkZCBmbGFncyBmaWVsZCB0byBtaWIgaGFuZGxlciBzdHJ1Y3R1cmU7IG5ldyBoYW5kbGVyIEFVVE9fTkVYVCBmbGFncyBmb3IKICAgaGFuZGxlcnMgdGhhdCBkb24ndCB3YW50IHRvIGJvdGhlciB3aXRoIGNhbGxpbmcgc3ViLWhhbmRsZXJzIChhbHNvIHJlZHVjZXMKICAgc3RhY2sgZGVwdGgpOyBuZXcgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jcmVhdGUgd2hpY2ggcmVzaWdlcnMgZXhpc3RpbmcKICAgaGFuZGxlcjsgbG9nIHdhcm5pbmcgZm9yIGhhbmRsZXJzIHJlZ2lzdGVyaW5nIHcvbm8gbW9kZXM7IGhhbmRsZSBpbmplY3Rpb24gdG8gYQogICByZWdpc3RyYXRpb24gdy9vdXQgYSBoYW5kbGVyOyBuZXcgbW9kZXMgSEFORExFUl9DQU5fTk9UX0NSRUFURSwKICAgSEFORExFUl9DQU5fU0VUX09OTFk7IG9yIGluIEhBTkRMRVJfQ0FOX05PVF9DUkVBVEUgdy8gREVGQVVMVDsgYWRkIHZvaWQgcG9pbnRlcgogICB0byBoYW5kbGVyIHJlZ2lzdHJhdGlvbgoKMjAwNC0wMi0yOSAyMDozOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHRhYmxlX21mZC5oIGRlcGVuZGVuY2llcwoKMjAwNC0wMi0yOSAyMDoyNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIHN5bmMgY2xvc2VzdF9jb2x1bW4gdy9maXhlcyBpbiA1LTEtcGF0Y2hlczsgY2hlY2sgZm9yIGV4aXN0aW5nIHRibF9yZXFfaW5mbyBpbgogICByZXF1ZXN0czsgY2FsbCBzcGFyc2UgdGFibGUgaGFuZGxlciBhZnRlciBub3JtYWwgdGFibGUgcHJvY2Vzc2luZzsgbW92ZQogICBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3cgdG8gdGFibGVfY29udGFpbmVyLmMKCjIwMDQtMDItMjkgMTc6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgcHJvdG90eXBlIGZvciBoYW5kbGVyIGdldDsgbWFrZSBpbmxpbmUgZnVuYyBzdGF0aWMgaW5saW5lCgoyMDA0LTAyLTI5IDE3OjEzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIG91dCB3L3RoZSBvbGQsIGluIHcvdGhlIG5ldyAocmVtb3ZlIG1mZCBoZWxwZXIsIGFkZCB0YWJsZV9jb250YWluZXIpCgoyMDA0LTAyLTI5IDE3OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgcmVtb3ZlIG1mZCBoZWxwZXI7IG1mZCBjb25mIGZpbGVzIG5vdyB1c2VyIG5ldyB0YWJsZV9jb250YWluZXIgaGVscGVyCgoyMDA0LTAyLTI5IDE3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHJlbW92ZSBncm91cGluZyBvcHRpb24gKHVzZXIgY2FuIHVzZSByb3dfbWVyZ2UgaW5zdGVhZCk7IG5ldyBmdW5jdGlvbiBnbyBnZXQKICAgaGFuZGxlciB3L291dCByZWdpc3RlcjsgYnJlYWsgY29tcGxleCBjb25kaXRpb24gaW50byBzaW1wbGVyIGNvbmRpdGlvbmFscyBzbwogICBicmVha3BvaW50cyBjYW4gYmUgc2V0IG9uIGNvbmRpdGlvbjsgZG9uJ3QgY2FsbCBsb3dlciBoYW5kbGVycyBpZiBubyByZXF1ZXN0cwogICBuZWVkIHByb2Nlc3NpbmcKCjIwMDQtMDItMjkgMTc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2l0ZXJhdG9yLmMsIGNvbnRhaW5lcl9saXN0X3NzbGwuYwosIGNvbnRhaW5lcl9udWxsLmM6CgogICBhZGQgc3VwcG9ydCBmb3IgY29udGFpbmVyIGNsZWFyCgoyMDA0LTAyLTI5IDE2OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIGVuYWJsZSBkbG1vZCBzdXBwb3J0IGlmIEhBVkVfTElCREwKCjIwMDQtMDItMjkgMTY6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjYXRjaCBiYWQgc2l6ZSBmb3IgZml4ZWQgc2l6ZSB0eXBlcwoKMjAwNC0wMi0yOSAxNjoyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHN1cHBvcnQgQ09OVEFJTkVSX0NMRUFSOyBtYWtlIHNvbWUgZnVuY3Rpb25zIHN0YXRpYyBpbmxpbmUKCjIwMDQtMDItMjkgMTY6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgZml4IGluc2VydC9yZW1vdmUvZnJlZSBpbmxpbmVzIHRvIHByb3Blcmx5IGRlYWwgd2l0aCBtdWx0aXBsZSBpbmRleGVzOyBhZGQgbmV3CiAgIENPTlRBSU5FUl9DTEVBUiBtYWNyby9jYWxsYmFjazsgYWRkIG5vdGVzIG9uIGZyZWVpbmcgcmV0dXJuZWQgYXJyYXkgZnJvbQogICBnZXRfc3Vic2V0CgoyMDA0LTAyLTI5IDE2OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHVzZSBtZmQgZXJyb3IgaW5zdGVhZCBvZiBzbm1wIGVycm9yCgoyMDA0LTAyLTI5IDE2OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHNldHVwIHNpemUgbmFtZXMgYmVmb3JlIGluY2x1ZGluZyBnZW5lcmljIGZpbGUKCjIwMDQtMDItMjkgMTY6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICByZW1vdmUgZXh0cmFuZW91cyBlbmQ7IGFkZCBjb21tZW50cwoKMjAwNC0wMi0yOSAxNjowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBhZGQgZXhpdCgpIGNhbGwKCjIwMDQtMDItMjkgMTY6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnCgoyMDA0LTAyLTI5IDE1OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWc7IHVzZSBnbG9hYmwgdGFibGUgb2lkL3NpemUgdmFyOwogICBzd2l0Y2ggbWZkIHdyYXBwZXIgZnVuY3Rpb25zIHRvIHVzZSBzdGFuZGFyZCBuZXcgYXBpIHBhcmFtZXRlcnM7IG5ldyBvcHRpb25hbAogICBjYWNoZTsgdXNlIHR3byBuZXcgaGVscGVyczogbmV0c25tcF9iYWJ5X3N0ZXBzX2FjY2Vzc19tdWx0aXBsZXhlciBhbmQKICAgbmV0c25tcF9jb250YWluZXJfdGFibGVfaGFuZGxlcjsgbG9vayBmb3IgZGF0YS9wdXQgY3JlYXRlZCByb3cgZGF0YSBpbiByZXF1ZXN0CiAgIGFsYSBjb250YWluZXIgdGFibGUgaGFuZGxlciBmb3IgbG93ZXIgaGFuZGxlcnM7IHR3ZWFrcyBmb3IgdXNpbmcgbmV3IHNpbmdsZQogICBmaWxlIGFjY2VzcyBtZXRob2RzCgoyMDA0LTAyLTI5IDE1OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWc7IG1ha2UgdGFibGUgb2lkL3NpemUgYSBnbG9iYWwKICAgdmFyOyBzd2l0Y2ggbWZkIHdyYXBwZXIgZnVuY3Rpb25zIHRvIHVzZSBzdGFuZGFyZCBuZXcgYXBpIHBhcmFtZXRlcnMKCjIwMDQtMDItMjkgMTU6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtZGF0YS1zZXQubTJjCjoKCiAgIHVzZSByZXBvcnQgcHJvZ3Jlc3MgZmxhZzsgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWcKCjIwMDQtMDItMjkgMTU6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHR3ZWFrcyB0byB1c2UgbmV3IHNpbmdsZSBmaWxlIGFjY2VzcyBtZXRob2RzIChwcm9jZXNzaW5nIHR5cGUgZmxhZykKCjIwMDQtMDItMjkgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHRlc3QgbmV3IGZsYWcgZm9yIGxlc3MgdmVyYm9zZSBvdXRwdXQ7IGRvY3VtZW50IHRyYW5zaWVudCB2YWx1ZXMgaW4gY29tbWVudHMKICAgYW5kIGdlbmVyYXRlZCB0YWJsZSBkZWZhdWx0IGZpbGU7IG1ha2Ugc3VyZSBtZmQgZGVmYXVsdHMgaGF2ZSBiZWVuIHByb2Nlc3NlZAoKMjAwNC0wMi0yOSAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBkZWZhdWx0IHRvIG5vIG1hcHBpbmcsIGV4Y2VwdCBmb3Igbm9kZXMgdy9lbnVtczsgdXNlIHBhcmFtIG5hbWVzIGZvciBub2RlCiAgIG5hbWVzOyBwcm9wZXJseSBlc2NhcGUgbGVuIHZhciBuYW1lCgoyMDA0LTAyLTI5IDE1OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIHR3ZWFrIG9yZGVyIG9mIHRlc3RpbmcgY29uZGl0aW9uYWxzCgoyMDA0LTAyLTI5IDE1OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgY29tbWVudCB0d2Vha3M7IG1ha2Ugc3VyZSB0byBjbGVhciB0bXAgdmFyIGJlZm9yZSB1c2UKCjIwMDQtMDItMjkgMTU6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWVudW1zLm0yYywKICAgICBnZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgZ2VuZXJhdGluZyBmZXdlciBmaWxlcwoKMjAwNC0wMi0yOSAxNTowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmM6CgogICBuZXcgZmlsZSB0byBnZW5lcmF0ZSBjb21iaW5lZCBvaWQvZW51bSBoZWFkZXIKCjIwMDQtMDItMjkgMTQ6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGluaXQgbmV3IGZsYWcgZm9yIGNyZWF0aW5nIGZld2VyIGZpbGVzOyBpbml0IG5ldyBmbGFnIGZvciBwcm9jZXNzaW5nIHBhcnRzCiAgIG9mIGZpbGVzICh1bnRpbCBJIGNhbiBmaWd1cmUgb3V0IGlmIEkgY2FuIGNvbnZlcnQgdG8gbmV3IGRlZmluZS9jYWxsZGVmaW5lKQoKMjAwNC0wMi0yOSAxNDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBuZXcgYWNjZXNzIG1ldGhvZCBkZWZpbmVzCgoyMDA0LTAyLTI5IDE0OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtc2V0dXAubTJpOgoKICAgcmVtb3ZlIGZpbGVzICAobWVyZ2VkIGludCBtZmQtYWNjZXNzLXVuZG9ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpKQoKMjAwNC0wMi0yOSAxNDo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIG1lcmdlIG11bHRpcGxlIGFjY2VzcyBmaWxlcyBpbnRvIG9uZSBmaWxlCgoyMDA0LTAyLTI3IDIyOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGZpeCB0aGUgY2FzZSB3aGVyZSBpbmNvbWluZyBnZXRidWxrcyB3aXRoIG5vIHJlcGVhdGluZyB2YXJiaW5kcyBpcyByZWNlaXZlZC4KCjIwMDQtMDItMjcgMTU6MDQgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBwZXJsL01ha2VmaWxlLlBMLAogICAgIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL09JRC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHBhdGNoIFsgOTA1NDY1IF0gTWluR1cgUGVybCBtb2R1bGUgY29tcGlsaW5nIHdpdGggQWN0aXZlU3RhdGUgUGVybAoKMjAwNC0wMi0yNyAwNzoxOCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjb25zdHJ1Y3QgaW5zdGFsbCB0cmVlIHNpbWlsYXIgdG8gaW5zdGFsbCB0cmVlIHRoYXQgZ2NjIGJ1aWxkcyB1c2UuCgoyMDA0LTAyLTI3IDA2OjA1ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgYnVpbGQgTVNWUyByZWxlYXNlIGFuZCBkZWJ1ZyB2ZXJzaW9ucyBoYXZpbmcgdGhlIHNhbWUgbmFtZS4KCjIwMDQtMDItMjcgMDU6NDIgIHNsaWYKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBidWlsZCBNU1ZTIHJlbGVhc2UgYW5kIGRlYnVnIHZlcnNpb25zIGhhdmluZyB0aGUgc2FtZSBuYW1lLgoKMjAwNC0wMi0yNyAwNToxMSAgc2xpZgoKICAgKiB3aW4zMi86IGluc3RhbGwtbmV0LXNubXAuYmF0LCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBjb25zdHJ1Y3QgaW5zdGFsbCB0cmVlIHNpbWlsYXIgdG8gaW5zdGFsbCB0cmVlIHRoYXQgZ2NjIGJ1aWxkcyB1c2UuCgoyMDA0LTAyLTI3IDA0OjUwICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBlbmFibGUgZ2NjIGJ1aWxkcyBvZiBXaW5kb3dzIHNlcnZpY2UgY29kZSBmb3IgdGhlIGFnZW50LgoKMjAwNC0wMi0yNiAxNzoyMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICByZW1vdmUgdW5uZWNlc3Nhcnkgc2V0dGluZyBvZiBORVRTTk1QX0RTX0xJQl9BUFBUWVBFLgoKMjAwNC0wMi0yNiAxNjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBjb21tb24taXplIGxvb3AgYW5kIHNhdmluZyBvZiBzdGF0ZSB2YXJpYWJsZXMgdGhyb3VnaCBhIGNyZWF0aXZlIHVzZQogICBvZiByZWZlcmVuY2VzLgoKMjAwNC0wMi0yNiAxNjoyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IGZvciBAZGVmaW5lIHNlY3Rpb25zIHdoaWNoIGNhbiBiZSBsYXRlciByZWZlcnJlZCB0byBieSBAY2FsbGRlZmluZQoKMjAwNC0wMi0yNiAxNjoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIC0gZG94eWdlbiBjb25maWcgZmlsZS4KICAgLSBUcmFwUmVjZXZpZXIgcGVybCBtb2QuCgoyMDA0LTAyLTI2IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIERvbid0IGNhbGwgJ1RDUF9Db3VudF9Db25uZWN0aW9ucycgaWYgdGhlIHRjcFRhYmxlIG1vZHVsZSBpc24ndCBpbmNsdWRlZC4KCjIwMDQtMDItMjYgMDY6MzIgIGR0czEyCgogICAqIEZBUToKCiAgIE1pbm9yIHdvcmRzbWl0aGluZyB0d2Vha3MgdG8gQnJ1Y2UncyBGQVEgY2hhbmdlcy4KICAgR29zaCwgYnV0IERhdmUncyBhIHBpY2t5IGJ1Z2dlciBhdCB0aW1lcy4KICAgTmV2ZXIgbWluZCwgcGVyaGFwcyBpZiB5b3UgbGV0IGhpbSBhbXVzZSBoaW1zZWxmIHdpdGggdGhlIGRvY3VtZW50YXRpb24sCiAgIHlvdSBtaWdodCBiZSBhYmxlIHRvIGtlZXAgaGltIGF3YXkgZnJvbSBtb3JlIGNyaXRpY2FsIGJpdHMgb2YgdGhlIHByb2plY3QuLi4uCgoyMDA0LTAyLTI1IDIzOjQ3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jOgoKICAgcmVtb3ZlIENSIGFjY2lkZW50YWxseSBpbnNlcnRlZCBwcmV2aW91c2x5LgoKMjAwNC0wMi0yNSAyMTo0MiAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgdXNlIFJGQyAzMzMwIHBlcm1pdHRlZCBhZGRyZXNzIGZvciB0aGlzIGhvc3Qgd2hlbiBsb29raW5nIGluIGdldF9teWFkZHIKCjIwMDQtMDItMjUgMTY6NTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRW5hYmxlIEFFUyBzdXBwb3J0IGZvciB0aGUgU05NUCBtb2R1bGUgKGNhbid0IGJlbGlldmUgaXQncyBiZWVuIG1pc3NpbmcpCgoyMDA0LTAyLTI1IDE0OjQ2ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIHVubmVlZGVkIHdvcmthcm91bmQgcGF0Y2ggWyA4NDA4MzAgXSBTTk1QLnhzIEZyZWUgdG8gd3JvbmcgcG9vbCBjcmFzaCBvbiBXaW5kb3dzCgoyMDA0LTAyLTI1IDEzOjA2ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRToKCiAgIHBhdGNoIFs5MDE5NDRdIHdpbjMyIGRvYyB1cGRhdGVzIGZyb20gQWxleCBCdXJnZXIKCjIwMDQtMDItMjQgMTA6MzkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgdXNlIHdpbnNvY2sgZ2V0aG9zdGJ5bmFtZSwgZ2V0c2VydmJ5bmFtZSBvbiBtaW5ndzMyLgoKMjAwNC0wMi0yNCAwOTo1OCAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIHBlciBCZXJuaGFyZCBQZW56OiBkZWVwIGNvcHkgb2YgaW5jbHVkZSB0cmVlCgoyMDA0LTAyLTI0IDA2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFBhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIGJ1ZyA5MDI3MjIgXSBBYmxlIHRvIGRlbGV0ZSB2aWV3IGV2ZW4gd2hlbiBzdG9yYWdlIHR5cGUgPSBwZXJtYW5lbnQKCjIwMDQtMDItMjQgMDU6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIHBhdGNoIFs5MDM0MjRdIHBlciBBbmR5IFNtaXRoOiBpZmRlZiB3aW4zMiBmaXggZm9yIHRjcFRhYmxlLmMgKGN5Z3dpbikKCjIwMDQtMDItMjMgMTY6MzIgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIFBhdGNoICM5MDE0NjAgZnJvbSBCcnVjZSBTaGF3OiB1cGRhdGluZyBtaXNjIEZBUSBpbmZvcm1hdGlvbgoKMjAwNC0wMi0yMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIHVwZGF0ZWQgcGVybCBidWlsZCBpbmZvCgoyMDA0LTAyLTIzIDE2OjEzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgcGF0Y2ggIzkwMTM3NSBmcm9tIEJydWNlIFNoYXc6IHNvbWUgaW5mb3JtYXRpb24gb24gSU5TVEFMTCBpcyBzdGFsZQoKMjAwNC0wMi0yMyAxMzoyOSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHVuZG8gcHJldmlvdXMgcGF0Y2ggLS0gbm8gc2VtaS1jb2xvbnMgaW4gREVGQVVMVF9NSUJ7RklMRVMsRElSU30KCjIwMDQtMDItMjMgMTA6NTcgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBjb252ZXJ0IG90aGVyIGxpc3Qtb3JpZW50ZWQgc2V0dGluZ3MgdG8gY29uc2lkZXIgc2VtaS1jb2xvbiBkZWxpbWl0ZXIgZm9yIG1pbmd3MzIKCjIwMDQtMDItMjIgMDk6NDggIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBwZXIgQWxleEI6IGFsc28gaW5zdGFsbCBzbm1wY29uZiBmaWxlcwoKMjAwNC0wMi0yMSAxMzo1NiAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIHNubXBsaWIvdG9vbHMuYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgd2luMzIvbGlic2RsbC5kc3c6CgogICBBcHBseSBwYXRjaCAjODk4NDY0IHRvIGZpeCBidWdzICM4OTYwMzAgYW5kICM3NzM0MTIKCjIwMDQtMDItMjAgMDc6MTggIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgY29uZmlndXJlOgoKICAgcGVyIEFsZXhCOiBmaXggREVGQVVMVF9NSUJTIHRvIHVzZSAnOycgc2VwYXJhdG9yIG9uIFdpbjMyLgoKMjAwNC0wMi0xOSAyMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBXaG9vcHMuICBUaGF0IHdvdWxkIG5vdCBoYXZlIHdvcmtlZC4gIFNpbGx5IG1lLgoKMjAwNC0wMi0xOSAyMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBjaGVjayBudW1iZXIgb2Ygc3VwcG9ydCBwcm9jZXNzb3JzIHByb3Blcmx5CgoyMDA0LTAyLTE5IDIwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFsgOTAwMjQ0IF0gc3VwcG9ydCB1cCB0byAzMiBDUFVzIG9uIGxpbnV4IGZyb20gTWljaGFsIEx1Y3phawoKMjAwNC0wMi0xOSAxOTo0MSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wTm90aWZ5VGFibGUuaDoKCiAgIGZpeCBidWcgODk4NTA5IGZ1bmN0aW9uIHBvaW50ZXIgcHJvdG90eXBlcyBkZWZpbmVkIHR3aWNlCgoyMDA0LTAyLTE5IDE4OjUwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgYWxsb3cgRE9TIHZvbHVtZSBuYW1lIFtBLVpdOiB0byBiZWdpbiB0aGUgcGF0aCBzcGVjIGZvciBwcmVmaXhlcwoKMjAwNC0wMi0xOSAwOTo0MSAgc2xpZgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggc3BlbGwgTlNDX0VYRUNfUFJFRklYCgoyMDA0LTAyLTE4IDIzOjM1ICBzbGlmCgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIHBlciBBbGV4QjogLXdpbjMyIHN1cHBvcnQKCjIwMDQtMDItMTggMjM6MzUgIHNsaWYKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIHBlciBBbGV4QjoKICAgLWFkZCBXaW4zMiBzdXBwb3J0IGZvciBzdGFydGluZyAvIHN0b3BwaW5nIHNubXBkIGFuZCBzbm1wdHJhcGQKICAgLWFsbG93IHNwYWNlcyBpbiBzbm1wdGVzdC5jbWQgZmlsZQoKMjAwNC0wMi0xOCAyMzozNCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICAtbWFrZSAkbXkgb3B0cyBnbG9iYWwgc28gaXQncyB2aXNpYmxlIHRvIEdldFRlc3RJbmZvKCkKICAgLXJlLXdyaXRlIHdpbjMyIGNvZGUgY3JlYXRlIHNubXB0ZXN0LmNtZCBmaWxlCgoyMDA0LTAyLTE4IDIzOjI3ICBzbGlmCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbm90aWZ5LnQ6CgogICBwZXIgQWxleEI6IHRlc3QgdGhhdCB2YXJpYWJsZXMgYXJlIGRlZmluZWQgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA0LTAyLTE4IDIzOjE3ICBzbGlmCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgYnVsa3dhbGsudDoKCiAgIHBlciBBbGV4QjogZGlzYWJsZSBhc3luY2ggdGVzdHMgd2hlbiBydW4gb24gd2luMzIgcGxhdGZvcm0uCgoyMDA0LTAyLTE4IDIzOjAwICBzbGlmCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbWlibG9hZC50OgoKICAgcGVyIEFsZXhCOiBhZGQgbWlzc2luZyBzbm1wdGVzdF9jbGVhbnVwIGNhbGwKCjIwMDQtMDItMTggMjI6NDUgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgcGVyIEFsZXhCOiB0eXBvIGZpeCAiY29tcGlsZWQgdGhlIgoKMjAwNC0wMi0xOCAyMjo0MCAgc2xpZgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGZyb20gQWxleCBCdXJnZXI6IGNhc2UgaW5zZW5zaXRpdmUgY2hlY2sgZm9yIC1ORVQtU05NUC1JTi1TT1VSQ0UgY29tbWFuZCBwYXJhbS4KCjIwMDQtMDItMTggMTI6MzUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGEgdjMtc2VjdXJpdHkgYXV0by1idWlsdCBoZWFkZXIgZHVyaW5nIGRpc3RjbGVhbgoKMjAwNC0wMi0xOCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBkb2N1bWVudCAtQyBvcHRpb24gaW4gdXNhZ2UKCjIwMDQtMDItMTggMTE6NTcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHBhdGggaW4gdXNhZ2U7IHVzZSBuZXcgbnNnLXN1ZmZpYyBpbiB1cGxvYWQgcGF0aAoKMjAwNC0wMi0xOCAxMTo0MCAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVzZSBJTlNUQUxMX0JBU0UgLXJlbGF0aXZlIG1rdGVtcCBmaWxlIHBhdHRlcm4uCgoyMDA0LTAyLTE4IDA5OjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWFrZSAjIGVyciBsaW5lcyByZXBvcnRlZCBjb25maWd1cmFibGUuIGRlZmF1bHQgdG8gMjUKCjIwMDQtMDItMTggMDY6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIGZvciAnaW42YWRkcl9hbnknIHVuZGVyIFdpbmRvd3MKICAgKEFsdGhvdWdoIHRoZXJlJ3MgYW4gZXh0ZXJuYWwgZGVjbGFyYXRpb24gbWVudGlvbmVkIGluCiAgICA8d3MydGNwaXAuaD4sIHRoZXJlIG5vIGFjdHVhbCB2YXJpYWJsZSBpbiB0aGUgbGlicmFyeSkKCjIwMDQtMDItMTcgMTA6MzMgIGhhcmRha2VyCgogICAqIG1ha2Vub3N5c2RlcGVuZC5wbDoKCiAgIHJlZ2V4cCB0b3VjaHVwcwoKMjAwNC0wMi0xNyAwNzoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGJ1bXAgTUFYVEMgdXAgdG8gNDA5NgoKMjAwNC0wMi0xNyAwNzoyNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgYXBwZW5kIHN1ZmZpYyB0byBidWlsZCBkaXIgd2hlbiBidWlsZGluZyBkZWZhdWx0IGJ1aWxkIGRpcjsgcmVtb3ZlCiAgIHN5c3RlbSBzcGVjaWZpYyB0d2Vha3MgZm9yIHNmIGNmLCB0aGV5IHNob3VsZCBnbyBpbiB+Ly5zbm1wL25zYi1yYwoKMjAwNC0wMi0xNyAwNTo1NCAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGVycm9yIGFmdGVyIGNoYW5nZSBmb3IgRml4IFs4MDE5MjhdCgoyMDA0LTAyLTE3IDA0OjM5ICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggWzgwMTkyOF0gd3JvbmcgY2FsbCBvZiBzdHJsY3B5IGluIHVwdGltZV9zdHJpbmcKCjIwMDQtMDItMTcgMDM6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVHdlYWsgSVB2NiB0cmFuc3BvcnRzIHNvIHRoYXQgdGhleSBjb21waWxlIHVuZGVyIFdpbmRvd3MuCgoyMDA0LTAyLTE3IDAyOjQyICBkdHMxMgoKICAgKiBzbm1wbGliLzogaW5ldF9udG9wLmMsIGluZXRfcHRvbi5jOgoKICAgUHJvdmlkZSBpbXBsZW1lbnRhdGlvbnMgb2YgJ2luZXRfbnRvcCcgYW5kICdpbmV0X3B0b24nIGZvcgogICBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtIG5hdGl2ZWx5LgoKMjAwNC0wMi0xNyAwMjoyOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBGaXggWzg5Njc5M10gbG9hZGF2ZS5jIGluY2x1ZGVzIHN5cy9zdGF0LmggdHdpY2UKCjIwMDQtMDItMTcgMDA6NDUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaDoKCiAgIGZpeCBidWcgODk4NTA5IGZ1bmN0aW9uIHBvaW50ZXIgcHJvdG90eXBlcyBkZWZpbmVkIHR3aWNlCgoyMDA0LTAyLTE2IDIxOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICByZW1vdmVkIHVudXNlZCBmdW5jdGlvbiBmcm9tIGxhc3QgcGF0Y2gKCjIwMDQtMDItMTYgMjE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLAogICAgIHVjZC1zbm1wL3Byb2MuYzoKCiAgIHBhdGNoIFsgODM2MzkzIF0gTW9yZSBwcm9jIGltcHJvdmVtZW50cyBmb3IgTGludXggZnJvbSBIb3dhcmQgV2lsa2luc29uCgoyMDA0LTAyLTE2IDE4OjI4ICBzbGlmCgogICAqIHdpbjMyL25tYWtlcGVybC5iYXQ6CgogICBub3RlIHN1Yi1kaXJlY3Rvcnkgd2hlcmUgIm5tYWtlIiBvdXRwdXQgZmlsZXMgYXJlIHdyaXR0ZW4uCgoyMDA0LTAyLTE2IDE1OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUkVBRE1FLCBSVU5URVNUUywgVEVTVENPTkYuc2gsCiAgICAgZXZhbF90b29scy5zaCwgdGVzdHMvU3ZhY21jb25maWcsIHRlc3RzL1N2YW55Y29uZmlnCiwgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAxNHNubXB2MmNnZXQsCiAgICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LAogICAgIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbAosIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgICAgdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RzL1QwMjBzbm1wdjNnZXQsCiAgICAgdGVzdHMvVDAyMXNubXB2M2dldG5leHQsIHRlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwKICAgICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uCiwgdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgdGVzdHMvVDA1MHNubXB2M3RyYXAsCiAgICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgICB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsCiAgICAgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0cy9UMTAwYWdlbnRodXAsCiAgICAgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCwKICAgICB0ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgICAgdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0cy9UMTIxcHJveHlzZXQsCiAgICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsCiAgICAgdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCB0ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwKICAgICB0ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsIHRlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwKLCB0ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWw6CgogICBQYXRjaCAjNzAyODM1IChwbHVzIHR3ZWFrcyk6IHBhdGNoIHRvIGVuYWJsZSB0ZXN0IGNhc2VzIHJ1biBvbiBkaWZmZXJlbnQgdHJhbnNwb3J0IGRvbWFpbiBmcm9tIFhpYW9mZW5nIExpbmcKCjIwMDQtMDItMTYgMTQ6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmM6CgogICBGaXggYnVnIFsgODk2Nzc3IF0gZXJyb3JtaWIuYyBpbmNsdWRlcyBzeXMvc3RhdC9oIHR3aWNlCgoyMDA0LTAyLTE2IDE0OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KCjIwMDQtMDItMTYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQnVnIFsgODk3NTUwIF0gUGVybCBTTk1QLnBtIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBhbmQgYXR0YWNoZWQgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlcgoKMjAwNC0wMi0xNiAxMjo0NSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgUGF0Y2g6IFsgODE5MjQxIF0gQWRkIHRvIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xNiAxMTo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFBhdGNoIFsgODk4MTYwIF0gU25tcHRhYmxlIGxvb3BzIGlmIHRhYmxlIGlzIGF0IHRoZSBlbmQgb2YgdGhlIG1pYiBmcm9tIENyaXNwaW4gRmxvd2VyZGF5CgoyMDA0LTAyLTE2IDEwOjMwICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIG1ha2UgbWVudSBwYXRoIHRvIHJlZ2lzdGVyIFBTREsgbW9yZSBjb21wbGV0ZS4KCjIwMDQtMDItMTYgMTA6MDEgIHNsaWYKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgcmVtb3ZlIHBsYXRmb3JtIFNESyBoZWFkZXIgU25tcC5oIGZyb20gU09VUkNFUyBsaXN0LgoKMjAwNC0wMi0xNiAwNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBGaXggYSBtaXNzaW5nIHZhcmlhYmxlIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoLgoKMjAwNC0wMi0xNSAxODoxOSAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIGNvcHkgZGxsIHRvIHN5c3RlbTMyIGNhY2hlCgoyMDA0LTAyLTE1IDE1OjQ3ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICB0aGUgcHJvamVjdCBkZXBlbmRlbmNpZXMgYXJlIG5vdCByZWxpYWJsZS4gIHJlbW92ZSB0aGVtLgoKMjAwNC0wMi0xNSAxMjowMCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBYWVggY29tbWVudHM7IG5vdGUgdGhhdCBzbm1wX2luaXRfbWliX2ludGVybmFscyBkb2VzIG5vdGhpbmcuCgoyMDA0LTAyLTE1IDEwOjM5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHN5bnRheCBlcnJvcgoKMjAwNC0wMi0xNSAxMDozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBhbmQgc291cmNlIG5ldyBjb21tb24gY29uZmlnIGZpbGUKCjIwMDQtMDItMTQgMDk6NDEgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIGxpYnNubXAgcHJvamVjdAoKMjAwNC0wMi0xNCAwNjoyMCAgc2xpZgoKICAgKiBSRUFETUU6CgogICBBZGQgTm9haCBGcmllZG1hbiwgZml4aW5nIGJ1ZyA4ODcyOTEKCjIwMDQtMDItMTQgMDI6NTEgIHNsaWYKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgUmVtb3ZlIGdsb2JhbCBkZXBlbmRlbmN5IGZvciBsaWJzbm1wIHByb2plY3QgKG5vdCBuZWNlc3NhcnkpLgoKMjAwNC0wMi0xMyAxNjowMiAgc2xpZgoKICAgKiB3aW4zMi9ubWFrZXBlcmwuYmF0OgoKICAgYmV0dGVyIGV4cGxhbmF0b3J5IG1lc3NhZ2VzLCBhbmQgaW1wcm92ZWQgdGVzdCByZXN1bHRzIGNvbGxlY3RlZC4KCjIwMDQtMDItMTMgMTM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0Lmg6CgogICBQYXRjaCBbIDgxMjAzNCBdIGlwQWRFbnRSZWFzbU1heFNpemUgZG9lcyBub3QgcmV0dXJuIGRhdGEgb24gc25tcGdldCBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMyAxMjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggQUVTIG5vdGUgb3V0cHV0IGJyb2tlbiBieSBsYXN0IHBhdGNoCgoyMDA0LTAyLTEzIDEyOjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3BrY3MuYywKICAgICBzbm1wbGliL3NjYXBpLmM6CgogICBQYXRjaCBbIDgwNzM3NSBdIGFkZCBzdGFuZGFyZCBQS0NTIzExIGludGVyZmFjZSBzdXBwb3J0IGZvciB1c206IGFsdGVybmF0aXZlIHNlY3VyaXR5IGxpYnJhcnkgKG9wZW5zc2wgbm8gbG9uZ2VyIG5lZWRlZCBvbiBmdXR1cmUgc29sYXJpcykgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTMgMTE6NTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQYXJ0IG9mIHBhdGNoIChzb21lIGhhZCBiZWVuIGRvbmUpIGZvciBbIDc2NzMxNiBdIGZpeCBoYW5kbGluZyBvZiBhdWdtZW50ZWQgdGFibGVzIGluIHBlcmwgbW9kdWxlIGZyb20gUmFuZHkgQ291ZXkKCjIwMDQtMDItMTMgMTE6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgU2Vjb25kIHBhcnQgb2YgZGlza2lvIGxvYWQgYXZlcmFnZSBwYXRjaAoKMjAwNC0wMi0xMyAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0CjoKCiAgIHBhdGNoIFsgNzk1NDI0IF0gZGlza2lvTEEgLSBkaXNrIGxvYWQgYXZlcmFnZSBmb3IgRnJlZUJTRCAoZGV2c3RhdCkgZnJvbSBSb2plcgoKMjAwNC0wMi0xMyAxMToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBwYXRjaCBbIDc5OTA1MCBdIEFJWCBwYXRjaGVzIC0gdWNkLXNubXAvZGlza2lvIGZyb20gTWljaGFlbCBLdWthdAoKMjAwNC0wMi0xMyAxMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWlzc2VkIGEgcG9ydGlvbiBvZiBwYXRjaCAjODE1NDM5IGZpeGluZyBhdXRoIGZhaWx1cmUgdHJhcHMuICBwYXRjaCBnb3QgY29uZnVzZWQgYnkgcHJldmlvdXNseSBleGlzdGluZyBjb2RlIGJlZm9yZS4KCjIwMDQtMDItMTMgMTA6NDggIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvbmUgbGluZSBjaGFuZ2UgdG8gcHJvcGVybHkgdGVybWluYXRlIGEgY29tbWVudCBpbmplY3RlZCBieSB0aGUgcHJldmlvdXMgcGF0Y2guCgoyMDA0LTAyLTEzIDEwOjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBOaWNrIEJhcmthcyB0byB0aGUgUkVBRE1FCgoyMDA0LTAyLTEzIDEwOjM2ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVwbGFjZSBnZXRfdHJlZV9oZWFkKCkgZm9yIHJlZmVyZW5jZXMgdG8gdmFyaWFibGVzIE1pYiBhbmQgdHJlZV9oZWFkLgogICBSZW1vdmUgRExMX0lNUE9SVCBsaW5lcywgYW5kIEJPT1Qgc2VjdGlvbiwgYXMgdGhleSBhcmUgbm90IG5lZWRlZC4KICAgTWFyayBxdWVzdGlvbmFibGUgY29tbWVudGVkIGNvZGUgd2l0aCBYWVggZm9yIHBvc3NpYmxlIHJlbW92YWwuCgoyMDA0LTAyLTEzIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFBhdGNoIFsgODk1NTA5IF0gbWVtb3J5IGluZm8gZnJvbSB1Y2Qtc25tcCBtaWIgb24gbGludXggMi42IGZyb20gTmljayBCYXJrYXMKCjIwMDQtMDItMTMgMTA6MjAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIFBhdGNoIFsgODk0NzExIF0gU29sYXJpcyBkaXNrIHRlc3QgZmFpbHMgb24gc29tZSBPUydzIGZyb20gQnJ1Y2UgU2hhdwoKMjAwNC0wMi0xMyAxMDowNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCBzbm1wbGliL2FzbjEuYywKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgc25tcGxpYi9pbnQ2NC5jOgoKICAgWyA4NDkxNTggXSA1LjE6IC9jb25zdC8gZml4ZXMgZm9yIHRoZSBBUEkgZnJvbSBTdGVwaGVuIEouIEZyaWVkbAoKMjAwNC0wMi0xMiAyMDowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgZGVmaW5lcwoKMjAwNC0wMi0xMiAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggWyA4MTU0MzkgXSBzbm1hZ2VudCBkb2VzIG5vdCBzZW5kIGF1dGggZmFpbHVyZSB0cmFwcyBmb3IgdjMgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTIgMTc6MDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICByZW1vdmUgY29weXJpZ2h0IGNvbW1lbnQgYWNjaWRlbnRpY2FsbHkgcGxhY2VkCgoyMDA0LTAyLTEyIDE3OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgWyA4MTIwMDUgXSBzZWdtZW50YXRpb24gZmF1bHQgaW4gc25tcHRhYmxlCgoyMDA0LTAyLTEyIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBbIDgxMTI3OCBdIG1ha2UgYWdlbnR4IHVkcC90Y3AgdHJhbnNwb3J0cyBjb25maWd1cmFibGUgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBQYXRjaCBbIDgwOTQzOCBdIEZpeCBzZXZlcmFsIHByb2JsZW1zIHdpdGggaG9zdCByZXNvdXJjZXMgTUlCIGZyb20gQm9iIFJvd2xhbmRzIChmaXhlcyBtdWx0aXBsZSBidWdzKQoKMjAwNC0wMi0xMiAxNTowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG5vdGUgYWJvdXQgc25tcHRyYXBkIHBlcmwKCjIwMDQtMDItMTIgMTQ6NDEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkIGEgc2VjdGlvbiAiQnVpbGRpbmcgd2l0aCBNaW5HVyIKCjIwMDQtMDItMTIgMTE6MzUgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9ubWFrZXBlcmwuYmF0OgoKICAgQWRkIGhvdyB0byAod2l0aCBzY3JpcHQpIGZvciBidWlsZGluZyBQZXJsIFNOTVAgbW9kdWxlcyB1c2luZyBNU1ZDLgoKMjAwNC0wMi0xMiAwODozNiAgc2xpZgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgY3JlYXRlIHNubXBsaWJzZGlyIGZvciBzbm1wX3BlcmxfdHJhcGQucGwsIGJlZm9yZSBpbnN0YWxsaW5nIHRoZXJlLgoKMjAwNC0wMi0xMiAwODozMSAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcAosIGxpYnNubXAvbGlic25tcC5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcAosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGQvc25tcGQuZHNwCiwgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIHJlbW92ZSB1bnVzZWQgY29tcGlsZSBjb25zdGFudCB0aGF0IFNsaWYgY3JlYXRlZCBkdXJpbmcgaGlzIERMTCBleHBlcmltZW50cy4KCjIwMDQtMDItMTIgMDY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBuZXcgdGFibGUgY29udGFpbmVyIGhlbHBlcgoKMjAwNC0wMi0xMiAwNTozMiAgc2xpZgoKICAgKiBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHBlcmwvYWdlbnQvYWdlbnQueHMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGNsZWFudXAgUGVybCBTTk1QIG1vZHVsZSBidWlsZCB0aHJvdWdoIHR5cGUgY2FzdGluZyBhbmQKICAgcmVtb3ZpbmcgdW51c2VkIHZhcmlhYmxlcy4KICAgRm9yIFNOTVAueHMsIHRoZXJlIHdhcyBhIG5hbWVkIHZhcmlhYmxlICdiZXN0X2d1ZXNzJyB0aGF0IGJsb2NrZWQKICAgdGhlIGNhbGxpbmcgcGFyYW0gb2YgInNubXBfZ2V0X3R5cGUiLCByZW1vdmVkIHdpdGggdGhpcyB1cGRhdGUuCiAgIFRoZSB3aW4zMiBjb25maWcuaCBubyBsb25nZXIgdHJpZXMgdG8gZGVmaW5lIGJjb3B5LGJ6ZXJvLGJjbXAsc3RyY2FzZWNtcC4KCjIwMDQtMDItMTIgMDE6MjIgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIHVzZSBhIHJlYXNvbmFibGUgdmFsdWUgKDEpIGZvciBub24tcmVwZWF0ZXIgaW4gZmlyc3QgYnVsa3dhbGsuCgoyMDA0LTAyLTEyIDAwOjMyICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaCBiZWZvcmUgdXNpbmcgSEFWRV9SRUdFWF9ILgogICByZXBsYWNlIGNvbXB1dGVfbWF0Y2ggd2l0aCB0aGUgbm9uLXJlZ2V4IHNhdnZ5IHZlcnNpb24gZnJvbSBzbm1wbGliL3BhcnNlLmMuCiAgIEZpbmFsbHksIGRpc2FibGUgV2luMzIgRExMIGRlY29yYXRpb24sIGFzIERMTCBidWlsZCBpcyBub3Qgc3VwcG9ydGVkLgoKMjAwNC0wMi0xMSAyMDo1NCAgc2xpZgoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBzbm1wdHJhcGQgYnVpbGRzIHVzaW5nIHRoZSBzYW1lIHByb2plY3QgZmlsZSBmb3IgUFNESyBvciBub24tUFNESwoKMjAwNC0wMi0xMSAxODoyNiAgc2xpZgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBmaXggYnVnIFsgODk1MzY3IF0gV2luMzIgUGVybCBidWlsZCAtTkVULVNOTVAtUEFUSCBhbmQgcGF0aHMgd2l0aCBzcGFjZXMKCjIwMDQtMDItMTEgMTc6NDIgIHNsaWYKCiAgICogd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIG5ldHNubXBtaWJzc2RrLmxpYiByZW5hbWVkIHRvIG5ldHNubXBtaWJzLmxpYgoKMjAwNC0wMi0xMSAxNzoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBEbyBub3QgaGF2ZSBnZXR0YWJsZSByZXR1cm4gaGV4IGVuY29kZWQgc3RyaW5ncyBpZiBub3QgcHJpbnRhYmxlLiAgTm8KICAgb3RoZXIgZnVuY3Rpb24gZG9lcyB0aGlzLCBzbyB3aHkgd291bGQgZ2V0dGFibGUgYmUgYW55IGRpZmZlcmVudC4KCjIwMDQtMDItMTEgMTc6MTEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTVNWQyBidWlsZCByZXF1aXJlcyB1c2luZyBidXQgb25lIHdvcmtzcGFjZS4KCjIwMDQtMDItMTEgMTE6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyLzogLmN2c2lnbm9yZSwgQ2hhbmdlcywgTUFOSUZFU1QKLCBNYWtlZmlsZS5QTCwgUkVBRE1FLCBUcmFwUmVjZWl2ZXIucG0sCiAgICAgVHJhcFJlY2VpdmVyLnhzLCBjb25zdC1jLmluYywgY29uc3QteHMuaW5jLAogICAgIHBlcmxfc25tcHRyYXBkLmgsIHBwcG9ydC5oLCB0eXBlbWFwLAogICAgIGZhbGxiYWNrL2NvbnN0LWMuaW5jLCBmYWxsYmFjay9jb25zdC14cy5pbmMsIHQvMS50CjoKCiAgIEluaXRpYWwgcGFzcyBhdCBhbiBlbWJlZGRlZCBwZXJsIG1vZHVsZSBmb3Igc25tcHRyYXBkLgogICAgIFdoYXRzIG9kZCBmb3IgdHlwaWNhbCBpbml0aWFsIGNvZGUgZnJvbSBtZSBpcyB0aGF0IGl0J3MgZnVsbHkKICAgICBmdW5jdGlvbmFsIGFuZCBkb2N1bWVudGVkIGV2ZW4hCgoyMDA0LTAyLTExIDEwOjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsL01ha2VmaWxlLlBMOgoKICAgQWRkIHRoZSBUcmFwUmVjZWl2ZXIgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIGRlZmF1bHRzLgoKMjAwNC0wMi0xMSAxMDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BlcmxfdHJhcGQucGw6CgogICBBIHBlcmwgYm9vdHN0cmFwcGluZyBzdGFydHVwIGZpbGUuCgoyMDA0LTAyLTExIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgcGVybCBzdGFydHVwIGZpbGUuCgoyMDA0LTAyLTExIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW5pdGlhbGl6ZSBwZXJsCgoyMDA0LTAyLTExIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgY3JlYXRlIGEgaGFuZGxlcl9kYXRhIGZpZWxkLgoKMjAwNC0wMi0xMSAwNzoyOCAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFNob3cgQUVTIG9ubHkgdG8gcmVmbGVjdCBwcmV2aW91cyBjaGFuZ2VzIC0tIFVzZSBBRVMgaW5zdGVhZCBvZiBBRVMxMjgsMTkyLDI1NgoKMjAwNC0wMi0xMSAwNjowOCAgc2xpZgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgYW5ub3VuY2UgY29ycmVjdCBudW1iZXIgb2YgdGVzdHMgKHdhcyAzNiwgbm93IDM4KQoKMjAwNC0wMi0xMSAwNjowNiAgc2xpZgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byByZWZsZWN0IGNoYW5nZSBpbiB2YWx1ZSBvZiBORVRTTk1QX0RTX01BWF9TVUJJRFMKCjIwMDQtMDItMTAgMTc6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggYWx3YXlzIGZhbHNlIHRlc3QKCjIwMDQtMDItMTAgMTY6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBuZXcgbmV0c25tcF90YWJsZV9uZXh0X2NvbHVtbgoKMjAwNC0wMi0xMCAxNDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIHJlbW92ZSBjb2RlIGJlZm9yZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKCjIwMDQtMDItMTAgMTM6MjMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdG91Y2ggdXAgaW5zdHJ1Y3Rpb25zIGZvciBNU1ZDIGJ1aWxkcyB0aGF0IHVzZSBPcGVuU1NMCgoyMDA0LTAyLTEwIDA5OjA5ICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBtZXJnZSB1cGRhdGUgZnJvbSBCcnVjZSBmcm9tIDUtMS1wYXRjaGVzCgoyMDA0LTAyLTEwIDA4OjMzICBzbGlmCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgYXBwbHkgc25tcGNvbmYzIG9mIHBhdGNoIDgzNzk2NzsgYWRkIGNsb3NlIHRvIHJlYWRfY29uZmlnCgoyMDA0LTAyLTEwIDAzOjUwICBzbGlmCgogICAqIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBmaXggYnVnIDg5MjYxNgoKMjAwNC0wMi0wOSAxNTowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRW5hYmxlIHN0ZGVycmxvZyBpZiBubyBvdGhlciBsb2dnaW5nIGlzIGVuYWJsZWQgLSB0byBhdm9pZCB3YXJuaW5nCgoyMDA0LTAyLTA5IDE0OjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZXhwb3J0IENQUD1jcHAgb24gRGFyd2luIHNvIEFwcGxlJ3MgZ2NjIGRvZXNuJ3QgYnJlYWsgY29uZmlnX3JlcXVpcmUKCjIwMDQtMDItMDkgMDg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICBmaXggY29sdW1uIG5hbWVzCgoyMDA0LTAyLTA5IDA4OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlX2NvbHVtbnMuaCwKICAgICBpZlhUYWJsZV9jb2x1bW5zLmg6CgogICBhZGQgbWlzc2luZyBmaWxlcwoKMjAwNC0wMi0wOSAwODoyNCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaAo6CgogICBJbXBsZW1lbnQgYSBuZXcgaGVscGVyIHRvIGNvcGUgd2l0aCBza2lwcGluZyAiaG9sZXMiIGluIGEgdGFibGUKICAgKGFuZCB0d2VhayB0aGUgJ3RhYmxlX2RhdGEnIGhlbHBlciB0byBtYWtlIHVzZSBvZiBpdCkuCiAgIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIHRoZSBfcmVxdWVzdF9zZXRfZXJyb3IoKSByb3V0aW5lIHRvIGJlCiAgIGEgYml0IGZsZXhpYmxlIGluIGFjY2VwdGluZyBleGNlcHRpb25zIHRoYXQgYXJlbid0IHN0cmljdGx5IHZhbGlkLgoKMjAwNC0wMi0wOSAwNzo1NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBFbnN1cmUgb25lIG9iamVjdCdzICd3cml0ZV9tZXRob2QnIGlzbid0IHBpY2tlZCB1cCBieSBhbnl0aGluZyBlbHNlLgoKMjAwNC0wMi0wOSAwNzozNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBHdWFyZCBhZ2FpbnN0IHBhc3NpbmcgTlVMTCBwYXJhbWV0ZXJzIHRvIHN0cmNtcC9zdHJsZW4uCiAgIFByb2JhYmx5IHNob3VsZG4ndCBldmVyIGhhcHBlbiwgYnV0IERhdmUncyBpbiBhIHN1c3BpY2lvdXMgbW9vZC4KICAgUW46IFNob3VsZCB0aGVzZSBjaGFuZ2VzIGJlIGFwcGxpZWQgdG8gdGhlIDUuMS54ICg/JiA1LjAueCkgbGluZT8KCjIwMDQtMDItMDkgMDQ6MDUgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGJ1aWxkIGFnZW50IG9uIG1pbmd3LCB3aXRob3V0IHdpbjMyIFNDTSBnbHVlLgoKMjAwNC0wMi0wOSAwMzoyNiAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgYWRkIGRlcGVuZGVuY3kgZm9yIGxpYnNubXAgdG8gYnVpbGQgc25tcGQuCgoyMDA0LTAyLTA4IDE5OjUwICBzbGlmCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgY2xlYW5lZCB1cCwgcmVhZHkgZm9yIG1haW5zdHJlYW0uICBIb3dldmVyLCBub3QgZ2NjLWZyaWVuZGx5LCBqdXN0IHlldC4KCjIwMDQtMDItMDggMTg6NTUgIHNsaWYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZWdlbiBjb25maWd1cmUgZnJvbSBjb3JyZWN0IGNvbmZpZ3VyZS5pbgoKMjAwNC0wMi0wOCAxODoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oOgoKICAgbmV3IGRlZmluZSBVVE1QX0hBU19OT19QSUQKCjIwMDQtMDItMDggMTg6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgdXNlIG5ldyBkZWZpbmUgVVRNUF9IQVNfTk9fUElEOyBzaW1wbGlmeSBsb29wIGxvZ2ljCgoyMDA0LTAyLTA4IDE3OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGRvbid0IHB1dCBvcGVuIGJyYWNlIGluIGlmZGVmIGlmIGNsb3NlIGJyYWNlIGhhcyBubyBpZmRlZgoKMjAwNC0wMi0wOCAxNjoyMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4dHJhIHRyYW5zcG9ydHMgc2hvdWxkIGJlIGVtcHR5OyBDYWxsYmFjayBzaG91bGQgYmUgaW4gZGlzdCB0cmFuc3BvcnRzCgoyMDA0LTAyLTA4IDE1OjUwICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEluY2x1ZGUgc2FtcGxlIGRpc3BsYXkgZnJvbSBydW5uaW5nIGluc3RhbGwtbmV0LXNubXAuYmF0CgoyMDA0LTAyLTA4IDEwOjE2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi93aW5waXBlLmM6CgogICBXaXRoIGlucHV0IGZyb20gQWxleCBTbWl0aCwgYXBwbHkgY2hhbmdlcyB0byBpbXByb3ZlIG1pbmd3IGJ1aWxkcy4KCjIwMDQtMDItMDggMTA6MTIgIHNsaWYKCiAgICogd2luMzIvOiBpbnN0YWxsLW5ldC1zbm1wLmJhdCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgTW92ZSB0aGUgZGlyZWN0b3J5IGZyb20gL3VzciB0byBDOlxQcm9ncmFtIEZpbGVzXE5ldC1TTk1QLgoKMjAwNC0wMi0wOCAxMDoxMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgTVNWQyBidWlsZCBpbnN0cnVjdGlvbnMgYXJlIHNpbXBsZXIsIHRoYW5rcyB0byBBbGV4IEJ1cmdlcidzIHByb2plY3Qvd29ya3NwYWNlIGNoYW5nZXMuCiAgIEFsc28sIGludHJvZHVjZWQgYSBiYXRjaCBjb21tYW5kIGZpbGUgdG8gc2ltcGxpZnkgaW5zdGFsbGF0aW9uIGFmdGVyIGJ1aWxkaW5nLgoKMjAwNC0wMi0wOCAwOTozNCAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgQXBwbHkgY2hhbmdlcyBvZmZlcmVkIGJ5IEFsZXggQnVyZ2VyIHRvIGNsZWFuIHVwIHByb2plY3RzIGFuZCB3b3Jrc3BhY2VzCiAgIGFuZCB0byBidWlsZCBzbm1wdHJhcGQgdXNpbmcgdGhlIFBsYXRmb3JtLVNESyB3b3Jrc3BhY2UgKHdpbjMyc2RrKS4KCjIwMDQtMDItMDYgMTU6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGNvbmZpZyB3L2xpYndyYXAgaWYgd2UgY2FuIGZpbmQgdGhlIGhlYWRlcgoKMjAwNC0wMi0wNiAxMToyMSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIFllYXIgdXBkYXRlIGZvciBTcGFydGEKCjIwMDQtMDItMDYgMTA6MTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIHBhdGNoIDg0MzkyNCBydW5fc2hlbGxfY29tbWFuZCB0byBxdW90ZSByZWRpcmVjdGVkIHBhcmFtZXRlcnMuCgoyMDA0LTAyLTA2IDA4OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIFJlLWluc3RhdGUgdGhlICdoeicgdmFyaWFibGUgZm9yIEZyZWVCU0QgKGJ1dCAqb25seSogRnJlZUJTRCkKCjIwMDQtMDItMDYgMDU6NTggIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBhZ2VudF9hZGRyZXNzL3NubXBUcmFwQWRkcmVzcyBpbmZvcm1hdGlvbgogICAoQnVncyAjODY1MTc4ICYgIzg3NzU4NyBhbmQgUGF0Y2ggIzg4MzAyOCkKCjIwMDQtMDItMDUgMDg6MDQgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgcmV2aXNlZCBwZXIgcGVlciByZXZpZXcuCgoyMDA0LTAyLTA1IDA1OjQ1ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEN1cnJlbnQgc3RhdHVzIGFwcGVhcnMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGludHJvZHVjdGlvbgogICBSZW1vdmVkIHJlZmVyZW5jZXMgdG8gYnVpbGRpbmcvdXNpbmcvaW5zdGFsbGluZyBuZXRzbm1wLkRMTAogICBBZGRlZCByZWdpc3RlcmluZyBhcyB3aW5kb3dzIHNlcnZpY2UKICAgTm90ZWQgbmV3IGRlcGVuZGVuY3kgb2Ygc25tcHRyYXBkIG9uIG5ldHNubXBtaWJzCiAgIE5vdGVkIHNubXB0cmFwZCBidWlsZHMgb25seSB1c2luZyB3aW4zMi5kc3cgd29ya3NwYWNlCiAgIEFkZGVkIEhvdyB0byBjaGFuZ2UgZXh0ZXJuYWwgcHJvamVjdCBzZXR0aW5ncyB0byBtYXRjaAogICBDbGFyaWZpZWQgd2hhdCBvdGhlciBwcm9qZWN0IHNldHRpbmdzIHNob3VsZCBiZSB1bm1vZGlmaWVkLgoKMjAwNC0wMi0wNSAwNToyNyAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgdW5yZWdpc3RlciBETEwgbGlicmFyeSBwcm9qZWN0IGZyb20gd29ya3NwYWNlcy4KCjIwMDQtMDItMDUgMDU6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGx5IHBhdGNoIDg0MzkxOSAtIG5ldyB0ZW1wRmlsZVBhdHRlcm4gc25tcC5jb25mIG9wdGlvbgoKMjAwNC0wMi0wNSAwNDo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaDoKCiAgIEFkZCB0aGUgTkVULVNOTVAtRVhBTVBMRVMtTUlCIHRvIHRoZSBsb2FkIGxpc3QKICAgKFBhdGNoICM4OTA4MzkgZnJvbSBZaXhpb25nIFpvdSkKCjIwMDQtMDItMDUgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIENvcnJlY3QgdGhlIHVzZSBvZiBhIHdyb25nIGRlYnVnIHRva2VuIChQYXRjaCAjODg5Nzc3IGJ5IERpcmsgQmFsY2VyY3phaykKCjIwMDQtMDItMDUgMDQ6MzggIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQXBwbHkgcGF0Y2ggODUwNzg1IC0gaW5zdHJ1Y3Rpb25zIHRvIGNvcHkgaGVhZGVyIGZpbGVzIGZvbGxvd2luZyBidWlsZC4KCjIwMDQtMDItMDUgMDM6NDEgIHNsaWYKCiAgICogd2luMzIvOiBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBEb24ndCBidWlsZCB0aGUgUm1vbiBtb2R1bGVzLgoKMjAwNC0wMi0wNSAwMTo0OSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW46CgogICBBcHBseSBwYXRjaCA4NDM2NzkKCjIwMDQtMDItMDQgMjA6MTEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIGV4cG9zZSBvbmUgbGVzcyBzdGF0aWMgZGF0YSB2YXJpYWJsZSAobG9naF9oZWFkKTsgbGlzdCB0d28gb3RoZXJzIGZvciBETEwuCgoyMDA0LTAyLTA0IDIwOjA3ICBzbGlmCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwCiwgbGlic25tcC9saWJzbm1wLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwCiwgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AKLCBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgY2xlYW4gdXAgQkFTRSBDUFAgc2V0dGluZ3MuCgoyMDA0LTAyLTA0IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIERvbid0IG9wZXJhdGUgb24gYSBudWxsIHBvaW50ZXIgZm9yIGluZGV4ZXMgdGhhdCBkb24ndCBleGlzdC4KCjIwMDQtMDItMDQgMTQ6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBNZW50aW9uIHRoYXQgUm9iZXJ0IGhhcyB0aGUgYWJpbGl0eSB0byBzaWduIHBhY2thZ2VzIG5vdy4KCjIwMDQtMDItMDQgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB1c20uYwosIHNubXBsaWIvc25tcHYzLmM6CgogICBVc2UgQUVTIGluc3RlYWQgb2YgQUVTMTI4LDE5MiwyNTYKCjIwMDQtMDItMDQgMTQ6MTMgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGNyZWF0ZSB0aGUgcGVyc2lzdGVudCBkaXJlY3RvcnkgaWYgaXQgaGFzbid0IGJlZW4gY3JlYXRlZCB5ZXQuCgoyMDA0LTAyLTA0IDEzOjAxICBzbGlmCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGNhc3QgdG8gcXVpZXQgbXN2YyBjb21waWxlci4KCjIwMDQtMDItMDQgMDU6MzEgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYwo6CgogICB1c2UgTmllbHMnIGNob2ljZXMgZm9yIG5hbWVzIHN1YnN0aXR1dGluZyBfX0ZVTkNUSU9OX18KCjIwMDQtMDItMDQgMDU6MjkgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYXZvaWQgdm9pZCBjYXN0aW5nIGluIGZyZWUgdG8ga2VlcCBnY2MgaGFwcHkuCgoyMDA0LTAyLTAzIDE3OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtZXJnZSBwYXRjaCBmcm9tIDUuMC1wYXRjaGVzCgoyMDA0LTAyLTAzIDE2OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBzdHJkdXAgdmFsdWUgZnJvbSBuZXRzbm1wX2RzX2dldF9zdHJpbmcsIHNpbmNlIGl0IGlzIGZyZWUnZCBsYXRlcgoKMjAwNC0wMi0wMyAxNDozMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzIHVzaW5nIGFwcHJvcHJpYXRlIHR5cGUgY2FzdGluZy4KCjIwMDQtMDItMDMgMTQ6MjkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IHR5cGVzLmgsIHN5c3RlbS9taW5ndzMyLmg6CgogICBtb3ZlIGlmbmRlZiBIQVZFX1NTSVpFX1QgZnJvbSBNaW5HVyBzcGVjaWZpYyBoZWFkZXIgdG8gdHlwZXMgaGVhZGVyLAogICB0byBiZW5lZml0IG90aGVyIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCBkZWZpbmUgc3NpemVfdCAoZS5nLiwgbXN2YykuCgoyMDA0LTAyLTAzIDE0OjI1ICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgZXhwb3J0IHN5bWJvbHMgZm9yIGZ1bmN0aW9ucyB3aGVuIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBpcyBkZWZpbmVkLgoKMjAwNC0wMi0wMyAxNDoyNCAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBkb250IGluaXRpYWxpemUgdWNkLXNubXAgaW5pdF9kaXNrIGZvciBtc3ZjIGJ1aWxkcy4KCjIwMDQtMDItMDMgMTQ6MjEgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIGVuYWJsZSBBZ2VudFgsIFJtb24sIGRpc21hbi1ldmVudC1taWIsIGFuZCB1Y2Qtc25tcCBtb2R1bGUgZ3JvdXBzLgoKMjAwNC0wMi0wMyAxNDoxOSAgc2xpZgoKICAgKiB3aW4zMi86IG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBkb24ndCBidWlsZCB0aGUgdWNkLXNubXAgZGlzayBtb2R1bGUgKG5vdCBpbXBsZW1lbnRlZCBmb3IgbSQgYnVpbGRzKQoKMjAwNC0wMi0wMyAwOToxNiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCBzbm1wbGliL3dpbnBpcGUuYwo6CgogICBGaW5pc2ggYXBwbHlpbmcgcGF0Y2ggODUyNjgyIGZvciBjYWxsYmFjayB0cmFuc3BvcnQgc3VwcG9ydCB1bmRlciBXaW4zMgoKMjAwNC0wMi0wMyAwODowMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQXBwbGllZCBwYXRjaCA4NTI2ODIgZm9yIGNhbGxiYWNrIHRyYW5zcG9ydCBvbiBXaW4zMjsgdG91Y2hlZCB1cCBNU1ZDIHByb2plY3QgZmlsZXMsIHRvby4KCjIwMDQtMDItMDMgMDc6MTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIG1vdmUgI2lmIEhBVkVfRVhFQ1YgdG8gaGVhZCBvZiBydW5fZXhlY19jb21tYW5kICBmb3IgcXVpZXRlciBNU1ZDIGJ1aWxkcy4KCjIwMDQtMDItMDMgMDM6MjUgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIFJlbW92ZSBwb3NpdGlvbmFsIGNvbW11bml0eSBmcm9tIHVzYWdlCgoyMDA0LTAyLTAzIDAyOjA5ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBidWcgcmV0dXJuaW5nIG9ubHkgZm91ciBjaGFyYWN0ZXJzIGZvciB1cHRpbWUgc3RyaW5nCgoyMDA0LTAyLTAzIDAyOjA3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIGZvciByZS1pc3N1ZWQgQVRNIGFuZCBFdGhlckxpa2UgUkZDcwoKMjAwNC0wMi0wMyAwMjowNiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRml4IHJlZmVyZW5jZSB0byAtTGUgdG8gLUxFCgoyMDA0LTAyLTAzIDAyOjA1ICBuYmEKCiAgICogbG9jYWwvdHJhcHRvZW1haWw6CgogICBGaXggc3R1cGlkIGJ1ZyBmZXRjaGluZyB0aGUgdHJhcCBvaWQKCjIwMDQtMDItMDMgMDI6MDQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEEgYml0IG9mIGNsZWFudXAgYW5kIHByb3Blcmx5IGRlZmF1bHQgY29tbXVuaXR5IGZyb20gY29uZiBmaWxlCgoyMDA0LTAyLTAzIDAyOjAxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmMsIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBBbGxvdyAlViB0byB0YWtlIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyCgoyMDA0LTAyLTAzIDAxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIEFwcGx5IChtb2RpZmllZCkgcGF0Y2ggODYwNDQzIHdoaWNoIGFsc28gZml4ZXMgYnVnIDg0ODI4NCBieSBwcm9wZXJseQogICB0ZXJtaW5hdGluZyB0aGUgaW5wdXQgYnVmZmVyLgoKMjAwNC0wMi0wMyAwMTo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBkaXNrLmg6CgogICBUcnkgdG8gdW50YW5nbGUgYW4gI2lmZGVmIG1lc3MgdGhhdCBoaW5kZXJzIGNvbXBpbGF0aW9uIG9uIE9TL1gKCjIwMDQtMDItMDMgMDE6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFJlbW92ZSBhIGJ1bmNoIG9mIHN1cGVyZmx1b3VzIG5ld2xpbmVzIGluIG1lc3NhZ2VzCgoyMDA0LTAyLTAzIDAxOjUzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYywgYXQuYzoKCiAgIEZpeCByZXR1cm4gb2YgSVB2NCBhZGRyZXNzIG9uIDY0LWJpdCBTb2xhcmlzCgoyMDA0LTAyLTAyIDIzOjQwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgaWZkZWYgYSBsaW51eCBzcGVjaWZpYyB2YXJpYWJsZQoKMjAwNC0wMi0wMiAyMzozOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGx5IHBhdGNoIDg0MTcwNSB0byBmaXggYnVnIDgxNzM4NgoKMjAwNC0wMi0wMiAyMzozNyAgbmJhCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQXBwbHkgcGF0Y2ggODM2NTY4IHRvIGZpeCBidWcgODI5MTE5CgoyMDA0LTAyLTAyIDIzOjM2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBBcHBseSBwYXRjaCA4NDU3OTggdG8gZml4IGJ1ZyA4MzEyOTkKCjIwMDQtMDItMDIgMjM6MzIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUHJvcGVybHkgcmVzZXQgd2lsZGNhcmRtYXRjaGVyIGJldHdlZW4gY2FsbHMKCjIwMDQtMDItMDIgMjM6MjMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQXBwbGllZCBwYXRjaCBmcm9tIGJ1ZyA4NDkxNTMKCjIwMDQtMDItMDIgMjM6MjEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBHaXZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBtb2R1bGUgbm90IGF2YWlsYWJsZQoKMjAwNC0wMi0wMiAyMzoxOCAgbmJhCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG8gbm90IGNhc3QgdW5zaWduZWQgdG8gc2lnbmVkCgoyMDA0LTAyLTAyIDIzOjE3ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIFVzZSBzeXN0ZW0gZ2V0b3B0Lmggd2hlbiBhdmFpbGFibGUKCjIwMDQtMDItMDIgMjM6MTYgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVycnVuIGZvciBleHRyYW1lIGRpc2sgbmFtZXMKCjIwMDQtMDItMDIgMjM6MTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQXBwbHkgcGF0Y2ggODUwNzE2IHRvIGZpeCBidWcgODUwMTg1CgoyMDA0LTAyLTAyIDE2OjEwICBuYmEKCiAgICogYXBwcy86IHNubXB0ZXN0LmMsIHNubXB0cmFwZF9sb2cuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE2OjA1ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTU6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTU6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlCgoyMDA0LTAyLTAyIDE1OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDb3JyZWN0bHkgbG9vcCBhcm91bmQgbWlzc2luZyBlbnRyaWVzCgoyMDA0LTAyLTAyIDE1OjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBCZXR0ZXIgZmlsZSBzeXN0ZW0gdHlwZXMKCjIwMDQtMDItMDIgMTU6NTIgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggc2V0dGluZyBvZiBjb21tdW5pdHkgbGVuCgoyMDA0LTAyLTAyIDE1OjQwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE1OjM2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFByb3BlciBPSUQgZm9yIFRDUDQKCjIwMDQtMDItMDIgMTU6MzUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRkl4IG5ld2xpbmUgaGFuZGxpbmcgaW4gZmlsZSBsb2dnZXIKCjIwMDQtMDItMDIgMTU6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBGaXggc29tZSB3YXJuaW5ncywgYW5kIG1ha2Ugc29tZSBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKCjIwMDQtMDItMDIgMTU6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBGaXggYSBmaWxlIGRlc2NyaXB0b3IgbGVhawoKMjAwNC0wMi0wMiAxNTozMiAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxMToyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgcmVxdWlyZSBhbGwgYXJndW1lbnQgYmVmb3JlIG1pYk5vZGU7IGJhaWwgb24gdW5rbm93biBvcHRpb247IHdhcm4gaWYgbXVsdGlwbGUKICAgbWliTm9kZXMgc3BlY2lmaWVkOyBuZXcgJ2JhbGFuY2VkJyBmbGFnIGZvciBwcm9jZXNzOyBkZWZpbmUvdXNlIG5ldyBtMmNfZGllCiAgIHRoYXQgc3BpdHMgb3V0IGN1cnJlbnQgbGluZSBpbiBjb25mIGZpbGU7IHJlcGxhY2UgJ2JyZWFrJyB3aXRoICduZXh0JzsgYmFpbAogICBvbiBlbHNlaWY7IGJhaWwgb24gdW5iYWxhbmNlZCBjb25mIGZpbGUgKG1hbnkgdHdlYWtzIHRvIG1ha2UgdGhhdCB3b3JrKTsKICAgcmVtb3ZlIHVudXNlZCBza2lwaWY7IGZpeCBjdXJyZW50bGluZSB1cGRhdGVzIGluIGZvcmVhY2ggbG9vcHM7IGV4aXQgdy9lcnJvcgogICBpZiBjb25mIGZpbGUgbm90IGZvdW5kCgoyMDA0LTAyLTAyIDExOjA2ICByc3RvcnkKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgYWRkIGV4cGxpY2l0IGVuZHMgZm9yIGVhY2ggZm9yZWFjaAoKMjAwNC0wMi0wMiAxMDo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBmaXggdXAgbTJjX25vZGVfcGFyYW1fKiBkZWZhdWx0czsgcmVuYW1lIG5vZGUgZGVmYXVsdCBmaWxlOyBzZXQgZGVmYXVsdHMgZm9yIG0yY19jdHhfW2xofHJoXTsKICAgc2V0IHVwIG5vZGUgbWFwIGZ1bmMgZGVmYXVsdHMKCjIwMDQtMDItMDIgMTA6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHVzZSBuZXcgaW5kZXhlc19zZXQgZnVuY3Rpb24gaW4gZXhhbXBsZTsgbW92ZSBzb21lIGNvZGUgb3V0c2lkZSBvZiBleGFtcGxlCiAgIGNvbmRpdGlvbjsgdXNlIHZhbHVlIG1hcCB0byBjb3B5IGRhdGEKCjIwMDQtMDItMDIgMTA6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIG5ldyBpbmRleGVzX3NldCBmdW5jdGlvbgoKMjAwNC0wMi0wMiAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgdXNlIG1pYjJjIG5leHQgaW5zdGVhZCBvZiBicmVhawoKMjAwNC0wMi0wMiAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBhZGQgbWlzc2luZyB2YXIgZGVjbAoKMjAwNC0wMi0wMiAwODoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICB1c2UgbmV3IGZ1bmN0aW9uIHRvIG1hcCBiZXR3ZWVuIG1pYi9uYXRpdmUgZGF0YQoKMjAwNC0wMi0wMiAwODowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIG5ldyBmdW5jdGlvbiB0byBtYXAgYmV0d2VlbiBtaWIvbmF0aXZlIGRhdGEKCjIwMDQtMDItMDIgMDc6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICBuZXcgZnVuY3Rpb24gdG8gc2V0IGluZGV4ZXMgZnJvbSBDIHR5cGVzCgoyMDA0LTAyLTAyIDA3OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBnZW5lcmljLWN0eC1jb3B5Lm0yaSwgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLAogICAgIGdlbmVyaWMtZ2V0LWRlY2wubTJpLCBtZmQtZGF0YS1nZXQubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBub2RlLWdldC5tMmksIG5vZGUtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBtb3JlIGNvbnNpc3RlbnQgdXNlIG9mIG0yY19jdHhfW2xofHJofGxoc3xyaHNdIGFuZCBtMmNfbm9kZV9wYXJhbSogdmFyczsgbmV3CiAgIG0yY19jb2RlX3ZlcmJvc2UgZmxhZyBmb3IgdmVyYm9zZSBjb21tZW50cyBpbiBjb2RlOyBuZXcgdmFsdWUgbWFwcGluZyBmdW5jIGZvcgogICBlYWNoIG5vZGUgaW5zdGVhZCBvZiBkdXBsaWNhdGVkIGNvZGUgaW4gbXVsaXRwbGUgZnVuY3M7IHVzZSBtaWIyYyBuZXh0IGluc3RlYWQKICAgb2YgYnJlYWs7CgoyMDA0LTAyLTAyIDA0OjE1ICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwKICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKOgoKICAgUmVzdG9yZSB3aW5zb2NrIDEuMSBsaWJyYXJ5IHVzYWdlLgoKMjAwNC0wMS0zMCAxMTozNyAgc2xpZgoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIG1vdmUgbmV0c25tcC5saWIgdG8gdGhlIGZyb250IG9mIHRoZSAiQWRkaXRpb25hbCBMaWJyYXJpZXMiIGxpc3RzLgoKMjAwNC0wMS0zMCAxMTozMSAgc2xpZgoKICAgKiB3aW4zMi86IHNubXBkL3NubXBkLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgbW92ZSBuZXRzbm1wLmxpYiB0byB0aGUgZnJvbnQgb2YgdGhlIEFkZGl0aW9uYWwgTGlicmFyaWVzIGxpc3QuCgoyMDA0LTAxLTMwIDEwOjI5ICBzbGlmCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBlbmFibGUgc2VsZWN0aW9uIHRoYXQgd2lsbCBnZW5lcmF0ZSBzb3VyY2UgYnJvd3NpbmcgaW5mb3JtYXRpb24uCgoyMDA0LTAxLTMwIDEwOjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIG1vdmUgZXh0ZXJuIGxvZ2hfaGVhZCBpbnRvIHRoZSBsb2dnaW5nIG1vZHVsZSdzIGhlYWRlciBmaWxlLgoKMjAwNC0wMS0zMCAwNzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmVtb3ZlIGFuIHVud2FudGVkICdlbHNlJyBjbGF1c2UgdGhhdCBjbGFzaGVzIHdpdGggdGhlICJjb21tb24iICdlbHNlJwogICBjbGF1c2UgbGF0ZXIgaW4gdGhpcyB0YW5nbGUgb2YgdW5yZWFkYWJsZSBjb2RlLiAgKEJ1ZyAjODU3MjU3KQoKMjAwNC0wMS0zMCAwNzowMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHJlc3RvcmUgdGhlIERBVEEgaGludHMgdGhhdCB3ZXJlIGFjY2lkZW50YWxseSByZW1vdmVkLgoKMjAwNC0wMS0zMCAwNjo0NSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdoaXRlc3BhY2UgKEMvUiAmIEwvRikgc2hvdWxkbid0IHRyaWdnZXIgaGV4IHN0cmluZyBiZWhhdmlvdXIgKEJ1ZyAjODY0MzY3KQoKMjAwNC0wMS0zMCAwNjozMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBEZWZpbmUgYSAiZHVtbXkiIGxvZyBoYW5kbGVyIHRoYXQgc2ltcGx5IGRpc2NhcmRzIGFsbCBtZXNzYWdlcy4KICAgTm90IHJlYWxseSBhIHNlbnNpYmxlIHRoaW5nIHRvIGRvLCBidXQgY291bGQgYmUgdXNlZCB0byBwcmV2ZW50CiAgIHR1cm5pbmcgb24gdGhlICJsYXN0IGRpdGNoIiBsb2dnaW5nIHRvIHN0ZGVyciAoc2VlIEJ1ZyAjODY3NTc0KQoKMjAwNC0wMS0zMCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIElzc3VlIGEgd2FybmluZyB3aGVuIHR1cm5pbmcgb24gImxhc3QgZGl0Y2giIGxvZ2dpbmcgKEJ1ZyAjODY3NTc0KQoKMjAwNC0wMS0zMCAwMzoyMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIGNvbXBsZXRlbHkgZW1wdHkgR2V0QnVsayByZXF1ZXN0cyBwcm9wZXJseSAoQnVnICM4Nzc0MTkpCgoyMDA0LTAxLTMwIDAyOjUwICBzbGlmCgogICAqIHdpbjMyLzogLmN2c2lnbm9yZSwgd2luMzIub3B0OgoKICAgZml4IGJ1ZyAjODg3MTQwCgoyMDA0LTAxLTMwIDAxOjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBVc2UgJ3NucHJpbnRfaGV4c3RyaW5nJyBpbiB0aGUgZW5naW5lIHRlc3RpbmcgY29kZSwgcmF0aGVyCiAgIHRoYW4gdGhlIChub24tZXhpc3RlbnQpICdzcHJpbnRfaGV4c3RyaW5nJyAgKEJ1ZyAjODg2MTEwKQoKMjAwNC0wMS0yOSAxMzowMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBmaXggY291bnRzIGZvciBjZXJ0YWluIHVzZXMgb2Ygc3RybmNhc2VjbXAgKGkgbXVzdCBiZSBib3JlZCEpLgoKMjAwNC0wMS0yOSAxMjozMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZm9yIHdpbmRvd3Mgc2VydmljZSwgbWF0Y2ggZGlzcGxheSBuYW1lIHRvIHNlcnZpY2UgbmFtZS4KICAgZm9yIHdpbmRvd3Mgc2VydmljZSBkZXNjcmlwdGlvbiwgbWVudGlvbiBtaWJJSSBvYmplY3RzIGlmIGJ1aWx0IHVzaW5nIFNESy4KCjIwMDQtMDEtMjkgMTI6MTQgIHNsaWYKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jOgoKICAgdXNlIGNvcnJlY3QgY29uc3RhbnQgdGhhdCBwcmV2aW91c2x5IGFwcGxpZWQgcGF0Y2ggcmVmZXJzIHRvLgoKMjAwNC0wMS0yOSAwNjozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBCcmluZyB2ZXJzaW9uIGhhbmRsaW5nIGludG8gbGluZSB3aXRoIHRoZSAnc25tcF9wYXJzZV9hcmdzJyBsZWdlcmRlbWFpbgoKMjAwNC0wMS0yOSAwNjoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIFZhbGlkYXRlIHRoZSByZXF1ZXN0IGFnYWluc3QgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZhcmJpbmRzIHN1cHBvcnRlZAogICAoUGF0Y2ggIzgyNjcxNCBmcm9tIEplcmVteSBQdWhsbWFuKQoKMjAwNC0wMS0yOSAwNjoxMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLAogICAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LAogICAgIG1pYnMvVFJBTlNQT1JULUFERFJFU1MtTUlCLnR4dCwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgVXNlIHRoZSBvZmZpY2lhbGx5IGRlZmluZWQgdHJhbnNwb3J0IE9JRHMKICAgKFBhdGNoICM4Mjg3NjYgZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIpCgoyMDA0LTAxLTI5IDA1OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfZGlzay5jLAogICAgIGhvc3QvaHJfZmlsZXN5cy5jLCBob3N0L2hyX25ldHdvcmsuYywKICAgICBob3N0L2hyX3BhcnRpdGlvbi5jLCBob3N0L2hyX3N0b3JhZ2UuYywKICAgICBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsCiAgICAgdWNkLXNubXAvbG9nbWF0Y2guYywgdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsIHVjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMKOgoKICAgSW5jcmVhc2UgYXNzb3J0ZWQgZml4ZWQgYnVmZmVyIHNpemVzLiAgKFBhdGNoICM4MzYzOTUgZnJvbSBIb3dhcmQgV2lsa2luc29uKQoKMjAwNC0wMS0yOSAwNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBSZWplY3QgYXR0ZW1wdHMgdG8gZGVsZXRlIGEgJ3Blcm1hbmVudCcgcm93CiAgIChQYXRjaCAjODM3NDI3IGZyb20gQm9iIFJvd2xhbmRzKQoKMjAwNC0wMS0yOSAwNDoyMyAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhbiBlbXB0eSBjb250ZXh0RW5naW5lSUQKICAgKFdoaWNoIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBzZWVtcyB0byBvY2N1ciB1bmRlciBXaW5kb3dzKQogICAoUGF0Y2ggIzg0MDgzMCBmcm9tIEFsZXggQnVyZ2VyKQoKMjAwNC0wMS0yOSAwMzo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNZWNoYW5pc20gdG8gY29tcGxldGVseSBkaXNhYmxlIHRoZSBoYW5kbGluZyBvZiBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgIE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIHdvdWxkIGJyZWFrIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuIFNOTVB2MyBhZ2VudC4KICAgKFBhdGNoICM4NDkxNTkgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDEtMjkgMDM6MzkgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2VudW0uYzoKCiAgIFByb3Blcmx5IHJlbGVhc2UgdmFyaW91cyByZXNvdXJjZXMgd2hlbiBzaHV0dGluZyBkb3duIHRoZSBsaWJyYXJ5LgogICAoUGF0Y2ggIzg0OTE1NCBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wMS0yOSAwMTo0NCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFByb3ZpZGUgbWlzc2luZyBjb25maWcgZGVmaW5pdGlvbiB0ZW1wbGF0ZSBmb3IgJ3NzaXplX3QnIGZsYWcKICAgKFBhdGNoICM4ODY2NTUgZnJvbSBBbmR5IFNtaXRoKQoKMjAwNC0wMS0yOCAyMDozOSAgc2xpZgoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGQvc25tcGQuZHNwCiwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICAgIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBubyBpbmNyZW1lbnRhbCBsaW5rIG9uIERlYnVnIChwcmV2ZW50cyBnZW5lcmF0aW9uIG9mIC5pbGsgZmlsZSkKCjIwMDQtMDEtMjggMTg6NDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgaWZkZWYgYXJvdW5kIHZhcmlhYmxlcyB1c2VkIG9ubHkgd2hlbiBVTklYIHRyYW5zcG9ydHMgYXJlIHN1cHBvcnRlZC4KCjIwMDQtMDEtMjggMTc6NTcgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGludm9rZSB3aW5zb2NrIHZlciAyLjIKCjIwMDQtMDEtMjggMTc6MzQgIHNsaWYKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGNvbnNpc3RlbnQgcHJvamVjdCBzZXR0aW5nczsgbm8gQyBydW50aW1lIGNvbmZsaWN0czsgbGluayB3aXRoIHdpbnNvY2sgdmVyIDIuMgoKMjAwNC0wMS0yOCAxNzoyOCAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBoYWNrIGZvciBjaG93bi4KCjIwMDQtMDEtMjggMTQ6NTYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGRlcmVmZXJlbmNlIHByaV9tYXggdG8gdGVzdCByZXR1cm4gZnJvbSBkZWNvZGVfcHJpb3JpdHkKCjIwMDQtMDEtMjggMTQ6NTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhbGFybS5jLCBldmVudC5jCiwgaGlzdG9yeS5jLCByb3dzLmMsIHN0YXRpc3RpY3MuYzoKCiAgIGZpbmQgcGxhdGZvcm0tYXBwcm9wcmlhdGUgc3Vic3RpdHV0ZSBmb3Igc3lzL3RpbWUuaAogICBmaXggbWlub3IgdHlwZSBjYXN0IHdhcm5pbmdzLiAgcmVtb3ZlIG9uZSB1bnVzZWQgdmFyaWFibGUuCgoyMDA0LTAxLTI4IDA4OjQwICBkdHMxMgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgSW1wb3J0IFNOTVBfU0xFRVAgdGltZSBmcm9tIGVudmlyb25tZW50LCBpZiBhdmFpbGFibGUKICAgKFBhdGNoICM4NTA5NTcgZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIsCiAgICBtZXJnaW5nIGEgY2hhbmdlIGZyb20gdGhlIDUuMC54IGJyYW5jaCkKCjIwMDQtMDEtMjggMDg6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEVuc3VyZSB0aGUgc2l6ZSBvZiB0aGUgZXhlYy1jYWNoZSBpcyBoYW5kbGVkIGNvcnJlY3RseSBvbiA2NC1iaXQgc3lzdGVtcwogICAoUGF0Y2ggIzg2MDU3NSBieSBCb2IgUm93bGFuZHMpCgoyMDA0LTAxLTI4IDA3OjU1ICBkdHMxMgoKICAgKiBwZXJsLzogT0lEL09JRC54cywgU05NUC9TTk1QLnhzLCBhZ2VudC9hZ2VudC54cwo6CgogICBCZSBtb3JlIGNhdXRpb3VzIGFib3V0IHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBPSURzIChQYXRjaCA4NjIxODMgYnkgQXVzdGluIFNjaHV0eikKCjIwMDQtMDEtMjggMDc6NDEgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBHdWFyZCBhZ2FpbnN0IGEgbWlzc2luZyBJUCBhZGRyZXNzIHN0cnVjdHVyZSAoUGF0Y2ggIzg2MTkzOSBieSBEYW4gTW9uZ3JhaW4pCgoyMDA0LTAxLTI4IDA3OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTWVyZ2UgTmVpbHMnIDUuMS54IGNoYW5nZXMgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCB0cmVlLgogICAoU2VlbXMgdG8gaW5jbHVkZSBwYXRjaGVzICM4NTUxNzAgYW5kICM4NTg1MTkpCgoyMDA0LTAxLTI4IDA2OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgZG9uJ3QgY2hvd24vY2htb2QgaWYgdW5peCBkb21haW4gc3VwcG9ydCBub3QgZW5hYmxlZAoKMjAwNC0wMS0yOCAwNjo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgcGVybCA1LjggZW50cnkgcG9pbnQuICAoUGF0Y2ggIzg1NDM5NSkKCjIwMDQtMDEtMjggMDY6MjMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBpbnN0YWxsIHNvIHRoYXQgc3ViZGlyIGxpYnMgYXJlIGluc3RhbGxlZCBiZWZvcmUgYmlucywgbm90ZWQgYnkgdGhlCiAgIGV2ZXItc28taGVscGZ1bCBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCgoyMDA0LTAxLTI4IDA0OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEluY3JlYXNlIHRoZSAoZml4ZWQpIG51bWJlciBvZiBkaXNrcyBoYW5kbGVkIChwYXRjaCAjODg0ODU5KQoKMjAwNC0wMS0yOCAwNDoxOCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtaW5ndzMyLmggc3lzdGVtIGhlYWRlciBmaWxlIChwYXRjaCAjODg0MTAwKQoKMjAwNC0wMS0yOCAwNDoxMyAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgQ2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2Ygc3NpemVfdCwgYW5kIGRvbid0IHJlZGVmaW5lIGl0IHdoZW4KICAgdXNpbmcgdGhlIFdpbkdXIGNvbXBpbGVyLiAgIChQYXRjaCAjODgxNzUyKQoKMjAwNC0wMS0yOCAwMzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIFJlbW92ZSB0d28gcmVkdW5kZW50IGZvcndhcmQgZGVjbGFyYXRpb25zICAocGF0Y2ggIzg3MzMyNikKCjIwMDQtMDEtMjggMDI6MDcgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBpbmV0cHJpbnQgYWxsb3RzIG1heCAyMiBjaGFycyBmb3IgYWRkcmVzcyArIDggY2hhcnMgZm9yIHBvcnQuCiAgIGNoYW5nZSB0byAxOCBhZGRyZXNzICsgMTIgcG9ydCwgc28gdGhhdCBtb3JlIG9mIHRoZSBwb3J0IGlzIGRpc3BsYXllZC4KCjIwMDQtMDEtMjcgMjI6NDIgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBpbmRpY2F0ZSBXaW4zMiBoYXMgbG9jYWxlLmggbWFsbG9jLmggbWVtb3J5LmguCiAgIGRvIG5vdCBzZXQgYnNkbGlrZSBvciBVU0V4eE1JQiBvciBTRUNVUklUWUVYQ0VQVElPTlMKICAgcmUtZm9ybWF0IGxpa2UgdGhlIE5ldC1TTk1QIGNvbmZpZ3VyZWQgbmV0LXNubXAtY29uZmlnLmguCgoyMDA0LTAxLTI3IDIyOjM0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluCjoKCiAgIHVwZGF0ZSBzdXBwb3J0IGZvciBPcGVuQlNELCBIUC1VWC8xMSwgYW5kIFdpbjMyIHN5c09iamVjdElEIC4KCjIwMDQtMDEtMjcgMjE6NDkgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYwo6CgogICBwcm92aWRlIGZ1bmN0aW9uIGhpbnRzIGluIGxpZXUgb2YgX19GVU5DVElPTl9fCgoyMDA0LTAxLTI3IDEzOjQ2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQWRkIGRlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIHVzZWQgaW4gYXBwcy9zbm1wdHJhcGRfaGFuZGxlci5jCgoyMDA0LTAxLTI3IDEzOjE1ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbm8gY2hvd24oKSBvbiBXaW4zMiAtLSBjb21waWxlcyB0byBub3RoaW5nLgoKMjAwNC0wMS0yNyAxMDo1NSAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgYnVpbGQgaW5kZXBlbmRlbnQgcHJvamVjdHMgKGxpYnJhcmllcykgYmVmb3JlIGRlcGVuZGVudCBwcm9qZWN0cy4KICAgcmVtb3ZlIGluY29tcGxldGUgZGVwZW5kZW5jeSBzcGVjaWZpY2F0aW9uIHRvIGJ1aWxkIGFsbCBmYXN0ZXIuCgoyMDA0LTAxLTI3IDEwOjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFJlLWFycmFuZ2VkIHRoZSBkZWNsYXJhdGlvbnMgb2YgdmFyaWFibGVzIGFuZC9vciBjb21waWxlIGNvbnN0YW50cywKICAgc28gdGhhdCB0aGUgdmFyaWFibGVzIGFyZSBkZWNsYXJlZCBvbmx5IGlmIG5lZWRlZC4KCjIwMDQtMDEtMjcgMTA6MTEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgU3VwcGxpZWQgInJldHVybiAwIiB0byBleHRlbnNpYmxlX3VucmVnaXN0ZXIoKSwgYSBmdW5jdGlvbiByZXR1cm5pbmcgaW50LgoKMjAwNC0wMS0yNyAwOTo1OSAgc2xpZgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2FzdCB0byB2b2lkIHRoZSBhcmd1bWVudCB0byBmcmVlKCkuCgoyMDA0LTAxLTI3IDA5OjU3ICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICB1c2UgdV9jaGFyIHR5cGUgY2FzdCBpbnN0ZWFkIG9mIG1hc2tpbmcgd2l0aCAweEZGLgoKMjAwNC0wMS0yNyAwOTo1MiAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIG1vdmUgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiB3aXRoaW4gdHlwZSBjYXN0IHNjb3BlLAogICBmb3IgdGhlIGJlbmVmaXQgb2Ygc29tZSBjb21waWxlcnMuCgoyMDA0LTAxLTI3IDA5OjUwICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHNwZWxsY2hlY2s6IG5ldHNubXBfY29udGFpbmVyX2ZyZWVfbGlzdAoKMjAwNC0wMS0yNyAwOTo0NiAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbGFyZSBpbml0X3N1YmFnZW50IG5lYXIgaXRzIG9ubHkgcmVmZXJlbmNlLgoKMjAwNC0wMS0yNyAwOTo0NSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBmcm9tIFdpbjMyIGNvZGUuCgoyMDA0LTAxLTI3IDA5OjQ0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBtb3ZlIEhBVkVfRVhFQ1YgY29tcGlsZSB0ZXN0IGVhcmxpZXIgaW4gdGhlIGZ1bmN0aW9uIHRvIG5vdCBpbnRyb2R1Y2UgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDQtMDEtMjcgMDk6NDEgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvc25tcHZhY20uYywKICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MgdXNpbmcgYXBwcm9wcmlhdGUgdHlwZSBjYXN0aW5nLgoKMjAwNC0wMS0yNyAwOToyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgUmVmZXIgdG8gdGhlIG5ldHNubXAgbGlicmFyeSB2ZXJzaW9uIHN0cmluZyB2aWEgbmV0c25tcF9nZXRfdmVyc2lvbjsKICAgS2VlcCBkaXJlY3Qgc3RyaW5nIHJlZmVyZW5jZSBpZmYgVUNEX0NPTVBBVElCTEUgaXMgZGVmaW5lZC4KCjIwMDQtMDEtMjcgMDk6MDcgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgQXZvaWQgY29udmVyc2lvbiBtYWNyb3Mgd2hlbiBmb3JtaW5nIGhvc3QgY29weSBvZiAxNi1iaXQgcG9ydCB2YWx1ZQoKMjAwNC0wMS0yNyAwOTowNyAgc2xpZgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIERvbnQgZm9yY2UgdW5zaWduZWQgc2hvcnQgb250byB0d28gdW5zaWduZWQgY2hhcnMuCiAgIEJlIG1vcmUgZXhwbGljaXQgaW4gdGhlIHRyZWF0bWVudCBvZiB0aGUgeWVhciBjb21wb25lbnQuCgoyMDA0LTAxLTI3IDA5OjAyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIFdpbjMyIGFsbG9jYXRlcyBUQ1AgYW5kIFVEUCBjb25uZWN0aW9uIHN0cnVjdHVyZXMgdGhhdCBjb25zaXN0IG9mCiAgICBhIDMyLWJpdCBjb3VudCBmb2xsb3dlZCBieSBhIHBlciBjb25uZWN0aW9uIHRhYmxlLiAgV2hlbiBmcmVlaW5nIHRoZSB0YWJsZSwKICAgIGZpbmQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RydWN0dXJlLiAgVGhlIFRDUCB0YWJsZSBpbmNvcnJlY3RseSBjb3VudGVkCiAgICBlc3RhYmxpc2hlZCBUQ1AgY29ubmVjdGlvbnMsIGZpeGVkIHdpdGggdGhpcyBjaGFuZ2UuCgoyMDA0LTAxLTI3IDA4OjU4ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgc3VwcG9ydCBXaW4zMiBpbiBPU1RZUEUgZGVmaW5pdGlvbi4KCjIwMDQtMDEtMjcgMDg6NTQgIHNsaWYKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBpbmNsdWRlIGlvLmggZm9yIFdpbjMyIHRvIGludHJvZHVjZSB0aGUgY2xvc2UoKSBmdW5jdGlvbgoKMjAwNC0wMS0yNyAwNzo0OCAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmhlbHBlcnMvLmN2c2lnbm9yZSwgbmV0LXNubXAvLmN2c2lnbm9yZSwKICAgICBuZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLCBuZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUKLCBuZXRzbm1wbWlicy8uY3ZzaWdub3JlLCBuZXRzbm1wbWlic3Nkay8uY3ZzaWdub3JlCiwgc25tcGRzZGsvLmN2c2lnbm9yZToKCiAgIHByb3ZpZGUgYSBDVlMgZmlsdGVyIHRvIGV2ZXJ5IHN1YmRpciB1bmRlciB3aW4zMi4KCjIwMDQtMDEtMjcgMDc6MzQgIHNsaWYKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kZWYsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYKOgoKICAgY29udmVydCB0byBET1MgZm9ybWF0IHRvIGtlZXAgY2VydGFpbiBJREUgaGFwcHkuCgoyMDA0LTAxLTI3IDA3OjI3ICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmg6CgogICB0aGlzIGZpbGUgaXMgc3VwZXJzZWRlZCBieSB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLgoKMjAwNC0wMS0yNyAwNzoyMyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICBjaGFuZ2VzIGFwcHJvdmVkIGJ5IGF1dGhvciBwcm92aWRlIG1vcmUgcmVhZGFibGUgZm9ybWF0dGluZyBhbmQgY29tbWVudHMuCgoyMDA0LTAxLTI3IDA3OjIyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIHJlbW92ZSBDUiBjaGFyYWN0ZXJzIGZyb20gdGhlc2Ugc291cmNlcy4KCjIwMDQtMDEtMjcgMDc6MTkgIHNsaWYKCiAgICogUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dDoKCiAgIGNvbnZlcnQgQ1JMRiB0byBuZXdsaW5lCgoyMDA0LTAxLTI3IDA3OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRm9yd2FyZCB0cmFwcyB0byBwb3J0IDE2MiBieSBkZWZhdWx0LgoKMjAwNC0wMS0yNiAxNTo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5nCgoyMDA0LTAxLTI2IDE1OjU1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBkb24ndCBoYXJkY29kZSBwb2ludGVyIHNpemU7IG5vdGVkIG9uIGNvZGVycyBieSByYWplc2ggYXJ1bXVnYW0KCjIwMDQtMDEtMjYgMDQ6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXggdGhlIG9yZGVyaW5nIG9mIGhvc3RuYW1lIGFuZCBJUCBhZGRyZXNzIGFzIHBhc3NlZCB0byB0cmFwIGhhbmRsZXIKICAgKEJ1ZyAjODgyMDcxIGFuZCBvdGhlcnMpCgoyMDA0LTAxLTI2IDA0OjE1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ29udmVydCB2MSB0cmFwcyB0byB2MiBmb3JtYXQgYmVmb3JlIHBhc3NpbmcgaXQgdG8gdGhlIHRyYXAgaGFuZGxlcgogICAocGx1cyBtZXJnaW5nIHRoZSBvdGhlciA1LjEueCBwYXRjaGVzIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgdHJlZSkKCjIwMDQtMDEtMjYgMDI6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgRW5zdXJlIHRoYXQgaHJGU1RhYmxlIGluZGV4ZXMgYXJlIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBsaWZldGltZSBvZgogICB0aGUgYWdlbnQuCgoyMDA0LTAxLTI2IDAyOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEFsaWduIGhyRlNTdG9yYWdlSW5kZXggdmFsdWVzIHdpdGggaHJTdG9yYWdlVGFibGUgKGJ1ZyAjODgyOTg3KQoKMjAwNC0wMS0yMCAwNTo0OCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIEFkZCBBbmR5IFNtaXRoIHRvIGNvbnRyaWJ1dG9ycwoKMjAwNC0wMS0yMCAwNTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpdXJlLmluCgoyMDA0LTAxLTIwIDA1OjI4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgcGFydGlhbCBhcHBsaWNhdGlvbiBvZiA4NjA5ODA6IEZpeCBmb3IgbWluZ3czMi5oCgoyMDA0LTAxLTIwIDA1OjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggODQzNjc5OiBDb25maWd1cmUgcGF0Y2ggZm9yIE1pbkdXCgoyMDA0LTAxLTE0IDA2OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICBGaXggaGFuZGxpbmcgb2YgNjQtYml0IGNvdW50ZXJzLCBhbmQgdXNlIHRoZSBjb3JyZWN0IC9wcm9jIGludGVyZmFjZSBmaWxlCiAgIChub3QgdGhlIHRlbXBvcmFyeSBkZWJ1Z2dpbmcgdmVyc2lvbiEpCgoyMDA0LTAxLTE0IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGUuYywgaWZUYWJsZS5oOgoKICAgUHJvdmlzaW9uYWwgcmUtaW1wbGVtZW50YXRpb24gb2YgSUYtTUlCOjppZlRhYmxlIGFuZCBJRi1NSUI6OmlmWFRhYmxlCiAgIExpbnV4IHN1cHBvcnQgb25seSAoYW5kIHNvbWUgb2JqZWN0cyBhcmUgbWlzc2luZyksCiAgIGJ1dCBpdCBzaG91bGQgZ2l2ZSB0aGUgZ2VuZXJhbCBmbGF2b3VyLgoKMjAwNC0wMS0xNCAwNTozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL3NubXBfZW51bS5jCjoKCiAgIE5ldyBpbnRlcmZhY2VzIHRvIGZpbmQgYW4gdW51c2VkIHZhbHVlIHdpdGhpbiBhbiBlbnVtZXJhdGlvbiBsaXN0LgoKMjAwNC0wMS0xMyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDIwOjEzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGNhY2hlX2hhbmRsZXIuYywgcm93X21lcmdlLmMsCiAgICAgdGFibGVfaXRlcmF0b3IuYzoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAyMDowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAyMDowMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAxMDoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTEgMTY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHR5cG8sIG5vdGVkIG9uIGNvZGVycyBieSBPbGVnIEl2YW5vdgoKMjAwNC0wMS0xMSAxNjo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgc25tcGxpYi9jb250YWluZXIuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICAgIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLCBNYWtlZmlsZS5pbjoKCiAgIGZpeCByYW5nZSBjaGVja2luZyBjb2RlLCBub3RlZCBvbiBjb2RlcnMgYnkgT2xlZyBJdmFub3YKCjIwMDQtMDEtMDcgMDk6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksIG1mZC1kYXRhLXNldC5tMmMKLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMsCiAgICAgc3ViYWdlbnQubTJjOgoKICAgaWYgbmVlZGxlbmd0aCBub3Qgc2V0LCBzZXQgdmFyYmluZCB2YWxfbGVuIGZvciBHRVRzLCB2YWxpZGF0ZSB2YWxfbGVuIG9uIHNldDsKICAgZG9uJ3QgZGVjbGFyZXMgZnVuY3Rpb25zIHdoaWNoIGNhbid0IGJlIGlubGluZWQgYXMgaW5saW5lOyBjb21tZW50IHR3ZWFrcwoKMjAwNC0wMS0wNiAxNDo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gdHJhbnNsYXRlIGEgTUlCIHR5cGUgb2YgSVBBRERSIHRvIElQQUREUkVTUyBpbnN0ZWFkIG9mIE9DVEVUX1NUUklORy4KICAgLSBzbWFsbCBvdGhlciBidWcgZml4CgoyMDA0LTAxLTA2IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNoYW5nZSB0aGUgbWFudWFsIHNvIGl0IGRvZXNuJ3QgcmVmZXJlbmNlIFVDRC1TTk1QIHYzIChhaGVtKQoKMjAwNC0wMS0wNiAxNDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBwcm9wZXIgc29ydGluZyB3aGVuIE5ldFNOTVA6Ok9JRCBpcyBhdmFpbGFibGUuCgoyMDA0LTAxLTAxIDE2OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBvbmx5IHNldCBkZWZhdWx0cyBpZiBub3QgYWxyZWFkeSBzZXQKCjIwMDMtMTItMzAgMjA6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnhzLCB0ZXN0LnBsOgoKICAgaGFuZGxlIGltcGxpZWQgaW5kZXhlcwoKMjAwMy0xMi0zMCAxOTozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEEgbmV3IC0+Z2V0X2luZGV4ZXMoKSBtZXRob2QgdG8gcmV0dXJuIHRoZSBleHRyYWN0ZWQgaW5kZXhlcyBmcm9tIGEgT0lELgoKMjAwMy0xMi0zMCAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWxsb3c6IHNlcGFyYXRlZCBwYXRocyBpbiBNSUIyQ19ESVIgZW52IHZhcgoKMjAwMy0xMi0zMCAxNToxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF9lbnVtLm0yaSwgbTJjX3NldHVwX25vZGUubTJpCjoKCiAgIHVucXVvdGUgdWMgY2FsbHMsIHNpbmNlIGV2YWwgd2l0aCBpbnRlcnByZXQgYXMgYSBsaXRlcmFsIGFuZCBJIGNhbid0CiAgIHJlcHJvZHVjZSB0aGUgJ2JhcmV3b3JkJyBwcm9ibGVtIHRoYXQgbWFkZSBtZSBxdW90ZSBpbiB0aGUgZmlyc3QgcGxhY2UKCjIwMDMtMTItMjkgMTI6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgcmVtb3ZlIHVudXNlZCByZXF1ZXN0X21vZGUKCjIwMDMtMTItMjYgMTI6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlbmFtZSB2YXJzIGZvciBjbGFyaWZpY2F0aW9uOiAke3RhYmxlfV9jdHgqIC0+ICR7dGFibGV9X3Jvd3JlcV9jdHgqOyBhZGQKICAgdmFycyBmb3IgbWZkX2RlZmF1bHRzOyB1c2UgbmV3IG1pYjJjIHB1c2gvcG9wIHRvIGdlbmVyYXRlIHBlciB0YWJsZSBkZWZhdWx0cwogICBmaWxlIGRlZmF1bHQtdGFibGUtJHRhYmxlLm0yZCBjb250YWluaW5nIGN1cnJlbnQgdmFsdWVzIG9mIHNvbWUgbTJjIHZhcnMKCjIwMDMtMTItMjYgMTI6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWRhdGEtc2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmMsCiAgICAgbWZkLXJlYWRtZS5tMmMsIG1mZC10b3AubTJjLCBub2RlLWdldC5tMmksCiAgICAgbm9kZS1zZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmkKLCBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwKICAgICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmk6CgogICByZW5hbWUgdmFycyBmb3IgY2xhcmlmaWNhdGlvbjogaXRyX2N0eCogLT4gbG9vcF9jdHgqLCBsb29wKiAtPiBsb29wX2N0eCosCiAgICR7dGFibGV9X2N0eCogLT4gJHt0YWJsZX1fcm93cmVxX2N0eCoKCjIwMDMtMTItMjYgMTI6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcXVvdGUgYXNzaWdubWVudCBvZiB1cHBlcmNhc2VkIG5hbWUsIHNvIHZhbHVlcyB0aGF0IHN0YXJ0IHdpdGggYSBkaWdpdCBkb24ndAogICBnZXQgaW50ZXJwcmV0ZWQgYXMgYSBiYXJlIHdvcmQ7IGNoZyBkZWJ1ZyBwcmludCB0byBjb21tZW50CgoyMDAzLTEyLTI2IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgICBtMmNfc2V0dXBfZW51bS5tMmk6CgogICBxdW90ZSBhc3NpZ25tZW50IG9mIHVwcGVyY2FzZWQgbmFtZSwgc28gdmFsdWVzIHRoYXQgc3RhcnQgd2l0aCBhIGRpZ2l0IGRvbid0CiAgIGdldCBpbnRlcnByZXRlZCBhcyBhIGJhcmUgd29yZDsgY29uc29saWRhdGUgJG0yY19lbmFtZXkvJG0yY19pbmFtZSBwcm9jZXNzaW5nCiAgIGludG8gbTJjX3NldHVwX2VudW0ubTJpCgoyMDAzLTEyLTIzIDA3OjE5ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIHJlbW92ZSBkZXByZWNhdGVkIG9wdGlvbiBmcm9tIGV4YW1wbGUKCjIwMDMtMTItMjMgMDc6MTggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY2hhbmdlIGRlZmF1bHQgcnBtIGJ1aWxkIGluc3RydWN0aW9ucyB0byBlbWJlZCBwZXJsCgoyMDAzLTEyLTIzIDA3OjE3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgcmUtd29yayBwZXJsIG9wdGlvbnMgdG8gZml4IHByb2JsZW0gdy9jb25maWd1cmUgYXJndW1lbnQgcXVvdGluZwoKMjAwMy0xMi0yMyAwMjowMCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTm90ZSB0aGF0IEN5Z3dpbiBubyBsb25nZXIgbmVlZHMgYSBzZXBhcmF0ZSByZWdleCBsaWJyYXJ5CiAgIFJlcG9ydGVkIGJ5IEpvaG4gTWNDYXNoCgoyMDAzLTEyLTIyIDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgcHVzaC9wb3A7IHJlLXdvcmsgaW5kZXgvaW50ZXJuYWxpbmRleC9leHRlcm5hbGluZGV4L25vbmluZGV4IHNldHVwCgoyMDAzLTEyLTE5IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgICAgbWliMmMuYXJyYXktdXNlci5jb25mLCBtaWIyYy5jaGVja192YWx1ZXMuY29uZiwKICAgICBtaWIyYy5jb25mOgoKICAgUGF0Y2ggZnJvbSBCcmlhbiBCdWVza2VyIHRvIGZpeCBtaXNjIHByb2JsZW1zICh2YXJpYWJsZSB7fWluZywgLi4uKQoKMjAwMy0xMi0xOCAwMTo1OCAgZHRzMTIKCiAgICogbWFuL3NubXBuZXRzdGF0LjE6CgogICBGaXggbW9yZSBtYXJrdXAgZXJyb3JzLCByZXBvcnRlZCBieSBFcmljIFJheW1vbmQuCgoyMDAzLTEyLTE2IDAyOjAwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgQmUgY29uc2lzdGVudCBpbiB1c2Ugb2YgZm9yd2FyZCBkZWZpbml0aW9ucyAoZXhwbGljaXQgdnMgaW1wbGljaXQgc3RydWN0KQogICBSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlCgoyMDAzLTEyLTExIDE4OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBycG0gYnVpbGQgaW5zdHJ1Y3Rpb25zCgoyMDAzLTEyLTExIDE4OjUyICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCB1cGRhdGVkIHBlcmwgb3B0aW9ucyBmb3IgbmV3IHJwbSBtZXRob2QKCjIwMDMtMTItMTEgMTg6NDEgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcmVtb3ZlIFZFUi9SRUwsIHVzZSBWRVJTSU9OL1JFTEVBU0U7IHVwZGF0ZSBwZXJsIG9wdGlvbnMgZm9yIG5ldyBycG0gbWV0aG9kOwogICBhZGQgdGFyZ2V0IHRvIGJ1aWxkIHJwbSB0cmVlOyBkb24ndCBoYXJkY29kZSBhcmNoaXRlY3R1cmUKCjIwMDMtMTItMTEgMTg6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZG9jdW1lbnQgLUQgb3B0aW9uOyBhZGQgTWFrZWZpbGUgdHlwZQoKMjAwMy0xMi0xMSAxODoyMiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGRvbid0IHJlcXVpcmUgcGVybDsgYWRkIG5vdGUgb24gdmVuZG9yIHJlbGVhc2VzCgoyMDAzLTEyLTExIDA4OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBydW4gaW5kZW50CgoyMDAzLTEyLTExIDA4OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBtb3ZlIGxvZ2ljIHRvIHNraXAgd2hlbiBjYWNoaW5nIGRpc2FibGUsIG5vIGNhY2hlIGZvdW5kIG9yIGNhY2hlIGRpc2FibGVkCgoyMDAzLTEyLTEwIDA2OjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGRlbGF5IHNvdXJjaW5nIG9mIG5zYi1mdW5jdGlvbnM7IG12IHJjIGZpbGUgaW50byB+Ly5zbm1wOyByZW1vdmUgYnVpbGQgZGlyCiAgIG9uIHN1Y2Nlc3MKCjIwMDMtMTItMTAgMDY6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZGVsYXkgc291cmNpbmcgb2YgbnNiLWZ1bmN0aW9uczsgbXYgcmMgZmlsZSBpbnRvIH4vLnNubXAKCjIwMDMtMTItMTAgMDY6MTcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBuZXcgdmFyczogTlNCX1ZFUlNJT04gTlNCX0JVSUxEX1NVRkZJWDsgZG9uJ3QgdXNlIGhvc3RuYW1lIC1zLCBzaW5jZSBzdW4KICAgZG9lc24ndCBzdXBwb3J0IGl0OyB0d2VhayBkZWZhdWx0IHBhdGhzCgoyMDAzLTEyLTEwIDAyOjQxICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsCiAgICAgc25tcF9jb25maWcuNS5kZWY6CgogICBGaXggYXNzb3J0ZWQgbWFya3VwIGVycm9ycywgcmVwb3J0ZWQgYnkgRXJpYyBSYXltb25kLgoKMjAwMy0xMS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGZpeCBzY29wZSBvZiBoYXZlX2RpcmVudCBpZmRlZgoKMjAwMy0xMS0zMCAxNDoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICBhZGQgY29tbWVudHM7IHJlbW92ZSBhc3NlcnQgb24gdmFsaWQgY29uZGl0aW9uCgoyMDAzLTExLTMwIDE0OjIxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZGVidWcgbXNnIHdoZW4gc2tpcHBpbmcgdmIgd2l0aCBib2d1cyBpbmRleAoKMjAwMy0xMS0zMCAxNDoxOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgcmVhZGFiaWxpdHkgZml4IC0gdXNlIG1hY3JvIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlCgoyMDAzLTExLTI4IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIElmIGEgcm93IGlzIGNyZWF0ZWQgdmlhIGEgU0VUIHJlcXVlc3QsIHRoZW4gaXQgbmVlZHMgdG8gYmUgbWFkZSBhdmFpbGFibGUKICAgdG8gdGhlIG90aGVyIGNvbHVtbnMgYW5kIHBhc3Nlcy4gIFByb3ZpZGUgYSBtZWNoYW5pc20gZm9yIGluc2VydGluZyB0aGlzCiAgIGludG8gdGhlIHJlcXVlc3QgbGlzdC4KICAgKFRoaXMgbG9va3Mgc3VzcGljaW91c2x5IHNpbWlsYXIgdG8gYW5vdGhlciByZWNlbnQgcGF0Y2g6LSkgICBEb2VzCiAgIHRoaXMgZnVuY3Rpb25hbGl0eSBwZXJoYXBzIGJlbG9uZyB3aXRoaW4gdGhlIHRvcC1sZXZlbCAndGFibGUnIGhhbmRsZXI/KQoKMjAwMy0xMS0yNSAxNTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIHN1cHBvcnQgJG5vZGUuZGVzY3JpcHRpb24KICAgLSBzdXBwb3J0IEBwcmludGYgLi4uQAoKMjAwMy0xMS0yNSAxMjo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGRlZmF1bHQgYnVpbGQgZGlyczsgZGVmYXVsdCB0byBob3N0L3ZlcnNpb24gaW5zdGVhZCBvZiBwbGF0Zm9ybS92ZXJzaW9uCiAgIChzaW5jZSBzZiBidWlsZCBob3N0cyBrZWVwIGNoYW5naW5nIHBsYXRmb3JtcykKCjIwMDMtMTEtMjUgMTI6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgbW92ZSBkaXIgbXVuZ2luZyBpbiBuc2ItZnVuY3Rpb25zCgoyMDAzLTExLTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgdmVyc2lvbiBzdGFtcCB0aGUgLnNwZWMgZmlsZQoKMjAwMy0xMS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdmVyc2lvbiBudW1iZXIgY2hhbmdlCgoyMDAzLTExLTI0IDA5OjM4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGQgYSBncmVlY2UgbWlycm9yCgoyMDAzLTExLTI0IDA2OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEhhbmRsZSBpbnZhbGlkICg2NC1iaXQpIHZhbHVlcyBmb3IgZW5naW5lIGJvb3RzICYgdGltZQogICBQYXRjaCAjODI3MDQ0IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA5MjUwCgoyMDAzLTExLTI0IDA2OjIzICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENvcnJlY3QgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIC1DeCBvcHRpb25zCiAgIFBhdGNoICM4MTg3NjYgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MTg2MzQKCjIwMDMtMTEtMjQgMDQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBIYW5kbGUgR0VUTkVYVCByZXF1ZXN0cyBvbiB0aGUgaHJEZXZpY2VUYWJsZSB3aXRoIGEgInRvbyBsYXJnZSIgaW5kZXguCiAgIFBhdGNoICM4MTE3MTcgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDczMTUKCjIwMDMtMTEtMjEgMDk6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgZGlza2lvIHZhbHVlcyBvbiA2NC1iaXQgU29sYXJpcy4KICAgUGF0Y2ggIzgwOTI1NSBieSBCb2IgUm93bGFuZHMsIHRvIGZpeCBidWcgIzgwODk3NQoKMjAwMy0xMS0yMSAwOTowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgRml4IFNvbGFyaXMgaW1wbGVtZW50YXRpb24gb2YgaWZJbk5VY2FzdFBrdHMgJiBpZk91dE5VY2FzdFBrdHMKICAgUGF0Y2ggIzgwODgwNyBieSBCb2IgUm93bGFuZHMsIHRvIGZpeCBidWdzICM4MDgzOTkgJiAjODA4NDE3CgoyMDAzLTExLTIxIDA4OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBJbXBsZW1lbnQgaWZTcGVjaWZpYyBvYmplY3Qgb24gU29sYXJpcy4KICAgUGF0Y2ggIzgwODc0NiBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwODQzMAoKMjAwMy0xMS0yMSAwNzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEVuc3VyZSAzMi1iaXQgdGltZXRpY2tzIHZhbHVlIHJldHVybmVkIG9uIFNvbGFyaXMga2l0LgogICBQYXRjaCAjODA4MDc0IGJ5IEJvYiBSb3dsYW5kcywgdG8gZml4IGJ1ZyAjODA3Nzk2CgoyMDAzLTExLTIxIDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIFJldHVybiBhbiBlcnJvciBvbiBmYWlsZWQgb3ZlcnJyaWRlIHdyaXRlLgogICBQYXRjaCAjODA4MDU0IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA1MjU0CgoyMDAzLTExLTIxIDA2OjMwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcHVzbS4xLmRlZjoKCiAgIE1pbm9yIGNsYXJpZmljYXRpb25zIHRvIGEgZmV3IG1hbiBwYWdlcy4KICAgUGF0Y2ggIzgwNzkzNyBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwMy0xMS0yMSAwNjoyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEhhbmRsZSBzdG9yYWdlIHVuaXRzIDwxMDI0IGJ5dGVzCiAgIChQYXRjaCAjODAxMzQxIGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjNzU3NDQ4KQoKMjAwMy0xMS0yMSAwNToyMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgV2hlbiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBsYXN0IHRhYmxlLCBtYWtlIHN1cmUgdGhhdCB0aGUgaGlnaGVyIGxldmVsCiAgIGhhbmRsZXJzIHdpbGwgcmVhbGlzZSB0aGlzLCBhbmQgbW92ZSBvbiB0byB0aGUgbmV4dCByZWdpc3RlcmVkIG1vZHVsZS4KICAgQWxzbyBjYXRjaCBtaXNzaW5nIGNvbHVtbnMgd2hlbiBwcm9jZXNzaW5nIEdFVE5FWFQgcmVxdWVzdHMuCgoyMDAzLTExLTIxIDA0OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBTdXBwb3J0IGFja25vd2xlZGdlZCBub3RpZmljYXRpb25zIChJbmZvcm0gYW5kIEFnZW50WCBOb3RpZnkpIGFzCiAgIHdlbGwgYXMgdW5hY2tub3dsZWRnZWQgb25lcy4gICBGaXJzdCByZXBvcnRlZCBieSBkYXZpZEBncmFuY2FuYXJpYQogICBQcm9iYWJseSBkb2Vzbid0IHJlc2VuZCBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZC4KCjIwMDMtMTEtMjAgMDc6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmM6CgogICBNb3ZlIHN1ZmZpeCBwcm9jZXNzaW5nIHdpdGhpbiB0aGUgcmVxdWVzdCBsb29wLCBzaW5jZSB2NS4xIGl0ZXJhdG9yCiAgIGhhbmRsZXJzIG1heSByZWNlaXZlIG11bHRpcGxlIHJlcXVlc3QgdmFyYmluZHMuICBGaXggcHJvdmlkZWQgYnkgQmFyYiBSb2VzY2gKCjIwMDMtMTEtMjAgMDY6MzYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQcm90ZWN0ICd1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbicgZnJvbSBiZWluZyBjYWxsZWQgd2l0aCBhIE5VTEwKICAgc2Vzc2lvbiBwb2ludGVyLiAgKFVzZWQgd2hlbiB1bnJlZ2lzdGVyaW5nICJpbnRlcm5hbCIgTUlCIG1vZHVsZXMpCgoyMDAzLTExLTIwIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIHJldHVybiB2YXJpYWJsZSBuYW1lIGZvciBIUC1VWCAxMQogICAoRml4ZWQgYnVnICM4NDU0NjApCgoyMDAzLTExLTE5IDE2OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDMtMTEtMTkgMTY6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBkb24ndCB1c2Ugbm9uLXBvcnRhYmxlIC5jPS5vIHR5cGUgc3Vic3RpdHV0aW9ucyBpbiBtYWtlZmlsZTsgdGh1cyBwdXQgb2JqL2xvYmoKICAgZ2VuZXJhdGlvbiBiYWNrIGluIGNvbmZpZ3VyZQoKMjAwMy0xMS0xOSAwNzo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRW5hYmxlIHJldHJpZXMgb24gR2V0TmV4dCBub1N1Y2hJbnN0YW5jZSBleGNlcHRpb25zLiBGaXhlcyBidWcgIzg0Mzg0MgoKMjAwMy0xMS0xOSAwNzozMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jCjoKCiAgIEZpeCB3YXRjaGVkIHRpbWVzdGFtcCByZWdpc3RyYXRpb24uICdtYXJrZXJfdCcgaXMgYWxyZWFkeSBhIHBvaW50ZXIsCiAgIHNvIGRvZXNuJ3QgbmVlZCBmdXJ0aGVyIGRlcmVmZXJlbmNpbmchCgoyMDAzLTExLTE3IDA5OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIEZpeCBjcmVhdGlvbiBvZiBuZXcgbG9nZ2luZyBlbnRyaWVzLgoKMjAwMy0xMS0xNyAwOToxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIElmIGEgcm93IGlzIGNyZWF0ZWQgdmlhIGEgU0VUIHJlcXVlc3QsIHRoZW4gaXQgbmVlZHMgdG8gYmUgaW5zZXJ0ZWQgaW50bwogICB0aGUgaXRlcmF0aW9uIGRhdGEgc3RydWN0dXJlcywgc28gdGhhdCBpdCdzIGF2YWlsYWJsZSB0byBvdGhlciBjb2x1bW5zICYgcGFzc2VzLgoKMjAwMy0xMS0xNyAwOTowNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFJlbGVhc2UgdGhlIGRhdGEgc3RydWN0dXJlIG9uY2UgaXQncyBubyBsb25nZXIgbmVlZGVkLgoKMjAwMy0xMS0xNyAwMjo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS90Y3AuYywgdWNkLXNubXAvdm1zdGF0LmM6CgogICBBdm9pZCB1c2luZyB0aGUgdmFyaWFibGUgbmFtZSAnaHonICh3aGljaCBnZXRzIGNvcnJ1cHRlZCBvbiBBSVggYW5kIEhQVVgKICAgYnkgc3lzdGVtIHJlZGVmaW5pdGlvbnMpLiAgU2VlIGJ1ZyAjODQyNDc1ICYgIzg0MjQ4MwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC45IC0+IFY1LjEKCjIwMDMtMTEtMTMgMTg6NDYgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZXZlcnNlIDUueCBhbmQgNC54IGxpc3Rpbmcgc2luY2UsIHVtLCB0aGlzIGlzIDUueCAoYWdhaW4pCiAgIAoyMDAzLTExLTEzIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmV2ZXJzZSA1LnggYW5kIDQueCBsaXN0aW5nIHNpbmNlLCB1bSwgdGhpcyBpcyA1LngKICAgCjIwMDMtMTEtMTMgMTg6NDIgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfZGVwcmVjYXRlZC4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgIG5ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zCiwgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMQogICAKMjAwMy0xMS0xMyAxODoyMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4xCiAgIAoyMDAzLTExLTEzIDE4OjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIHBhdGNoICM4MzgxMTIgdG8gZml4IHdpbmRvd3MgcGVybCBidWlsZGluZwogICAKMjAwMy0xMS0xMyAxNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IHJlZ2V4cCBmb3IgZHVwbGljYXRlIGluZGV4IGV4Y2x1c2lvbiB0byBvbmx5IG1hdGNoIHdob2xlIHdvcmRzCiAgIAoyMDAzLTExLTEzIDE1OjAzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHN0YXNoX2NhY2hlCiAgIAoyMDAzLTExLTEzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IG5zQ2FjaGUuYywgbnNEZWJ1Zy5jLAogICBuc0xvZ2dpbmcuYzoKCiAgIC0gcHJvcGVybHkgY2hlY2sgZm9yIHRoZSAtPnByb2Nlc3NlZCBmbGFnLgogICAgIC0gKGZpeGVzIGEgYnVnIHBvaW50ZWQgb3V0IGJ5IEJydWNlIHdoZXJlIGEgZ2V0bmV4dCByZXR1cm5lZCBub1N1Y2hJbnN0YW5jZSkKICAgCjIwMDMtMTEtMTMgMTI6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkb24ndCBjYWxsIGhhbmRsZXJzIGZvciBlcnJvciByZWNvdmVyeSBpZiB0aGV5IGhhZG4ndCBiZWVuIGNhbGxlZCBmb3IgYXQgbGVhc3QKICAgcmVzZXJ2ZTEgKGUuZy4gc2V0IHcvaW52YWxpZCBpbmRleGVzKQogICAKMjAwMy0xMS0xMyAxMTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZml4IHZvaWQgZGVmaW5pdGlvbiBmb3IgbmV0c25tcF9hc3NlcnQgd2hlbiBkZWJ1Z2dpbmcgZGlzYWJsZWQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMy0xMS0xMyAxMTozMiAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFwcGx5IHBhdGNoIFsgODQxNDYzIF0gNS4xcmMxIFJFQURNRS53aW4zMiBjaGFuZ2VzCiAgIAoyMDAzLTExLTEyIDA5OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFByb3ZpZGVlIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIFJvdXRlX1NjYW5fUmVsb2FkCiAgIEhQLVVYIDExIG9ubHkuICBMYXRlc3QgaW4gdGhlIHNhZ2Egb2YgYnVnICMgODQwNjE1CiAgIAoyMDAzLTExLTEyIDA0OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwVGFibGUuYwo6CgogICBGaXggbW9yZSBIUC1VWCAxMSBzcGVjaWZpYyBib2d1cyBjb2RlLgogICBUcmFja2luZyBCdWcgIzg0MDYxNQogICAKMjAwMy0xMS0xMiAwMjozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBVc2UgY29ycmVjdCB2YXJpYWJsZSBmb3IgZGV0ZWN0aW5nIHdoaWNoIG9iamVjdCBpcyBiZWluZyBwcm9jZXNzZWQuCiAgIChIUFVYLTExIG9ubHkgLSBmaXhlcyBidWcgIzg0MDYxNSkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMTEtMTAgMDg6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZG9uJ3QgZG91YmxlIGNyZWF0ZSB0ZW1wIGRpcmVjdG9yeQogICAKMjAwMy0xMS0xMCAwODo0NiAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgYWx3YXlzIHVzZSBpbmxpbmUsIG5vdyB0aGF0IGl0IHdvcmtzIChuZWVkZWQgZXh0ZXJuKQogICAKMjAwMy0xMS0wNyAxNjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksIG1mZC1pbnRlcmZhY2UubTJjCiwgbWZkLXRvcC5tMmMsIG5vZGUtc2V0Lm0yaSwgcGFyZW50LXNldC5tMmkKOgoKICAgdXNlIERFQlVHVFJBQ0UgaW5zdGVhZCBvZiBoYXJkY29kZWQgX19GVU5DVElPTl9fCiAgIAoyMDAzLTExLTA3IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG11Y2ggYmV0dGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIE1JQiBub2RlIGNhbid0IGJlIGZvdW5kIGluIHRoZQogICBjb21tYW5kIGxpbmUgYXJndW1lbnRzCiAgIAoyMDAzLTExLTA3IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBmaXggc2VkIHNjcmlwdCByZWdleHAgZm9yIG9kZCB2ZXJzaW9ucyAocHJlMmIsIGVnKS4KICAgLSBtYWtlIC1oIGFjdHVhbGx5IHByaW50IGhlbHAuCiAgIAoyMDAzLTExLTA3IDA5OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgYnJhY2VzIGFyb3VuZCB2YXIgbmFtZQogICAKMjAwMy0xMS0wNiAyMDo0NiAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXNlIGlubGluZSB0byBfX2lubGluZSBmcm9tIG1haW4gbmV0LXNubXAtY29uZmlnIGZpbGU7IGFkZCBleHRlcm4gdG8gYmFzaWMKICAgTkVUU05NUF9JTkxJTkUgZGVmLCBwZXIgTVMgdGVjaCBub3RlIDEyMzc2OAogICAKMjAwMy0xMS0wNiAyMDo0MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgYXBwbHkgcGF0Y2ggWyA4MjgzNjIgXSBGaXJzdCBwYXNzIGF0IE1pbkdXMzIKICAgCjIwMDMtMTEtMDYgMjA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc3lzdGVtLmMgKFY1LTAtcGF0Y2hlcy4yKSwgc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDgzNjE2MiBdIDUuMXByZTMgd2luMzIgbWtkaXJoaWVyKCkKICAgCjIwMDMtMTEtMDYgMjA6MDAgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgYXBwbHkgcGF0Y2ggWyA4Mzc2MzMgXSA1LjFwcmUzIHdpbjMyIGxpYiByZW5hbWUKICAgCjIwMDMtMTEtMDYgMTY6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgcmVzdG9yZSBhY2NpZGVudGFsbHkgZGVsZXRlZCBcbiBpbiB0cmFjZSBtYWNybwogICAKMjAwMy0xMS0wNSAxOToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbW1lbnQgZm9yIHBvc3NpYmxlIGZ1dHVyZSBvcHRpbWl6YXRpb24KICAgCjIwMDMtMTEtMDUgMTk6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBhcHBseSBzcGlyaXQgb2YgcGF0Y2ggODM2NzIxOiB1c2UgbmV3IHRtcCBmaWxlIHBhdHRlcm4gbWFjcm87IHVzZSBfb3BlbiBvbgogICB3aW5kb3dzOyBhZGQgZXJyIGxvZyAmIGRlYnVnIG1zZzsgaW5jbHVkZSBzeXMvc3RhdC5oIGlmZiBleGlzdHMKICAgCjIwMDMtMTEtMDUgMTk6MDUgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGFwcGx5IHNwaXJpdCBvZiBwYXRjaCA4MzY3MjE6IGRlZmluZSBIQVZFX1NZU1RFTTsgYWRkIG5ldyB0bXAgZmlsZSBwYXR0ZXJuIG1hY3JvCiAgIAoyMDAzLTExLTA1IDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFwcGx5IHNwaXJpdCBvZiBwYXRjaCA4MzY3MjEgZm9yIHJ1bl9zaGVsbF9jb21tYW5kOiB0ZXN0IGZvciBiYWQgcmV0dXJuIGNvZGVzCiAgIGZyb20gZnVuY3Rpb25zOyBkb24ndCB0b3VjaCBvdXRfbGVuIGlmIG91dHB1dCBub3Qgc2V0IG9yIG91dF9sZW4gaXMgbnVsbAogICAKMjAwMy0xMS0wNSAxODo1NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZWdlbmVyYXRlIGZyb20gYWNsb2NhbC5oLCB3aGljaCByZXZlYWxzIHRoYXQgd2UgY2FuJ3QgZG8gYW4gaWZkZWYgdGVzdAogICB0byBwcmV2ZW50IHJlZGVmaW5pbmcgUEFDS0FHRV8qIHVubGVzcyBpdCBpcyBtYW51YWxseSByZS1hZGRlZCBlYWNoIHRpbWUKICAgdGhpcyBmaWxlIGlzIHJlZ2VuZXJhdGVkIGZyb20gYWNjb25maWcuaC4gQmxlY2guCiAgIAoyMDAzLTExLTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBtYWNybyBmb3IgdGVtcCBmaWxlIG5hbWUgKGNvbmZpZ3VyZSBvcHRpb24gdGJkKQogICAKMjAwMy0xMS0wNSAxODoxNCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFwcGx5IHBhdGNoIFsgODMzMjE2IF0gNS4xLnByZTMgV2luMzIgY29tcGlsZSBwYXRjaAogICAKMjAwMy0xMS0wNSAxODoxMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlnLmluCiAgIAoyMDAzLTExLTA1IDE4OjExICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgaW5jbHVkZSBtaWJncm91cCB1dGlsaXRpZXMgZm9yIG1pbmktYWdlbnQgKHJ1bl9zaGVsbF9jb21tYW5kIGZvciBzbm1wdHJhcGQpCiAgIAoyMDAzLTExLTA1IDA5OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgIGdlbmVyaWMtY3R4LWdldC5tMmksIGdlbmVyaWMtY3R4LXNldC5tMmksCiAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaQosIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCBtZmQtaW50ZXJmYWNlLm0yYwo6CgogICBhbHdheXMgY29udmVydCBnZW5lcmF0ZWQgYXJyYXkgbGVuIHRvIGFycmF5IGVsZW1lbnQgY291bnQgKG5vdCBieXRlcykKICAgCjIwMDMtMTEtMDUgMDI6NTIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdGFibGUuYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wdGFibGUuYzoKCiAgIERvbid0IHRyeSBzZWFyY2hpbmcgZm9yIGNvbHVtbiBvYmplY3RzIGlmIHRoZXJlIGlzbid0IGFueXRoaW5nIHRvIHNlYXJjaC4KICAgUmVwb3J0IHByb2JsZW1zIHVzaW5nIHRoZSBvYmplY3QgbmFtZSBvcmlnaW5hbGx5IHNwZWNpZmllZCwgcmF0aGVyIHRoYW4KICAgYSB0ZW1wb3JhcnkgaW50ZXJuYWwgYnVmZmVyLgogICAKMjAwMy0xMS0wNCAxNTowNiAgcnN0b3J5CgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIElOTElORSBjaGFuZ2VzIC0gZG9uJ3QgdXNlIGlubGluZSBmb3IgdGhlIERMTCB2ZXJzaW9uLCBhcyBpdCdzIHJlcG9ydGVkIHRvCiAgIGNhdXNlIGVycm9ycwogICAKMjAwMy0xMS0wNCAxNDo0NSAgcnN0b3J5CgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3csCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBhcHBseSBwYXRjaCBbIDgzMzIxNiBdIDUuMS5wcmUzIFdpbjMyIGNvbXBpbGUgcGF0Y2gKICAgCjIwMDMtMTEtMDQgMDg6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZG9uJ3QgZGVmaW5lIGNvbmZpZ3VyZSBQQUNLQUdFXyogbWFjcm9zIGlmIGFscmVhZHkgZGVmaW5lcy4KICAgCjIwMDMtMTEtMDQgMDg6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIEEgbmV3IGVudHJ5IGRpc2N1c3NpbmcgdGFibGVzIHdpdGggPjI1NiBjb2x1bW5zLgogICAKMjAwMy0xMS0wNCAwNzozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1zZXQubTJpOgoKICAgYWx3YXlzIGdlbmVyYXRlIGNvZGUgd2hlbiBkYXRhIGNvbnRleHQgaXMgZ2VuZXJhdGVkCiAgIAoyMDAzLTExLTA0IDA3OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpOgoKICAgY2xhcmlmeSBjb21tZW50cwogICAKMjAwMy0xMS0wNCAwNzozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmk6CgogICBjbGFyaWZ5IGNvbW1lbnRzOyB1c2UgZ2VuZXJpYy1zZXQgaW5zdGVhZCBvZiBnZXQKICAgCjIwMDMtMTEtMDQgMDc6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBjbGFyaWZ5IGNvbW1lbnRzCiAgIAoyMDAzLTExLTA0IDA3OjE5ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgc3luYyBjb250cmlidXRvcnMgdy81LjAueAogICAKMjAwMy0xMS0wNCAwMToyOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgRG9jdW1lbnQgdGhlIGVmZmVjdCBvZiAtQyBvbiBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlcy4KICAgCjIwMDMtMTEtMDMgMTQ6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZml4IGdlbmVyYXRlZCBjb2RlIGZvciB1bmRvX3NldHVwCiAgIAoyMDAzLTExLTAzIDEyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBjbGFyaWZ5IGNvbW1lbnRzOyByZW1vdmUgYm9ndXMgYXNzZXJ0cwogICAKMjAwMy0xMS0wMyAxMDozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1jaGFyLm0yaToKCiAgIG1ha2UgSVNfU0VUIG1hY3JvcyB1bmlxdWUgcGVyIG5vZGUKICAgCjIwMDMtMTEtMDMgMTA6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaToKCiAgIGZpeCB2YXIgbmFtZSB0eXBvCiAgIAoyMDAzLTExLTAzIDEwOjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpOgoKICAgbXVzdCB1c2UgYWRkciBvZiBsb2NhbCB2YXIgdG8gZ2V0IHB0cgogICAKMjAwMy0xMS0wMyAxMDoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmk6CgogICBtdXN0IHVzZSBhZGRyIG9mIGxvY2FsIHZhciB0byBnZXQgcHRyCiAgIAoyMDAzLTExLTAzIDEwOjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBzZXQgdXAgZGVmYXVsdHMgZm9yIG1mZCB0YWJsZXMKICAgCjIwMDMtMTEtMDMgMDc6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlY29nbml6ZSBTTk1QX01TR19TRVQgaXMgbm90IGEgdmFsaWQgR0VUIG1vZGU7IGNvbW1lbnQgdHdlYWtzCiAgIAoyMDAzLTExLTAzIDA3OjI2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIFJlY29nbmlzZSBTTk1QX01TR19TRVQgYXMgYSB2YWxpZCBTRVQgbW9kZQogICAoc28gdGhhdCB0aGUgdmFyYmluZCBjYWNoaW5nIGRvZXNuJ3QgbG9zZSB0aGUgYXNzaWduZWQgdmFsdWVzISkKICAgCjIwMDMtMTEtMDIgMDk6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICByZXN0b3JlIGFjY2lkZW50YWx5IGRlbGV0ZWQgaHB1eCBkZWZpbmU7IGFkZCBjb21tZW50CiAgIAoyMDAzLTExLTAyIDA0OjU1ICBuYmEKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBGaXggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5nczogY29uc3QtbmVzcywgY2FzdHMsIG1pc3NpbmcgcHJvdG95cGVzLAogICB1bnVzZWQgdmFyaWFibGVzLCBjdnMgaWdub3JlIGlnbm9yYWJsZSBmaWxlcwogICAKMjAwMy0xMS0wMiAwNDo1MCAgbmJhCgogICAqIC5jdnNpZ25vcmUsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFwcHMvLmN2c2lnbm9yZSwKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzOiBjb25zdC1uZXNzLCBjYXN0cywgbWlzc2luZyBwcm90b3lwZXMsCiAgIHVudXNlZCB2YXJpYWJsZXMsIGN2cyBpZ25vcmUgaWdub3JhYmxlIGZpbGVzCiAgIAoyMDAzLTExLTAyIDA0OjQ0ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBGaXggYSBiYWQgc3ludGF4IHdoZW4gdGVzdGluZyBmb3IgcGVybCBtb2R1bGVzCiAgIAoyMDAzLTExLTAyIDA0OjQyICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIG1hbi9zbm1wbmV0c3RhdC4xOgoKICAgQW5vdGhlciBsZWZ0IG92ZXIgLXAgb3B0aW9uCiAgIAoyMDAzLTExLTAxIDE2OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGFsd2F5cyBxdW90ZSBib3RoIHNpZGVzIG9mIHBlcmwgbmUvZXEgdGVzdHM7IGFsbG93IG92ZXJyaWRlIG9mIHZhcmJpbmQgdmFyaWFibGUKICAgbmFtZTsgYWRkIHN1YmlkIHRvIG5vZGUgc3VtbWFyeQogICAKMjAwMy0xMS0wMSAxNjowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgbW92ZSBleGFtcGxlIGFuZCB0cmFuc2llbnQgZGVmYXVsdHMgdG8gdGFibGUgc2V0dXAKICAgCjIwMDMtMTEtMDEgMTY6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZyBjdHggZnJvbSB2b2lkKiB0byBuZXRzbm1wX2RhdGFfbGlzdCAqOyBtb3ZlIGV4YW1wbGUKICAgYW5kIHRyYW5zaWVudCBkZWZhdWx0cyBoZXJlIChmcm9tIHRvcCkKICAgCjIwMDMtMTEtMDEgMTU6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgYWRkICdUT0RPJyBjb21tZW50OyBkb24ndCBnZW5lcmF0ZSBjb2RlIGlmIGV4YW1wbGUgbm90IHNldCAmIG5vdCBnZW5lcmF0ZWQgZGF0YQogICBjb250ZXh0OyBkZWZhdWx0IHRvIHJldHVybmluZyBubyBkYXRhIGZvciBub2RlOwogICAKMjAwMy0xMS0wMSAxNTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICB1c2UgcXVvdGVzIG9uIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0czsgZml4IHJlZyBwdHIgZGNsCiAgIAoyMDAzLTExLTAxIDE1OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBhZGQgdXNlcnMgdGFyZ2V0IHRvIG9ubHkgYnVpbGQgdXNlciBjb2RlCiAgIAoyMDAzLTExLTAxIDE1OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIHF1b3RlcyBvbiBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHM7IGNoZWNrX2luZGV4cyBpcyBvbmx5IGZvciByb3cKICAgY3JlYXRpb247IGRhdGEgbm90IGZvdW5kIG9ubHkgb2sgZm9yIHJvdyBjcmVhdGlvbiwgbm90IHNldHRhYmxlOyBzYW5pdHkKICAgY2hlY2sgZm9yIGJvZ3VzIGluZGV4IG9pZCBzaXplIGJlZm9yZSBtZW1jcHk7IHNldCBBU05fUFJJVl9SRVRSWSBmb3Igbm8gZGF0YSwKICAgc28gc3BhcnNlIHRhYmxlcyB3b3JrCiAgIAoyMDAzLTExLTAxIDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICBzZXQgb2lkIHNpemUgdG8gbWF4IGJlZm9yZSB0cnlpbmcgdG8gcGFyc2Ugb2lkCiAgIAoyMDAzLTExLTAxIDE1OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgcmVuYW1lIHJlZiB0byBsb29wX3JlZjsgbW9yZSBhc3NlcnRzOyBtb3ZlIFRPRE8gb3V0c2lkZSBvZiBjb25kaXRpb25hbDsgbW92ZQogICBpdHJfY3RyIGZyZWUgb3V0c2lkZSBvZiBleGFtcGxlIGNvbmRpdGlvbmFsCiAgIAoyMDAzLTExLTAxIDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wubTJpOgoKICAgdHdlYWsgaW5kZW50aW9uCiAgIAoyMDAzLTExLTAxIDE1OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LXNldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgbW92ZSBUT0RPIG91dHNpZGUgb2YgY29uZGl0aW9uYWw7IGRvbid0IGluY2x1ZGUgY29kZSBpZiBleGFtcGxlcyBub3Qgc2V0CiAgIAoyMDAzLTExLTAxIDE1OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgcXVvdGUgYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzOyBkb2N1bWVudCBpbmNsdWRlIGluIGNvbW1lbnRzCiAgIAoyMDAzLTExLTAxIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWNvcHkubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIG1vdmUgVE9ETyBvdXRzaWRlIG9mIGNvbmRpdGlvbmFsOyB0d2VhayBjb25kaXRpb25hbAogICAKMjAwMy0xMS0wMSAxNTo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgbW92ZSBjb25kaXRpb25hbCBpbnNpZGUgaW5jbHVkZQogICAKMjAwMy0xMS0wMSAxNTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC1yZWFkbWUubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgcXVvdGUgYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzCiAgIAoyMDAzLTExLTAxIDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpCiAgIAoyMDAzLTExLTAxIDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLAogICBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmkKOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIGRlZmF1bHQgdG8gcmV0dXJuaW5nIG5vIGRhdGEgZm9yIG5vZGVzCiAgIAoyMDAzLTExLTAxIDE1OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksCiAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwgbWZkLWRhdGEtc2V0Lm0yYwosIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cykKICAgCjIwMDMtMTEtMDEgMTU6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXZhcmJpbmQtc2V0dXAubTJpOgoKICAgbmV3IGNvZGUgZm9yIGluZGV4ZXMgYW5kIG9pZCBjb252ZXJzaW9ucwogICAKMjAwMy0xMS0wMSAxMDo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICB1c2UgZW5kb2ZtaWJ2aWV3IGluc3RlYWQgb2Ygbm9fdmFycwogICAKMjAwMy0xMC0zMCAxNzozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCjoKCiAgIGFkZCBjb21tZW50cwogICAKMjAwMy0xMC0zMCAxNzozNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZnVuYyBwYXJhbWV0ZXIsIG5vdCB2YXJpYWJsZSB3ZSdyZSBhYm91dCB0byBvdmVyd3JpdGUKICAgCjIwMDMtMTAtMzAgMTc6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGRlY2xhcmUgIGNhbGxiYWNrX21hc3Rlcl9udW0gZXZlbiBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gaXMgbm90CiAgIGRlZmluZWQgKHNvIEkgZG9uJ3QgbmVlZCB0byBhZGQgbW9yZSBpZmRlZidzIGluIG90aGVyIGNvZGUpCiAgIAoyMDAzLTEwLTMwIDE3OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgbG9nIHdhcm5pbmcgYW5kIGRvbid0IG9wZW4gY2FsbGJhY2sgdHJhbnNwb3J0IGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgogICBpcyBub3QgZGVmaW5lZAogICAKMjAwMy0xMC0zMCAxNzozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbG9nIHdhcm5pbmcgYW5kIGRvbid0IG9wZW4gY2FsbGJhY2sgdHJhbnNwb3J0IGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgogICBpcyBub3QgZGVmaW5lZDsgZml4IHRlc3QgZm9yIGFnZW50eF9vcGVuX3Nlc3Npb24KICAgCjIwMDMtMTAtMzAgMTc6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZG9uJ3QgY29tcGlsZSBjb2RlIGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBub3QgZGVmaW5lZAogICAKMjAwMy0xMC0zMCAxNjo1MSAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbWVyZ2UgdHJhbnNwb3J0IGNvbW1lbnRzIGZyb20gbm9uLXdpbiBuZXQtc25tcC1jb25maWcuaDsgdW5kZWYgY2FsbGJhY2sKICAgdHJhbnNwb3J0IGluc3RlYWQgb2YgZGVmIG9mIDAsIHNvIGl0IGFjdHVhbGx5IHR1cm5zIG9mZiBjb2RlOyB1bmRlZiBpbmxpbmUKICAgbWFjcm9zIGJlZm9yZSByZWRlZmluaW5nIHRoZW0KICAgCjIwMDMtMTAtMzAgMTY6NDkgIHJzdG9yeQoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIHJlcGxhY2UgY29udGVudHMgdy9pbmNsdWRlIG9mIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHNvIG9ubHkgb25lIGhlYWRlcgogICBuZWVkcyB0byBiZSBtYWludGFpbmVkLiBFdmVyeW9uZSBzaG91bGQgYmUgdXNpbmcgdGhlIG5ldyBvbmUgYW55d2F5LCByaWdodD8KICAgCjIwMDMtMTAtMzAgMDE6MzEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3QgY29uZmlndXJlIHRoZSBIb3N0LVJlc291cmNlcyBzdXBwb3J0IGJ5IGRlZmF1bHQuCiAgIEl0J3MgYSBnb29kIGlkZWEsIGJ1dCB3ZSdyZSB0b28gY2xvc2UgdG8gNS4xIGZvciB0aGlzIHRvIGJlIHNhZmUuCiAgIAoyMDAzLTEwLTI5IDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBpbmxpbmUgLT4gTkVUU05NUF9JTkxJTkUKICAgCjIwMDMtMTAtMjkgMDM6MTAgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmLCBzbm1wdHJhcGQuOC5kZWYKOgoKICAgRG9jdW1lbnQgbmV3IC1MeCBsb2dnaW5nIG9wdGlvbiBibG9jaywgYW5kIGFzc29ydGVkIGRlcHJlY2F0ZWQgb3B0aW9ucy4KICAgCjIwMDMtMTAtMjkgMDI6NTkgIGR0czEyCgogICAqIEZBUToKCiAgIFZhcmlvdXMgdXBkYXRlcyB0byB0aGUgRkFRLgogICAgIEhpZ2hsaWdodHMgaW5jbHVkZSBiZXR0ZXIgZXhwbGFuYXRpb24gb2YgYWNjZXNzIGNvbnRyb2wgYW5kIHRpbWVvdXQKICAgcHJvYmxlbXMsIGRpc2N1c3Npb24gb2Ygd2hhdCB0cmFwcyBhcmUgc2VudCBhbmQgd2hlcmUgdG8gKGluY2x1ZGluZwogICBEaXNtYW4gRXZlbnQtTUlCIHN1cHBvcnQpIGFuZCBtb3JlIG9uIG1pYjJjIHVzYWdlIChpbmNsdWRpbmcgdGhlCiAgIGRpZmZlcmVuY2VzIGJldHdlZW4gY29uZmlncywgYW5kIHBvaW50ZXJzIHRvIGV4YW1wbGVzKS4KICAgICBTZXBhcmF0ZSBzZWN0aW9ucyBmb3IgY29tcGlsYXRpb24gYW5kIGNvZGluZyBuZXcgbW9kdWxlcwogICAocmVzdHJ1Y3R1cmluZyBleGlzdGluZyBlbnRyaWVzKQogICAgIFJlZmVyIHRvIHByb2plY3QgYXMgJ05ldC1TTk1QJyByYXRoZXIgdGhhbiAnVUNEJyB0aHJvdWdob3V0CiAgIChleGNlcHQgd2hlcmUgc3BlY2lmaWNhbGx5IHY0IG9yIFVDRC1TTk1QLU1JQiBhcmUgbWVhbnQpCiAgIAoyMDAzLTEwLTI5IDAyOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuaCAoVjUtMC1wYXRjaGVzLjEpLAogICBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy5bMSwyXSksIHN5c09SVGFibGUuaDoKCiAgIEZpeCBudWxsIGRlZmluaXRpb24gb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUgKHdoZW4gbm90IHVzaW5nIHRoaXMgdGFibGUpLgogICBSZXBvcnRlZCBieSBNYXJrIEhvcGtpbnMKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmYsIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLAogICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMKLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsCiAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywKICAgbWFuL25ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zCiwgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zCiwgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zCiwgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMKLCBtYW4vbmV0c25tcF90b2RvLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4xLnByZTMKICAgCjIwMDMtMTAtMjggMTg6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTEwLTI4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBmaXggdmVyc2lvbiBmb3IgNS4xIHJlbGVhc2UKICAgCjIwMDMtMTAtMjggMTI6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVnZW5lcmF0ZSBmcm9tIG5ldyBhY2NvbmZpZy5oCiAgIAoyMDAzLTEwLTI4IDEyOjQ1ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGZpeCBidWcgWyA4MzA4NTIgXSBCdWlsZCBkb2Vzbid0IHdvcmsgb24gSFAtVVggMTFpCiAgIHVuZGVmIG1hY3JvIGJlZm9yZSByZWRlZmluaW5nIGl0CiAgIAoyMDAzLTEwLTI4IDEwOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiByb3V0ZV93cml0ZS5jIChWNS0wLXBhdGNoZXMuMSksCiAgIHJvdXRlX3dyaXRlLmM6CgogICBhcHBseSBwYXRjaCBbIDgxMjAxOSBdIHNubXBzZXQgb24gaXBSb3V0ZURlc3QuMTI3LjAuMC4xIGtpbGwgYWdlbnQgZHVtcHMgY29yZQogICBmaXhlcyBidWcgWyA4MDg5NTggXSBPU1N1biBzbm1wc2V0IG9uIGlwUm91dGVEZXN0LjEyNy4wLjAuMSBraWxsIGFnZW50IGR1bXBzIC4uLgogICAKMjAwMy0xMC0yOCAxMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMgKFY1LTAtcGF0Y2hlcy4xKSwgZGVidWdfaGFuZGxlci5jCjoKCiAgIGFwcGx5IHBhdGNoIFsgODMxMTYxIF0gbmV0c25tcF9nZXRfZGVidWdfaGVscGVyIGNyYXNoZXMgc25tcGQKICAgZml4ZXMgYnVnIFsgODI2OTYzIF0gbmV0c25tcF9nZXRfZGVidWdfaGVscGVyIGNyYXNoZXMgc25tcGQKICAgCjIwMDMtMTAtMjggMTA6MDUgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFwcGx5IHBhdGNoIFsgODI5NjMzIF0gNS4xcHJlMSBQZXJsIHRyYW5zbGF0ZU9iaiBmaXgKICAgCjIwMDMtMTAtMjggMDc6MzIgIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYyAoVjUtMC1wYXRjaGVzLjMpLCBuZXQtc25tcC5zcGVjOgoKICAgYXBwYXJlbnRseSBuZXN0ZWQgJWlmJ3MgYXJlIGEgbm8tbm8KICAgCjIwMDMtMTAtMjggMDc6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBmaXggcGVybCBjb25kaXRpb25hbCBidWlsZHMgYWZ0ZXIgcmVhZCBycG0gZG9jcwogICAKMjAwMy0xMC0yNiAwMDozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGlubGluZSAtPiBORVRTTk1QX0lOTElORSBhcyBwb2ludGVkIG91dCBieSBBbGV4IEJ1cmdlcgogICAKMjAwMy0xMC0yNCAxNjo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICByZW5hbWUgbG9vcF9jdHggbG9vcF9jb250ZXh0OyBwcmVmaXggYWxsIGxvb3AgZnVuY3Rpb25zIHcvbG9vcAogICAKMjAwMy0xMC0yNCAxNjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIG1vdmUgZGVmYXVsdHMgdG8gYW4gZWFzaWVyIHRvIHNwb3QgcGxhY2UKICAgCjIwMDMtMTAtMjQgMTY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwgbWZkLXRvcC5tMmMKOgoKICAgcmVuYW1lIHRhYmxlX2lkeCB0YWJsZV9taWJfaW5kZXg7IHJlbmFtZSBsb29wX2N0eCBsb29wX2NvbnRleHQ7IHByZWZpeCBhbGwKICAgbG9vcCBmdW5jdGlvbnMgdy9sb29wOyByZW1vdmUgaW5kZXgyb2lkCiAgIAoyMDAzLTEwLTI0IDA2OjAyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBIb3N0LVJlc291cmNlcyBzdXBwb3J0IHRvIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCIG1vZHVsZXMuCiAgIFdlJ3ZlIHRhbGtlZCBhYm91dCB0aGlzIGZvciB5ZWFycyAtIGl0J3MgYWJvdXQgdGltZSB3ZSBkaWQgc28hCiAgIAoyMDAzLTEwLTI0IDA1OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgTmV3IGNob2ljZXMgZm9yIHNvbWUgY29tbWFuZC1saW5lIG9wdGlvbnMsIHRvIGltcHJvdmUgY29uc2lzdGVuY3kKICAgYmV0d2VlbiBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyIHVzYWdlLiAgVGhlIHByZXZpb3VzIG9wdGlvbnMgc3RpbGwKICAgd29yayBidXQgYXJlIG5vdyBtYXJrZWQgYXMgImRlcHJlY2F0ZWQiLiAgVGhlc2Ugc2hvdWxkIHByb2JhYmx5CiAgIGJlIHJlbW92ZWQgY29tcGxldGVseSBpbiBhIGZ1dHVyZSByZWxlYXNlIChlLmcuIDUuMikuCiAgIAoyMDAzLTEwLTIzIDE1OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZml4IGJ1ZyA4Mjg2NzE6IFRoZSBsaWIgaXNuJ3QgQysrIGNvbXBhdGlibGU7IHJlbW92ZSAnc3RydWN0JyBiZWZvcmUgdHlwZGVmCiAgIAoyMDAzLTEwLTIzIDE1OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZml4IGJ1ZyA4Mjg2NzE6IFRoZSBsaWIgaXNuJ3QgQysrIGNvbXBhdGlibGU7IHJlbmFtZSBzdHJ1Y3R1cmUKICAgcmVtb3ZlIHVudXNlZCBub2FsbG9jIGZ1bmN0aW9uCiAgIAoyMDAzLTEwLTIzIDE1OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBidWcgODI4NjcxOiBUaGUgbGliIGlzbid0IEMrKyBjb21wYXRpYmxlOyByZW5hbWUgc3RydWN0dXJlCiAgIAoyMDAzLTEwLTIzIDE1OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHBhcnNlLmMgKFY1LTAtcGF0Y2hlcy4zKSwgcGFyc2UuYzoKCiAgIGZpeCBidWcgNzY3NzUzOiBzbm1wd2FsayBjcmFzaCAoYWRvcHRfb3JwaGFucykKICAgCjIwMDMtMTAtMjMgMTA6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0xMC0yMyAxMDozMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGFyZW50bHkgY29uZmlndXJlIHRyYW5zbGF0ZXMgJ18nIHRvICctJyBpbiBhcmd1bWVudHMvZW5hYmxlcywgc28gdXNlIC0KICAgY29uc2lzdGVudGx5OyBtb3ZlIGNvbW1vbiBtb2R1bGUgYXJnIG1pc3Rha2UgY2hlY2tzIHdpdGggb3RoZXIgbW9kdWxlCiAgIGNoZWNrcywgYW5kIGFkZCBhIGZldyBtb3JlOyBhZGQgY2hlY2sgZm9yIGVuYWJsZSBwZXJsLW1vZHVsZXMgdG9vCiAgIAoyMDAzLTEwLTIzIDEwOjI0ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG1vdmUgY29tbWVudCBmaXhlcyB0byBhY2NvbmZpZy5oIGFuZCByZWdlbmVyYXRlIG5ldC1zbm1wLWNvbmZpZy5oLmluCiAgIAoyMDAzLTEwLTIzIDA4OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSBub25zdGQgTkRFQlVHIGlmZGVmIHRzdDsgdXNlIERCR01TR1NVQk9JRCBpbnN0ZWFkIG9mIERCR01TRE9JRDsgYWRkCiAgIGRlYnVnIGZvciBjb21wYXJpc29uIHJlc3VsdAogICAKMjAwMy0xMC0yMyAwODo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBhZGQgY29tbWVudHM7IGZpeCBnZXRfbmV4dCB3L251bGwga2V5IChnZXQtZmlyc3QpOyByZW1vdmUgcmVkdW5kYW50IGRlYnVncwogICAKMjAwMy0xMC0yMiAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMgKFY1LTAtcGF0Y2hlcy4yKSwgc25tcHVzbS5jOgoKICAgZml4IGJ1ZyA4MjI4NzAgKHVzbVN0YXRzRGVjcnlwdGlvbkVycm9ycyBkaWQgbm90IGluY3JlbWVudCBvbiBmYWlsZWQgZ2V0IHJlcSkKICAgd2l0aCBwYXRjaCA4MjcwNTYgZnJvbSBicm93bGFuZHMKICAgCjIwMDMtMTAtMjIgMDk6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBfX1NUUklORyBpZiBub3QgZGVmaW5lZAogICAKMjAwMy0xMC0yMiAwNjoxNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGluY3JlbWVudCBsaWJ0b29sIHJldmlzaW9uCiAgIAoyMDAzLTEwLTIyIDA2OjEzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggY29tbWVudGNoZWNrIHBhdHRlcm4gdG8gZXhjbHVkZSBmdHAgYW5kIGh0dHAgdXJscwogICAKMjAwMy0xMC0yMiAwMjowOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVGhlIHZhcmlhYmxlcyAnZG9faGludCcgYW5kICdjaGVjaycgYXJlIG9ubHkgZGVjbGFyZWQKICAgb3IgbmVlZGVkIHdoZW4gJ0RJU0FCTEVfTUlCX0xPQURJTkcnIGlzIG5vdCBkZWZpbmVkLgogICBUaGVyZSdzIG5vIHBvaW50IGluIGdpdmluZyB0aGVtIGR1bW15IHZhbHVlcyBvdGhlcndpc2UuCiAgIAoyMDAzLTEwLTIxIDEyOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMTAtMjEgMTI6MTIgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVtb3ZlIGMrKyBzdHlsZSBjb21tZW50CiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIG1vdmUgdXNhZ2Ugc3ViIHRvIHRvcCBzbyBpdCBhY3R1YWxseSBkb2VzIHNvbWV0aGluZzsgcHJpbnQgdXNhZ2UgZm9yIHBhcmFtCiAgIGVycm9ycywgaW5zdGVhZCBvZiBqdXN0IGR5aW5nCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjQyICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICByZW1vdmUgYm9ndXMgaW5zdGFsbCB0YXJnZXQKICAgCjIwMDMtMTAtMjEgMTE6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgZm9yIG5ldyBjb25maWcuaW4KICAgCjIwMDMtMTAtMjEgMTE6MTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggY3V0LW4tcGFzdGUgZXJyb3IgaW4gcGVybCB1bmluc3RhbGwgc3VwcG9ydDsgdXBkYXRlIHZlcnNpb24gaW4gaW5pdAogICAKMjAwMy0xMC0yMSAwMTo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEluY2x1ZGUgPGZjbnRsLmg+IGZvciBkZWZpbml0aW9uIG9mIE9fUkRXUi4gUmVwb3J0ZWQgYnkgU2ViTm9iLgogICAKMjAwMy0xMC0yMSAwMTo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEVuc3VyZSB0aGF0IG11bHRpLWxpbmUgY29tbWVudHMgYXJlbid0IGJyb2tlbiB3aGVuIHRoZSBhY3RpdmUKICAgbmV0LXNubXAtY29uZmlnLmggZmlsZSBpcyBnZW5lcmF0ZWQuICBSZXBvcnRlZCBieSBTZWJOb2IuCiAgIChQb3NzaWJseSBiZWluZyBhIGJpdCBvdmVyLWNhdXRpb3VzIGhlcmUsIGJ1dCB5b3UgY2FuJ3QgYmUgdG9vIGNhcmVmdWwhKQogICAKMjAwMy0xMC0xNyAyMjo1MiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMy0xMC0xNyAyMjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdHVybiBvbiB0aGUgbG9va3VwIGNhY2hlLgogICAKMjAwMy0xMC0xNyAxNjozNSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kZXByZWNhdGVkLjMsCiAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICBuZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgbmV0c25tcF91dGlsaXRpZXMuMzoKCiAgIG1vcmUgKG5ldykgdXBkYXRlcyBmcm9tIGRveHlnZW4KICAgCjIwMDMtMTAtMTcgMTY6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICB1cGRhdGVzIGZyb20gZG94eWdlbgogICAKMjAwMy0xMC0xNyAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGFkZGVkIGFueWRhdGEgbW9kdWxlcwogICAKMjAwMy0xMC0xNyAxNTo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtYWtlIGdldHRhYmxlIHJldHVybiBhIGhhc2ggaW5zdGVhZC4KICAgCjIwMDMtMTAtMTcgMTU6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBhZGQgb2lkL2RlZmF1bHQgcG9ydGlvbiB0byBoZWxwIHRleHQgZm9yIHRoZSBmb3J3YXJkIHRva2VuCiAgIAoyMDAzLTEwLTE3IDE1OjAyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQWRkIHNwYXJ0YQogICAKMjAwMy0xMC0xNyAxNDo1OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGZvcndhcmQgdG9rZW4KICAgCjIwMDMtMTAtMTcgMTQ6NDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXNlIG5ldyB2ZXJzaW9uIG1vZGlmaWNhdGlvbiBzY3JpcHQKICAgCjIwMDMtMTAtMTcgMTQ6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBuZXcgdmVyc2lvbiBtZXNzaW5nLXdpdGggc2NyaXB0CiAgIAoyMDAzLTEwLTE3IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHBvcnRpb25zIG9sZCBzY3JpcHQgcmVwbGFjZWQgYnkgbmV3ZXIgVmVyc2lvbi1NdW5nZS5wbAogICAKMjAwMy0xMC0xNyAxNDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTUgMDk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHJlbW92ZSBoYXJkY29kZWQgY29udGV4dCBuYW1lCiAgIAoyMDAzLTEwLTE0IDE2OjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIGFkZCBub3RlIHRoYXQgZXhhbXBsZSBjb2RlIGlzIGJhc2Ugb24gYSBkYXRhIGZpbGUKICAgCjIwMDMtMTAtMTQgMTY6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBhZGQgbm90IHRoYXQgaXRlcmF0b3IgZ2V0L2dldC1uZXh0IGRvbid0IGNvcnJlc3BvbmQgdG8gcGR1IHR5cGVzLCBhbmQgdGhleQogICBzaG91bGRuJ3QgYmUgb3JkZXJpbmcgdGhlaXIgZGF0YQogICAKMjAwMy0xMC0xNCAxNjowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICBzeW5jIGNvbW1lbnRzIHcvcmVhZG1lCiAgIAoyMDAzLTEwLTE0IDE2OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBhcyBsb25nIGFzIHdlJ3JlIHVzaW5nIGdudS1tYWtlIHNwZWNpZmljcywgb25seSBwcm9jZXNzIGNvbmZpZyB2YXJzIG9uY2UgKGFsc28KICAgbGV0cyBtYWtlIG91dHB1dCByZXByZXNlbnQgYWN0dWFsIHZhbHVlcywgaW5zdGVhZCBvZiBzY3JpcHQpCiAgIAoyMDAzLTEwLTE0IDE2OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIGJpZyBvYm5veGlvdXMgd2FybmluZzsgc2V0IGVycm9yIGZvciBubyBjb250ZXh0IGlmIHRhYmxlIG5vdCBzZXR0YWJsZQogICAKMjAwMy0xMC0xNCAxNjowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmMtaW50ZXJuYWwtd2FybmluZy5tMmk6CgogICBiaWcgb2Jub3hpb3VzIHdhcm5pbmcgZm9yIHRvcCBvZiBpbXBsZW1lbnRhdGlvbiBmaWxlcwogICAKMjAwMy0xMC0xNCAxNjowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIHN5bmMgZnVuY3Rpb24gaGVhZGVyIHN1bW1hcnkgY29tbWVudHMgdy9yZWFkbWUgc3VtbWFyeSBoZWFkZXIgY29tbWVudHM7CiAgIHByZXNlbnQgZnVuY3Rpb24gaW4gc2FtZSBvcmRlciBpbiBib3RoIGZpbGVzCiAgIAoyMDAzLTEwLTE0IDE2OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBpbml0IG0yY19kYXRhX2luaXQKICAgCjIwMDMtMTAtMTQgMTM6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHVzZSBuZXcgY29tbW9uIHNldHVwOyB3cmFwcGVycyBmb3IgYWxsIGNvbnRhaW5lciBmdW5jdGlvbnMsIHRvIGNvbnZlcnQKICAgYmV0d2VlbiBpbnRlcmZhY2UgY29udGV4dCBhbmQgdXNlciBjb250ZXh0OyBzb21lIHBhcmFtIHR3ZWFrczsgcmVtb3ZlCiAgIHVudXNlZCBwcm90b3R5cGU7IGtlZXAgcHRyIHRvIHRhYmxlIGNvbnRleHQgaW4gZXhhbXBsZTsgcmVuYW1lIHNvbWUgdmFycwogICB1c2UgbmV3IE1GRF8qIGVycm9yIGNvZGVzOyByZW5hbWUgZXhhbXBsZSBmdW5jdGlvbjsgZG9jdW1lbmF0aW9uIHVwZGF0ZXM7CiAgIAoyMDAzLTEwLTE0IDEzOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIHVzZSBuZXcgY29tbW9uIHNldHVwOyB3cmFwcGVycyBmb3IgYWxsIGNvbnRhaW5lciBmdW5jdGlvbnMsIHRvIGNvbnZlcnQKICAgYmV0d2VlbiBpbnRlcmZhY2UgY29udGV4dCBhbmQgdXNlciBjb250ZXh0OyBzb21lIHBhcmFtIHR3ZWFrczsgcmVtb3ZlCiAgIHVudXNlZCBwcm90b3R5cGU7IGtlZXAgcHRyIHRvIHRhYmxlIGNvbnRleHQgaW4gZXhhbXBsZTsgcmVuYW1lIHNvbWUgdmFycwogICAKMjAwMy0xMC0xNCAxMzozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgdXNlIG5ldyBjb21tb24gc2V0dXA7IHdyYXBwZXJzIGZvciBhbGwgY29udGFpbmVyIGZ1bmN0aW9ucywgdG8gY29udmVydAogICBiZXR3ZWVuIGludGVyZmFjZSBjb250ZXh0IGFuZCB1c2VyIGNvbnRleHQ7IHNvbWUgcGFyYW0gdHdlYWtzOyBkb24ndCBhdXRvCiAgIGFsbG9jYXRlIGNvbnRleHQgZm9yIGdldCBkYXRhLCBzbyB1c2VyIGNvdWxkIHVzZSBvbmUgdGhleSd2ZSBhbGxvY2F0ZWQKICAgCjIwMDMtMTAtMTQgMTM6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1zZXR1cC5tMmk6CgogICBjb21tb24gc2V0dXAgZm9yIHVuc29ydGVkIGV4dGVybmFsLCB3aGljaCBoYXMgMyBwYXJ0cyBpbmNsdWRlZCBhdCBkaWZmZXJlbnQKICAgdGltZXMKICAgCjIwMDMtMTAtMTQgMTM6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgaW52ZXJ0IHZlcmJvc2UgbG9naWMgdGVzdDsgYWRkIHF1aWNrIG92ZXJ2aWV3IG9mIGl0ZXJhdGlvbiBsb29wOyByZW9yZGVyCiAgIHNvbWUgdGV4dC9ibGFuayBsaW5lczsgdXBkYXRlIGZvciByZW5hbWVkIHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUNPVU5URVI2NC1nZXQubTJpOgoKICAgaGFuZGxlIGNvdW50ZXI2NCB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHVzZSBuZXcgTUZEXyogZXJyb3IgY29kZXM7IHVwZGF0ZSBmb3IgbTJjIHBhcmFtIHJlbmFtZTsgaGFuZGxlIGNvdW50ZXI2NCB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBuYW1lIGRlcHMgZmlsZXMgZXhwbGljaXR5LCBzaW5jZSAuYz0uZGVwcyBpc24ndCBwb3J0YWJsZQogICAKMjAwMy0xMC0xNCAxMzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHVwZGF0ZSBiYXNlIHBhcmFtIGZyb20gbWZkIHJlZyB0byBtZmQgcGR1IGN0eDsgdXBkYXRlIGZvciByZW5hbWVkIG1mZC9tMmMgdmFyczsKICAgcmVuYW1lIHVzZXIgcmVnIHR5cGVkZWY7IG5vIHVuZG8gaW4gdGFibGUgY3R4IGlmIHRhYmxlIG5vdCBzZXR0YWJsZTsgYWRkIHVzZXIKICAgcmVnIHB0ciwgcmVxdWVzdCBtb2RlIGFuZCBkYXRhIGxpc3QgdG8gdGFibGUgY29udGV4dDsgbXYgY29udGFpbmVyIGluaXQgcHJvdG8KICAgYW5kIG90aGVyIGludGVyZmFjZSBwcm90b3R5cGVzIHRvIHRoZWlyIG93biBoZWFkZXI7IGFkZCBwcm90b3MgZm9yIHByZS9wb3N0CiAgIHJlcXVlc3RzLCB0YWJsZSBjb250ZXh0IGluaXQvY2xlYW51cDsgYWRkIHNldCBwcm90b3R5cGVzOyBpbmNsdWRlIG5ldyBoZWFkZXJzCiAgIGF0IGJvdHRvbSBvZiBtYWluIGhlYWRlcjsgbW92ZSBhcyBtdXNoIG9mIGluaXQgcm91dGluZSBhcyBwb3NzaWJsZSBpbnRvCiAgIGludGVyZmFjZSBjb2RlOyB1c2UgbmV3IE1GRF8qIHJldHVybiBjb2RlczsgZG9uJ3QgcnVuIG1ha2VmaWxlL3N1YmFnZW50CiAgIGNvbmYgZmlsZXMgaWYgdGhleSd2ZSBhbHJlYWR5IGJlZW4gcnVuCiAgIAoyMDAzLTEwLTE0IDEyOjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgYWRkIG1mZCBvdmVydmlldyBvZiBTTk1QIGFuZCBtZmQgZGF0YSBzdHJ1Y3R1cmVzOyBkb2N1bWVudCBtMmMgY29uZmlndXJhdGlvbgogICB2YXJpYWJsZXM7IGluZGVudCBzb21lIGNvbW1lbnRzIHRvIGJlIG1vcmUgY29uc2lzdGVudDsgZG9jcyBmb3Igc2V0IHN1cHBvcnQKICAgCjIwMDMtMTAtMTQgMTI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZXBsYWNlIGhhcmRjb2RlZCBoZWFkZXIgbmFtZSB3LyRuYW1lLmg7IGRvY3VtZW50YXRpb24gdXBkYXRlczsgdXNlIE1GRF8qCiAgIHJldHVybiBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgIHVwZGF0ZSByZW5hbWVkIG0yYyBwYXJhbXM7IHJlbW92ZSBsb2NhbCBzdGF0aWMKICAgcHJvdG90eXBlcyBmcm9tIGhlYWRlcnM7IG5ldyBwZXIgdGFibGUgaW50ZXJmYWNlIGNvbnRleHQ7IHJlbmFtZSBpbnRlcmZhY2UgaW5pdDsKICAgdXNlIHRhYmxlIHJlZyBpbiBsb2NhbCB0YWJsZSBjb250ZXh0IGluc3RlYWQgb2YgbWFsbG9jOyByZW1vdmUgXyBwcmVmaXggZnJvbQogICBwdWJsaWMgdGFibGUgYWxsb2NhdGUgJiByZWxlYXNlIGN0eCBmdW5jczsgaW5pdCB2YXJzIGluIGFsbG9jYXRlX2N0eDsgY2FsbAogICB0YWJsZSBjdHggaW5pdCBmdW5jIGluIGFsbG9jYXRlLCBpZiBkZWZpbmVkOyB3cmFwcGVycyBmb3IgYWxsIG1mZCBmdW5jdGlvbnMsIHRvCiAgIGNvbnZlcnQgZnJvbSBvdXIgdGFibGUgY29udGV4dCB0byB0aGUgdXNlcnMgcmVnaXN0cmF0aW9uIHBvaW50ZXI7IGFmdGVyIG9iamVjdAogICBsb29rdXAgc2V0IHVzZXJzIGluZGV4ZXMgYmFjayB0byB0aGUgdmFyYmluZCBvaWQgYW5kIHNldCBjb250ZXh0IHZhcnM7IG9ubHkKICAgZG8gZ2V0IHJvdXRpbmVzIGZvciBhY2Nlc3NhYmxlIGludGVybmFsIGluZGV4ZXM7IHByZWZpeCB3cmFwcGVycyB3L21mZF87CiAgIGRldGVjdCBpZiB1c2VyIGdldCByb3V0aW5lcyBtdW5nZXMgdmIgdmFsdWUgcG9pbnRlcjsgY2hlY2sgZm9yIG51bGwgcHRyIGJlZm9yZQogICBmcmVlOyBtZXJnZSBjaGVja19pbmRleCBpbnRvIGNoZWNrX2luZGV4ZXM7IGFkZCBzZXQgdmFsdWVzLCBjb21taXQsIHVuZG8KICAgYW5kIGlycmV2ZXJzaWJsZSBjb21taXQgd3JhcHBlcnM7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb21taXQgbW9kZSBuYW1lczsKICAgc2ltcGxpZnkgcGFyYW0gZm9yIGludGVybmFsIGluZGV4IGNoZWNrIGZ1bmNzCiAgIAoyMDAzLTEwLTE0IDEyOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBwdXQgcHJvdG90eXBlcyBpbiAkbmFtZV9kYXRhX2dldC5oCiAgIAoyMDAzLTEwLTE0IDEyOjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHVwZGF0ZSBtMmMgbm9kZSBwYXJhbXMgdG8gYmUgYmFzZWQgb24gdmFyL3ZhbC9yZWYgaW5zdGVhZCBvZiBmdW5jdGlvbiBuYW1lCiAgIAoyMDAzLTEwLTE0IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wubTJpOgoKICAgdXBkYXRlIGZvciByZW5hbWUgbTJjIHZhciBuYW1lcwogICAKMjAwMy0xMC0xNCAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHVzZSBtMmNfbm9kZV9zdW1tYXJ5IGluIGNvbW1lbnQKICAgCjIwMDMtMTAtMTQgMTI6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlczsgdXNlIE1GRF8qIHJldHVybiBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgcHV0IHByb3RvdHlwZXMKICAgaW4gJG5hbWVfZGF0YV9zZXQuaDsgdXBkYXRlIHJlbmFtZWQgbTJjIHBhcmFtczsgYWRkIGV4dGVybmFsIGluZGV4IGNoZWNrIGZ1bmMKICAgaWYgdGFibGUgaGFzIGV4dGVybmFsIGluZGV4OyBzaW1wbGlmeSBwYXJhbSBmb3IgaW50ZXJuYWwgaW5kZXggY2hlY2sgZnVuY3MKICAgCjIwMDMtMTAtMTQgMTI6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICByZW1vdmUgbWZkIHJlZyBwYXJhbSAmJiBhc3NlcnQKICAgCjIwMDMtMTAtMTQgMTI6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyB1c2UgTUZEXyogcmV0dXJuIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyBhZGQgcGVyIG5vZGUKICAgdW5kb19zZXR1cCA7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb21taXQgbW9kZSBuYW1lczsgdXBkYXRlIHJlbmFtZWQgbWZkIHBhcmFtcwogICAKMjAwMy0xMC0xNCAxMjoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlczsgY2hnIG1mZF9yZWcgcGFyYW1zIHRvIHRhYmxlX3JlZzsgdXNlIE1GRF8qIHJldHVybgogICBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgbm8gcGVyIG5vZGUgY29kZSBpbiB0YWJsZSB1bmRvX3NldHVwICh3aWxsIGJlIGluCiAgIG5ldyBwZXIgbm9kZSB1bmRvX3NldHVwKTsgdXBkYXRlIGZvciByZW5hbWVkIGNvbW1pdCBtb2RlIG5hbWVzCiAgIAoyMDAzLTEwLTE0IDEyOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpOgoKICAgaW5kZW50IHRvIG1hdGNoIG90aGVyIHJlYWRtZXMKICAgCjIwMDMtMTAtMTQgMTI6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlbmFtZSBtMmNfdGFibGVfd3JpdGFibGUgdG8gbTJjX3RhYmxlX3NldHRhYmxlIChjb25zaXN0ZW50IHcvbm9kZS5zZXR0YWJsZSk7CiAgIGJhc2UgbTJjX3RhYmxlX3Jvd19jcmVhdGlvbiBvbiBuZXcgZnVuY3Rpb24gdGFibGVfaGFzX2NyZWF0ZTsgbmV3CiAgIG0yY190YWJsZV9leHRlcm5hbF9pbmRleGVzIGJhc2Ugb24gbmV3IGZ1bmN0aW9uIGNvdW50X2V4dGVybmFsX2luZGV4ZXMKICAgCjIwMDMtMTAtMTQgMTI6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICByZW1vdmUgdW51c2VkIGxpbmVzOyBhZGQgb2lkIGxlbmd0aCBpbiBvdXRwdXQKICAgCjIwMDMtMTAtMTQgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG9ubHkgc2V0IGRlZmF1bHRzIGlmIHZhbHVlIGlzIGVtcHR5CiAgIAoyMDAzLTEwLTE0IDExOjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGlmIHNvcnRlZCwgc2tpcCBpdGVyYXRpb24gb24gZmluZCBmaXJzdDsgYWRkIG5ldyByZXVzZSBwYXJhbSB0byBzYXZlX3BvcwogICAKMjAwMy0xMC0xNCAxMTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBsb2cgZWFjaCBhZ2VudHhwZXJtcyBwYXJ0IHNlcGFydGVseSwgc28gYXMgbm90IHRvIGNyYXNoIGlmIGFueSBvZiB0aGUgb3B0aW9uYWwKICAgaXRlbXMgYXJlIGxlZnQgb3V0OyB1cGRhdGUgaGVscCB0byBzaG93IHRoYXQgb3B0aW9uYWwgcGFybXMgbXVzdCBiZSBpbiBvcmRlcgogICAKMjAwMy0xMC0xNCAxMToxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2hhbmdlIGNvdW50ZXIgNjQgdHlwZSBmcm9tICdjb3VudGVyNjQnIHRvICdVNjQnLCBzaW5jZSB0aGUgZm9ybWVyIGNhbid0IGJlCiAgIHVzZWQgYXMgYSB2YXJpYWJsZSBkZWNsYXJhdGlvbiB0eXBlOyBwcm9jZXNzICRIT01FLy5zbm1wL21pYjJjLmNvbmYsIGlmIGl0CiAgIGV4aXN0czsgbmV3IGZvcmVhY2ggaW50ZXJuYWxpbmRleCBhbmQgZXh0ZXJuYWxpbmRleDsgbmV3IHN1YiB0YWJsZV9oYXNfY3JlYXRlCiAgIGFuZCBjb3VudF9leHRlcm5hbF9pbmRleGVzCiAgIAoyMDAzLTEwLTE0IDA5OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkb24ndCByZXF1aXJlIERFQlVHIGRmaW5lIGZvciBhc3NlcnRzOyBuZXcgbG9naWM6IHVzZSBhc3NlcnQgaWYKICAgTkVUU05NUF9VU0VfQVNTRVJUIGRlZmluZXMuIG90aGVyd2lzZSwgZmFpbGVkIGFzc2VydHMgd2lsbCB1c2Ugc25tcF9sb2cKICAgdG8gbG9nIGEgbWVzc2FnZSAodW5sZXNzIFNOTVBfTk9fREVCVUdHSU5HIGlzIGRlZmluZWQpLgogICAKMjAwMy0xMC0xNCAwOTo0NSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgbW9kZXM7IGNoZyBjYWxsYmFjayBwYXJhbSB0byB1c2UgbmV3IG1mZF9wZHVfY3R4OyBkb24ndAogICBzcGxpdCBjYWxsYmFja3MgaW50byB0d28gc3RydWN0dXJlczsgZGVmaW5lIG1mZCBzcGVjaWZpYyBlcnJvciBjb2RlcyBhcyBhCiAgIHN1YnNldCBvZiBleGlzdGluZyBlcnJvciBjb2RlczsgYWRkIGRvY3VtZW50YXRpb247IHJlbW92ZSB0YWJsZSByZWdpc3RyYXRpb24KICAgZnJvbSByZWdpc3RyYXRpb24gcGFyYW0gbGlzdCwgc2luY2UgaXQncyBpbiB0aGUgbWZkIHJlZyBvYmo7IGhhbmRsZSBnZXQgcmVxdWVzdAogICBzcGxpdCBpbnRvIG9iamVjdF9sb29rdXAgYW5kIGdldCB2YWx1ZXM7IG9ubHkgY2FsbCBuZXh0IGhhbmRsZXIgaWYgbmV4dCBoYW5kbGVyCiAgIGhhcyBhY2Nlc3MgbWV0aG9kOyB0d2VhayBsb29rdXAgcGFyYW1zOiByZXR1cm4gZXJyb3IgY29kZSBhbmQgc2V0IGZvdW5kIHJvdwogICBpbiBuZXcgcGR1IGN0eCBwYXJhbQogICAKMjAwMy0xMC0xNCAwOTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaDoKCiAgIGFkZCByZXVzZSBmbGFnIHRvIGN0eCBkdXAgcGFyYW1zCiAgIAoyMDAzLTEwLTE0IDA5OjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgbW9kZSBtc2cgZGVmaW5lcyBmb3IgYmFieSBzdGVwIG1vZGVzOyBzaW1wbGlmeSBtb2RlIHRlc3QgbWFjcm9zOyBhZGQKICAgbmV4dF9tb2RlIHRvIGFnZW50X3JlcXVlc3RfaW5mbwogICAKMjAwMy0xMC0xNCAwOToyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBhZGQgaW50ZXJuYWwgbXNnIGRlZmluZXMgZm9yIGJhYnkgc3RlcCBtb2RlczsgcmVudW1iZXIgZ2V0IHN0YXNoIG1vZGU7IGZpeCB0eXBvCiAgIGluIGNvbW1lbnQ7IHJlc2VydmUgIG1vZGVzIDwgMTI4IGZvciBzZXQgcHJvY2Vzc2luZyB0byBzaW1wbGlmeSBtb2RlIHRlc3RzCiAgIAoyMDAzLTEwLTE0IDA5OjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICByZW5hbWUgYSBmZXcgbW9kZXMKICAgCjIwMDMtMTAtMTQgMDk6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBtb2RlczsgYWRkIG1vZGUgbWFwIGZvciBnZXQtcmVxdWVzdHMgYXMgd2VsbAogICAKMjAwMy0xMC0xNCAwOToxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBjb25zdCBjb3JyZWN0bmVzcwogICAKMjAwMy0xMC0xNCAwOToxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBpZmRlZidkIGNvZGUgYWZ0ZXIgcmVzdG9yaW5nIHNvbWUgb2YgaXQ7IHVwZGF0ZSBuZXcgcmVxaW5mbyBwdHIgaW4KICAgcmVxdWVzdHM7IGZpeCBlbmxlc3MgbG9vcDsgZml4IHR5cG9zIGluIGFzc2VydHMKICAgCjIwMDMtMTAtMTQgMDk6MTUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBjaGVjayBmb3IgcmVsYXRpdmUgcGF0aCB0byBzcmMgZGlyIGZvciBidWlsZC1kaXIgY2hlY2tzCiAgIAoyMDAzLTEwLTE0IDA2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiAoVjUtMC1wYXRjaGVzLjMpLCBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGxlYXZlIHBvc3NpYmx5IGVtcHR5IGNvbmZpZ3VyZSBAdmFyQCBvbiBjb250aW51YXRpb24gbGluZSBieSBpdHNlbGYKICAgCjIwMDMtMTAtMDggMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFY1LTAtcGF0Y2hlcy4yKSwgdmFyX3JvdXRlLmMKOgoKICAgcGF0Y2ggZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgdG8gZml4IEhQVVggMTEKICAgCjIwMDMtMTAtMDggMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhZGQgZGV0YWlsIG9uIGltcHJvcGVyeWx5IHJlZ2lzdGVyZWQgdGFibGUgbWVzc2FnZSwgYW5kIGNoZyB0byBFUlIgKGZyb20gSU5GTyk7CiAgIGZpeCB2YWxpZCBjb2x1bW4gc2VhcmNoIGZvciByYW5nZXM7IGdvIHN0cmFpZ2h0IHRvIGZpcnN0IHJvdyBpZiBubyBpbmRleGVzCiAgIAoyMDAzLTEwLTA3IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIG1vcmUgdXNlZnVsIGhlbHAgdGV4dCBmb3IgYWdlbnR4cGVybXMKICAgCjIwMDMtMTAtMDcgMTQ6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGxvZ2ljIGNoZWNrIG9mIERTX0FHRU5UX1FVSVRfSU1NRURJQVRFTFkgc28gdGhhdCBwYXJlbnQgYW5kIGNoaWxkIGRvbid0CiAgIGJvdGggdHJ5IHRvIGJlY29tZSB0aGUgbWFzdGVyIGFnZW50LiBMb2dpYyBzZWVtcyBiYWNrd2FyZHMgdG8gbWUgLSBkbyB3ZSBoYXZlCiAgIGFsbCB0aGVzZSBEUyB2YXJzIGRvY3VtZW50IHNvbWV3aGVyZT8KICAgCjIwMDMtMTAtMDcgMTQ6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbmV0c25tcF9kYWVtb25pemU6IGluaXQgbG9jYWwgdmFyOyBjaGcgcmV0dXJuIGNvZGUgdG8gYmUgZm9yayByZXN1bHQ7IGFkZCBkb2NzCiAgIAoyMDAzLTEwLTA3IDA3OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjIChWNS0wLXBhdGNoZXMuMyksIG1pYjJjOgoKICAgQ2hlY2sgZm9yIF4tUyBpbnN0ZWFkIG9mIC1TLCBhcyByZXBvcnRlZCBieSBKZWFuLU1hcmMgUmFuZ2VyIG9uIC11c2VycwogICAKMjAwMy0xMC0wNyAwMzoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBUaGVyZSBhcmUgbm8gc3RhdGlzdGljcyBwcmludGVkLCBzbyB0aGVyZSdzIG5vIHBvaW50IGluIGhhdmluZwogICBhIGZsYWcgdG8gdHVybiB0aGVtIG9mZi4KICAgCjIwMDMtMTAtMDQgMTE6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBjaGFuZ2VzIGZyb20gNS4wIHBhdGNoZXMgYnJhbmNoOyBmaXggdG8gYnVpbGQgd2l0aG91dCByZXF1aXJpbmcgYXJndW1lbnRzOwogICBzZXBhcmF0ZSBlbWJlZGRlZCBwZXJsIGFuZCBwZXJsIG1vZHVsZXMgb3B0aW9uczsgZml4IGZpeCBmb3IgaW5pdC5kIHNjcmlwdAogICBmb3Igbm9uLS91c3IvbG9jYWwgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTEwLTAzIDA3OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgY2hhbmdlIHYxIGRlbW8gY29tbXVuaXR5IHRvIG1hdGNoIHdoYXQgaXMgYWN0dWFsdCBjb25maWd1cmVkIG9uIHRoZQogICBzb29uLXRvLWJlLXJlb3BlbmVkIHRlc3QubmV0LXNubXAub3JnCiAgIAoyMDAzLTEwLTAyIDE5OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgYWRkIGV4cGxhbmF0b3J5IHRleHQgYW5kIGxpbmVzL2Fycm93cyBzaG93aW5nIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGVudHJpZXM7CiAgIGFkZCBjcmVhdGVVc2VyIGxpbmVzLCB3L25vdGUgZXhwbGFpbmluZyB0aGV5IG1pZ2h0IGJlIGJldHRlciBzdWl0ZWQgZm9yCiAgIHRoZSBwZXJzaXN0ZW50ZGlyIHNubXBkLmNvbmYgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLgogICAKMjAwMy0xMC0wMiAxMTowNCAgaGFyZGFrZXIKCiAgICogbWFuL21pYjJjLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIC1JIHN3aXRjaAogICAKMjAwMy0xMC0wMiAxMDo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgTkVXUywgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIG1pYnMvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBSb2JlcnQgdG9sZCBtZSB0byBrZWVwIGdvaW5nLCBzbyBJIGFkZGVkIHN1cHBvcnQgZm9yIGEgLS13aXRoLWluc3RhbGwtcHJlZml4CiAgIGZsYWcgdG8gY29uZmlndXJlIChhbmQgdGh1cyBhIElOU1RBTExfUFJFRklYIG1ha2UgdmFyaWFibGUgYXMgd2VsbCkuCiAgIAoyMDAzLTEwLTAxIDE2OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwKICAgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgosIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIFN1cHBvcnQgZm9yICJtYWtlIHVuaW5zdGFsbCIKICAgCjIwMDMtMTAtMDEgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgQWRkZWQgLUwgc3VwcG9ydCBmb3Igb3V0cHV0IGxvZ2dpbmcuCiAgIAoyMDAzLTEwLTAxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oOgoKICAgdXBkYXRlZCBwcm90b3R5cGVzIHRvIG1hdGNoIGVhcmxpZXIgdHJhcCAtPiBub3RpZmljYXRpb24gc3RyaW5nIHJlcGxhY2VtZW50cy4KICAgCjIwMDMtMDktMzAgMTc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIHN5bnRheCBzcGVjaWZpYyB2YXJiaW5kIHZhbGlkYXRpb24KICAgCjIwMDMtMDktMzAgMTc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmksCiAgIHN5bnRheC1TdG9yYWdlVHlwZS1kZXBlbmRlbmNpZXMubTJpOgoKICAgc3ludGF4IHNwZWNpZmljIGRlcGVuZGVuY3kgY2hlY2tzCiAgIAoyMDAzLTA5LTMwIDE3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIGZpeCB0eXBvcwogICAKMjAwMy0wOS0zMCAxNzoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLAogICBzeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaToKCiAgIHNldCBlbWFncyB0YWcgZm9yIGM7IHVwZGF0ZSB2YXJpYWJsZSBuYW1lCiAgIAoyMDAzLTA5LTMwIDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgc2V0IGVtYWdzIHRhZyBmb3IgYzsgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzOyBuZXcgdmFsaWRhdGVfaW5kZXgsCiAgIHVuZG9fc2V0dXAsIHJldmVyc2libGVfY29tbWl0LCBmaW5hbF9jb21taXQKICAgCjIwMDMtMDktMzAgMTc6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBzZXQgZW1hZ3MgdGFnIGZvciBjOyBpbiBjaGVja19kZXBlbmRlbmNpZXMsIHJlbW92ZSBub24tZXhpc3RhbnQgcGFyYW0gYW5kCiAgIGluY2x1ZGUgYW55IG5vZGUgc3BlY2lmaWMgc3ludGF4IGRlcGVuZGVuY2llcwogICAKMjAwMy0wOS0zMCAxNzoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgbmV3IGluY2x1ZGUgdG8gZG8gYmFzaWN5IHN5bnRheCB2YWxpZGF0aW9uIGFnYWluc3QgYW4gaW5jb21pbmcgdmFyYmluZAogICAKMjAwMy0wOS0zMCAxNzoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzOyBjaGFuZ2UgZXhhbXBsZSBmcm9tIGxpbmtlZCBsaXN0CiAgIHRvIGZsYXQgZmlsZTsgdXNlIHZhciBmb3IgZnVuYyBwYXJhbXMgc28gaXQncyBlYXN5IHRvIGNoYW5nZTsgY2hlY2sgbmV3CiAgIG0yY19pbmNsdWRlX2V4YW1wbGVzIGJlZm9yZSBpbmNsdWRpbmcgZXhhbXBsZSBjb2RlOwogICAKMjAwMy0wOS0zMCAxNzoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHM7IGNoYW5nZSBleGFtcGxlIGZyb20gbGlua2VkIGxpc3QKICAgdG8gZmxhdCBmaWxlOyB1c2UgdmFyIGZvciBmdW5jIHBhcmFtcyBzbyBpdCdzIGVhc3kgdG8gY2hhbmdlCiAgIAoyMDAzLTA5LTMwIDE3OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICBzZXQgZW1hY3MgdGFnIHRvIGM7IGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50czsgdXNlIGxvY2FsCiAgIHN0YXRpYyB2YXJpYWJsZV9saXN0IGZvciBpbmRleCB0byBvaWQgY29udmVyc2lvbjsgZnJlZSBtZW1vcnkgdXNlZCBpbiB0aGF0CiAgIGNvbnZlcnNpb24sIGV2ZW50dWFsbHk7IGRvbid0IGlnbm9yZSByYyBmcm9tIGJ1aWxkX29pZF9ub2FsbG9jIGhlcmUgKHJldHVybgogICBpdCBhbmQgbGV0IHNvbWVvbmUgZWxzZSBpZ25vcmUgaXQpOyBwcmVmaXggc29tZSBpbnRlcm5hbCBmdW5jdGlvbnMgbmFtZXMgdy8nXyc7CiAgIHdyYXBwZXIgYXJvdW5kIGdldF9kYXRhIHRvIGFsbG9jYXRlIG5ldyBjb250ZXh0CiAgIAoyMDAzLTA5LTMwIDE3OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbm9kZS1nZXQubTJpLCBub2RlLXNldC5tMmk6CgogICBzZXQgZW1hY3MgdGFnIHRvIGM7IGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50cwogICAKMjAwMy0wOS0zMCAxNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIG5ldyBtZmRfYmFzZV9wYXJhbXMgdmFyIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2UgcGFyYW1zOyBjaGcgY29tbWVudHMgc28gdGhhdAogICBpbmRlbnQgd29uJ3Qgbm90IGluZGVudDsgZG9uJ3QgaW5jbHVkZSBzb21lIHByb3RvdHlwZXMgaGVyZSBpZiB0aGUgZnVuY3Rpb24KICAgaXMgaW4gKl9pbnRlcmZhY2VzOyBuZXcgcHJlL3Bvc3QgcmVxdWVzdCBmdW5jdGlvbnM7IG1vdmVkIGJ1bGsgb2YgdGFibGUKICAgaW5pdCBpbnRvIGludGVyZmFjZXMsIGp1c3QgYSBsaXR0bGUgZnVuY3Rpb24gc2V0dXAgaGVyZQogICAKMjAwMy0wOS0zMCAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gTWFrZWZpbGU7IHR1cm4gb2ZmIHN0cmljdCB0b2tlbiBjaGVja3MgdGlsIHdlcyBnZXRzIEAgZXNjYXBlOwogICBleHBhbmQgZGVwcyBpbmNsdWRlcyBzaW5jZSAkKHg6LmM9LmRlcHMpIGlzbid0IHBvcnRhYmxlCiAgIAoyMDAzLTA5LTMwIDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBvbmx5IHB1dCBNSUIyQ19ESVIgZW52IHZhciBpbiBzZWFyY2ggcGF0aCBpZiBpdCBpc24ndCBlbXB0eQogICAKMjAwMy0wOS0zMCAxNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGNyZWF0ZSBuZXcgJG5hbWVfaW50ZXJmYWNlLmggaGVhZGVyOyBtb3ZlIHRhYmxlIGluaXRpYWxpemF0aW9uIGhlcmU7IHByZWZpeCBhCiAgIGJ1bmNoIG9mIGludGVyZmFjZSBmdW5jdGlvbnMgdy8nXyc7IHVzZSBuZXcgbTJjX25vZGVfc3VtbWFyeTsgdXNlIG5ldwogICBtMmNfbm9kZV92YXJfKiB2YXJpYWJsZXM7IGNoYW5nZSBzb21lIGFjY2Vzc2libGUgdGVzdHMgdG8gc2V0dGFibGUgdGVzdHM7IHVzZQogICBuZXcgbm9kZS12YXJiaW5kLXZhbGlkYXRlIGluY2x1ZGU7IGFsd2F5cyBjYWxsIHVzZXIgJG5vZGVfY2hlY2tfdmFsdWU7IG5ldwogICBmdW5jdGlvbnMgdG8gY2hlY2sgbmV3IGluZGV4IHN5bnRheDsgbmV3IF9zZXRfdmFsdWVzLCBfdW5kb19zZXR1cCBhbmQKICAgX3VuZG9fdmFsdWVzIHRvIGNhbGwgdXNlciBmdW5jdGlvbnMKICAgCjIwMDMtMDktMzAgMTY6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IHR3ZWFrIHByb2Nlc3NpbmcgbXNnczsgYWx3YXlzIGluY2x1ZGUgcGFyZW50LXNldDsgbW92ZQogICBwYXJlbnQgZGVwZW5kZW5jaWVzIHRvIGJvdHRvbSBvZiBmaWxlOyBhZGQgJG5vZGVfY2hlY2tfaW5kZXgKICAgCjIwMDMtMDktMzAgMTY6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIHR3ZWFrIHByb2Nlc3NpbmcgbXNncwogICAKMjAwMy0wOS0zMCAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBhZGQgc29tZSBzYW5pdHkgY2hlY2tzOyBzZXQgdXAgbmV3ICRtMmNfZW51bV9tYXNrLAogICAkbTJjX25vZGVfdmFyX3ZhbCwgJG0yY19ub2RlX3Zhcl9yZWYsICRtMmNfbm9kZV92YXJfdmFsX3B0ciwgJG0yY19ub2RlX3N1bW1hcnkKICAgCjIwMDMtMDktMzAgMTY6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IHJlbW92ZSB1bnVzZWQgY3JlYXRlX3VuZG9fY29udGV4dAogICAKMjAwMy0wOS0zMCAxNjoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICBnZW5lcmljLWN0eC1nZXQubTJpLCBnZW5lcmljLWN0eC1zZXQubTJpLAogICBtMmNfc2V0dXBfdGFibGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgc3VjayAnY3R4LT4nIG9yICdjdHguJyBpbnRvICRtMmNfZGF0YV9pdGVtCiAgIAoyMDAzLTA5LTMwIDE2OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYwogICAKMjAwMy0wOS0zMCAxNjoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IGdlbmVyYXRlIGRlZmluZSBmb3IgbWFzayBvZiBhbGwgYml0cwogICAKMjAwMy0wOS0zMCAxNDoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgeHh4IHRhZ2dpbmcuCiAgIAoyMDAzLTA5LTMwIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGNyZWF0ZSB0aGUgTWFrZWZpbGUgdG8gZWl0aGVyIHJlZmVyZW5jZSBhIE5ldC1TTk1QIHNvdXJjZSBkaXIgb3Igbm90CiAgICAgKGFuZCByZXF1aXJlIGdudS1tYWtlIG9yIG5vdCkuCiAgIAoyMDAzLTA5LTMwIDA2OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBuZXcgZmxhZy90b2tlbiBzdHJpY3RfdW5rX3Rva2VuIHdpbGwgYWJvcnQgb24gdW5rbm93IEB0b2tlbgogICAKMjAwMy0wOS0zMCAwNjozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmg6CgogICBhZGQgbmV0c25tcF9jaGVja192Yl9zaXplLCBuZXRzbm1wX2NoZWNrX3ZiX3NpemVfcmFuZ2UKICAgYW5kIG5ldHNubXBfY2hlY2tfdmJfcm93c3RhdHVzX3ZhbHVlCiAgIAoyMDAzLTA5LTMwIDA2OjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBtb3JlIG51bGwgcHRyIGNoZWNrczsgYWRkIG5ldHNubXBfY2hlY2tfdmJfc2l6ZSwgbmV0c25tcF9jaGVja192Yl9zaXplX3JhbmdlCiAgIGFuZCBuZXRzbm1wX2NoZWNrX3ZiX3Jvd3N0YXR1c192YWx1ZQogICAKMjAwMy0wOS0zMCAwNjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgZ2VuZXJpYy1nZXQtY2hhci5tMmksIGdlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwKICAgZ2VuZXJpYy1nZXQtZGVjbC5tMmksIGdlbmVyaWMtZ2V0LWxvbmcubTJpLAogICBnZW5lcmljLWdldC1vaWQubTJpLCBnZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLAogICBnZW5lcmljLWhlYWRlci10b3AubTJpLCBnZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpCiwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLCBtMmNfc2V0dXBfZW51bS5tMmksCiAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG5vZGUtc3RvcmFnZS5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmksIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaQosIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYwogICAKMjAwMy0wOS0zMCAwNjoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgZml4IGdlbmVyYXRlZCBjb21tZW50CiAgIAoyMDAzLTA5LTMwIDA2OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBuZXcgZmxhZyBmb3IgaW5jbHVkaW5nIGV4YW1wbGUgY29kZQogICAKMjAwMy0wOS0yOSAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpCiwgbWZkLXJlYWRtZS5tMmM6CgogICBNaXNjIHVwZGF0ZXMgZm9yIHJlYWRhYmlsaXR5LCBldGMuCiAgIAoyMDAzLTA5LTI5IDE2OjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBJbml0aWFsIHdvcmQgc21pdGhpbmcgb2YgdGhlIGdsb2JhbCBSRUFETUUuCiAgIAoyMDAzLTA5LTI5IDE1OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFN1cHBvcnQgYSAtSSBzd2l0Y2ggdG8gc3BlY2lmeSBjb25maWcgZmlsZSBzZWFyY2ggcGF0aHMuCiAgIAoyMDAzLTA5LTI5IDE1OjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgbWlzc2luZyBzb21lIGVuZCBzdGF0ZW1lbnRzCiAgIAoyMDAzLTA5LTI5IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVmZXJlbmNlIG5ldyBkaXNtYW4gZmVhdHVyZXMKICAgCjIwMDMtMDktMjkgMTQ6MjUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgKHBvb3JseSBvZiBjb3Vyc2UpIG5ldyBtb25pdG9yaW5nIGZlYXR1cmVzLgogICAKMjAwMy0wOS0yOSAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIC0gdHJhcEV2ZW50IC0+IG5vdGlmaWNhdGlvbkV2ZW50CiAgIAoyMDAzLTA5LTI5IDE0OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgLSBsaW5rVXBEb3duVHJhcHMgLT4gbGlua1VwRG93bk5vdGlmaWNhdGlvbnMKICAgCjIwMDMtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZUV2ZW50VGFibGUuYywgbXRlRXZlbnRUYWJsZS5oCiwgbXRlVHJpZ2dlclRhYmxlLmM6CgogICAtIEEgbmV3IHNubXBkLmNvbmYgdG9rZW4gKHRyYXBFdmVudCkgZm9yIGdlbmVyYXRpbmcgdHJhcHMgb2YgYW55IGtpbmQKICAgICBvbiBhIG1vbml0b3JpbmcgZXZlbnQgYW5kIGEgLWUgc3dpdGNoIHRvIG1vbml0b3IgdG9rZW4gdG8gcmVmZXJlbmNlIGl0LgogICAtIEEgbmV3IHNubXBkLmNvbmYgdG9rZW4gbGlua1VwRG93blRyYXBzIHRvIGVuYWJsZSBsaW5rVXAvbGlua0Rvd24KICAgICB0cmFwcyB1c2luZyB0aGUgYWJvdmUgcGllY2UuCiAgIAoyMDAzLTA5LTI5IDA3OjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L3NubXBkLWluaXQuZDoKCiAgIC9ldGMvaW5pdC5kIC0+IC9ldGMvcmMuZC9pbml0LmQKICAgCjIwMDMtMDktMjggMjE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIGNvbW1lbnQgaW4gY29tbWVudCBwcm9ibGVtLgogICAKMjAwMy0wOS0yOCAxOTo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICBBZGRlZCBEYXZlJ3MgcmVhbGx5IGNvbGwgYXNjaWkgZGlhZ3JhbSBmcm9tIC11c2VycyBleHBsYWluaW5nIGhvdwogICB0cmFwcyBhcmUgc2VudCB0byB0aGVpciBkZXN0aW5hdGlvbnMgb3ZlciBhbnkgU05NUCB2ZXJzaW9uLgogICAKMjAwMy0wOS0yOCAxOTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBBZGRlZCBEYXZlJ3MgcmVhbGx5IGNvbGwgYXNjaWkgZGlhZ3JhbSBmcm9tIC11c2VycyBleHBsYWluaW5nIGhvdwogICB0cmFwcyBhcmUgc2VudCB0byB0aGVpciBkZXN0aW5hdGlvbnMgb3ZlciBhbnkgU05NUCB2ZXJzaW9uLgogICAKMjAwMy0wOS0yNiAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgcHJvcGVybHkgbWFsbG9jIHRoZSBlbnRlcnByaXNlIHBvaW50ZXIgYmVmb3JlIHVzaW5nIGl0LgogICAKMjAwMy0wOS0yNiAyMToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjUtMC1wYXRjaGVzLjQpLCBTTk1QLnhzOgoKICAgY29ycmVjdCBsZW5ndGggaW4gc3RyaW5nIGZpeGVkIHN0cmluZyBjb21wYXJpc29uCiAgIAoyMDAzLTA5LTI2IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtaXNjIGluc3RhbGwgZml4ZXMgKG1vc3RseSBwZXJsKSBhbmQgb25lIHBlcmwgcGF0Y2guCiAgIAoyMDAzLTA5LTI2IDEwOjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNS0wLXBhdGNoZXMuMyksIFNOTVAueHM6CgogICBmaXggdXNlTnVtZXJpYyBvbmNlIGFuZCBmb3IgYWxsIChtYXliZSkKICAgCjIwMDMtMDktMjAgMjI6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNS0wLXBhdGNoZXMuMSksIGhyX3N3cnVuLmMKOgoKICAgUGF0Y2ggIzgwOTI0MyBmb3IgYnVnICM4MDg5MjAgZnJvbSBCb2IgUi4gZm9yIGZpeGluZyBwcm9jZXNzIG5hbWUgZGlzY3JlcGVuY3kgKHBzIHZzIFNOTVApCiAgIAoyMDAzLTA5LTIwIDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogaW5zdGFuY2UuYyAoVjUtMC1wYXRjaGVzLjEpLCBpbnN0YW5jZS5jOgoKICAgcGF0Y2ggIzgwNzQxNCBmb3IgYnVnICM3NTc5MjMgYnkgQm9iIFJvd2xhbmRzIHRvIGZpeCBpbnQgd2F0Y2hpbmcgb24gNjQgYml0IHN5c3RlbXMKICAgCjIwMDMtMDktMTcgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgdXNlIG5ldCBkYXRhX2xpc3RfYWRkX2RhdGEKICAgCjIwMDMtMDktMTcgMTc6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgY2hhbmdlIG1mZCBhcGkgcGFyYW1ldGVycwogICAKMjAwMy0wOS0xNyAxNzo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgYWx3YXlzIGNyZWF0ZSBhZ2VudF9yZXFfaW5mbyB3aGVuIGNyZWF0aW5nIGFzcDsgbW92ZQogICBnZXRidWxrIHJlb3JkZXIgY29kZSBpbnRvIGFuIGlubGluZSBmdW5jdGlvbiBmb3IgY29kZSByZWFkYWJpbGl0eTsgZGVwcmVjYXRlCiAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgYW5kIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdF9lcnJvciBpbiBmYXZvcgogICBvZiBuZXcgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcjsgZGVwcmVjYXRlIG5ldHNubXBfc2V0X2FsbF9yZXF1ZXN0c19lcnJvciBpbgogICBmYXZvciBvZiBuZXcgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcl9hbGw7IHRyeSBhbmQgcmV0dXJuIHVzZWZ1bCBlcnJvciBjb2RlcwogICAKMjAwMy0wOS0xNyAxNzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg6CgogICBtYWtlIHN1cmUgcGFyYW1zIGFyZSB1bmlxdWUKICAgCjIwMDMtMDktMTcgMTc6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYXV0b2hlYWRlciB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCiAgIAoyMDAzLTA5LTE3IDE3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9lbnVtLm0yaToKCiAgIHNldHVwIGZvciBlbnVtIHZhcnMKICAgCjIwMDMtMDktMTcgMTc6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICByZW1vdmUgY3JlYXRlX3VuZG9fY29udGV4dCAoYXNzdW1pbmcgdW5kb19jb250ZXh0ID09IGRhdGFfY29udGV4dCBmb3Igbm93KTsKICAgZml4IGxvZyBsZXZlbCBtYWNybzsgYWxsb2NhdGVfZGF0YV9jb250ZXh0IG1vdmVkIGVsc2V3aGVyZQogICAKMjAwMy0wOS0xNyAxNzowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGZpeCBwYXJhbWF0ZXIgdHlwZTsKICAgCjIwMDMtMDktMTcgMTY6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGRvbid0IG5lZWQgc291cmNlIGRpciBpZiB3ZSB1c2UgbmV3IG5ldC1zbm1wLWNvbmZpZyAtLWJ1aWxkLWluY2x1ZGVzOyBhZGQKICAgYnVpbGQvc3JjIGRpciAtSSBwYXRocyBiZWZvcmUgYmFzZSBjZmxhZ3MKICAgCjIwMDMtMDktMTcgMTY6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGFkZCBvYmplY3Rfc3ludGF4X2NoZWNrIHByb2Nlc3Npbmc7CiAgIAoyMDAzLTA5LTE3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBvbmx5IGluY2x1ZGUgcGFyZW50LXNldCBpZiBkYXRhIGNvbnRleHQgaXMgZ2VuZXJhdGVkICYgYWxsb2NhdGVkCiAgIAoyMDAzLTA5LTE3IDE2OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHBlciBub2RlIHNldHVwIGZvciBlbnVtcwogICAKMjAwMy0wOS0xNyAxNjo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICBnZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICBuZXcgZmlsZSB0byBzZXR1cCBlbnVtcyB2YXJzCiAgIAoyMDAzLTA5LTE3IDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtZW51bXMubTJjOgoKICAgbmV3IGZpbGUgdG8gZ2VuZXJhdGUgZW51bXMgaGVhZGVyIGZpbGUKICAgCjIwMDMtMDktMTcgMTY6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLAogICBnZW5lcmljLWN0eC1zZXQubTJpLCBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIG0yY19zZXR1cF90YWJsZS5tMmksIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmkKOgoKICAgbmV3IG0yY19kYXRhX2l0ZW0gZm9yIGdldHRpbmcgdG8gZGF0YSBpdGVtcywgc28gaW5jbHVkZXMgZG9uJ3QgbmVlZCB0byBrbm93CiAgIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBkYXRhLT5pdGVtIG9yIGRhdGEuaXRlbS4KICAgCjIwMDMtMDktMTcgMTY6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICBtb3ZlIHNvbWUgc2V0dXAgZm9yIGVudW1zIHRvIG0yY19zZXR1cF9ub2RlIGFuZCBuZXcgbTJjX3NldHVwX2VudW07IGFkZCBzb21lCiAgIGNvbW1lbnRzIGFuZCBleGFtcGxlcyB0byBkb2N1bWVudCBwcm9jZXNzIGZsb3c7IG1vdmUgc29tZSBjb21tZW50cyB0byB0aGUKICAgdG9wIG9mIHRoZSBoZWFkZXIgaW5zdGVhZCBmb3IgZWFjaCBub2RlOyBtYWtlIHN1cmUgaW50ZXJuYWwgbWFwcGluZwogICBkZWZpbmVzIGFyZSB1bmlxdWUgcGVyIG5vZGUKICAgCjIwMDMtMDktMTcgMTY6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgdXNlIGRveHlnZW4gZGVwcmVjYXRlZCB0YWcgaW5zdGVhZCBvZiBzaW1wbGUgY29tbWVudHMKICAgCjIwMDMtMDktMTcgMTY6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgY2hhbmdlIEZJUlNUIHRvIHVzZSBmaW5kX25leHQgaW5zdGVhZCBvZiBmaW5kOyBhZGQKICAgZnVuYyBwb2ludGVyIGZvciBpdGVtIG1lbW9yeSBmcmVlCiAgIAoyMDAzLTA5LTE3IDE2OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaDoKCiAgIHByb3RvdHlwZSBmb3IgbmV3IGNoZWNrX3ZiX3R5cGUKICAgCjIwMDMtMDktMTcgMTM6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50czsgYWRkIGFnZW50X3JlcXVlc3RfaW5mbyBwdHIgdG8gcmVxdWVzdF9pbmZvOyBhZGQKICAgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcjsgZGVwcmVjYXRlIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgYW5kCiAgIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdF9lcnJvcjsgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyByZW1vdmUgdW51c2VkIHBkdQogICBwb2ludGVyIGZyb20gYWdlbnRfcmVxdWVzdF9pbmZvCiAgIAoyMDAzLTA5LTE3IDEzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIGZvciBzZXQsIHNhdmUgcm93IGluIGZpcnN0IHJlcXVlc3Q7IGNoZyBtZmQgcGFyYW0gbGlzdDsgZG9uJ3QgY2FsbCBsYXRlcgogICBtb2RlcyB1bmxlc3Mgcm93IGV4aXN0czsgY2FsbCBsb3dlciBoYW5kbGVyczsKICAgCjIwMDMtMDktMTcgMTI6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsIHNubXBsaWIvZGF0YV9saXN0LmMKOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBhZGQgZGF0YV9saXN0X2FkZF9ub2RlLCBkYXRhX2xpc3RfYWRkX2RhdGEKICAgCjIwMDMtMDktMTcgMTI6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zCiAgIAoyMDAzLTA5LTE3IDEyOjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaDoKCiAgIG5ldyBuZXRzbm1wX2RhdGVhbmR0aW1lX3NldF9idWZfZnJvbV92YXJzCiAgIAoyMDAzLTA5LTE3IDExOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBuZXcgbmV0c25tcF9kYXRlYW5kdGltZV9zZXRfYnVmX2Zyb21fdmFycwogICAKMjAwMy0wOS0xNyAwOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNybwogICAKMjAwMy0wOS0xNyAwOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBuZXcgY2hlY2tfdmJfdHlwZQogICAKMjAwMy0wOS0xNyAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBiaW5hcnkgYXJyYXkgdGVzdCBiaW5hcnkKICAgCjIwMDMtMDktMTcgMDk6NDYgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVwZGF0ZSBmb3IgbmV3IGlubGluZSBtYWNyb3MgKEkgdGhpbmsgbWljcm9zbG90aCBzdXBwb3J0cyBpbmxpbmUpCiAgIAoyMDAzLTA5LTE3IDA5OjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgaHB1eC5oLCBpcml4LmgKLCBvc2Y1Lmg6CgogICB0dXJuIG9mZiBuZXQtc25tcCB1c2Ugb2YgaW5saW5lIGZvciBub24tZ2NjIGNvbXBpbGVycyAoZG9uJ3QgdW5kZWYgaW5saW5lKQogICAKMjAwMy0wOS0xNyAwOTozOCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBkZWZpbmUgKGFuZCBjb21tZW50KSBtYWNyb3MgZm9yIGhhbmRsaW5nIGlubGluZSB1c2UgaW4gbmV0LXNubXAKICAgCjIwMDMtMDktMTcgMDk6MzcgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBtdiBidWlsZCBkaXIgY2hlY2sgdG8gc3Vicm91dGluZTsgYWRkIG1pc3NpbmcgTlNDX1NSQ19MSUJESVJTOyBhZGQgbmV3CiAgIC0tYnVpbGQtaW5jbHVkZXMKICAgCjIwMDMtMDktMTcgMDk6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgLVdpbmxpbmUgdG8gZGV2IGZsYWdzCiAgIAoyMDAzLTA5LTE3IDA5OjMzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBnaXZlIHJlYXNvbiB3aGVuIHJlLXJ1bm5pbmcgY29uZmlnLnN0YXR1cwogICAKMjAwMy0wOS0xNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgcGV0ZXIgaGlja3MKICAgCjIwMDMtMDktMTYgMTc6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgUGF0Y2ggZnJvbSBQZXRlciBIaWNrcyBmb3IgYSBuZXcgZ2V0X3RhYmxlIGZ1bmN0aW9uCiAgIAoyMDAzLTA5LTE2IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAoVjUtMC1wYXRjaGVzLjEpLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggZnJvbSBLYXRzdWhpc2EgQUJFIGZyb20gLXVzZXJzIHRvIGZpeCBhIG1hc2tpbmcgcHJvYmxlbQogICAKMjAwMy0wOS0xMiAxMjo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC86IFJFTEVBU0UtSU5TVFJVQ1RJT05TLCBuZXQtc25tcC5zcGVjOgoKICAgLSBtaW5vciBjaGFuZ2VzIGZvciBpbXByb3ZlZCBwZXJsIE1ha2VmaWxlLlBMIGFyZ3VtZW50IHN1cHBvcnQgKD49IDUuMC45KQogICAKMjAwMy0wOS0xMiAxMTowMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gKFY1LTAtcGF0Y2hlcy4yKSwgTWFrZWZpbGUuaW46CgogICBQYXRjaCBmb3IgLS13aXRoLXBlcmwtbW9kdWxlcyBleHRyYSBhcmd1bWVudCBzdXBwb3J0CiAgIAoyMDAzLTA5LTEyIDA2OjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wOS0xMiAwNjoyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtaXMtbWF0Y2hlZCBwYXJlbnMKICAgCjIwMDMtMDktMTEgMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldyBuZXRzbm1wX2RhZW1vbml6ZSBsaWJyYXJ5IGNhbGwKICAgCjIwMDMtMDktMTEgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBtb3ZlIGNvbW1lbnRzIGFib3V0IHJvdXRpbmVzIGNsb3NlciB0byByb3V0aW5lcyB0byByZWR1Y2UgY29uZnVzaW9uCiAgIAoyMDAzLTA5LTExIDE1OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgQGRlYnVnQCB0b2tlbiB0byB0dXJuIGRlYnVnIG9uL29mZjsgcHJpbnQgbG9jYXRpb25zIGZvciBtb3JlIHdhcm5pbmdzL2Vycm9ycwogICAKMjAwMy0wOS0xMSAxNTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgZGVmYXVsdHMgZm9yIHR3byBuZXcgZmxhZ3M6IHJlYWRtZV92ZXJib3NlIGFuZCBkYXRhX3RyYW5zaWVudAogICAKMjAwMy0wOS0xMSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaToKCiAgIHJlYWRtZSBmb3IgRGF0ZUFuZFRpbWUKICAgCjIwMDMtMDktMTEgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmk6CgogICBhZGQgYnVmIGxlbiBwYXJhbSB0byBuZXRzbm1wX2RhdGVhbmR0aW1lX3NldAogICAKMjAwMy0wOS0xMSAxNTozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHVuLWNvbW1lbnQgaW5jbHVkZSBvZiBlbnVtcyBoZWFkZXI7IG1vdmUgYWxsIGRhdGEgY29udGV4dCBwcm9jZXNzaW5nIGludG8KICAgaW5jbHVkZTsgZG9uJ3QgYXNzdW1lIHBvaW50ZXJzIHRvIGRhdGEvdW5kbyBjb250ZXh0czsgb25seSBkZWZpbmUgcHJvdG90eXBlCiAgIGZvciBhbGxvY2F0ZV9kYXRhIGlmIG5lZWRlZDsgcnVuIGVudW0gaGVhZGVyIGNvbmYgZmlsZTsgcnVuIG5ldyByZWFkbWUgY29uZiBmaWxlCiAgIAoyMDAzLTA5LTExIDE0OjEyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGJ1aWxkLWxpYi1kZXBzCiAgIAoyMDAzLTA5LTExIDE0OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBvcGVuIGZpbGUgZWFybGllcjsgdXNlIG5ldyB2YXIgZm9yIGRlZmF1bHQgTkVUU05NUERJUjsgZG9uJ3QgYXNzdW1lIE5FVFNOTVBESVIKICAgaXMgc291cmNlZGlyOyB1c2UgbmV3IG5ldC1zbm1wLWNvbmZpZyBvcHRpb25zIGZvciBnZXQgbGliIGRpcnMvZGVwcwogICAKMjAwMy0wOS0xMSAxMzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluY2x1ZGUgbmV3IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZSBpZiBkYXRhX2FsbG9jYXRlIHNldCBhbmQgZGF0YV9jb250ZXh0IGlzCiAgIGdlbmVyYXRlZDsgbW92ZSB0YWJsZV8oYWxsb2NhdGV8cmVsZWFzZSlfY3R4IGhlcmUKICAgCjIwMDMtMDktMTEgMTM6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIG5ldyBmaWxlIGZvciBhbGxvY2F0ZS9yZWxlYXNlIG9mIGRhdGEgY29udGV4dAogICAKMjAwMy0wOS0xMSAxMzo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgbW92ZSBkYXRhIGFsbG9jYXRlL3JlbGVhc2UgdG8gaXQncyBvd24gaW5jbHVkZTsgb25seSBpbmNsdWRlIGl0IGlmIGRhdGFfYWxsb2NhdGUKICAgc2V0IGFuZCBkYXRhX2NvbnRleHQgaXNuJ3QgZ2VuZXJhdGVkCiAgIAoyMDAzLTA5LTExIDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpCiwgbWZkLXJlYWRtZS5tMmM6CgogICBuZXcgcmVhZG1lIGdlbmVyYXRpb24KICAgCjIwMDMtMDktMTEgMTM6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHdyYXAgZ2V0X2ZpcnN0L2dldF9uZXh0IHNvIHdlIGNhbiBtb3ZlIGluZGV4Mm9pZCBoZXJlIGFuZCBtYWtlIGl0IHN0YXRpYwogICAKMjAwMy0wOS0xMSAxMzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgb25seSBnZW5lcmF0ZSB0YWJlX2dldF9kYXRhIGZvciB0cmFuc2llbnQgZGF0YTsgbW92ZSBpbmRleDJvaWQgaW50byBpbnRlcmZhY2UKICAgY29kZTsgZ2VuIGRpZmZlcmVudCBjb2RlIGJhc2VkIG9uIGRhdGEgdHJhbnNpZW50IHNldHRpbmcKICAgCjIwMDMtMDktMTEgMTM6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGRlZmF1bHQgdG8gZ2VuZXJhdGVkLCBub24tYWxsb2NhdGVkIGRhdGFfY29udGV4dAogICAKMjAwMy0wOS0xMSAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIGZpeCByZW5hbWVkIHZhcgogICAKMjAwMy0wOS0xMSAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgZG9uJ3QgaW5jbHVkZSBlbnVtIHN0dWZmIGluIG9pZCBoZWFkZXIKICAgCjIwMDMtMDktMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHJlbW92ZSB1bnVzZWQgb3duZXIgcHRyCiAgIAoyMDAzLTA5LTExIDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaToKCiAgIGZpeCBsZW5fcHRyIHZhcmlhYmxlIG5hbWUKICAgCjIwMDMtMDktMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtY2hhci5tMmk6CgogICBkZWZpbmUgSVNfU0VUXyogbWFjcm9zIGhlcmUgaW5zdGVhZCBvZiBpbiBoZWFkZXIKICAgCjIwMDMtMDktMTEgMTM6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpOgoKICAgbWVyZ2UgZGF0YSBzdHJ1Y3QgYmFjayBpbnRvIHNpbmdsZSB0eXBlZGVmOyBkb24ndCBnZW5lcmF0ZSBzdHJ1Y3QgaWYgdXNlcgogICBzcGVjaWZpZWQgZXhpc3Rpbmcgc3RydWN0OyBhZGQgKiBpbiB0eXBlZGVmIGlmIGRhdGFfYWxsb2NhdGUgc2V0CiAgIAoyMDAzLTA5LTExIDEzOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWNvcHkubTJpOgoKICAgcmVtb3ZlIGV4YW1wbGUgc3RhcnQvZW5kIChwYXJlbnQgZGVjaWRlcyB0aGF0KQogICAKMjAwMy0wOS0xMSAxMzozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIG1vcmUgZGlzdGluY3RpdmUgc2VwYXJhdG9yIGJlZm9yZSB0YWJsZXMKICAgCjIwMDMtMDktMTEgMTM6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICByZW1vdmUgSVNfU0VUXyogbWFjcm9zOyB0d2VhayBjb25kaXRpb25zIGZvciBnZW5lcmF0aW5nIGVudW1zIGFuZCBtYXBwaW5nCiAgIG1hY3JvcwogICAKMjAwMy0wOS0xMSAxMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBuZXcgbmV0c25tcF9kYWVtb25pemUKICAgCjIwMDMtMDktMTEgMTM6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICByZWR1Y2Ugc2NvcGUgb2Ygc3VuJ3MgY29weXJpZ2h0IGNsYWltOyBiYWlsIGlmIG5ldC1zbm1wLWNvbmZpZyBub3QgaW5jbHVkZWQ7CiAgIHByb3RvdHlwZSBmb3IgbmV3IG5ldHNubXBfZGFlbW9uaXplCiAgIAoyMDAzLTA5LTExIDEyOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmM6CgogICBmaXggY29tbWVudCB0eXBvOyBkb2N1bWVudCBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbiBhbmQgbW92ZSBvbmUgbGluZSB0bwogICBtYWtlIHdpbmRvdyBzbWFsbGVyCiAgIAoyMDAzLTA5LTExIDEyOjU1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgdXNlIHZhcnMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB3aGF0IGZsYWdzIGFyZSB3aGF0IGluIGdlbmVyYXRlZAogICB2ZXJzaW9uOyBncm91cCBzaW1pbGFyIG9wdGlvbnMgdG9nZXRoZXI7IGFkZCBvcHRpb25zIHRvIHRvIGdldCBzb3VyY2UKICAgZGlyZWN0b3J5IGFuZCBsaWIgcGF0aCBpbiBidWlsZCBkaXI7IGFkZCAtLWJhc2Utc3ViYWdlbnQtbGlicyAobm8gbGliIHBhdGgpLAogICAtLWxpYmRpcgogICAKMjAwMy0wOS0xMSAwODozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWcuaW4KICAgCjIwMDMtMDktMTEgMDg6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB0cmFwIGJhZCBvcHRpb25zIC0td2l0aC1tb2R1bGVzIG9yIC0td2l0aC1vdXQtbW9kdWxlcwogICAKMjAwMy0wOS0wNSAyMzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FIChWNS0wLXBhdGNoZXMuNyksIFJFQURNRToKCiAgIGFkZGVkIEJvYiBSb3dsYW5kcwogICAKMjAwMy0wOS0wNSAyMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmMgKFY1LTAtcGF0Y2hlcy5bMiwyXSksCiAgIHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjODAwNTYxIGZyb20gQm9iIFJvd2xhbmRzIHRvIGZpeCA2NGJpdCBwcm9ibGVtcyAoLT4gc2l6ZV90KQogICAKMjAwMy0wOS0wNSAyMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjUtMC1wYXRjaGVzLjEpLCBwcm90b2NvbC5jCjoKCiAgIFBhdGNoICM4MDA0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIDY0IGJpdCBhZ2VudHggcHJvYmxlbXMKICAgCjIwMDMtMDktMDUgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcHVzbS5jOgoKICAgUGF0Y2ggIzc5MjAwOCBmcm9tIFRob21hcz8gdG8gYWxsb3cgdXNtVXNlciB0b2tlbnMgdG8gb3ZlcnJpZGUgcHJldmlvdXMgZW50cmllcwogICAKMjAwMy0wOS0wNSAyMjowNCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwKICAgc25tcG5ldHN0YXQuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHRyYW5zbGF0ZS4xLmRlZiAoVjUtMC1wYXRjaGVzLlsyLDIsMSwxLDEsMSwxLDEsMV0pLCBtaWIyYy4xLmRlZgosIG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwosIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwKICAgc25tcG5ldHN0YXQuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLAogICBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZjoKCiAgIFBhdGNoICM3ODk0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIGEgbG9uZyBuZWVkZWQgb3ZlcmhhdWwgb2YgdGhlIG1hbnVhbCBwYWdlcy4KICAgCjIwMDMtMDktMDUgMjE6MjEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjUtMC1wYXRjaGVzLls5LDksOV0pLAogICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgb3B0aW9uYWwgYXJndW1lbnRzIHRvIHRoZSAtLXdpdGgtcGVybC1tb2R1bGVzIGZsYWcgZm9yIHBhc3NpbmcgZG93bgogICAKMjAwMy0wOS0wNSAxNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAogICAoVjUtMC1wYXRjaGVzLls0LDJdKSwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gZml4IGEgZ2V0YnVsayBidWcgcG9pbnRlZCBvdXQgYnkgSnVyaWogU21ha292LgogICAKMjAwMy0wOS0wNSAwNjoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsIGFnZW50L2FnZW50X3RyYXAuYwo6CgogICBSZS13cml0dGVuIGludGVybmFscyBvZiBhZ2VudCB0cmFwIGdlbmVyYXRpb24uCiAgIFdvcmsgd2l0aCBzZXBhcmF0ZSB2MSBhbmQgdjIgdGVtcGxhdGUgUERVcywgYW5kIHNlcGFyYXRlCiAgIChzdGFuZGFsb25lKSByb3V0aW5lcyB0byBjb252ZXJ0IGJldHdlZW4gdGhlbSwgZm9sbG93aW5nIFJGQyAyNTc2LAogICBIb3BlZnVsbHkgYSBzb21ld2hhdCBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gYmVmb3JlLAogICAKMjAwMy0wOS0wMiAyMzowOSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBuZXcgc3BlYyB0byBpbmNsdWRlIGJ1aWxkaW5nIHRoZSBwZXJsIG1vZHVsZXMuCiAgICAgLSBkb25lIGluIHNvcnQgb2YgYSB0ZW1wb3JhcnkgaGFja3kgd2F5IHRpbGwgcHJvcGVyIHN1cHBvcnQgaXMgcHV0CiAgICAgICBkaXJlY3RseSBpbnRvIHRoZSBtYXN0ZXIgTWFrZWZpbGUgdG8gc3VwcG9ydCBvcHRpb25hbCBhcmd1bWVudHMKICAgICAgIGJlaW5nIHBhc3NlZCB0byB0aGUgTWFrZWZpbGUuUEwgc2NyaXB0LgogICAKMjAwMy0wOS0wMiAyMzowNyAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSB0byBpbmNsdWRlIFJQTSBidWlsZGluZyBpbnN0cnVjdGlvbnMuCiAgIAoyMDAzLTA5LTAyIDIzOjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgTW9kaWZpY2F0aW9ucyB0byBzdXBwb3J0IHBlcmwgYW5kIGJ1aWxkaW5nIHNvdXJjZSBhbmQgYmluYXJ5IGF0IG9uY2UuCiAgIAoyMDAzLTA5LTAyIDE0OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gdG8gbm90IHNvdXJjZSB+Ly5uc2ItbmlnaHRseTsgZG9uJ3QgcmVtb2JlIGJ1aWxkIGRpciBvbiBzdWNjZXNzIGhlcmUKICAgCjIwMDMtMDktMDIgMTQ6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhbGxvdyBlbnYgdmFycyB0byBvdmVycmlkZSBkZWZhdWx0cyBmb3IgbW9yZSBvcHRpb25zOyByZW5hbWUgREFURSB0bwogICBOU0JfREFURTsgb25seSBzY3AgbWFrZSBmaWxlcyBmcm9tIHRoaXMgcnVuOyBhZGQgdW5hbWUgdG8gb3V0cHV0CiAgIAoyMDAzLTA5LTAxIDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHBydW5lIGRpc3QvcnBtIGZyb20gZXRhZ3MgcmVzdWx0cwogICAKMjAwMy0wOC0yOCAwMjowMiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEEgY29uZmlndXJlIHRva2VuIHRvIGNvbnRyb2wgdGhlIGFkZHJlc3Nlcy9wb3J0cyB0aGF0IHRyYXBkIGxpc3RlbnMgb24uCiAgIAoyMDAzLTA4LTIyIDAyOjM4ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIERvY3VtZW50IHRoZSBkZWZhdWx0IHZlcnNpb24gY2hhbmdlLgogICAKMjAwMy0wOC0yMSAxNDoyOCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBtYWtlIHVwbG9hZCB0YXJiYWxsIG5hbWUgYmFzZWQgb24gZGF0ZQogICAKMjAwMy0wOC0yMSAwMTo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSWYgYSBHRVRCVUxLIGhpdHMgdGhlIGVuZCBvZiB0aGUgTUlCIHRyZWUsIG1ha2Ugc3VyZSBhbnkgZW1wdHkgdmFyYmluZHMKICAgYXJlIHJldHVybmVkIGFzICdlbmRPZk1pYlZpZXcnIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuICguMC4wID0gTlVMTCkKICAgCiAgIElmICphbGwqIHRoZSByZXBlYXRpbmcgdmFyYmluZHMgaGl0IHRoZSBlbmQgb2YgdGhlIE1JQiB0cmVlLCB0cnVuY2F0ZQogICBhZnRlciB0aGUgZmlyc3QgZnVsbCBlbXB0eSByb3cuCiAgIAoyMDAzLTA4LTIxIDAxOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJZiB0aGVyZSdzIGEgbWl4dHVyZSBvZiAic3RpbGwgYWN0aXZlIiByZXBldGl0aW9ucywgYW5kIG9uZXMgdGhhdCBoYXZlCiAgIGFscmVhZHkgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBPSUQgdHJlZSwgdGhlbiBzb21lIG9mIHRoZSB2YXJiaW5kIHN0cnVjdHVyZXMKICAgbWF5IHdlbGwgYmUgTlVMTC4KICAgICBJdCdzIHByZWZlcmFibGUgdG8gc2tpcCB0aGVzZSwgYW5kIGNvbnRpbnVlIHByb2Nlc3NpbmcgZXZlcnl0aGluZyBlbHNlLAogICByYXRoZXIgdGhhbiBjcmFzaCB0aGUgc2VydmVyOi0pCiAgIAoyMDAzLTA4LTIxIDAxOjI5ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBEZWZhdWx0IHRvIGdsb2JhbCBTTVVYIGFjY2VzcyAoYXMgY3VycmVudGx5KSwgYnV0IHN1cHBseSBhIGNvbmZpZ3VyZQogICBvcHRpb24gdG8gc2V0IGRlZmF1bHQgU01VWCBhY2Nlc3MgdG8gYmUgbG9jYWxob3N0IG9ubHkuCiAgIEhhcHB5IG5vdz8KICAgCjIwMDMtMDgtMjEgMDE6MjQgIGR0czEyCgogICAqIGFjY29uZmlnLmg6CgogICBFbnN1cmUgdGhhdCB0aGUgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIHRva2VuIHJlbWFpbnMgYXZhaWxhYmxlCiAgIHdoZW4gY29uZmlndXJlIHN5c3RlbSBmaWxlcyBhcmUgcmVjcmVhdGVkLgogICAKMjAwMy0wOC0yMCAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcG9zdC1CVUxLIHJlLW9yZ2FuaXNhdGlvbiwgc28gaXQncyBzb21ld2hhdAogICBjbGVhcmVyIHdoYXQncyBoYXBwZW5pbmcuICBJdCB0b29rIG1lIGJlc3QgcGFydCBvZiBhbiBob3VyIChwbHVzIGluc2VydGluZwogICBhc3NvcnRlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cykgdG8gbWFrZSBzZW5zZSBvZiB0aGlzIQogICAKMjAwMy0wOC0yMCAwMjozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVnaXN0ZXIgTUlCcyB1c2luZyB0aGUgbG93ZXN0LWxldmVsIGF2YWlsYWJsZSBuYW1lLCByYXRoZXIgdGhhbiB0aGUKICAgZmlyc3QgaGFuZGxlciBpbiB0aGUgY2hhaW4uICAgVGhpcyBubyBsb25nZXIgcmVzdWx0cyBpbiB0aGUgd2hvbGUgTUlCCiAgIHJlZ2lzdHJ5IGJlaW5nIGlkZW50aWZpZWQgYXMgImJ1bGtfdG9fZ2V0IiEKICAgCjIwMDMtMDgtMjAgMDI6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZXh0ZW5zaWJsZS5jLCBleHRlbnNpYmxlLmg6CgogICBVbnJlZ2lzdGVyIChyZWxvY2F0YWJsZSkgZXh0ZW5zaW9ucyB3aGVuIHJlLXJlYWRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4KICAgVGhpcyBhbGxvd3MgImV4ZWMiIGxpbmVzIHRvIGJlIHJlLWxvYWRlZCB3aXRob3V0IGNhdXNpbmcgdGhlIGFnZW50IHRvIGNyYXNoIQogICAKMjAwMy0wOC0xOSAwODoxMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBCZXR0ZXIgZml4IGZvciBCdWcgIzYzMDM0OC4gIFRyZWF0IGFsbCBEQlBSVCBjYWxscyBjb25zaXN0ZW50bHksIGFuZAogICBtYWtlIHN1cmUgdGhlIFBlcmxJT19wcmludGYgY2FsbCBpcyBwYXNzZWQgdGhlIGNvcnJlY3QgcGFyYW1ldGVyIGxpc3QuCiAgIAoyMDAzLTA4LTE5IDA3OjMxICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFdoYXRldmVyIHRoZSBjYXVzZSBvZiBidWcgIzYzMDM0OCB3YXMsIHRoaXMgaXNuJ3QgdGhlIGFuc3dlci4KICAgV2l0aCAnUGVybElPX2ZwcmludGYnLCBpdCBkb2Vzbid0IGNvbXBpbGUhICBNb3JlIGludmVzdGlnYXRpb24gbmVlZGVkLgogICAKMjAwMy0wOC0xOSAwMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBBbGxvdyB0aGUgKGNvbXBpbGUtdGltZSkgb3B0aW9uIG9mIHJlc3RvcmluZyBnbG9iYWwgYWNjZXNzIHRvIFNNVVggc2VydmljZXMuCiAgIElmIHRoZSBjb25zZW5zdXMgaXMgdGhhdCB0aGlzIHNob3VsZCBiZSB0aGUgZGVmYXVsdCAoYXMgY3VycmVudGx5KSwgdGhlbgogICBJJ3ZlIG5vIHN0cm9uZyBmZWVsaW5ncyBlaXRoZXIgd2F5LiAgRmVlbCBmcmVlIHRvIGFkanVzdCBhY2NvcmRpbmdseS4KICAgCjIwMDMtMDgtMTkgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQXV0b21hdGljYWxseSByZWxlYXNlIGV4cGlyZWQgY2FjaGUgcmVzb3VyY2VzLgogICAKMjAwMy0wOC0xOSAwMTo1MiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBJbnZhbGlkYXRlIHRoZSBjYWNoZSBvbiAoc3VjY2Vzc2Z1bCkgU0VUIHJlcXVlc3RzLgogICBUaGlzIGlzIGN1cnJlbnRseSBkb25lIHJlZ2FyZGxlc3MgLSBpdCB3b3VsZCBiZSBzZW5zaWJsZSB0byBtYWtlIGl0CiAgIGNvbmZpZ3VyYWJsZSBvbiBhIHBlci1jYWNoZSBiYXNpcy4KICAgCjIwMDMtMDgtMTggMTU6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgY29tbWVudCBvdXQgY29kZSB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gY2hlY2tlZCBpbiB5ZXQKICAgCjIwMDMtMDgtMTggMTU6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGZvciBjb3JyZWN0IG1ldGhvZCB0byBjbGVhbnVwIGNvbnRhaW5lciBmYWN0b3J5IGxpc3Q7IHJlbW92ZQogICByZWxlYXNlX2lmX3RvcCBhbmQgX2JhXyogZnVuY3Rpb25zCiAgIAoyMDAzLTA4LTE4IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXBkYXRlIHByb3RvdHlwZSBmb3IgY29ycmVjdCBmdW5jdGlvbiB0byBjbGVhbnVwIGNvbnRhaW5lciBmYWN0b3J5IGxpc3Q7IGZpeAogICBjb21tZW50IHR5cG9zOyByZW1vdmUgcmVsZWFzZV9pZl90b3AgcHJvdG90eXBlIGFuZCBjYWxsIGluIENPTlRBSU5FUl9GUkVFCiAgIAoyMDAzLTA4LTE4IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBjYWxsIGNvcnJlY3QgZnVuY3Rpb24gdG8gY2xlYW51cCBjb250YWluZXIgZmFjdG9yeSBsaXN0CiAgIAoyMDAzLTA4LTE4IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG9jdW1lbnQgc2VnZmF1bHQgbG9jYXRpb24gZm9yIGZ1dHVyZSBmaXhpbmcKICAgCjIwMDMtMDgtMTggMDk6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIEJyaW5nIGludG8gbGluZSB3aXRoIG5ldyBjYWNoZSByZWxlYXNlIEFQSSBkZWZpbml0aW9uLgogICAKMjAwMy0wOC0xOCAwODo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICBzb3VyY2UgZm9yIHRhYmxlX21mZAogICAKMjAwMy0wOC0xOCAwODozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oOgoKICAgb3Bwcy4gIG1pc3NlZCB0aGUgaGVhZGVyCiAgIAoyMDAzLTA4LTE4IDA4OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIGRvbid0IHJlZmVyZW5jZSBub24tZXhpc3RlbnQgZmlsZQogICAKMjAwMy0wOC0xOCAwODowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBoZWFkZXIgZm9yIHRhYmxlX21mZAogICAKMjAwMy0wOC0xOCAwNjozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaDoKCiAgIGhlYWRlciBmb3IgY29udGFpbmVyIGl0ZXJhdG9yCiAgIAoyMDAzLTA4LTE4IDA1OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgTmV3IHY1LXN0eWxlIGhhbmRsZXJzIHNob3VsZCBvbmx5IGV2ZXIgcmVjZWl2ZSBNT0RFX0dFVCByZXF1ZXN0cy4KICAgTG9nIGEgd2FybmluZyBmb3Igb3RoZXIgdW5leHBlY3RlZCAob3IgdW5yZWNvZ25pc2VkKSByZXF1ZXN0IG1vZGVzLgogICAKMjAwMy0wOC0xOCAwMzoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYzoKCiAgIFVzZSB0aGUgbmV3IChpbnRlcm5hbCkgY2FjaGUgdmFsaWRpdHkgY2hlY2tpbmcuCiAgIFFuOiBIb3cgY2FuIHdlIGFjY2VzcyB0aGUgcmVxdWVzdC1pbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgKG9yIHNpbWlsYXIpCiAgICAgICBmcm9tIHdpdGhpbiBpdGVyYXRvciBkYXRhX3BvaW50IHJvdXRpbmVzPwogICAKMjAwMy0wOC0xOCAwMzoxNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgUHJvdmlkZSBhbiBBUEkgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjYWNoZSBpcyBjdXJyZW50bHkgdmFsaWQuCiAgIFJlbGVhc2Ugb2xkIGNhY2hlIHJlc291cmNlcyBiZWZvcmUgbG9hZGluZyB0aGUgbmV3IHZhbHVlcy4KICAgTkI6IFRoaXMgaW52b2x2ZXMgYSBjaGFuZ2UgaW4gdGhlICdmcmVlJyBob29rIEFQSS4KICAgCjIwMDMtMDgtMTggMDM6MTQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIFRoZSBtYWNybyBmdW5jdGlvbiBkZWZpbml0aW9ucyByZWx5IG9uIGxvZ2dpbmcgcm91dGluZXMgZnJvbSAnc25tcF9sb2dnaW5nLmMnCiAgIHNvIHRoZSBhcHByb3ByaWF0ZSBkZWNsYXJhdGlvbnMgYW5kIGRlZmluZWQgY29uc3RhbnRzIG5lZWQgdG8gYmUgYXZhaWxhYmxlLgogICAKMjAwMy0wOC0xOCAwMzoxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNvY2tldCBhZGRyZXNzIHRvIGxpc3RlbiBmb3IgU01VWCBjb25uZWN0aW9ucyBvbi4KICAgCiAgIE5vdGU6IENoYW5nZSBvZiBiZWhhdmlvdXIgLSB0aGlzIHBhdGNoIGRlZmF1bHRzIHRvIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMKICAgZnJvbSB0aGUgbG9jYWxob3N0IG9ubHkuCiAgIAoyMDAzLTA4LTE4IDAyOjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdmlzaW9uYWwgc3VwcG9ydCBmb3Igc2VuZGluZyBjbGllbnQgcmVxdWVzdHMgZnJvbSBhIHNwZWNpZmllZCBpbnRlcmZhY2UKICAgb3Igc29ja2V0IGFkZHJlc3MuCiAgIFFuOiBTaG91bGQgdGhpcyBiZSBhcHBsaWVkIHRvIFRDUCBjb25uZWN0aW9ucyB0b28/CiAgICAgICBXaGF0IGFib3V0IG90aGVyIHRyYW5zcG9ydHM/CiAgIAoyMDAzLTA4LTE4IDAyOjUzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBJbXBsZW1lbnQgJ3NucHJpbnRmX2Rlc2NyaXB0aW9uJyByb3V0aW5lcywKICAgdG8gb3V0cHV0IE1JQiBkZWZpbml0aW9ucyB0byBhIHN0cmluZyByYXRoZXIgdGhhbiBhIGZpbGUuCiAgIAoyMDAzLTA4LTE3IDE2OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGZpeCBoYXJkY29kZWQgdmFyIG5hbWVzL2NvbnN0YW50cyAoZWVrISkKICAgCjIwMDMtMDgtMTcgMTY6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZW5hbWUgc29tZSB0eXBlZGVmczsgYWRkICpfcmVmXyogdHlwZWRlZnM7IG1ha2UgbmV0c25tcF9pbmRleCBmaXJzdCBpdGVtCiAgIGluIGN0eDsgbWFrZSBpbmRleCBsb2NhbCBpbnN0ZWFkIG9mIHB0cjsgcnVuIG5ldyBtZmQtYWNjZXNzLSotaGVhZGVyOyBhZGQKICAgc29tZSBwcm90b3R5cGVzLCBkZWJ1ZyBtc2dzOyB1cGRhdGUgaW5pdCB0byBzZXQgdXAgbWZkX3JlZ2lzdHJhdGlvbiwgY29udGFpbmVyLAogICAqX2dldF92YWx1ZXM7IGZpeCByZW5hbWVzIG1mZCByZWdpc3RyYXRpb24gcm91dGluZTsgcnVuIG5ldyBtYWtlZmlsZSBhbmQKICAgc3ViYWdlbnQgY29uZiBmaWxlcwogICAKMjAwMy0wOC0xNyAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluY2x1ZGUgbWZkIGhlYWRlcjsgbmV3ICpfZ2V0X3ZhbHVlczsgdHdlYWsgKl9nZXRfY29sdW1uOiBpbmNsdWRlIGFjY2Vzc2libGUKICAgaW5kZXhlcywgcHVzaCB2YXIgbWVtb3J5IGNoZWNrIHVwIGEgbGV2ZWwgKl9nZXRfdmFsdWVzIChzaG91bGQgZ28gdXAgb25lCiAgIG1vcmUsIGludG8gaGVscGVyIGluc3RlYWQgb2YgZ2VuZXJhdGVkIGNvZGUpOyBydW4gbmV3IG1mZF9hY2Nlc3NfKl9pbnRlcmZhY2UKICAgCjIwMDMtMDgtMTcgMTY6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIG1vdmUgcHJvY2VzcyBwcmludCBhZnRlciBub2FjY2VzcyB0ZXN0CiAgIAoyMDAzLTA4LTE3IDE2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBuZXcgKl8oYWxsb2NhdGV8cmVsZWFzZSlfKGRhdGF8Y3R4KTsgbW92ZSBwcm9jZXNzIHByaW50IGFmdGVyIG5vYWNjZXNzIHRlc3QKICAgCjIwMDMtMDgtMTcgMTY6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIHJlbmFtZSBhY2Nlc3MtKiB0byBtZmQtYWNjZXNzLSoKICAgCjIwMDMtMDgtMTcgMTY6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGFkZCBoZWFkZXI7IGluY2x1ZGUgZW51bXMgdG9vCiAgIAoyMDAzLTA4LTE3IDE2OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksIG1mZC1tYWtlZmlsZS5tMm0KLCBzdWJhZ2VudC5tMmM6CgogICBuZXcgbWZkIGRhdGEgYWNjZXNzIGNvbmYgZmlsZXMgKHdyYXAgYXJvdW5kIG5ldyBjb250YWluZXIgaXRlcmF0b3IpOyBuZXcgbWZkCiAgIGNvbmYgZmlsZXMgdG8gZ2VuZXJhdGUgbWFrZWZpbGUvc3ViYWdlbnQgbWFpbgogICAKMjAwMy0wOC0xNyAxNjozMSAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXNlIGNvbmZpZy5oIGRlZmluZSB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHdpbiBjYWxsYmFjayB0cmFuc3BvcnQsIGluc3RlYWQKICAgb2Ygd2luIHNwZWNpZmljIGlmZGVmcyBpbiBjb2RlCiAgIAoyMDAzLTA4LTE3IDE2OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBuZXcgZGVidWdtc2dfc3Vib2lkCiAgIAoyMDAzLTA4LTE3IDE2OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgY2hlY2sgZm9yIG51bGwgcHRyCiAgIAoyMDAzLTA4LTE3IDE2OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICByZW1vdmUgbm9hbGxvYyBmdW5jdGlvbnM7IHJlbmFtZSB0eXBlZGVmCiAgIAoyMDAzLTA4LTE3IDE2OjE4ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW1vdmUgbm9hbGxvYyBmdW5jdGlvbnMKICAgCjIwMDMtMDgtMTcgMTY6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIgYW5kIG5vYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAzLTA4LTE3IDE2OjE3ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGFkZCBvcHRpb25hbCB1cGxvYWQgb2Ygc3JjIHRhcmJhbGwgYWZ0ZXIgdXBkYXRlCiAgIAoyMDAzLTA4LTE3IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldyBuZXRzbm1wX3NwcmludF9yZWFsbG9jX29iamlkIChkb2Vzbid0IHVzZSBtaWJzKTsgcmV3b3JrIGlmZGVmcyBmb3IKICAgbmV0c25tcF9zcHJpbnRfcmVhbGxvY19vYmppZF90cmVlICYgRElTQUJMRV9NSUJfTE9BRElORwogICAKMjAwMy0wOC0xNyAxNToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBhZGQgbmV3IGNvbnRhaW5lciBpdGVyYXRvcgogICAKMjAwMy0wOC0xNyAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZG9uJ3QgcnVuIGluZGVudCBvbiBmaWxlcyB1bmxlc3MgdGhleSBlbmQgdy8gLmMgb3IgLmg7IHByaW50IG1vcmUgaW5mbyB3aGVuCiAgIGRpZSBvZiB1bmV4cGVjdGVkIGVsc2UKICAgCjIwMDMtMDgtMTcgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgbmV3IERFQlVHTVNHU1VCT0lEICYgc3VwcG9ydGluZyBjYXN0CiAgIAoyMDAzLTA4LTE3IDE1OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGZpeCBjb21tZW50cyB3aGljaCBleGNlZWQgODAgY2hhcnMKICAgCjIwMDMtMDgtMTcgMTU6MTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBuZXcgbmV0c25tcF9zcHJpbnRfcmVhbGxvY19vYmppZCBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBuZXcgbmV0c25tcF90YWJsZV9maW5kX25leHRfcm93IHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICBuZXcgbmV0c25tcF9lbmFibGVfc3ViYWdlbnQgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBuZXcgbmV0c25tcF9jaGVja19yZXF1ZXN0c19lcnJvciBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBuZXcgKHRlbXBvcmFyeT8pIGJhYnkgc3RlcHMgaGVscGVyCiAgIAoyMDAzLTA4LTE3IDE1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIGJhYnlfc3RlcHMuaCwgcm93X21lcmdlLmgsIHRhYmxlX21mZC5oCiAgIAoyMDAzLTA4LTE3IDE1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBkZWZpbmUgbmV3IGNhbiBiYWJ5IHN0ZXAgbW9kZSBmbGFnCiAgIAoyMDAzLTA4LTE3IDE1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV3IG5ldHNubXBfcmVmX3ZvaWQsIG5ldHNubXBfcmVmX3NpemVfdCB0eXBlZGVmcwogICAKMjAwMy0wOC0xNyAxNTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBiYWlsIGlmIG5ldC1zbm1wLWNvbmZpZyBoYXNuJ3QgYmVlbiBpbmNsdWRlZDsgYWRkIGNvbnRhaW5lci9hc3NlcnQgaGVhZGVycwogICAKMjAwMy0wOC0xNyAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGJhaWwgaWYgbmV0LXNubXAtY29uZmlnIGhhc24ndCBiZWVuIGluY2x1ZGVkOyBkb24ndCBpbmxjdWRlIHV0aWxpdGllcyB0d2ljZQogICAKMjAwMy0wOC0xNyAxNTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbmV3IG5ldHNubXBfZW5hYmxlX3N1YmFnZW50LCBvbmx5IGRlZmluZWQgaWYgVVNJTkdfQUdFTlRYX1NVQkFHRU5UX01PRFVMRSwgc28KICAgYSBsaW5rIGVycm9yIHdpbGwgb2NjdXIgaWYgYWdlbnR4IHN1cHBvcnQgbm90IGNvbXBpbGVkIGluCiAgIAoyMDAzLTA4LTE3IDE1OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGZpbmRfbmV4dF9yb3csIHVzZSBuZXcgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93OyBmaXggdHlwbwogICAKMjAwMy0wOC0xNyAxNTowMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG5vdGVzIGZvciBmdXR1cmUgZW5oYW5jZW1lbnRzOyBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrOyBuZXcKICAgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93CiAgIAoyMDAzLTA4LTE3IDE1OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIHNraXAgZ3JvdXBpbmcgaWYgb25seSAxIHZhcmJpbmQ7IG5vdGUgZm9yIGZ1dHVyZSBlbmhhbmNlbWVudHMKICAgCjIwMDMtMDgtMTcgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBiYWJ5X3N0ZXBzLCB0YWJsZV9tZmQgaGVscGVyczsgYnVpbGQgb2Jqcy9sb2JqcyBmcm9tIHNyY3MKICAgCjIwMDMtMDgtMTcgMTQ6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBuZXcgbmV0c21wX2NoZWNrX3JlcXVlc3RzX2Vycm9ycwogICAKMjAwMy0wOC0xNyAxNDo1OCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGNvZGUgcmV1c2UgKGNhbGxfaGFuZGxlcnMgdXNlcyBjYWxsX2hhbmRsZXIpOyBhZGQgbmV3IG1vZGUgdGV4dCBmb3IKICAgaGFuZGxlcl9jYW5fbW9kZSBzbGlzdAogICAKMjAwMy0wOC0xNiAwNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBtb3ZlIHNvbWUgcG9pbnRlciBzYXZpbmcgZm9yIFNUQVNIIHJlbGF0ZWQgc3R1ZmYgb3V0c2lkZSB0aGUgbW9yZQogICAgIGZyZXF1ZW50bHkgY2FsbGVkIGxvb3AuCiAgIAoyMDAzLTA4LTE1IDA0OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIG1hbi9zbm1wY21kLjEuZGVmLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTW92ZSBwcmVmaXgvc3VmZml4IG9wdGlvbnMgdW5kZXIgLUkKICAgCjIwMDMtMDgtMTUgMDM6MzMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb24ndCBhZGQgYSB0cmFpbGluZyBkb3QgaWYgd2UncmUgc2V0dGluZyBhIHByZWZpeCwgYnV0IG5vdCBhIHN1ZmZpeC4KICAgCjIwMDMtMDgtMTQgMDE6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBhbGxfaGVscGVycy5jLCBidWxrX3RvX25leHQuYywKICAgY2FjaGVfaGFuZGxlci5jLCBkZWJ1Z19oYW5kbGVyLmMsIGluc3RhbmNlLmMsCiAgIG1vZGVfZW5kX2NhbGwuYywgbXVsdGlwbGV4ZXIuYywgcmVhZF9vbmx5LmMsCiAgIHJvd19tZXJnZS5jLCBzY2FsYXIuYywgc2NhbGFyX2dyb3VwLmMsCiAgIHNlcmlhbGl6ZS5jLCB3YXRjaGVyLmM6CgogICBSZW9yZ2FuaXNlIHRoZSBhZ2VudCBoZWxwZXIgJ2RveHlnZW4nIHN0cnVjdHVyZSwgdG8gbWFrZSBpdCBsZXNzICJmbGF0Ii4KICAgR3JvdXAgImxlYWYtb2JqZWN0IiBoZWxwZXJzIHRvZ2V0aGVyLCBhbmQgaW50ZXJuYWwgInV0aWxpdHkiIGhlbHBlcnMgc2ltaWxhcmx5LgogICAKMjAwMy0wOC0xNCAwMTowOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVHJ5IHRvIGNhdGNoIChzb21lKSBQRFUgZHVhbC1mcmVlJ3MuCiAgIAoyMDAzLTA4LTE0IDAwOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAxIG9mIDIgbWVtb3J5IGxlYWtzIGZvdW5kIChvaywgSSBzYWlkIEkgd2Fzbid0IGdvaW5nIHRvIGZpbmQgaXQgYnV0Li4uKQogICAKMjAwMy0wOC0xMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluLCBhbGxfaGVscGVycy5jLAogICBzdGFzaF9jYWNoZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgLSBhZGRlZCBhIG5ldyBoZWxwZXIgdG8gYXV0by1jYWNoZSBkYXRhLiAgQ3VycmVudGx5IHRoZSBvbmx5CiAgICAgc3ViLW1vZHVsZSBzdXBwb3J0ZWQgYnkgdGhpcyBpcyB0aGUgdGFibGVfaXRlcmF0b3IsIGJ1dCBzaWduaWZpY2FudAogICAgIHNwZWVkIGltcHJvdmVtZW50cyBjYW4gYmUgc2VlbiB3aGVuIGNhY2hpbmcgb2YgaXRlcmF0b3IgZGF0YSBpcwogICAgIHR1cm5lZCBvbi4KICAgICAtIHRvIHRlc3QgYWRkIHRvIHNubXBkLmNvbmY6CiAgICAgICAgIGluamVjdEhhbmRsZXIgc3Rhc2hfY2FjaGUgTU9EVUxFIHRhYmxlX2l0ZXJhdG9yCiAgICAgICAoYSBnb29kIHRlc3QgbW9kdWxlIGlzIHRoZSBuc01vZHVsZVRhYmxlIHdoaWNoIGhhcyBhIGxvdCBvZiByb3dzKQogICAgIC0gd2FybmluZzogbm90IGhlYXZpbHkgdGVzdGVkLiAgU2VlbXMgb2sgZm9yIGF0IGxlYXN0IHRoZSBzaW1wbGUgY2FzZXMuCiAgIAoyMDAzLTA4LTEzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvc25tcF9hZ2VudC5oLCBsaWJyYXJ5L3NubXAuaAo6CgogICAtIGRlZmluZSBhIG5ldyBpbnRlcm5hbC11c2UgbW9kZTogIE1PREVfR0VUX0NBQ0hFCiAgIAoyMDAzLTA4LTEzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgdXNlIGNhbGxvYyB0byBpbml0aWFsaXplIGFuZCB6ZXJvIG1lbW9yeSAoZml4ZXMgYW4gZXJyb3Igc3BvdHRlZCBieSB2YWxncmluZCkuCiAgIAoyMDAzLTA4LTEzIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgc3BvdHRlZCBvbmUgbWVtb3J5IGxlYWsuCiAgIAoyMDAzLTA4LTEzIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIC0gYWRkZWQgYSAtQ3Qgb3B0aW9uIHRvIHNubXB3YWxrIHRvIGRpc3BsYXkgd2FsayBjbG9jayB0aW1lciByZXN1bHRzCiAgIAoyMDAzLTA4LTEzIDIyOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgLSBhZGRlZCBhIHBhcmVudCBub2RlIGZvciB1cHdhcmQgdHJhdmVyc2FsLgogICAtIGEgZ2V0bmV4dCBpbXBsZW1lbnRhdGlvbiB0aGF0IGFjdHVhbGx5IHdvcmtzIChmYWlybHkgaGVhdmlseSB0ZXN0ZWQpLgogICAKMjAwMy0wOC0xMyAyMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIG1vZGlmaWVkIHRoZSBmcmVlIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdGFrZSBhIGNhY2hlIGFyZ3VtZW50IGZvcgogICAgIGdlbmVyYWxpemluZyBpdCBhIGJpdCBtb3JlLgogICAKMjAwMy0wOC0xMyAyMjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIC0gSW1wbGVtZW50IG5ldHNubXBfaW5qZWN0X2hhbmRsZXJfYmVmb3JlKCkgd2hpY2ggdGFrZXMgYW4gYXJndW1lbnQgdG8KICAgICBkZXRlcm1pbmUgd2hlcmUgaW4gdGhlIGhhbmRsZXIgY2hhaW4gaXQgc2hvdWxkIGluamVjdCBzb21ldGhpbmcuCiAgIC0gTW9kaWZ5IHRoZSBpbmplY3RIYW5kbGVyIC5jb25mIHRva2VuIHRvIHRha2VuIGFuIG9wdGlvbmFsIGZpbmFsCiAgICAgQkVGT1JFIGFyZ3VtZW50LgogICAKMjAwMy0wOC0xMCAxMTozOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgbWlzYyBoaWdoIGxldmVsIGNvcHlyaWdodCBub3RlcyBhZGRlZCAoSUUsIHNlZSB0aGUgQ09QWUlORyBmaWxlLCAuLi4pLgogICAKMjAwMy0wOC0xMCAxMTozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBtaXNjIGNvcHlyaWdodCBub3RlcyBhZGRlZC4KICAgCjIwMDMtMDgtMDUgMDE6NDIgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENhdGNoIG1pc3NpbmcgcGFyYW1ldGVycyBpbiBjb21waWxlLXN1YmFnZW50IGhhbmRsaW5nIHRvbwogICAKMjAwMy0wOC0wNSAwMTozOCAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ2F0Y2ggbWlzc2luZyBwYXJhbWV0ZXJzIGluIGNyZWF0ZS1zbm1wdjMtdXNlciBoYW5kbGluZwogICAKMjAwMy0wOC0wNSAwMTozMiAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgVXNlICQxIHBhcmFtZXRlciBkaXJlY3RseSBpbiBjcmVhdGUtc25tcHYzLXVzZXIgcHJvY2Vzc2luZy4KICAgU29tZXdoYXQgbGVzcyBjb25mdXNpbmcgdGhhbiB3aXRoIHRoZSBhZGRpdGlvbmFsICRhcmcgcGFyYW1ldGVyLAogICBhbmQgbGVzcyBjaGFuY2Ugb2Ygc2hpZnRpbmcgYSBub24tZXhpc3RlbnQgdmFsdWUuCiAgIChSZWxldmFudCB0byBidWcgIzc1NTU3MSkKICAgCjIwMDMtMDgtMDIgMDY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZW9nL3VwZGF0ZSBjb2RlIGdlbmVyYXRpb247IHJ1biBtZmQtZGF0YS1hY2Nlc3M7IHNldCBoYW5kbGVyIFJXUklURSBpZiB0YWJsZQogICB3cml0YWJsZTsgY2hnIHRhYmxlIHJlZ2lzdHJhdGlvbiB0eXBlOyBpbmNsdWRlIG5ldyB0YWJsZSBzZXR1cAogICAKMjAwMy0wOC0wMiAwNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHNpbXBsaWZ5IHBhcmFtIGxpc3RzOyB1cGRhdGUgY29kZSBnZW5lcmF0aW9uCiAgIAoyMDAzLTA4LTAyIDA2OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHNldHVwIG5vZGUgc3JoIGluZGVwZW5kZW50IG9mIGdldCB0ZW1wIHVzZQogICAKMjAwMy0wOC0wMiAwNjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgYmUgbW9yZSBwYXJhbm9pZCBhYm91dCB0ZW1wb3Jhcnkgb3ZlcnJpZGUgb2YgJG5hbWUKICAgCjIwMDMtMDgtMDIgMDY6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIGNoZyBpbmRlbnRpb24gb24gc29tZSBjb21tZW50IGJsb2NrczsgdXNlIG5ldyBub2RlLXN0b3JhZ2UubTJpOyBybXYgZGF0YSBwdHIKICAgCjIwMDMtMDgtMDIgMDY6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLAogICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBub2RlLXN0b3JhZ2UubTJpOgoKICAgbmV3IGNvZGUgdGVtcGxhdGVzCiAgIAoyMDAzLTA4LTAyIDA2OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBnZW5lcmljLWdldC1vaWQubTJpLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgIG1mZC1kYXRhLWdldC5tMmMsIG1mZC1kYXRhLXNldC5tMmMsIG5vZGUtZ2V0Lm0yaSwKICAgbm9kZS1zZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZDoKCiAgIGRhdGEgYXQgY3R4LT5kYXRhLCBub3QgY3R4OyBjaGcgaW5kZW50aW9uIG9uIGJsb2NrIGNvbW1lbnRzOyBmaXggc29tZSBtaXNzZWQKICAgbmFtZSBjaGFuZ2VzOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29uZiBmaWxlczsgc2ltcGxpZnkgc29tZSBwYXJhbSBsaXN0czsKICAgYWRkIHNvbWUgYXNzZXJ0cwogICAKMjAwMy0wNy0zMSAwNzoyMyAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRG9uJ3Qgc2hpZnQgYXdheSBjb21tYW5kLWxpbmUgcGFyYW1ldGVycyB0aGF0IHByb2JhYmx5IGFyZW4ndCB0aGVyZQogICAoYW5kIGNlcnRhaW5seSBhcmVuJ3QgcmVsZXZhbnQgdG8gdGhlIGFjdGlvbiBiZWluZyBoYW5kbGVkKQogICBSZXBvcnRlZCBieSBWaW5vZCBKb2huc29uCiAgIAoyMDAzLTA3LTMxIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGFuZGxlIHByb3hpZWQgU0VUcyBpbiB0aGUgQUNUSU9OIHBhc3MsIHJhdGhlciB0aGFuIHRoZSBjb21taXQgcGFzcy4KICAgVGhpcyBhbGxvd3MgZmFpbHVyZXMgaGVyZSB0byBiYWNrIG91dCBhc3NpZ25tZW50cyBpbiBvdGhlciBtb2R1bGVzLgogICBXZSBjYW4ndCBwcm9jZXNzIFVORE8gcmVxdWVzdHMgc3VjY2Vzc2Z1bGx5LCBidXQgd2UgY2FuIGF0IGxlYXN0IHJlcG9ydAogICB0aGlzIGZhY3QuICBXaGljaCBpcyBwcmVmZXJhYmxlIHRvIGNsYWltaW5nIGZhaWx1cmUgYnV0IChzaWxlbnRseSkKICAgYWN0aW5nIG9uIHNvbWUgYXNzaWdubWVudHMuCiAgIAoyMDAzLTA3LTMxIDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRG9uJ3QgbG9nIHdhcm5pbmdzIGZvciBkZWxpYmVyYXRlbHkgdW51c2VkIFNFVCBwYXNzZXMuCiAgIAoyMDAzLTA3LTMxIDAzOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGFuZGxlIFNOTVAgZXJyb3JzIGZyb20gcHJveGllZCBzZXJ2ZXJzIGNvcnJlY3RseS4KICAgUGFzc2luZyB0aGUgZXJyb3IgYmFjayB1cCB0aGUgY2hhaW4gc2VlbXMgdG8gRG8gVGhlIFJpZ2h0IFRoaW5nLgogICAKMjAwMy0wNy0zMSAwMzowMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJvYmxlbXMgaW4gTUlCIHByb2Nlc3NpbmcgYXJlIGluZGljYXRlZCB2aWEgdGhlICdhc3AtPnN0YXR1cycgZmllbGQsCiAgIHJhdGhlciB0aGFuIHRoZSByZXR1cm4gdmFsdWUuICBTbyB1c2UgdGhhdCB3aGVuIGRvd25ncmFkaW5nIHYyLXN0eWxlCiAgIGVycm9ycyBmb3IgdjEgcmVzcG9uc2VzLgogICAKMjAwMy0wNy0zMCAxMDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgbmV3IE1JQnMgRm9yIER1bW1pZXMgKG1mZCkgY29uZiBmaWxlcwogICAKMjAwMy0wNy0zMCAxMDo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGV4YW1wbGVfKHN0YXJ0L2VuZCk7IGZpeCAkeC5yYW5nZXM7IGFsbG93IGxpdGVyYWwgdmFyIG5hbWVzIGluIHVzZXIgY29kZQogICB2aWEgJEB2YXI7IGFkZCB0YWJsZV9pc193cml0YWJsZSBmdW5jdGlvbgogICAKMjAwMy0wNy0zMCAxMDo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICBnZW5lcmljLWN0eC1nZXQubTJpLCBnZW5lcmljLWN0eC1zZXQubTJpLAogICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICBnZW5lcmljLWdldC1kZWNsLWJvdC5tMmksIGdlbmVyaWMtZ2V0LWRlY2wubTJpLAogICBnZW5lcmljLWdldC1sb25nLm0yaSwgZ2VuZXJpYy1nZXQtb2lkLm0yaSwKICAgZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwgZ2VuZXJpYy1oZWFkZXItdG9wLm0yaSwKICAgZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpLCBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLAogICBnZW5lcmljLXRhYmxlLW9pZHMubTJjLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwKICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksIG5vZGUtZ2V0Lm0yaQosIG5vZGUtc2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgIHBhcmVudC1zZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZCwKICAgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLAogICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgbG90cyBvZiBuZXcgbWliMmMgaGVscGVycyAoaW5jbHVkZXMpCiAgIAoyMDAzLTA3LTMwIDEwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksIGRldGFpbHMtbm9kZS5tMmkKLCBkZXRhaWxzLXRhYmxlLm0yaToKCiAgIG1vc3RseSB2YXJpYWJsZSByZW5hbWVzOyBzb21lIHJlb3JnCiAgIAoyMDAzLTA3LTMwIDA2OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRGlzY2FyZCB2YWx1ZXMgcmVjZWl2ZWQgZnJvbSB0aGUgcHJveHkgaWYgdGhlIE9JRCBpcyBpbnZhbGlkLgogICAoVHlwaWNhbGx5IHdoZW4gYSBHZXROZXh0IHdhbGtzIHBhc3QgdGhlIGVuZCBvZiB0aGUgcHJveGllZCBzdWJ0cmVlKS4KICAgQWxzbyB1cGRhdGUgdGhlIGNvbW1lbnRzIHRvIGRlc2NyaWJlIHRoZSBiZWhhdmlvdXIgaW4gYSBiaXQgbW9yZSBkZXRhaWwuCiAgIAoyMDAzLTA3LTMwIDA2OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgUmVzcG9uZCB0byBTTk1QIGVycm9ycyBmcm9tIHRoZSBwcm94aWVkIGFnZW50LgogICAoVGhlIHJlc3BvbnNlIGlzIG11Y2ggdG9vIHNpbXBsaXN0aWMsIGFuZCBpcyBsaWtlbHkgdG8gcHJvdmUgYW4KICAgb3Zlci1yZWFjdGlvbiBpbiBtYW55IGNhc2VzLiAgIEJ1dCBpdCdzIGEgc3RhcnQpCiAgIE5vdGUgdGhhdCB0aGUgaW5kZW50YXRpb24gaGFzIG5vdCBiZWVuIGFkanVzdGVkIC0gd2FpdCB1bnRpbCB0aGluZ3MKICAgc2V0dGxlIGRvd24gZmlyc3QuCiAgIAoyMDAzLTA3LTI5IDA4OjEzICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRmLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGRmLmM6CgogICBGaXggYSB0eXBvIGluIGFuIGVycm9yIG1lc3NhZ2UgKFBhdGNoICM3NjkyMjEpCiAgIAoyMDAzLTA3LTI5IDA1OjA3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgQ29ycmVjdCB0aGUgY29tbWVudHMgaWRlbnRpZnlpbmcgaGV4L2FzY2lpIHZhbHVlcyBmb3IgUERVIHR5cGVzLgogICBSZXBvcnRlZCBieSBPbGVnIEl2YW5vdi4KICAgCjIwMDMtMDctMjkgMDI6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCB1dGlsaXRpZXMvZXhlY3V0ZS5jCjoKCiAgIFN1cHBvcnQgZm9yIG11bHRpLWNvbW1hbmQgZGlyZWN0aXZlcyBmb3IgJ3NoJyBleHRlbnNpYmlsaXR5LgogICAgICAgKGkuZS4gcnVubmluZyAidGhpczsgdGhhdDsgdGhlIG90aGVyIikKICAgUmV0YWluZWQgdGhlIG9yaWdpbmFsIGJlaGF2aW91ciBvZiB0cnVuY2F0aW5nIGF0IHRoZSBmaXJzdCAnOycgZm9yCiAgICdleGVjJyBkaXJlY3RpdmVzICAoZm9sbG93aW5nIHRoZSBQcmluY2lwbGUgb2YgTGVhc3QgQXN0b25pc2htZW50KQogICAKMjAwMy0wNy0yOSAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIExvZyBmYWlsdXJlIHRvIHNldCB1cCBwcm94eSBjb21tYW5kIChyYXRoZXIgdGhhbiBwbG91Z2hpbmcgb24gcmVnYXJkbGVzcyEpCiAgIAoyMDAzLTA3LTI5IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBGaXggc3VwcG9ydCBmb3IgbXVsdGktbGluZSAocmVsb2NhdGFibGUpIG91dHB1dC4KICAgCjIwMDMtMDctMjcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC86IG1pYjJjIChWNS0wLXBhdGNoZXMuMiksIG1pYjJjOgoKICAgZml4IGZpbGVuYW1lIGluIGVycm9yIG1zZywgYXMgbm90ZWQgaW4gY29kZXJzCiAgIAoyMDAzLTA3LTI0IDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggb2lkbGVuZ3RoIGZ1bmN0aW9uCiAgIAoyMDAzLTA3LTI0IDE3OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgY3ZzIGlkIHRhZzsgYWRkIGNvbW1lbnQgZG9jdW1lbnRpbmcgbm9uaW5kZXg7IGluZGV4ZXMgbG9vcCB3aWxsIG5vdwogICBpbmNsdWRlIGluZGV4IGZvciB0YWJsZXMgdXNpbmcgYXVnbWVudHMKICAgCjIwMDMtMDctMjQgMTc6NTIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBhY2Nlc3MgdG8gdGhlIEFVR01FTlRTIGF0dHJpYnV0ZQogICAKMjAwMy0wNy0yMyAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIHdhcm5pbmcgZm9yIHVua25vd24gJHZhci50YWcgdGFncyB0byBjYXRjaCB0eXBvczsgd2F0Y2ggZm9yIHVubWF0Y2hlZAogICBAIGluIHNraXB2YXJzOyBkb24ndCBvcGVuIG5ldyBmaWxlIGl0IGl0J3MgYWxyZWFkeSBvcGVuOyBhZGQgZmxhZyB0bwogICBwcm9jZXNzX2ZpbGUgZm9yIHNhdmUvcmVzdG9yZSBvZiB2YXJzOyBmaXggcHJvY2VzcyBhZ2FpbiBzbyBpdCB3aWxsIGNhdGNoCiAgIHVubWF0Y2hlcyBAQDsgYWRkIG5ldyBAZm9yZWFjaCBub25pbmRleEAKICAgCjIwMDMtMDctMjIgMDk6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHplcm8gb3V0IHNlbnNpdGl2ZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIChjb21tdW5pdHkgc3RyaW5nLCB1c2VyIG5hbWUsCiAgICAgICBhdXRoZW50aWNhdGlvbiBwYXNzcGhyYXNlLCBwcml2YWN5IHBhc3NwaHJhc2UpLgogICAKICAgICAgIE5PVEU6IHRoaXMgZG9lcyBub3Qgd29yayBmb3IgYWxsIHBsYWZvcm1zIC0tIGNlcnRhaW5seSBpdCBkb2Vzbid0CiAgICAgICAgICAgICB3b3JrIGZvciBTb2xhcmlzLiAgQSBkaWZmZXJlbnQsIG1vcmUgZ3Jvc3MgbWV0aG9kIGlzIG5lZWRlZAogICAgICAgICAgICAgZm9yIHRoZXNlIHBsYXRmb3JtcyAoc2VlIHNlbmRtYWlsIGNvZGUgZm9yIGRldGFpbHMgLS0gIG5lZWQKICAgICAgICAgICAgIEkgc2F5IG1vcmU/KS4KICAgCjIwMDMtMDctMjIgMDg6NDUgIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEltcHJvdmVkIGRlc2NyaXB0aW9ucyBvZiB0aGUgdmFyaW91cyBzdWJjb21tYW5kcy4KICAgQmFzZWQgb24gbWF0ZXJpYWwgc3VwcGxpZWQgYnkgTmljayBEaVJpY28uCiAgIAoyMDAzLTA3LTIyIDA4OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgVmFyaW91cyBmaXhlcyB0byB0aGUgcmVjZW50IFRDUCB0YWJsZSByZWRlc2lnbiwgc3VwcGxpZWQgYnkgS2F0c3VoaXNhIEFCRS4KICAgKFNvbWUgb3RoZXJzIHN0aWxsIG91dHN0YW5kaW5nLCBhd2FpdGluZyBkaXNjdXNzaW9uLiAgQnV0IHRoZXNlIGFyZSBjbGVhcgogICBtaXN0YWtlcywgd2hpY2ggbmVlZCBmaXhpbmcpLgogICAKMjAwMy0wNy0yMiAwODowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgVXNlIHRoZSB0YWJsZSBpbmZvcm1hdGlvbiAnY29sbnVtJyBmaWVsZCB0byBpZGVudGlmeSB0aGUgcmVxdWVzdGVkIGNvbHVtbgogICBvYmplY3QocykgcmF0aGVyIHRoYW4gcHVsbGluZyBzdHVmZiBvdXQgb2YgdGhlIE9JRC4gIFN1Z2dlc3RlZCBieSBPbGVnIEl2YW5vdi4KICAgCjIwMDMtMDctMjIgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIE1ha2UgdGhlIGNyZWF0ZVZpZXcgbWFzayBwYXJhbWV0ZXIgb3B0aW9uYWwKICAgKGFzIHdpdGggdGhlICd2aWV3JyBjb25maWcgZGlyZWN0aXZlKQogICAKMjAwMy0wNy0yMiAwNzo1NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQ29ycmVjdCB0aGUgbGF5b3V0IG9mIHRoZSB1c2FnZSBtZXNzYWdlLgogICAKMjAwMy0wNy0yMiAwNzo1NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgVXNlIHRoZSBtb3JlIGZsZXhpYmxlIEFQSSBjYWxsIGZvciBoYW5kbGluZyB2aWV3IE9JRHMKICAgCjIwMDMtMDctMTkgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwgZGV0YWlscy1ub2RlLm0yaQosIGRldGFpbHMtdGFibGUubTJpOgoKICAgbWliMmMgaW5jbHVkZSBmaWxlcyB0byBnZW5lcmF0ZSBub2RlIGRldGFpbHMKICAgCjIwMDMtMDctMTkgMTA6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHRyYWNrIGN1cnJlbnQgbGluZSBhbmQgZmlsZSBuYW1lOyBuZXcgZmluZF9jb25mLCBwcm9jZXNzX2ZpbGUgc3ViczsgcmVtb3ZlCiAgIEBza2lwIE5AIGFiaWxpdHk7IHNraXAgQHRva2VuQCBzZWFyY2ggaWYgbGluZSBkb2Vzbid0IGJlZ2luIHdpdGggQDsKICAgYWRkIEBza2lwaWZALCBAYnJlYWtAOyBkb250IHJlcXVpcmUgc3BhY2VzIGZvciBAY2xvc2VAOyBhZGQgLWlmZXhpc3RzIHBhcmFtIHRvCiAgIEBpbmNsdWRlQDsgbmV3IEBpZmNvbmZAICsgcmV3b3JrIGNvZGUgdG8gbWFrZSBvdGhlciBAaWZYWFhAIHRva2VucyBlYXN5OyBtZXJnZQogICBlbHNlL2Vsc2lmIGluIHByb2Nlc3MgbG9vcAogICAKMjAwMy0wNy0xOCAxMzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIHBhcnNpbmcgb2YgaW5pdGlhbCBkZWZhdWx0IGZpbGU7IGRlbGF5IHByb2Nlc3Npbmcgb2YgY21kIGxpbmUgdmFycyB0aWwKICAgYWZ0ZXIgcHJvY2Vzc2luZyBkZWZhdWx0IGZpbGU7IGFkZCBuZXcgJGMubmVlZHNsZW5ndGgsICRjLmhhc2RlZnZhbCwgJGMuZGVmdmFsLAogICAkYy5tb2R1bGUsICRjLmFjY2Vzc2libGUsICRjLmNoaWxkcmVuIChuZWVkcyB3b3JrKSwgJGMuaGFzaGludCwgJGMuaGludCwKICAgJGMucmFuZ2VzLCRjLmVudW1yYW5nZSAobmVlZHMgd29yaykgYW5kIHZhcmlvdXMgY29kZSB0byBzdXBwb3J0IHRoZW07IGFkZAogICBwYXJhbWV0ZXIgdG8gc2tpcCB0byBhbGxvdyBvbmUgdG8gYnJlYWsgb3V0IG9mIG11bHRpcGxlIGxldmVscyAobmVlZHMgd29yayk7CiAgIGFsbG93IHNwYWNlcyBhZnRlciBAY21kQCB0byBhbGxvdyBmb3IgYmV0dGVyIGNvbnRyb2wgb2YgaW5kZW50aW9uOyBtb3ZlIGZpbGUKICAgb3Blbi9jbG9zZSB0byBzdWJyb3V0aW5lczsgbmV3IEBhcHBlbmQgZmlsZUAsIEBjbG9zZSBmaWxlQCwgQGluY2x1ZGUgZmlsZUA7CiAgIGFsbG93IHdyaXRpbmcgdG8gbXVsdGlwbGUgZmlsZXMgYXQgb25jZTsgbmV3IEBwcmludCB0ZXh0QCAodG8gc3Rkb3V0KTsKICAgd2hldyEgbW9yZSB0byBjb21lLi4uCiAgIAoyMDAzLTA3LTE2IDAzOjI5ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTdXBwb3J0IHByb2Nlc3Npbmcgb2YgY29tcGlsZS1zdWJhZ2VudCBzdWItb3B0aW9ucyBpbiBhbnkgb3JkZXIKICAgCjIwMDMtMDctMTYgMDM6MjggIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEhhbmRsZSBjb21waWxlLXN1YmFnZW50IGNhbGxlZCB3aXRoIG5vIHBhcmFtZXRlcnMKICAgCjIwMDMtMDctMTYgMDM6MjQgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEZpeCBpbmNvbnNpc3RlbnQgdXNhZ2Ugd2l0aGluIGNvbXBpbGUtc3ViYWdlbnQKICAgCjIwMDMtMDctMTYgMDM6MjEgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEhhbmRsZSAtLWNyZWF0ZS1zbm1wdjMtdXNlciBjYWxsZWQgd2l0aCBubyBwYXJhbWV0ZXJzCiAgIAoyMDAzLTA3LTE2IDAyOjA3ICBkdHMxMgoKICAgKiBSRUFETUU6CgogICBDbGFyaWZ5IHRoZSByb2xlcyBvZiB0aGUgdmFyaW91cyBtYWlsaW5nIGxpc3RzLCBhbmQgd2hpY2ggb25lcyB0byB1c2UKICAgKG9yIG5vdCB1c2UpLiAgQWxzbyB1cGRhdGVkIHRoZSBwcm9qZWN0IHdlYiBwYWdlIGFsb25nIHRoZSBzYW1lIGxpbmVzLgogICAKMjAwMy0wNy0xNSAyMTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgcmVuYW1lIGlzdGFibGUgdG8gaXNjb2x1bW47IGFkZCBlbnVtczsgYWRkIGN1cnJlbnR2YXI7IGZpeCBlbnVtIGR1bXAgdG8gd29yawogICBmb3Igc2NhbGFycwogICAKMjAwMy0wNy0xNSAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4IGEgdmFyYXJncyB0eXBlIHNwZWNpZmljYXRpb24uICBTcG90dGVkIGJ5IE9sZWcgSXZhbm92LgogICAKMjAwMy0wNy0xNSAwNzozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgQXZvaWQgcmVmZXJlbmNpbmcgZnJlZWQgbWVtb3J5LiAgKFJlcG9ydGVkIGJ5IFN0ZXZlIEJlbm5ldHQpCiAgIAoyMDAzLTA3LTE1IDA3OjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBSdW4gcGFzcy10aHJvdWdoIHNjcmlwdHMgaW4gdGhlIEFDVElPTiBwYXNzLCBub3QgQ09NTUlULCBzbyBhbnkgZXJyb3JzCiAgIGNhbiBiZSByZXBvcnRlZCBiYWNrIHByb3Blcmx5LgogICBBbHNvIHR3ZWFrIHRoZSBlcnJvci1jaGVja2luZyBjb2RlIHRvIHJlY29nbmlzZSB0aGUgZXJyb3Igc3RyaW5ncyBwcm9wZXJseS4KICAgCjIwMDMtMDctMTQgMTc6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWFjaCBjb25maWd1cmUuaW4KICAgCjIwMDMtMDctMTQgMTY6NTIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCBmcm9tIFN0ZXZlIEJlbm5ldHQgPHN0ZXZlYkBzbmFwZ2Vhci5jb20+IHRvIGFsbG93IG9uZSB0byBkaXNhYmxlCiAgIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgYW5kIHJlZHVjZSBhZ2VudCBzaXplLiBUd2Vha2VkIGJ5IG1lIGEgYml0LiBkaXNhYmxlCiAgIGFnZW50eCBpZiBjYWxsYmFja3MgZGlzYWJsZWQKICAgCiAgIHJlbW92ZSAodHJhbnNwb3J0fHNlY3VyaXR5KV9bbF1vYmpfbGlzdCwgYXMgW2xdb2JqIGxpc3RzIGFyZSBub3cgZ2VuZXJhdGVkCiAgIGZyb20gc3JjczsgcmVtb3ZlIEFnZW50WCBiZXRhIGNvZGUgd2FybmluZyBmcm9tIGhlbHAKICAgCjIwMDMtMDctMTQgMTY6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gU3RldmUgQmVubmV0dCA8c3RldmViQHNuYXBnZWFyLmNvbT4gdG8gYWxsb3cgb25lIHRvIGRpc2FibGUKICAgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCBhbmQgcmVkdWNlIGFnZW50IHNpemUuIFR3ZWFrZWQgYnkgbWUgYSBiaXQuIGRpc2FibGUKICAgYWdlbnR4IGlmIGNhbGxiYWNrcyBkaXNhYmxlZC4KICAgCjIwMDMtMDctMTMgMTE6MTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIGFkZCBwcmlvcml0eSB0byBjYWxsYmFjayBzbyB1c2VyIGNhbiBkZXRlcm1pbmUgY2FsbGJhY2sgb3JkZXIKICAgCjIwMDMtMDctMTMgMDk6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oOgoKICAgcmVzdG9yZSBpbnBjYiBzdHJ1Y3QgZm9yIGxpbnV4ICh1bnRpbCBpdCBzaG93cyB1cCBzb21ld2hlcmUgZWxzZSBpbiBjdnMpCiAgIAoyMDAzLTA3LTExIDA1OjA4ICBkdHMxMgoKICAgKiBtYW4vc25tcHZhY20uMS5kZWY6CgogICBGaXggZXJyb3JzIGluIHRoZSBleGFtcGxlcywgc3BvdHRlZCBieSBOaWNrIERpUmljbwogICAKMjAwMy0wNy0xMCAwNjoxMSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2UKOgoKICAgc3luYyB3L3BhdGNoZXMKICAgCjIwMDMtMDctMTAgMDU6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwLmMsIHRjcC5oLCB0Y3BUYWJsZS5jCiwgdGNwVGFibGUuaCwgdWRwLmMsIHVkcC5oLCB1ZHBUYWJsZS5jCiwgdWRwVGFibGUuaDoKCiAgIE5ldy1BUEkgaW1wbGVtZW50YXRpb24gb2YgVURQIGFuZCBUQ1AgdGFibGVzLCB1c2luZyBjYWNoZSBhbmQgaXRlcmF0b3IgaGVscGVycy4KICAgV29ya3Mgb24gTGludXggYW5kIEhQLVVYIDEwLCBjb21waWxlcyAoYnV0IHVudGVzdGVkKSBvbiBTb2xhcmlzICYgV2luZG93cy4KICAgCjIwMDMtMDctMTAgMDM6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5Lmg6CgogICBDb2xvbj8gc2VtaWNvbG9uPyAgV2hhdCdzIGEgcGl4ZWwgb3IgdHdvIGJldHdlZW4gZnJpZW5kcy4uLi4KICAgCjIwMDMtMDctMTAgMDI6MTIgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzJzZGsuZHN3LCBsaWJhZ2VudC9saWJhZ2VudC5kZWYsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgVmlzdWFsIEMrKyB0d2Vha3MsIHRvIGdldCBldmVyeXRoaW5nIHRvIGNvbXBpbGUgY2xlYW5seS4KICAgCjIwMDMtMDctMDkgMDg6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIE1pc3NpbmcgaGVhZGVyIHByb3RlY3Rpb24gY2hlY2tzCiAgIAoyMDAzLTA3LTA5IDA4OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBnZXRwd25hbSBvciBnZXRncm5hbQogICAKMjAwMy0wNy0wOSAwODowNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9ucyBvZiBzeXNsb2cgY29uc3RhbnRzIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuCiAgIAoyMDAzLTA3LTA5IDA4OjA1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGZvcndhcmQgZGVjbGFyYXRpb25zCiAgIAoyMDAzLTA3LTA5IDA1OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3VwcG9ydCBmb3IgdGhlIG9sZCAnLUwnIG9wdGlvbi4KICAgKEluY3JlZGlibHkgY2x1bmt5LCBidXQgbmVjZXNzYXJ5KQogICAKMjAwMy0wNy0wOSAwNToyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgU3VwcG9ydCBmb3IgInBlcnNpc3RlbnQgZW51bWVyYXRpb25zIi4KICAgCjIwMDMtMDctMDggMDY6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgdWRwLmM6CgogICBJbXByb3ZlZCBkZWJ1Z2dpbmcgZm9yIG5ldyBzY2FsYXJfZ3JvdXAgaW1wbGVtZW50YXRpb25zLgogICAKMjAwMy0wNy0wNyAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBQYXRjaCBmcm9tIENodWNrIFllcmtlcyB0byBtYWtlIHRoZSBNVEEtTUlCIHdvcmsgd2l0aCBuZXdlciBzZW5kbWFpbCB2ZXJzaW9ucywgaW5jbHVkaW5nIEZGUl9RVUFSQU5USU5FIHN1cHBvcnQKICAgCjIwMDMtMDctMDcgMDY6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIEV4cG9ydCB0aGUgJ21ha2VfdGVtcGZpbGUnIHJvdXRpbmUuCiAgIAoyMDAzLTA3LTA2IDIwOjQxICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggdHlwb3MKICAgCjIwMDMtMDctMDQgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBhZGRlZCBzeXMvdHlwZXMKICAgCjIwMDMtMDctMDMgMjE6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZyZWUgY29udGFpbmVyIG9uIGZyZWU7IHNvcnQgYmVmb3JlIGZvcl9lYWNoIGV4ZWN1dGVzOyBhZGQgaW5pdCB0byByZWdpc3RlcgogICAKMjAwMy0wNy0wMyAyMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgbmV3IGNvbnRhaW5lcnMKICAgCjIwMDMtMDctMDMgMjE6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1cGRhdGUgQ09OVEFJTkVSX0ZSRUUgZm9yIG5ldyByZXF1aXJlbWVudCB0aGF0IGNvbnRhaW5lcnMgZnJlZSB0aGVtc2VsdmVzCiAgIAoyMDAzLTA3LTAzIDIxOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGFkZCBpbml0IGZvciBsaXN0X3NzbGwgYW5kIG51bGwgY29udGFpbmVyczsgYWRkIGFsaWFzZXMgZm9yIGxpc3QgYW5kCiAgIGJpbmFyeSBjb250YWluZXJzOyB1cGRhdGUgQ09OVEFJTkVSX0ZSRUUgZm9yIG5ldyByZXF1aXJlbWVudCB0aGF0CiAgIGNvbnRhaW5lcnMgZnJlZSB0aGVtc2VsdmVzCiAgIAoyMDAzLTA3LTAzIDIwOjUzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oOgoKICAgbmV3IGZpbGVzCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9saXN0X3NzbGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI1c25tcHYzZ2V0U0hBREVTCjoKCiAgIFVzZSBhIFNLSVBJRk5PVCBmb3IgcmVhbCB0b2tlbnMgKHR5cG8pLgogICAKMjAwMy0wNy0wMiAxNDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBmaXggbmV3IHRlc3RzIGluIHZhcmlvdXMgd2F5cwogICAKMjAwMy0wNy0wMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZyZWUgdGhlIHJvb3QgcG9pbnRlci4KICAgCjIwMDMtMDctMDIgMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmcmVlIHRoZSBlbmdpbmVpZCBhdCAqc2h1dGRvd24qIG5vdCAqc3RhcnR1cCo6LS8KICAgCjIwMDMtMDctMDIgMTQ6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBkb24ndCBjYWxsIHRoZSBjbGVhbnVwIHJvdXRpbmVzIGF0IHNodXRkb3duIHNpbmNlIHRoZXkncmUgZmlsbGVkIHdpdGgKICAgZG91YmxlIGZyZWVzKCkKICAgCjIwMDMtMDctMDIgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmg6CgogICByZXF1aXJlIG5lZWRzIGV4YW1wbGVzLyBwcmVmaXgKICAgCjIwMDMtMDctMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBVc2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgcmVjdXJzaXZlIGZ1bmN0aW9uLgogICAKMjAwMy0wNy0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IGVtcHR5IHJvd3MuCiAgIAoyMDAzLTA3LTAyIDEzOjUyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgZml4IGNvbnRhaW5lciBjb2RlIGZyb20gdGhlIGxhc3QgcGF0Y2gKICAgCjIwMDMtMDctMDIgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBQYXRjaDogNzU2Mjg2OiBBIGdsb2JhbCBmcmVlIC0+IFNOTVBfRlJFRSByZXBsYWNlbWVudAogICAKMjAwMy0wNy0wMiAxMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFBhdGNoICM3MjQ5MjUgZnJvbSBQZXRlciBXYXJhc2luIHRvIGZyZWUgbG90cyBvZiBtZW1vcnkgZm9yIGEgcmVhbGx5IGNsZWFuIHNodXRkb3duCiAgIAoyMDAzLTA3LTAyIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY1LTAtcGF0Y2hlcy4yKSwgYWdlbnRfcmVnaXN0cnkuYwo6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmaXggbmV0c25tcF9zdWJ0cmVlX3VubG9hZCgpIHRvIHVwZGF0ZSB0aGUgcm9vdCBwb2ludGVyCiAgIAoyMDAzLTA3LTAyIDEyOjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUxc29sYXJpc2hvc3RkaXNrCiwgVDE1Mmhvc3R1cHRpbWUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIFBhdGNoOiA3NTYyODY6IE5ldyBzb2xhcmlzIHNwZWNpZmljIEhSIHRlc3RzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMy0wNy0wMiAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmMKICAgKFY1LTAtcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBQYXRjaCAjNzYwNDQ4IGZyb20gQm9iIFJvd2xhbmRzL1N1biB0byBmaXggYnVnICM3NTE5MTMgdG8gcHJvdGVjdCBhIGZldyBtaW5vciBzZWN1cml0eSB2aW9sYXRpb25zCiAgIAoyMDAzLTA3LTAyIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zdHJsY3B5LmM6CgogICBQYXRjaCAjNzYwNDE3IGZyb20gQm9iIFJvd2xhbmRzL1N1biBmb3IgZml4aW5nIEJ1ZyAjNzUxOTIwIGZvciBtaW5vciBzZWN1cml0eSBwcm9ibGVtcyAoUElEIGZpbGUgdW5saWtlZCBmaXJzdCwgYW5kIHVzZSBzdHJsY3B5IGluc3RlYWQgb2Ygc3RyY3B5LiAgQSBuZXcgc3RybGNweSBmaWxlIHdhcyBkZWZpbmVkIGlmIG5vdCBkZWZpbmVkIGZvciBhIHN5c3RlbS4KICAgCjIwMDMtMDctMDIgMTA6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3RybGNweS5jOgoKICAgZmlsZSBzdHJsY3B5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMiAxMDoyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9kZWJ1Zy5oIChWNS0wLXBhdGNoZXMuMSksCiAgIHNubXBfZGVidWcuaDoKCiAgIFBhdGNoICM3NjQwNDcgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBmcm9tIHNubXBfZGVidWcuaCBhbmQgZml4IGEgZmV3IGNvbW1lbnRzCiAgIAoyMDAzLTA3LTAyIDEwOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjUtMC1wYXRjaGVzLls3LDddKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNzU5MzA5IGZyb20gU3RlcGhlbiBGcmllZGwgdG8gYWRkIHByb21wdCBvdmVyLXJpZGUgZmxhZyBkZXNjcmlwdGlvbnMgdG8gcHJvbXB0IG91dHB1dAogICAKMjAwMy0wNy0wMiAxMDoxNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNzU5Mjk4OiBmaXggc3BlbGxpbmcgZXJyb3IKICAgCjIwMDMtMDctMDEgMDU6MzMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyMS5jOgoKICAgUmVtb3ZlIHJlZHVuZGVudCBmaWxlLgogICAKMjAwMy0wNy0wMSAwMzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGljbXAuaCwgaXAuYywKICAgaXAuaCwga2VybmVsX2xpbnV4LmMsIGtlcm5lbF9saW51eC5oLAogICBtaWJJSV9jb21tb24uaCwgdGNwLmMsIHRjcC5oLCB1ZHAuYywgdWRwLmgKOgoKICAgUmUtaW1wbGVtZW50IHRoZSBzY2FsYXIgbmV0d29yayBzdGF0aXN0aWNzIHVzaW5nIG5ldyBBUEkgZmVhdHVyZXMuCiAgIFRoaXMgc2VydmVzIGFzIGFuIGV4YW1wbGUgb2YgdGhlICdzY2FsYXJfZ3JvdXAnIGFuZCAnY2FjaGVfaGFuZGxlcicKICAgaGVscGVycywgYXMgd2VsbCBhcyAoaG9wZWZ1bGx5KSBzaW1wbGlmeWluZyB0aGUgY29kZSBzb21ld2hhdC4KICAgCjIwMDMtMDctMDEgMDI6NTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyX2dyb3VwLmM6CgogICBNaW5vciB0d2Vha3MgdG8gaGFuZGxlIHdhbGtpbmcgZnJvbSBvbmUgc2NhbGFyIHRvIGFub3RoZXIgY29ycmVjdGx5LAogICBhbmQgZGVhbCB3aXRoIGludGVybmFsIG1pc3Npbmcgb2JqZWN0cyB3aXRoaW4gYSBzY2FsYXIgZ3JvdXAuCiAgIAoyMDAzLTA2LTMwIDIyOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaDoKCiAgIHVwZGF0ZSBmb3Igcm93IGRlbGV0aW9uCiAgIAoyMDAzLTA2LTMwIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIHVwZGF0ZSB0byBzdXBwb3J0IHJvdyBjcmVhdGlvbi4gIERlbGV0aW9uIHN1cHBvcnQgc3RpbGwgY29taW5nLCBhcyBpcwogICBhIHNlcGFyYXRlIGhhbmRsZXIuCiAgIAoyMDAzLTA2LTMwIDE3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgbW9yZSAibm90IHNlcmlhbGl6ZWQiIGNvZGUuCiAgIAoyMDAzLTA2LTMwIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IG5ldFNubXBIb3N0c1RhYmxlLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlLmgsIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLAogICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaDoKCiAgIFVwZGF0ZWQgZm9yIHJvdyBjcmVhdGlvbi4KICAgCjIwMDMtMDYtMzAgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYzoKCiAgIHBhdGNoIGZyb20gRm9uZyBUc3VpIGZvciBmaXhpbmcgTlVMTCByZWZlcmVuY2VzCiAgIAoyMDAzLTA2LTMwIDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gbWFrZSB0aGUgZGVmYXVsdCBhZ2VudHggcGluZyBpbnRlcnZhbCBiZSAxNSBzZWNvbmRzLgogICAKMjAwMy0wNi0zMCAwOToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIE1ha2Ugc3VyZSB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGUgbmV3IGFwcHJvYWNoIHRvIHN1Yi1jb21tYW5kCiAgIGludm9jYXRpb24gYXJlIHByb3Blcmx5IGFja25vd2xlZGdlZC4KICAgCjIwMDMtMDYtMzAgMDc6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENoZWNrIGZvciB2YWxpZGl0eSBvZiBwYXJhbWV0ZXJzIGJlZm9yZSB1c2luZyB0aGVtLiAgKFBhcmFub2lkPyBXaG8sIG1lPykKICAgCjIwMDMtMDYtMzAgMDY6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENhY2hpbmcgb2YgaW50ZXJmYWNlIGRhdGEgaXMgYWN0dWFsbHkgTGludXgtc3BlY2lmaWMuCiAgIAoyMDAzLTA2LTMwIDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBJbmNsdWRlIHJlY2VudCBoZWxwZXIgbW9kdWxlcyBpbiB0aGUgaGVscGVyIGxpYnJhcnkgYW5kIG1ldGEtaW5jbHVkZSBmaWxlLgogICAKMjAwMy0wNi0yNyAwNDo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFNpbXBsaWZ5IHRoZSBwcm9jZXNzaW5nIG9mICJ0cmFwaGFuZGxlIiBkaXJlY3RpdmVzCiAgICh1c2luZyB0aGUgbmV3IGdlbmVyaWMgc3ViLWNvbW1hbmQgZXhlY3V0aW9uIHV0aWxpdHkgcm91dGluZXMsCiAgIGFuZCB0aGUgaW1wcm92ZWQgdmFybGlzdCBsb2dnaW5nIGNvbmZpZ3VyYXRpb24pCiAgIAoyMDAzLTA2LTI3IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBVc2UgdGhlIG5ldyBnZW5lcmljIHN1Yi1jb21tYW5kIGV4ZWN1dGlvbiB1dGlsaXR5IHJvdXRpbmVzIGluc3RlYWQKICAgb2YgdGhlIGV4dGVuc2libGUtc3BlY2lmaWMgb25lcy4KICAgCjIwMDMtMDYtMjcgMDQ6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEluY2x1ZGUgYSBnZW5lcmFsICdtYWdpYycgcGFyYW1ldGVyIGluIGJvdGggY2FjaGUgZGF0YSBzdHJ1Y3R1cmUKICAgYW5kIGNhY2hlIGxvYWRpbmcgcm91dGluZS4gICBKdXN0IEluIENhc2UgSXQgTWlnaHQgQ29tZSBJbiBVc2VmdWwuCiAgIEhhcHB5LCBXZXM/CiAgIAoyMDAzLTA2LTI3IDA0OjA5ICBkdHMxMgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICBtaWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgR2VuZXJhbGlzZWQgc3ViLWNvbW1hbmQgZXhlY3V0aW9uIHV0aWxpdHkgcm91dGluZXMuCiAgIChUaGUgY3VycmVudCAnZXhlY19jb21tYW5kJyBhbmQgJ3NoZWxsX2NvbW1hbmQnIHJvdXRpbmVzIGFyZSB2ZXJ5IHNwZWNpZmljCiAgICB0byB0aGUgZGV0YWlscyBvZiB0aGUgJ3N0cnVjdCBleHRlbnNpYmxlJyBkYXRhIHN0cnVjdHVyZSkuCiAgIFRoZXNlIHJvdXRpbmVzIGNhbiBiZSB1c2VkIG1vcmUgd2lkZWx5LCB3aGVyZXZlciBhIHN1Yi1wcm9jZXNzIGlzIG5lZWRlZC4KICAgCiAgIFF1ZXN0aW9uczoKICAgICBhKSAgU2hvdWxkIHRoZXNlIHV0aWxpc2UgdGhlICJyZWFsbG9jIiBtZWNoYW5pc20sIHJhdGhlciB0aGFuCiAgICAgICAgIGVuZm9yY2UgYSBmaXhlZCBzaXplIG91dHB1dCBidWZmZXI/CiAgICAgYikgIERvIHRoZXkgYmVsb25nIGluIHRoZSBtYWluIGxpYnJhcnkgKG9yIHBvc3NpYmx5IHRoZSBhZ2VudCBsaWJyYXJ5KQogICAgICAgICByYXRoZXIgdGhhbiBhIG1pYmdyb3VwPwogICAKMjAwMy0wNi0yNyAwMTo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBNb3JlIGZsZXhpYmxlIGhhbmRsaW5nIG9mIGZvcm1hdHRpbmcgdmFyYmluZCBsaXN0cy4KICAgIiVWIiBjb25maWd1cmVzIHRoZSB2YXJiaW5kIHNlcGFyYXRvciBjaGFyYWN0ZXIgKGFsdF9mb3JtYXQgPT4gYWRkZWQgc3BhY2UpCiAgICIldiIgdXNlcyB0aGlzIHNlcGFyYXRvciAoYWx0X2Zvcm1hdCA9PiBzZXBhcmF0b3IgYWxzbyBwcmludGVkIGJlZm9yZSB0aGUgbGlzdCkKICAgRGVmYXVsdHMgdG8gdXNpbmcgdGhlIGVhcmxpZXIgJ1x0JyBvciAiLCAiIGlmIG5vIHNlcGFyYXRvciBpcyBzcGVjaWZpZWQuCiAgIAoyMDAzLTA2LTI2IDAyOjI3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIFVzZSB0aGUgbmV3IGZlYXR1cmVzIG9mIG1pYjJjIHRvIHRpZHkgdXAgdGhlIG91dHB1dCBhIGJpdC4KICAgCjIwMDMtMDYtMjYgMDI6MjYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRXh0ZW5kIG1pYjJjJ3MgbmV3IGNvdW50ZXIgcm91dGluZXMgdG8gY292ZXIgInN1Ymxvb3BzIiBhcyB3ZWxsCiAgIChpLmUuIHRoZSBudW1iZXIgb2YgY29sdW1ucy9pbmRleGVzIGluIGEgcGFydGljdWxhciB0YWJsZSwKICAgIGFuZCB0aGUgbnVtYmVyIG9mIG9iamVjdHMgdG8gYmUgaW5jbHVkZWQgd2l0aCBhIGdpdmVuIG5vdGlmaWNhdGlvbikKICAgCjIwMDMtMDYtMjUgMjM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIHByb21wdCBzdXBwb3J0IGZvciBtaWIyYyB0byBhc2sgcXVlc3Rpb25zIHRvIHRoZSB1c2VyLgogICAtIEEgbmV3IHRvcC1sZXZlbCB3cmFwcGVyIGFyb3VuZCBhbGwgdGhlIG90aGVyIG1pYjJjIGZpbGVzIHRoYXQgd2Fsa3MKICAgICB5b3UgdGhyb3VnaCBzZWxlY3RpbmcgdGhlIHJpZ2h0IG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZSB5b3Ugd2lzaCB0bwogICAgIHVzZSBhbmQgdGhlbiBzb3VyY2VzIGl0IGZvciB5b3UuCiAgICAgLSB0b2RvOiBnZW5lcmF0ZSB1bmlxdWUgZmlsZSBuYW1lcyBpZiBib3RoIHNjYWxhciBhbmQgdGFibGUgY3JlYXRpb24KICAgICAgIGlzIGRvbmUsIGVnLgogICAKMjAwMy0wNi0yNSAyMzoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIGJveSBpcyB0aGF0IG5vdCBuZWVkZWQgYW55IG1vcmUKICAgCjIwMDMtMDYtMjUgMTQ6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRGF2ZSBhc2tzLCBkYXZlIGdldHM6CiAgICAgLSBuZXcgZnVuY3Rpb25zIHJldHVybmluZyAxIG9yIDI6ICAkdmFyLmlzc2NhbGFyLCAkdmFyLmlzY29sdW1uCiAgICAgLSAkdmFyLnBhcmVudCByZXR1cm5zIHRoZSBwYXJlbnQgbGFiZWwgc3RyaW5nIG9mIHRoZSBub2RlLgogICAKMjAwMy0wNi0yNSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCByZXF1ZXN0IC0+IHJlcXVlc3RzIGFzIHBvaW50ZWQgb3V0IGJ5IFN0ZXZlIEJlbmV0dAogICAKMjAwMy0wNi0yNSAwNzozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBTdGFtcCBvbiBhIHRyYWlsaW5nICcuJyB3aGVuIHNwZWNpZnlpbmcgVkFDTSBPSURzLgogICAKMjAwMy0wNi0yNSAwNzozMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENhbGxzIHRvIHJlbGVhc2UgZW51bWVyYXRpb24gbGlzdHMgd2hlbiBubyBsb25nZXIgcmVxdWlyZWQuCiAgIE5vcm1hbGx5IHRoaXMgd291bGQgYmUgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYW4gYXBwbGljYXRpb24KICAgZXhpc3RzLCBidXQgaXQgbWlnaHQgYmUgdXNlZnVsIHRvIHJlbGVhc2UgcmVzb3VyY2VzIGVhcmxpZXIuCiAgIAoyMDAzLTA2LTI1IDA3OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlICdkbG1vZC5oJyBoZWFkZXIgZmlsZQogICAKMjAwMy0wNi0yNCAwNjoyMCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMubm90aWZ5LmNvbmY6CgogICBJbml0aWFsIHN1cHBvcnQgZm9yIGNvZGUgdG8gc2VuZCBvdXQgdHJhcHMgYW5kIGluZm9ybXMuCiAgIFRoaXMgc3RpbGwgZG9lc24ndCBhZGRyZXNzICp3aGVuKiBzdWNoIG5vdGlmaWNhdGlvbnMgc2hvdWxkCiAgIGJlIGdlbmVyYXRlZCwgYnV0IGl0IGF0IGxlYXN0IGhlbHBzIHdpdGggZG9pbmcgc28uCiAgIAoyMDAzLTA2LTIzIDIyOjMwICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJlbW92ZSB0b28gbXVjaCBtZW1kdXAnaW5nIGluIGluZm9ybSByZXBseQogICAKMjAwMy0wNi0yMyAxNDozMyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZCBBUFMtTUlCIGFuZCBNQUxMT0MtTUlCCiAgIAoyMDAzLTA2LTIzIDE0OjMxICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgZnJvbSBJQU5BCiAgIAoyMDAzLTA2LTIzIDE0OjMwICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZSBub3cgdW51c2VkIHNubXBfY2xvbmVfcGR1MgogICAKMjAwMy0wNi0yMyAxMjozNyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBpbmNsdWRlIHdhaXQuaCBmb3Igd2FpdHBpZCwgYW5kIHJlLWluc3RhdGUgdGhlIGNvZGUgdGhhdCByZXNwb25kcyB0byBhbiBpbmZvcm0KICAgCjIwMDMtMDYtMjMgMDY6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgKOgoKICAgVXRpbGl0eSByb3V0aW5lIHRvIGNvbnZlcnQgdjEgdHJhcHMgdG8gdjItbm90aWZpY2F0aW9uLXN0eWxlIHZhcmJpbmQgbGlzdC4KICAgCjIwMDMtMDYtMjMgMDY6MzUgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDb25zdHJ1Y3QgYSBsaWJyYXJ5IGNvbnRhaW5pbmcgdGhlIGNvcmUgdHJhcGQgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eS4KICAgCjIwMDMtMDYtMjMgMDY6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIFRoZSBzeXNPUlRhYmxlIG1vZHVsZSBpcyBkZXBlbmRlbnQgb24gc3lzdGVtX21pYiwgc28gZW5zdXJlIHRoaXMgaXMgYXZhaWxhYmxlLgogICAKMjAwMy0wNi0yMyAwNjoxMyAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBDb25zb2xpZGF0ZSB0aGUgbm90aWZpY2F0aW9uIGhhbmRsZXIgaW4gd2l0aCB0aGUgcmVzdCBvZiB0aGUKICAgTk9USUZJQ0FUSU9OLU1JQiByZWxhdGVkIGNvZGUuCiAgIAoyMDAzLTA2LTIzIDA2OjAxICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIFNodWZmbGUgY29kZSBhcm91bmQgYSBiaXQuICBUaGUgdGhyZWUgZmlsZXMgJ3NubXB0cmFwZF9oYW5kbGVycy5jJywKICAgJ3NubXB0cmFwZF9sb2cuYycgYW5kICdub3RpZmljYXRpb24uYycgbm93IGNvbnRhaW4gYWxsIHRoZSBjb2RlCiAgIG5lZWRlZCB0byBwcm9jZXNzIGFuIGluY29taW5nIHRyYXAuCiAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBlbWJlZCB0aGlzIGZ1bmN0aW9uYWxpdHkgd2l0aGluIGFuIGxhcmdlcgogICBhcHBsaWNhdGlvbiwgcmF0aGVyIHRoYW4gaGF2aW5nIHRvIHVzZSB0aGUgJ3NubXB0cmFwZC5jJyB3cmFwcGVyLgogICAKMjAwMy0wNi0yMiAxNjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSAqLmMgYW5kICouaCBmaWxlcy4KICAgCjIwMDMtMDYtMjIgMTY6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogbmV0U25tcEhvc3RzVGFibGUuYywKICAgbmV0U25tcEhvc3RzVGFibGUuaCwgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jCiwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaCwKICAgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywKICAgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCwKICAgbmV0U25tcEhvc3RzVGFibGVfY29sdW1ucy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9lbnVtcy5oOgoKICAgLSBBIG5ldFNubXBIb3N0c1RhYmxlIGltcGxlbWVudGF0aW9uIHRoYXQgaW1wbGVtZW50cyBhIHRhYmxlX2l0ZXJhdG9yCiAgICAgd3JhcHBlciBhcm91bmQgL2V0Yy9ob3N0cy4gIE5vdGUgdGhhdCBhbHRob3VnaCB0aGlzIGlzIHRoZSBmaXJzdCBjaGVjawogICAgIGluLCBpdCBpcyBub3QgZW50aXJlbHkgY29tcGxldGUgeWV0LiAgU3BlY2lmaWNhbGx5OgogICAgIC0gSXQgZG9lc24ndCBzdXBwb3J0IHJvdyBjcmVhdGlvbiB5ZXQgKG15IG5leHQgdGFyZ2V0KSBhbmQgZGVsZXRpb24geWV0LgogICAgIC0gSXQgaW1wbGVtZW50cyBhIGJ1bmNoIG9mIHN0dWZmIGl0c2VsZiBpbiBuZXRTbm1wSG9zdHNUYWJsZS5jIHRoYXQKICAgICAgIHdpbGwgZXZlbnR1YWxseSBnbyBpbnRvIGEgbW9yZSBnZW5lcmljIGhlbHBlci4KICAgICAtIEl0IGRvZXNuJ3Qgc3VwcG9ydCBhbnl0aGluZyBidXQgaXB2NCB5ZXQgYnV0IGRvZXNuJ3QgaWdub3JlIGl0IGluCiAgICAgICB0aGUgaG9zdHMgZmlsZSAoaW5ldF9hdG9uIHJldHVybnMgYSAtMSB0aHVzIGFsbCBpcHY2IGFkZHJlc3MgZ2V0CiAgICAgICBtYXBwZWQgdG8gMjU1LjI1NS4yNTUuMjU1KS4KICAgLSBJdCBpcyBzdGlsbCB1c2VmdWwganVzdCB0byBzaG93IGhvdyBTRVQgb3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkCiAgICAgdXNpbmcgYSB0YWJsZV9pdGVyYXRvci4KICAgLSBQbHVzIEkgbmVlZGVkIHRvIGNoZWNrIGl0IGluIGJlZm9yZSBJIHN0YXJ0IG1lc3Npbmcgd2l0aCBpdCBhZ2FpbgogICAgIGp1c3QgZm9yIGFyY2hpdmFsIHB1cnBvc2VzLgogICAKMjAwMy0wNi0yMiAxNjoxNCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQ3JlYXRlIGFuIGV4YW1wbGUgdGFibGUgdGhhdCBpcyBhIHdyYXBwZXIgYXJvdW5kIC9ldGMvaG9zdHMgZGF0YS4KICAgCjIwMDMtMDYtMjIgMTI6NTMgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSU5GTyBpcyBub3QgYSBmYWNpbGl0eSAtIFVTRVIgY291bGQgYmUKICAgCjIwMDMtMDYtMjIgMTI6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQWRkIHRoZSBuZXcgLUwgb3B0aW9uIHRvIHRoZSB1c2FnZSBtZXNzYWdlCiAgIAoyMDAzLTA2LTIyIDEyOjQ5ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIEFkZCBzb21lIG1pc3NpbmcgcHJvdG90eXBlcywgYW5kIHVzZSB0aGVtCiAgIAoyMDAzLTA2LTIyIDEyOjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIERvIGF3YXkgd2l0aCBzb21lIHdhcm5pbmdzCiAgIAoyMDAzLTA2LTIyIDEyOjQ0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgY29uc3RpZnkgYSBmZXcgYXJndW1lbnRzLCBtYWtlIHN1cmUgdGhhdCB3ZSBkZWZhbHQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMy0wNi0yMiAxMjo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIERvIGF3YXkgd2l0aCBzb21lIHdhcm5pbmdzCiAgIAoyMDAzLTA2LTIyIDEyOjM4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBVbnRhbmdsZSBhIG1vc3QgZXh0cm9yZGluYXJ5IHdlYiBvZyBGcmVlQlNEIGFuZCBMaW51eAogICAKMjAwMy0wNi0yMiAwNzoyMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IGhlbHAgdXNhZ2UgZm9yIGZsYWcgb3JkZXJpbmcuCiAgIAoyMDAzLTA2LTIyIDA3OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gYWRkIC1zIFNVRkZJWCBhbmQgLVMgUFJFRklYIGZsYWdzCiAgIC0gZG94eWdlbiBkb2N1bWVudCBzbm1wX3BhcnNlX29pZAogICAtIEFkZCBhIHByb3BlciBMOiB0b2tlbiB0byBnZXRvcHQgZm9yIGEgbWlzc2luZyBhY2NlcHRlZCBmbGFnCiAgIAoyMDAzLTA2LTIwIDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggdGhlIGxvb3AgZnJlZSBiZWZvcmUgY2FsbC1zdWItaG9vayBvcmRlcmluZyBwcm9ibGVtIERhdmUgcG9pbnRlZCBvdXQKICAgCjIwMDMtMDYtMjAgMTE6NTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgU3VwcG9ydCB0aGUgb3B0aW9uIGZvciBzb3J0ZWQgaXRlcmF0b3ItYmFzZWQgdGFibGVzLCB0b28uCiAgIAoyMDAzLTA2LTIwIDExOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBTdG9wIHNlYXJjaGluZyBvbmNlIHdlJ3ZlIGZvdW5kIGFsbCAiZXhhY3QiIHJlcXVlc3RlZCByb3dzLgogICAKMjAwMy0wNi0xOSAwMTo1NCAgZHRzMTIKCiAgICogbWFuLzogc25tcHNldC4xLmRlZiwgc25tcHRyYXAuMS5kZWY6CgogICBDbGFyaWZ5IHRoZSBBU04uMSB0eXBlIG1hcHBpbmdzIGZvciBjb21tYW5kLWxpbmUgdHlwZSBzcGVjaWZpY2F0aW9ucy4KICAgCjIwMDMtMDYtMTcgMDU6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTdGFydCB1c2luZyB0aGUgbmV3IC1MeCBzdHlsZSBsb2dnaW5nIG91dHB1dC4KICAgVW5mb3J0dW5hdGVseSwgdGhpcyBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCB0aGUgb2xkIC1MIGZvcm1hdAogICAoc2VlIGNvbW1lbnRzIGluIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgZm9yIGRldGFpbHMpLgogICAKICAgSXQgbWF5IHByb3ZlIG5lY2Vzc2FyeSB0byByZXZlcnNlIHRoaXMgcGF0Y2g6LSgKICAgQnV0IEknbSBjb21taXR0aW5nIGl0IGFueXdheSwgaW4gY2FzZSBhbnlvbmUgY2FuIHNwb3QgYSBzdWl0YWJsZSB3b3JrYXJvdW5kLgogICAKMjAwMy0wNi0xNyAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIE1pbm9yIHR3ZWFrIHRvIHN0ZG91dC9zdGRlcnIgaGFuZGxpbmcsIHRvIGltcHJvdmUgdGhlIGFwcGVhcmFuY2Ugb2YKICAgTUlCIGdyb3VwIG91dHB1dC4KICAgCjIwMDMtMDYtMTcgMDU6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5oLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQKOgoKICAgTUlCIGdyb3VwIHRvIG1hbmFnZSBhZ2VudCBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIAoyMDAzLTA2LTE2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMgKFY1LTAtcGF0Y2hlcy40KSwgUlVOVEVTVFM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBjb21tZW50IGFib3V0IGl0IGJlaW5nIGJyb2tlbiwgYXMgcG9pbnRlZCBvdXQKICAgYnkgQnJ1Y2UuCiAgIAoyMDAzLTA2LTE2IDE0OjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMgKFY1LTAtcGF0Y2hlcy4zKSwgUlVOVEVTVFM6CgogICBzdXBwb3J0ICwgc2VwYXJhdGVkIGFyZ3VtZW50cyB0byAtVCBsaWtlIC1oIHNheXMgaXQgd2lsbC4KICAgCjIwMDMtMDYtMTYgMTQ6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBQYXRjaCBmcm9tIEJydWNlIFNoYXcgdG8gZml4IG91dHB1dCBudW1iZXJpbmcgd2hlbiB1c2luZyAtVCBvcgogICBpbnRlcmFjdGl2ZWx5IHBpY2tlZCBzdWItc2VyaWVzIG9mIHRlc3RzLgogICAKMjAwMy0wNi0xNiAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY1LTAtcGF0Y2hlcy4yKSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc1NTU0MCBmcm9tIEJydWNlIFNoYXcgYW5kIElSQzpTZWJOb2IgdG8gZml4IGJ1ZyAjNzAxNDM5IGZvciA2NCBiaXQgc29sYXJpcyBzeXN0ZW1zIGFuZCA2NCBiaXQgaW50ZWdlcnMgcmV0dXJuZWQgYnkgZ2V0S3N0YXQKICAgCjIwMDMtMDYtMTYgMTM6MTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAKOgoKICAgUGF0Y2ggIzc1NDEwNSBmcm9tIEJydWNlIFNoYXcgdG8gZml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzCiAgIAoyMDAzLTA2LTE2IDA3OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgeWV0IG1vcmUgaW1wcm92ZW1lbnRzIHdvcmtpbmcgdG93YXJkIHRoZSBlbmQtZ29hbC4KICAgCjIwMDMtMDYtMTYgMDc6MTcgIGhhcmRha2VyCgogICAqIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQsIFJFQURNRS5NYXRzdXNoaXRhLnR4dDoKCiAgIHJlbmFtZWQgdG8gUGFuYXNvbmljX0FNM1ggYnkgcmVxdWVzdAogICAKMjAwMy0wNi0xMyAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgT2ssIHRoZXJlIHdhcyAxIG1lbW9yeSBsZWFrLiAgQnV0IGl0cyBnb25lIG5vdy4KICAgCjIwMDMtMDYtMTMgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEEgY29tcGxldGUgcmV3cml0ZSBvZiB0aGUgaXRlcmF0b3IgZnJvbSBzY3JhdGNoLgogICAgIC0gNjAgbGluZXMgb3Igc28gbGVzcyBjb2RlLgogICAgIC0gbm8gbG9uZ2VyIGZvcmNlZC1zZXJpYWxpemVkCiAgICAgLSBtZW1vcnktbGVhayBmcmVlCiAgICAgLSBiZXR0ZXIgY29tbWVudGVkICh0aG91Z2ggbW9yZSBjb3VsZCBhbHdheXMgYmUgdXNlZnVsKS4KICAgICAtIHNpZ25pZmljYW50bHkgc2ltcGxlciBpbiBkZXNpZ24uCiAgICAgLSBkZW1vbnN0cmF0aW9uIGV4YW1wbGUgbWliIG1vZHVsZSBjb2RlIHRvIGJlIGNoZWNrZWQgaW4gZWFybHkgbmV4dCB3ZWVrLgogICAKMjAwMy0wNi0xMyAxMToxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBmaXggcmFuZ2UgY2hlY2tzIG5vdyB0aGF0IGl0cyBubyBsb25nZXIgdGhlIGxhc3QgdGhpbmcgY2FsbGVkLgogICAKMjAwMy0wNi0xMyAxMToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgbWlzYyBtaW5vciBmaXhlcy4KICAgCjIwMDMtMDYtMTMgMTE6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGVsc2UgY2xhdXNlcyB3aXRoaW4gaWYgc3RhdGVtZW50cy4KICAgCjIwMDMtMDYtMTMgMDg6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEhhbmRsZSBwcm9ibGVtcyB3aXRoIHJlYWRpbmcgcHJvY2VzcyBpbmZvcm1hdGlvbiBvbiBTb2xhcmlzIGtpdCwgY29uc2lzdGVudGx5IGFuZCBjbGVhbmx5LgogICAKMjAwMy0wNi0xMyAwNjoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW1wbGVtZW50ICctTHgnIGNvbW1hbmQtbGluZSBtZXRhLW9wdGlvbiBmb3IgY29uZmlndXJpbmcgbG9nZ2luZyBzZXR0aW5ncy4KICAgTm90IDEwMCUgY29udmluY2VkIHRoaXMgaXMgZnVsbHkgd29ya2luZywgYnV0IGRvZXMgc2VlbSB0byBzdXBwb3J0CiAgIG11bHRpcGxlIG91dHB1dCBsb2NhdGlvbnMuCiAgIAoyMDAzLTA2LTEwIDE1OjQ4ICBuYmEKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY1LTAtcGF0Y2hlcy43KSwgc25tcF9hcGkuYzoKCiAgIEJld2FyZSBvZiBkZXJlZmVyZW5jaW5nIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAzLTA2LTEwIDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYWRkIGNhY2hpbmcgaGFuZGxlciBmaWxlCiAgIAoyMDAzLTA2LTEwIDA4OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJbml0aWFsIGJhc2ggYXQgYSBtb2R1bGFyICJsb2dfaGFuZGxlciIgaW1wbGVtZW50YXRpb24uCiAgIExheWluZyB0aGUgZm91bmRhdGlvbnMgZm9yIG1vcmUgZmxleGlibGUgbG9nZ2luZyBjb25maWd1cmF0aW9uLgogICAKMjAwMy0wNi0xMCAwODozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSB1bnVzZWQgZnVuY3Rpb24gYXMgcG9pbnRlZCBvdXQgYnkgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA2LTA5IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYwogICAoVjUtMC1wYXRjaGVzLlsxLDMsMSwxXSksIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgTG9uZyBvdmVyZHVlIHBhdGNoICM2OTUxOTIgZnJvbSBSb24gVGFib3IgdG8gZml4IHRoZSBWQUNNIHNwaW5uaW5nIHByb2JsZW0gdGhhdCBJIGRpZG4ndCBxdWl0ZSBmaXggYmVmb3JlCiAgIAoyMDAzLTA2LTA5IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCBjb25maWd1cmU6CgogICBmaXggYnVnICM3MDY3MTAgdG8gc2hvdyB3aGVuIHByaXZhY3kgaGFzIGJlZW4gZGlzYWJsZWQKICAgCjIwMDMtMDYtMDkgMTU6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBmaXggYnVnICM3MDY3NDEgZnJvbSBTZWFuIEJ1cmtlOiBjaGVjayBmb3Igd29yZCBib3VuZGFyaWVzIGJhc2VkIG9uIGEKICAgcHJvcGVyIHNpemUgKHNpemVvZihsb25nKSkuCiAgIAoyMDAzLTA2LTA5IDE1OjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIGJ1ZyAjNzQ4NDMxIGZyb20gSm9obiBTaGl2ZXI6IGZpeCB0aHJlYWQtc2FmZSBwcm9ibGVtcyB3aXRoIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uICh3aGljaCB3YXMgbWlzc2luZyBpbiB0aGUgNS54IGxpbmUgYW55d2F5KS4gIEFsc28gc2VwYXJhdGUgb3V0IHVuaW9uIHN0cnVjdHVyZSBpbnRvIGEgc2VwYXJhdGUgdHlwZWRlZiByYXRoZXIgdGhhbiB1c2UgaXQgaW5saW5lIGluIHRoZSB2YXJpYWJsZSBsaXN0IHN0cnVjdHVyZQogICAKMjAwMy0wNi0wOSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBidWcgIyA3NTExOTcgcG9pbnRlZCBvdXQgYnkgVG9tIEV2YW5zIHdoZXJlIGlzc3BhY2UgaXMgdXNlZCB0byBjaGVjayBmb3IgaGV4IGNoYXJhY3RlcnMgd2hlbiBpc3ByaW50KCkgaXMgYWxsIHRoYXQgaXMgbmVlZGVkCiAgIAoyMDAzLTA2LTA5IDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsIGFjY29uZmlnLmgsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM3NDk1NTIgZnJvbSB2YXhwb3dlciAod2l0aCBtb2RpZmljYXRpb25zIGJ5IFdlcyk6IG11Y2ggaW1wcm92ZWQgQUlYIHN1cHBvcnQKICAgCjIwMDMtMDYtMDkgMTQ6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5NYXRzdXNoaXRhLnR4dCAoVjUtMC1wYXRjaGVzLjEpLCBSRUFETUUuTWF0c3VzaGl0YS50eHQKOgoKICAgUGF0Y2ggIzc0ODMwNSBmcm9tIHNyaW5pdmFzYSByYW8gZ3VydXN1IGRlc2NyaWJpbmcgaG93IHRvIGJ1aWxkIG5ldC1zbm1wIG9uIE1hdHN1c2hpdGEgZW1iZWRkZWQgc3lzdGVtcwogICAKMjAwMy0wNi0wOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjUtMC1wYXRjaGVzLjMpLCBpcEFkZHIuYzoKCiAgIFBhdGNoIDc0NjMzOTogT3R0byBTb2xhcmVzIGZpeGVzIGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gbGludXgKICAgCjIwMDMtMDYtMDkgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNS0wLXBhdGNoZXMuMSksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NDkwNjIgdG8gZml4IGNhY2hpbmcgY3Jhc2hpbmcgYW5kIGNsYXNoaW5nIHVuZGVyIFNvbGFyaXMKICAgCjIwMDMtMDYtMDkgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYyAoVjUtMC1wYXRjaGVzLjIpLCBwcm94eS5jCjoKCiAgIHBhdGNoICM3NDkxMDMgZnJvbSBHYXJyeSBDIE1hcnNoYWxsIHRvIGZpeCB0aGUgcHJveHkgd2hlbiBhIHRpbWVvdXQgb2NjdXJzIGZyb20gdGhlIHRhcmdldAogICAKMjAwMy0wNi0wOSAwNDowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuaCwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0CjoKCiAgIE1JQiBvYmplY3RzIHRvIG1hbmFnZSBjb25maWd1cmF0aW9uIG9mIE1JQiBkYXRhIGNhY2hpbmcuCiAgIAoyMDAzLTA2LTA5IDAzOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuaCwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0Ciwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBSZXdvcmsgbnNEZWJ1Z1Rva2VuVGFibGUgdG8gYmUgaW5kZXhlZCBieSB0aGUgZGVidWcgdG9rZW4gc3RyaW5nIHZhbHVlcy4KICAgCjIwMDMtMDYtMDYgMDg6NDUgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgSW1wbGVtZW50IHZhcmlvdXMgc2VwYXJhdGUgbGlzdHMgb2YgImdsb2JhbCIgaGFuZGxlcnMsIHRvIHN1cHBvcnQKICAgcHJlLSBhbmQgcG9zdC1zcGVjaWZpYyBnbG9iYWwgcHJvY2Vzc2luZywgYXMgd2VsbCBhcyAiYXV0aGVudGljYXRpb24iCiAgIGhhbmRsZXJzLCB3aGljaCBhcmUgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgZmlyc3QuCiAgIEFsc28gc3VwcG9ydCBmb3IgdGVybWluYXRpbmcgdHJhcCBwcm9jZXNzaW5nIGVhcmx5LgogICAKICAgRG9uJ3QgbGV0IG1lIGhlYXIgeW91IHNheSB0aGF0IEkgbmV2ZXIgbGlzdGVuIHRvIHlvdSwgV2VzIQogICAKMjAwMy0wNi0wNiAwNjo0MiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggbWlzc2luZyBsZW5ndGggYnl0ZSB3aGVuIHNldHRpbmcgaW5kZXggd2l0aCBjaGVja3MgZGlzYWJsZWQKICAgCjIwMDMtMDYtMDYgMDE6MzIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwo6CgogICBDbGFyaWZ5IHdoaWNoICJyW293XXt1c2VyLGNvbW11bml0eX0iIHBhcmFtZXRlcnMgYXJlIG9wdGlvbmFsLCBhbmQgIGluIHdoaWNoIGNvbWJpbmF0aW9ucy4KICAgCjIwMDMtMDYtMDQgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEZpcnN0IHBhc3MgYXQgYSBkYXRhLWNhY2hpbmcgaGVscGVyIC0gaW5kZXBlbmRlbnQgb2YgaW5kaXZpZHVhbCBNSUIgbW9kdWxlcy4KICAgKGkuZS4gaXQncyB1cCB0byBlYWNoIE1JQiBtb2R1bGUgdG8gcHJvdmlkZSAibG9hZCBkYXRhIiBhbmQgImZyZWUgZGF0YSIKICAgIHJvdXRpbmVzLCBidXQgdGhlIGhhbmRsaW5nIG9mIHdoZW4gdG8gbG9hZCB0aGVzZSBjYWNoZXMgaXMgZG9uZSBoZXJlKS4KICAgCiAgIFRoZSBpbnRlbnRpb24gaXMgdGhhdCB0aGlzIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBTTk1QLW1hbmFnZWFibGUgKGluY2x1ZGluZwogICBjb25maWd1cmF0aW9uIG9mIHZhbGlkaXR5IHRpbWVvdXRzLCBpbnZhbGlkYXRpb24gb2YgY2FjaGVkIHZhbHVlcywgZXRjKS4KICAgQnV0IGZvciBub3csIHRoaXMgaXMganVzdCB0aGUgYmFzaWMgaGFuZGxlci4KICAgCjIwMDMtMDYtMDQgMDU6NTAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyX2dyb3VwLmg6CgogICBTaW5nbGUgaGVscGVyIHRvIGltcGxlbWVudCBhIGdyb3VwIG9mIHNjYWxhciBvYmplY3RzIGluIG9uZSBnby4KICAgKENsb3NlciB0byB0aGUgbW9kZWwgb2YgdGhlIGVhcmxpZXIgdjQgQVBJKQogICAKMjAwMy0wNi0wMyAxNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWVudGlvbiB3aGVyZSAibGF0ZXIiIGFjdHVhbGx5IGlzLgogICAKMjAwMy0wNi0wMiAwNTo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmg6CgogICBEZWNsYXJhdGlvbnMgZm9yIGltcHJvdmVkIFNvbGFyaXMgQ1BVIHN1cHBvcnQgZnJvbSBwYXRjaCAjNzM4NDY1KQogICAoT29wcyEpCiAgIAoyMDAzLTA2LTAyIDA1OjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgU2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIGZvcndhcmRpbmcgdHJhcHMgdG8gYW5vdGhlciBkZXN0aW5hdGlvbi4KICAgKEkndmUgZ290IGEgbnVtYmVyIG9mIGlkZWFzIG9mIGhvdyB0aGlzIGNvdWxkIGJlIGRvbmUgbW9yZSBmbGV4aWJseSwKICAgIGJ1dCB0aGlzIHNlcnZlcyBhcyBhIGJhc2ljIHByb29mLW9mLWNvbmNlcHQsIGZvciBmZWVkYmFjayAmIGNvbW1lbnQpCiAgIAoyMDAzLTA2LTAyIDA1OjMzICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIE1vZHVsYXJpc2VkIGFwcHJvYWNoIHRvIGRpZmZlcmVudCBzdHlsZXMgb2YgaGFuZGxpbmcgaW5jb21pbmcgdHJhcHMuCiAgIFRoaXMgc2VlbXMgdG8gcmV0YWluIHRoZSBzYW1lIGJlaGF2aW91ciBhbmQgb3V0cHV0IGZvcm1hdHMgYXMgdGhlCiAgIGVhcmxpZXIgY29kZSwgYnV0IHNob3VsZCBiZSBtdWNoIG1vcmUgZmxleGlibGUgdG8gZXh0ZW5kIGFuZCBhZGFwdC4KICAgCjIwMDMtMDUtMzAgMTc6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIG1ha2UgdXNlIG9mIG5ldyBleHBvcnRlZCBpdGVtcyBmcm9tIHNubXBfZGVidWcuCiAgIAoyMDAzLTA1LTMwIDE3OjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBtb3JlIGNsZWFudXBzCiAgIAoyMDAzLTA1LTMwIDE2OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgIG1pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLCBtaWIyYy5jaGVja192YWx1ZXNfbG9jYWwuY29uZiwKICAgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgVXBkYXRlIHRvIG1pYjJjIGNvZGUgZm9yIHByb2R1Y2luZyB3aGF0IEkgdGhpbmsgc2hvdWxkIGJlIGFuIGVhc2llciB0bwogICB1c2UgQVBJIHNldCAodGhhdCBpcyBub3QgYWxsIHdyYXBwZWQgaW50byBhIHNpbmdsZSBmdW5jdGlvbikuCiAgIAoyMDAzLTA1LTMwIDE2OjUxICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaXggbWliIHR5cG8KICAgCjIwMDMtMDUtMzAgMTY6NTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBkZWZpbmUgYSBub29wIGZyZWUgZnVuY3Rpb24uCiAgIAoyMDAzLTA1LTMwIDE2OjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYwo6CgogICBleHBvcnQgaW5mb3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBuZXcgZGVidWcgbW9kdWxlcy4KICAgCjIwMDMtMDUtMzAgMTQ6NDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgY29tcGlsaW5nIHNlY3Rpb24gd2l0aCBvbmUgbmV3IHF1ZXN0aW9uIGFib3V0IGxpYmVsZi4gIE90aGVyIHF1ZXN0aW9ucyBwcm9iYWJseSBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIG5ldyBzZWN0aW9uCiAgIAoyMDAzLTA1LTMwIDA1OjE0ICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcHZhY20uMS5kZWY6CgogICBQcmVsaW1pbmFyeSBtYW4gcGFnZSBmb3Igc25tcHZhY20KICAgCjIwMDMtMDUtMzAgMDM6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEhhbmRsZSBibG9jayBzaXplcyA8MUsgd2hlbiBjb252ZXJ0aW5nIGJsb2NrIGNvdW50cyB0byBLYi4KICAgUmVwb3J0ZWQgYnkgRXVnZW5lIFYuIENodXByaXlhbm92ICh3YXkgYmFjayBpbiBPY3RvYmVyISkuCiAgIEZsYXdzIHdpdGggdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgcGF0Y2ggYXJlIG15IHJlc3BvbnNpYmlsaXR5LgogICAoSSdtIG5vdCB0b3RhbGx5IGhhcHB5IGFib3V0IGNhc3RpbmcgdG8gZmxvYXQgaW4gdGhpcyB3YXksCiAgICBidXQgaXQgc2VlbWVkIHRoZSBiZXN0IG9mIGEgYmFkIGxvdCkuCiAgIAoyMDAzLTA1LTMwIDAzOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFNpZ25pZmljYW50bHkgaW1wcm92ZWQgc3VwcG9ydCBmb3IgU29sYXJpcyBDUFUgaW5mb3JtYXRpb24KICAgKGluY2x1ZGluZyBkZXNjcmlwdGlvbiwgc3RhdHVzIGFuZCBtdWx0aS1DUFUgc3VwcG9ydCkuCiAgIFRoYW5rcyB0byBKYW1lcyBJcndpbiBmb3IgaW1wbGVtZW50aW5nIGl0IChzZWUgcGF0Y2ggIzczODQ2NSkKICAgTm8gdGhhbmtzIHRvIERhdmUgU2hpZWxkIGZvciBzaXR0aW5nIG9uIGl0IGZvciBhIGNvdXBsZSBvZiB3ZWVrcy4KICAgQmFkIERhdmUhIEJhZCBEYXZlIQogICAKMjAwMy0wNS0yOCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IG9sZF9hcGkuYyAoVjUtMC1wYXRjaGVzLjEpLCBvbGRfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgYXMgcG9pbnRlZCBvdXQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNS0yOCAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBnZXRidWxrIG9wZXJhdGlvbnMgKGhvcGVmdWxseSksIGFzIHBvaW50ZWQgb3V0IGJ5IFJvbiBUYWJvci4KICAgCjIwMDMtMDUtMjggMDY6MTIgIGR0czEyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciBiZWZvcmUgZGlzcGxheWluZyB0aGUgc2Vjb25kIChvciBzdWJzZXF1ZW50KQogICB2YXJiaW5kIGluIGEgbXVsdGktdmFsdWUgdGFibGUgZm9ybWF0LiAgQnVnIHNwb3R0ZWQgYnkgU3RlZmFubyBCb2RyYXRvLgogICAKMjAwMy0wNS0yOCAwNToxNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIEhlbHBlciB0byBncm91cCByZWxhdGVkIHJlcXVlc3RzIGZvciB0aGUgc2FtZSByb3cgdG9nZXRoZXIuICBTdWItaGFuZGxlcnMKICAgY2FuIHRoZXJlZm9yZSB3b3JrIHdpdGggbXVsdGlwbGUgdmFyYmluZHMsIGFsbCByZWxhdGluZyB0byB0aGUgc2FtZSByb3cuCiAgIAogICBUaGlzIHdhcyBvcmlnaW5hbGx5IGludGVuZGVkIGZvciB1c2Ugd2l0aCB0aGUgaXRlcmF0b3IgaGVscGVyLCBidXQKICAgdGhhdCBoZWxwZXIgaXMgYXBwYXJlbnRseSBiZWluZyByZXdvcmtlZCBhdCB0aGUgbW9tZW50LiAgQnV0IHRoaXMgc2VlbXMKICAgYSBwb3RlbnRpYWxseSB1c2VmdWwgZmVhdHVyZSBhbnl3YXksIHNvIEknbSBjb21taXR0aW5nIGl0IHJlZ2FyZGxlc3MhCiAgIAoyMDAzLTA1LTI4IDA0OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHN0cmF5IF5NIGxpbmUgZW5kaW5ncwogICAKMjAwMy0wNS0yOCAwMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy86IGRsbW9kLmMsIGRsbW9kLmg6CgogICBSZW1vdmUgcmVkdW5kZW50IHZlcnNpb24gb2YgJ2RsbW9kJy4gICBUaGlzIHdhcyBtb3ZlZCB0byAndWNkLXNubXAnCiAgIGluIDIwMDAsIGFuZCB0aGlzICdtaXNjJyB2ZXJzaW9uIGhhcyBiZWVuIGVmZmVjdGl2ZWx5IHVudG91Y2hlZCBzaW5jZS4KICAgTGVhdmluZyBpdCBhcm91bmQgaXMganVzdCBhc2tpbmcgZm9yIHBlb3BsZSB0byBnZXQgY29uZnVzZWQuCiAgIAoyMDAzLTA1LTI3IDA4OjU2ICBkdHMxMgoKICAgKiBBR0VOVC50eHQ6CgogICBNZW50aW9uIHRoYXQgdGhpcyBkZXNjcmliZXMgdGhlIHY0IEFQSSwgcmF0aGVyIHRoYW4gdGhlIHY1IGhlbHBlciBtZWNoYW5pc20uCiAgIAoyMDAzLTA1LTIxIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcnBtIGZpeGVzCiAgIAoyMDAzLTA1LTIxIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBpbnN0YWxsIHRoZSBzcGVjIGZpbGUKICAgCjIwMDMtMDUtMjEgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYklJL3ZhY21fY29udGV4dC5jOgoKICAgRml4IGZvciBwcm9wZXIgbm9uLXNlcmlhbGl6ZWQgaXRlcmF0b3IgdXNhZ2UuCiAgIAoyMDAzLTA1LTIxIDA2OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYwosIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuaCwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgTmV3IE1JQiBncm91cCB0byBtb25pdG9yIGFuZCBjb250cm9sIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSB0aGUgYWdlbnQuCiAgIE5vdGUgdGhhdCB0aGlzIGlzIGEgcHJvdmlzaW9uYWwgaW1wbGVtZW50YXRpb24sIGFuZCB0aGUgTUlCIGRlZmluaXRpb25zCiAgIGFyZSBjdXJyZW50bHkgc3ViamVjdCB0byBjaGFuZ2UgKGF0IGxlYXN0IHVudGlsIHdlIG1ha2UgYSBmdWxsIHJlbGVhc2UKICAgaW5jbHVkaW5nIHRoaXMgZ3JvdXApCiAgIAoyMDAzLTA1LTIxIDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAoVjQtMi1wYXRjaGVzLjcpLCBwYXNzLmM6CgogICBGaXggcGFzc2luZyBvZiAic2V0IiBwYXJhbWV0ZXJzIHRvIGEgcGFzcy10aHJvdWdoIHNjcmlwdAogICAoQnVnICM2ODk5MzYsIGZpeGVkIGJ5IEVyaWMgQm93bGVzKQogICAKMjAwMy0wNS0yMCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBNYW51IFNoYXJtYSdzIGR5bmFtaWNhbGx5LWNvbmZpZ3VyYWJsZSBkZWJ1ZyB0b2tlbiBoYW5kbGluZy4KICAgCjIwMDMtMDUtMjAgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBJbXBsZW1lbnQgYSAid2F0Y2hlZCBzcGlubG9jayIgaGVscGVyLgogICAKMjAwMy0wNS0yMCAwNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgRml4IGxvYWQgYXZlcmFnZSBzdXBwb3J0IGZvciBBSVg1IChCdWcgIzU2Mzk3OCByZXBvcnRlZCBieSBKZWZmIEN1bm5pbmdoYW0pCiAgIAoyMDAzLTA1LTIwIDAzOjI5ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBJbmNvcnBvcmF0ZSBOaWtvbGFpIERldmVyZWF1eCdzIG92ZXJ2aWV3IG9mIHRoZSBWaXN1YWwgQysrIG9yZ2FuaXNhdGlvbiwKICAgcGx1cyBzb21lIG1pbm9yIHJlYXJyYW5nZW1lbnQgb2Ygc2VjdGlvbnMsIGFuZCB0b25lIGRvd24gYSBzb21ld2hhdAogICBvdmVybHkgZW50aHVzaWFzdGljIGNvbW1lbnQuCiAgIAoyMDAzLTA1LTE1IDIyOjQyICBoYXJkYWtlcgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG9zZjUgcGF0Y2ggdGhhdCBuZXZlciBnb3QgYWRkZWQuCiAgIAoyMDAzLTA1LTE1IDIyOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgTWlub3IgZml4LgogICAKMjAwMy0wNS0xNCAxODoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgb29wc2llIGRvb3NpZSBmbG9vc2llIHdvb3ppZQogICAKMjAwMy0wNS0xNCAxODoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgb3BwcwogICAKMjAwMy0wNS0xNCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgb3RoZXIgLmNvbmYgZmlsZXMKICAgCjIwMDMtMDUtMTQgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgcmVtb3ZlIHVubmVlZGVkIHZhcgogICAKMjAwMy0wNS0xNCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtaXNjIG1pbm9yIGNoYW5nZXMKICAgCjIwMDMtMDUtMTQgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNhY2hpbmcgc3VwcG9ydCBmcm9tIGEgcGF0Y2ggIzcyNjQxOCBmcm9tIExhcnJ5IFNpbW1vbnMuCiAgIAoyMDAzLTA1LTE0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRhYmxlLjEuZGVmOgoKICAgMm5kIFBhdGNoIDcwMjcxMSBieSBSb24gVGFib3IgZG9jdW1lbnRpbmcgbmV3IHNubXB0YWJsZSBvcHRpb25zCiAgIAoyMDAzLTA1LTE0IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgUGF0Y2ggIzcxMzA3MiBmcm9tIFhpYW9mZW5nIExpbmcgZm9yIGNvbTJzZWMgbWFwcGluZ3Mgb24gdW5peCBzb2NrZXRzCiAgIHdpdGggcGVyLXNvY2tldCBtYXBwaW5ncy4KICAgCjIwMDMtMDUtMTQgMTQ6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYzoKCiAgIFBhdGNoICM3MzU0ODAgZnJvbSBCcnVjZSBTaGF3OiBhc3N1bWUgbm8gY28tcHJvY2Vzc29yIGZvciBTdW5zLCBhcyBpcyB0aGUgbW9yZSBjb21tb24gY2FzZQogICAKMjAwMy0wNS0xNCAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgVXNlIC9ldGMvcHJpbnRjYXAgdG8gZGV0ZWN0IHByaW50ZXJzIGluIHByZWZlcmVuY2UgdG8gcnVubmluZyBscHN0YXQKICAgKG9yIHRoZSBjZ2V0bmV4dCgpIEFQSSkuICAgVGhpcyBzZWVtcyBtb3JlIGluIGtlZXBpbmcgb2Ygb3VyIGdlbmVyYWwKICAgcHJpbmNpcGxlIG9mIHRyeWluZyB0byBhdm9pZCBpbnZva2luZyBzdWItcHJvY2Vzc2VzIHdoZXJldmVyIHBvc3NpYmxlLgogICAKMjAwMy0wNS0xMiAyMzoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIFJvbiBUYWJvcgogICAKMjAwMy0wNS0xMiAyMzoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IG5ldyBzbm1wdGFibGUgb3B0aW9ucwogICAKMjAwMy0wNS0xMiAyMzowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIHBhdGNoICM3MDI3MTEgZnJvbSBSb24gVGFib3I6IEFkZCBuZXcgY29tbWFuZCBsaW5lIGZsYWdzIHRvIHNubXB0YWJsZSBmb3IgdmFyaW91cyBuZXcgZmVhdHVyZXMKICAgCjIwMDMtMDUtMTIgMjI6NTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjUtMC1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM3MzU1MTEgZnJvbSBBbGV4IEJ1cmdlcjogZml4IHNubXB0cmFwZCB0byBlbnN1cmUgdGhlcmUgYXJlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2YXJiaW5kcwogICAKMjAwMy0wNS0xMiAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jIChWNS0wLXBhdGNoZXMuMSksIHByb3h5LmMKOgoKICAgUGF0Y2ggIzczNjc4NCBmcm9tIFJvbiBUYWJvcjogZml4IHByb3hpZXMgZm9yIHJlc3RhcnRlZCBOU01QdjMgc3ViLWFnZW50cwogICAKMjAwMy0wNS0wOSAwODo0NyAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgdmFyaW91cyBtaXNzaW5nIGZ1bmN0aW9uIG5hbWVzLCBzdXBwbGllZCBieSBBbGV4IEJ1cmdlcgogICAKMjAwMy0wNS0wOSAwODo0MSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwgd2luMzJzZGsuZHN3LAogICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIEFwcGx5IE5pa29sYWkgRGV2ZXJlYXV4J3MgVkMrKyBjbGVhbnVwIHBhdGNoICgjNjk0NzY2KQogICBJdCBhcHBlYXJzIHRvIHdvcmsgT0sgLSBJIGp1c3QgaG9wZSB0aGUgbGluZSB0ZXJtaW5hdGlvbnMKICAgZG9uJ3Qgc2NyZXcgdGhpbmdzIHVwIQogICAKMjAwMy0wNS0wOCAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQYXRjaCAjNzMzODgwIGZyb20gQWxleCBCdXJnZXIgdG8gZml4IHVzZU51bWVyaWMKICAgCjIwMDMtMDUtMDggMTY6MjEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBQYXRjaCAjNzM0Nzc0IGZyb20gQW5kcmV3IEZpbmRsYXk6IGZpeCB0aGUgdGVzdCBlbnZpcm9ubWVudCBmb3Igc25tcGQgdG8gZ2l2ZSBpdCBmdWxseSBxdWFsaWZpZWQgcGF0aCBuYW1lcyBmb3IgY29uZmlndXJhdGlvbiBmaWxlcyBzaW5jZSBzbm1wZCBub3cgY2hkaXIncyB0byAvCiAgIAoyMDAzLTA1LTA4IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKFY1LTAtcGF0Y2hlcy42KSwgUkVBRE1FOgoKICAgbWVudGlvbiBBbmRyZXcgRmluZGxheQogICAKMjAwMy0wNS0wOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzIChWNS0wLXBhdGNoZXMuMSksIGFnZW50LnhzOgoKICAgKGV4Y2VsbGVudCkgcGF0Y2ggIzcwNTU2NiBmcm9tIEFuZHJldyBGaW5kbGF5IG9uIHBlcmwgYWdlbnQgc3VwcG9ydDoKICAgCiAgIDEpIEFnZW50IGNhbm5vdCByZXR1cm4gTUFDIGFkZHJlc3NlcyBjb250YWluaW5nIHplcm8gb2N0ZXQuCiAgIAogICAyKSBBZ2VudCBjb3JlZHVtcHMgd2hlbiB0cnlpbmcgdG8gcmV0dXJuIElQIGFkZHJlc3NlcwogICBpZiB0aGVzZSBhcmUgc3VwcGxpZWQgYXMgZG90dGVkLXF1YWQgb3IgYXMgYSBob3N0bmFtZQogICB0aGF0IGZhaWxzIHRvIHJlc29sdmUuCiAgIAogICAzKSBBZ2VudCBjb3JydXB0cyBPSUQgdmFsdWVzLgogICAKICAgNCkgQWdlbnQgdHJ1bmNhdGVzIGFueSBPQ1RFVF9TVFJJTkcgb3IgQklUX1NUUklORyB0aGF0CiAgIGNvbnRhaW5zIGEgemVybyBvY3RldCAodGhpcyBpcyB0aGUgcm9vdCBjYXVzZSBvZiAoMSkgYWJvdmUpCiAgIAogICBBUEkgY2hhbmdlcyBpbnRyb2R1Y2VkOgogICAKICAgYSkgSVAgYWRkcmVzc2VzIG5vdyBwYXNzZWQgYXMgYmluYXJ5IHN0cmluZ3MgKDQgb2N0ZXRzCiAgIGZvciBJUHY0KSByYXRoZXIgdGhhbiBkb3R0ZWQtcXVhZCBvciBuYW1lLiBUaGlzCiAgIHNpZGVzdGVwcyB0aGUgSVB2NC9JUHY2IHByb2JsZW0gYW5kIGxlYXZlcyB0aGUgY2FsbGluZwogICBzY3JpcHQgdG8gZGVhbCB3aXRoIG5hbWUtPmFkZHJlc3MgcmVzb2x1dGlvbiBhbmQKICAgYXNzb2NpYXRlZCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgKFY1LTAtcGF0Y2hlcy5bMSwxLDEsMSwzLDQsMV0pLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHBhdGNoICM3MTAyNzUgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogY29uc3QgZml4ZXMgZm9yIEFQSXMgdGhhdCBkb24ndCBtb2RpZnkgdGhlaXIgYXJndW1lbnRzCiAgIAoyMDAzLTA1LTA4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzeXN0ZW0uaCAoVjUtMC1wYXRjaGVzLjEpLCBzeXN0ZW0uaAo6CgogICBtaXNzZWQgYSBjb21taXQgZm9yIGEgcGVybCBwYXRjaAogICAKMjAwMy0wNS0wOCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjUtMC1wYXRjaGVzLjIpLCBpcEFkZHIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzcxMjEwMTogbWlub3IgaXJpeCBmaXgKICAgCjIwMDMtMDUtMDggMDk6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1JFQURNRQosIFNOTVAvU05NUC54cywgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgcGF0Y2ggIzcxNTYwMzogZml4IHBlcmwgbW9kdWxlIGJ1aWxkcyB1bmRlciB3aW5kb3dzCiAgIAoyMDAzLTA1LTA4IDA4OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFwcGx5IHBhdGNoIFsgNzI0OTI3IF0gdG8gZml4IGxvZyBtc2c7IGFkZCBcbiB0byBsb2cgbXNncwogICAKMjAwMy0wNS0wOCAwODoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgY2hnIE5FVF9TTk1QX1VTRV9BU1NFUlQgZGVmaW5lIHRvIE5FVFNOTVBfVVNFX0FTU0VSVCB0byBiZSBjb25zaXN0ZW50CiAgIAoyMDAzLTA1LTA1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1vdmUgaW4gYWdlbnR4IGRvY3VtZW50YXRpb24gc29tZW9uZSBvbmx5IGFkZGVkIHRvIHRoZSBwYXRjaGVzIGJyYW5jaCAoYmFkIHNvbWVvbmUpCiAgIAoyMDAzLTA1LTA1IDE1OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmIChWNS0wLXBhdGNoZXMuNCksIHNubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDMtMDQtMjkgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUmVhbGx5IGZpeCBzb2xhcmlzIGJ5IHJlbW92aW5nIHN1cHBvcnQgZm9yIHRoZSBjaWRyIHRhYmxlIGZ1bmN0aW9uLgogICAKMjAwMy0wNC0yOSAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmg6CgogICBhdHRlbXB0IHRvIGZpeCBzb2xhcmlzIGJ5IHJlbW92aW5nIHN1cHBvcnQgZm9yIHRoZSBjaWRyIHRhYmxlIGZ1bmN0aW9uLgogICAKMjAwMy0wNC0yOSAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBMaW51eCBNdWx0aS1DUFUgZGV0ZWN0aW9uIChob3BlZnVsbHkhKS4KICAgRG9uZSBhdCBpbml0aWFsaXNhdGlvbiwgc28gd29uJ3QgZGV0ZWN0IGNoYW5nZXMgZHVyaW5nIHJ1biB0aW1lLgogICAocHJvYmFibHkgZmFpcmx5IHVubGlrZWx5ISkuCiAgIEFsc28gY2hhbmdlcyBkZXZpY2UgaW5kZXggdmFsdWUgZm9yIHNpbmdsZSBDUFUgZGV2aWNlIG9uIG90aGVyIGFyY2hzLgogICAKMjAwMy0wNC0yOSAwMTo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBGaXJzdCBkcmFmdCBvZiBMaW51eCBDUFUgZGV0ZWN0aW9uIChzdGlsbCBvbmx5IHN1cHBvcnRzIG9uZSBDUFUpLgogICAKMjAwMy0wNC0yOSAwMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3Byb2MuYywgaHJfb3RoZXIuYzoKCiAgIENvbnNvbGlkYXRlIGFsbCBoclByb2Nlc3NvclRhYmxlIGltcGxlbWVudGF0aW9uIGludG8gb25lIHBsYWNlLgogICAoQmFzaWNhbGx5IGp1c3QgbW92aW5nIGNvZGUgZnJvbSBocl9vdGhlci5jIHRvIGhyX3Byb2MuYykKICAgCjIwMDMtMDQtMjggMjM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIGRveHlnZW4gZG9jdW1lbnRhdGlvbiBmb3IgZXZlcnl0aGluZyAoZ2FzcCkKICAgLSBTdXBwb3J0IGZvciBzYXZpbmcvcmVzdG9yaW5nIG9mIGVudGlyZSBkYXRhX2xpc3RzLgogICAKMjAwMy0wNC0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIG1ha2UgZG9jcy4KICAgCjIwMDMtMDQtMjggMjM6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIGFkZGVkIHByb3RvdHlwZXMgZm9yIHNhdmUvcmVzdG9yZSBvZiBkYXRhIGxpc3RzLgogICAKMjAwMy0wNC0yOCAyMzozNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIHB1dCBkYXRhX2xpc3QuaCBiZWxvdyBjYWxsYmFjay5oCiAgIAoyMDAzLTA0LTI4IDIzOjM1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgc25tcHRyYXBkIC10IGFuZCBkaXNraW8gb24gbGludXgKICAgCjIwMDMtMDQtMjUgMTE6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG9wcHMKICAgCjIwMDMtMDQtMjUgMDg6MDEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHR5cG8gaW4gJ1dyaXRlT25seScgKHNlZSBidWcgIzcxMTMyNCkKICAgCjIwMDMtMDQtMjUgMDc6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIHBlb3BsZQogICAKMjAwMy0wNC0yNSAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb2N1bWVudCBkaXNraW8gc3VwcG9ydCBmb3IgbGludXgKICAgCjIwMDMtMDQtMjUgMDc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzcxMjI1OSBmcm9tIEphbWVzIEtuaXR0ZXI6IGRpc2tpbyBzdXBwb3J0IGZvciBsaW51eAogICAKMjAwMy0wNC0yNSAwNzowMiAgaGFyZGFrZXIKCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgcGF0Y2ggIzcxMDY4NzogZml4IGZvcm1hdHRpbmcgYnVnCiAgIAoyMDAzLTA0LTI1IDA2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgcGF0Y2ggIzcwMjM1MSBmcm9tIEphbWVzIElyd2luOiBhIG5ldyBnZXRLc3RhdFN0cmluZygpIGZ1bmN0aW9uLgogICAKMjAwMy0wNC0yNSAwNjowMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHRoZSAtZSBFTkdJTkVJRCBmbGFnIGZvciBjcmVhdGVVc2VyLgogICAgIC0gcG9pbnRlZCBvdXQgYnkgRGFuYSBDb29rCiAgIAoyMDAzLTA0LTI0IDA4OjE5ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHVzbS5jLCBzbm1wdmFjbS5jOgoKICAgRml4IGEgdHlwbyBpbiBvdXRwdXQgbWVzc2FnZXMuICAoU2VlIEJ1ZyAjNzI2OTQzKQogICAKMjAwMy0wNC0yNCAwNjowMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFJlcG9ydCBiYWNrIGZhaWx1cmVzIGluIG5ldHNubXBfY2FsbGJhY2tfY2xvc2UgY29ycmVjdGx5LgogICBQYXRjaCAjNzI0OTI4IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDQtMjMgMDc6MzggIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQYXRjaCAjNzI1MTQxIGJ5IFBldGVyIFdhcmFzaW46IEZpeCBzZWdtZW50YXRpb24gZmF1bHQgb24gc25tcHRhYmxlCiAgIAoyMDAzLTA0LTIzIDA2OjU2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wdXNtLmM6CgogICBQYXRjaCAjNzI0OTEzIGJ5IFBldGVyIFdhcmFzaW4gLSByZW1vdmVzIDIgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDMtMDQtMjMgMDY6NDYgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgU3Vic3RpdHV0ZSBzeXNjb25mZGlyIGNvcnJlY3RseSB3aGVuIGJ1aWxkaW5nIHNlZHNjcmlwdC4KICAgUGF0Y2ggIzcxMDY4OSBieSBQZXRlciBCcmVpdGVubG9obmVyCiAgIAoyMDAzLTA0LTIzIDA2OjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcywgbWFuL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBoZWFkZXIgZmlsZXMgYW5kIG1hbiBwYWdlcyB3aXRoIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zLgogICBGcm9tIHBhdGNoICM3MTA2ODUgYnkgUGV0ZXIgQnJlaXRlbmxvaG5lcgogICAKMjAwMy0wNC0yMyAwNjoyMiAgZHRzMTIKCiAgICogRkFROgoKICAgRml4IHJlZmVyZW5jZXMgdG8gaW5jb3JyZWN0IEFQSSBjYWxscwogICAKMjAwMy0wNC0yMyAwMzowNiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBBZGQgYW4gZXhwbGljaXQgZXhhbXBsZSBmb3IgY29tMnNlYyBhZGRyZXNzIG1hc2tpbmcsIGFzIHN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAzLTA0LTIyIDA2OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXN0b3JlIHRoZSBvcmlnaW5hbCBkZWJ1ZyBpbmRlbnRhdGlvbiBsZXZlbCB3aGVuIGR1bXBpbmcgYW4gU05NUHYxL3YyYwogICByZXF1ZXN0IFBEVS4gICBSZXBvcnRlZCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA0LTE3IDA3OjIzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcm9wYWdhdGUgZXJyb3Igc3RhdHVzIHZhbHVlcyBiYWNrIHVwIHRvIHRoZSBtYWluIGFnZW50IHByb2Nlc3NpbmcKICAgKHNvIHRoYXQgZS5nLiBmYWlsZWQgU05NUHYyIHNldCByZXF1ZXN0cyB1c2luZyBhIHJlYWQtb25seSBjb21tdW5pdHkKICAgIHJlcG9ydCBhIGZhaWx1cmUsIHJhdGhlciB0aGFuIGFwcGVhcmluZyB0byBzdWNjZWVkISkKICAgCjIwMDMtMDQtMTYgMDY6MzcgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIERlZmluZSBhICJwcml2YXRlIGV4cGVyaW1lbnRhdGlvbiIgYXJlYSBvZiB0aGUgT0lEIHRyZWUsCiAgIGZvciB0aG9zZSB3aG8gd2lzaCB0byBoYXZlIGEgcGxheSB3aXRoIHRoaW5ncywgYW5kIGRvbid0CiAgIHlldCBoYXZlIGFuIGVudGVycHJpc2UgT0lEIG9mIHRoZWlyIG93bi4KICAgCiAgIFNlZSB0aGUgbmV0LXNubXAtdXNlcnMgdGhyZWFkICdPSUQgcmVnaXN0cmF0aW9uJywgZnJvbSBNYXJjaC9BcHJpbCAyMDAzLgogICAKMjAwMy0wNC0xNiAwNjozMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBUd2FlayB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IHRvIGJlIGJhcmUgdGhlIHN1ZmZpeCBmb3JtCiAgIChhcyBleHBlY3RlZCBieSBTTk1QOjpPSUQgdGVzdCBoYXJuZXNzKS4KICAgV2Ugc2hvdWxkIHByb2JhYmx5IGRlZmF1bHQgdG8gTUlCOjp2YXJpYWJsZSBmb3JtLCB0byBtYXRjaAogICB0aGUgQyBsaWJyYXJ5LCBhbmQgcHJvdmlkZSBhIGZsYWcgZm9yIHRoZSBiYXJlIHN1ZmZpeC4KICAgCjIwMDMtMDQtMTYgMDI6NDYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGhhbmRsaW5nIG9mICdVc2VOdW1lcmljJyBhbmQgJ1VzZUxvbmdOYW1lcycgZm9yIGdldC9nZXRuZXh0L2dldGJ1bGsgbWV0aG9kcy4KICAgCiAgIEZpeGluZyAnZ2V0bmV4dCcvJ2dldGJ1bGsnIG1vc3RseSBpbnZvbHZlZCB1cGRhdGluZyB0aGUgY29uc29saWRhdGVkCiAgIE5FVFNOTVBfRFNfTElCX09JRF9PVVRQVVRfRk9STUFUJyBzZXR0aW5nLCByYXRoZXIgdGhhbiB0aGUgaW5kaXZpZHVhbCBib29sZWFucy4KICAgRml4aW5nICdnZXQnIHJlcXVpcmVkIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlcyB0byB0aGUgb3V0cHV0IGNvZGUsIHNvIEkgc2ltcGx5CiAgIGNvcGllZCB0aGUgJ2dldG5leHQnIHJvdXRpbmUgZW4tbWFzc2UsIGFuZCB0d2Vha2VkIGl0IGFwcHJvcHJpYXRlbHkuCiAgIFRoZXJlIGlzIGEgbGFyZ2UgYW1vdW50IG9mIG92ZXJsYXAgYmV0d2VlbiB0aGVzZSB0aHJlZSByb3V0aW5lcywgYW5kIGl0IG1pZ2h0CiAgIGJlIHdvcnRoIGxvb2tpbmcgYXQgY29uc29saWRhdGluZyB0aGUgY29tbW9uIGNvZGUgaW4gc29tZSB3YXkuCiAgIAoyMDAzLTA0LTE2IDAyOjQyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHMKOgoKICAgQXBwbHkgQWxleCBCdXJnZXIncyBwZXJsICd0cmFuc2xhdGVPYmonIGhhbmRsaW5nIHBhdGNoICgjNzIyMDc1KQogICAKMjAwMy0wNC0xNSAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBLaXJpbGwgU2VtZW5rb3YgZm9yIG9uZSBtb3JlIGZpeCB0byBsaW51eCBpbnRlcmZhY2Ugc3BlZWQKICAgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDQtMTAgMDg6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgaHJfcGFydGl0aW9uLmM6CgogICBGaXggaGFuZGxpbmcgb2YgaHJQYXJ0aXRpb25UYWJsZSwgYnJva2VuIGR1cmluZwogICBUaGUgR3JlYXQgU1VTRSAncHJpbnRmJyBIdW50LgogICBUaGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIGZvciB0aGlzIHBhdGNoLgogICAKMjAwMy0wNC0wOSAwMTo1MiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgSW1wb3J0IFNubXBBZG1pblN0cmluZywgYXMgc3VnZ2VzdGVkIGJ5IFZhZGltIFRhcmFzc292LgogICAKMjAwMy0wNC0wOCAwNzo1NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBGaXggdGhlIGVycm9yIGNvZGUgdXNlZCBmb3IgdW5hdmFpbGFibGUgcmVzb3VyY2VzLgogICBTcG90dGVkIGJ5IGNoaWNoaWVuLgogICAKMjAwMy0wNC0wMiAwOToyMyAgc3JhZG1hbgoKICAgKiBjb25maWd1cmUuaW46CgogICBpbXByb3ZlIGxtU2Vuc29ycyBzdXBwb3J0CiAgIC0gY2hlY2sgZm9yIGhlYWRlcnMKICAgLSBjaGVjayBmb3IgbGlicwogICAKMjAwMy0wNC0wMiAwNjozMSAgc3JhZG1hbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaDoKCiAgIGFkZCBMTS1TRU5TT1JTLU1JQiB3aGVuIG1vZHVsZSBpcyBpbmNsdWRlZAogICAKMjAwMy0wMy0yOCAwNjo0OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjUgKFY1LTAtcGF0Y2hlcy4xKSwgUkVBRE1FLmtyYjU6CgogICBLZW4gSG9ybnN0ZWluIG5vdGVkIHRoYXQgdGhlIHJ3dXNlciAtcyBmbGFnIHdhcyBtaXNzaW5nIGl0J3MgYXJndW1lbnQKICAgCjIwMDMtMDMtMjggMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wa3NtLmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gZm9yIG1pc2Mga3JiNSBmaXhlcyAoZW5jcnlwdGlvbiB0eXBlcywgTmV3IGNyeXB0byBzdXBwb3J0LC4uLgogICAKMjAwMy0wMy0yMCAxMToxOCAgc3JhZG1hbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggYnVnICM2NzI0NjQ6IGlmQWRtaW5TdGF0dXMgbXVzdCBjaGFuZ2UgdG8gZG93bgogICAtIGlmQWRtaW5TdGF0dXMgdXAgaWYgaW50ZXJmYWNlIGlzIFVQCiAgIC0gaWZPcGVyU3RhdHVzIHVwIGlmIGludGVyZmFjZSBpcyBVUCBhbmQgUlVOTklORwogICAtIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSAibGlua191cCIga3N0YXQKICAgLSBhZGRlZCBDYXNzaW5pIEdpZ2FiaXQtRXRoZXJuZXQgKGNlKSBzdXBwb3J0CiAgIAoyMDAzLTAzLTE5IDExOjQ1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgdHJhaWxpbmcgXCBmcm9tIGxhc3QgbGluZSBvZiBwZXJsIHJ1bGVzCiAgIAoyMDAzLTAzLTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wX2FnZW50LmM6CgogICBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuIHRvIGZpeCBzb21lIEFnZW50WCAobW9zdGx5KSBtZW1vcnkgbGVha3MKICAgCjIwMDMtMDMtMTIgMTA6MzkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiAoVjUtMC1wYXRjaGVzLjMpLCBuZXQtc25tcC1jb25maWcuaW46CgogICBwYXRjaCAjNjk5MzgwOiBGcm9tIENocmlzdG9waGUgS2FsdDogbWFrZSBuZXQtc25tcC1jb25maWcgZG8gd2hhdCBpdCdzIGRvY3VtZW50IHRvIGRvIChhZGQgLUxAbGliZGlyQCkKICAgCjIwMDMtMDMtMTIgMDg6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNS0wLXBhdGNoZXMuMyksIHNubXBfYXBpLmM6CgogICBwYXRjaCAjNzAwNjcyOiByZXNldCBpdG1wIHRvIHRoZSBuZXcgdmFsdWUgbGVuZ3RoIGFmdGVyIGRlY29kaW5nIGEgaGV4IHN0cmluZwogICAKMjAwMy0wMy0xMiAwODo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZXR1cm4gaW5kZXhlcyBmb3IgYXVnbWVudGVkIHRhYmxlcwogICAKMjAwMy0wMy0xMiAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIFJFQURNRToKCiAgIFBhdGNoICM3MDEzOTg6IGNvbTJzZWN1bml4IHRva2VuIGZyb20gWGlhb2ZlbmcgTGluZyBmb3IgdW5peCBzb2NrZXRzCiAgIAoyMDAzLTAzLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUkVBRE1FLCBSVU5URVNUUzoKCiAgIHVwZGF0ZSB0byByZWFsIHdvcmxkIGFuZCBhZGQgYmV0dGVyIC1oIG91dHB1dAogICAKMjAwMy0wMy0xMCAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgYXR0ZW1wdCB0byBjb3JyZWN0IGZvciBkeW5hbWljIGxvYWRpbmcgb2YgYSBvbGRlciBvcGVuc3NsIGxpYnJhcnksIHdoaWNoIGlzIGNvbW1vbiBpZiB5b3UgaGF2ZSB0aGUgbW9kX3NzbCBycG0gaW5zdGFsbGVkIGFuZCBhIG5ld2VyIGxpYmNyeXB0byBsaWJyYXJ5IGF0IHRoZSBzYW1lIHRpbWUKICAgCjIwMDMtMDMtMTAgMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSBvcGVuc3NsIGZyZWUgYnVnIGZvciB0aGUgbGFzdCB0aW1lCiAgIAoyMDAzLTAzLTA1IDIyOjQyICByc3RvcnkKCiAgICogY29uZmlndXJlIChWNS0wLXBhdGNoZXMuMiksIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wMy0wNSAyMjozNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBmb3IgbGlid3JhcCB3L25zbAogICAKMjAwMy0wMy0wNCAwOTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBuc01vZHVsZVRhYmxlLmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAgbnNNb2R1bGVUYWJsZS5jOgoKICAgd3JvbmcgdHlwZSByZXR1cm5lZCBmb3IgbnNNb2R1bGVNb2RlcyBhcyByZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0KICAgCjIwMDMtMDMtMDQgMDE6NTQgIGR0czEyCgogICAqIElOU1RBTEw6CgogICBNZW50aW9uIHRoZSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgYWdlbnQuCiAgIAoyMDAzLTAzLTAxIDA3OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4Lzogc3ViYWdlbnQuYyAoVjUtMC1wYXRjaGVzLjEpLCBzdWJhZ2VudC5jCjoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBiZXR0ZXIgZXJyb3IgY2hlY2tpbmcKICAgCjIwMDMtMDMtMDEgMDY6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAoVjUtMC1wYXRjaGVzLjEpLCBtYXN0ZXIuYwo6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogZG9uJ3QgY3JlYXRlIGRlbGVnYXRlZCBjYWNoZSBmb3IgQ0xFQU5VUFNFVAogICAKMjAwMy0wMi0yOCAyMDo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgKFY1LTAtcGF0Y2hlcy4zKSwgTWFrZWZpbGUuUEw6CgogICB0eXBvCiAgIAoyMDAzLTAyLTI4IDIwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUGF0Y2ggIzU1MTkwOSBmcm9tIEdhcnkgRWR3YXJkczogZGV0ZWN0IHpvbWJpZSBwcm9jZXNzZXMgYW5kIHByZXZlbnQKICAgdGhlbSBmcm9tIGJlaW5nIGNvdW50ZWQgYXMgdmFsaWQgdXNlcnMuCiAgIAoyMDAzLTAyLTI4IDIwOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCAoVjUtMC1wYXRjaGVzLjIpLCBNYWtlZmlsZS5QTDoKCiAgIFBhdGNoICM1OTc2MjkgZnJvbSBNYXR0IFNlbHNreSB0byBmaXggbWFuIHBhZ2UgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTAyLTI4IDIwOjAyICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvOiBERVZFTlYsIGVsZmRlcGVuZC5zaCwKICAgbmV0LXNubXAtNS4wLjYtYnVpbGQ6CgogICBwYXRjaCAjNjU0NTgxIGZyb20gU3RlZmFuIFJhZG1hbjogU29sYXJpcyBQYWNrYWdpbmcgYnVpbGQgc2NyaXB0cwogICAKMjAwMy0wMi0yOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM2OTUzMTIgZnJvbSBBbGV4IEJ1cmdlcjogYWRkIC10IHN3aXRjaCB0byBkaXNhYmxlIHN5c2xvZy4KICAgCjIwMDMtMDItMjggMTk6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBkb2N1bWVudCAtdAogICAKMjAwMy0wMi0yOCAwMjowOCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgU2ltcGxlIHBhdGNoIHRvIGNhdGNoIHJlLWRlY2xhcmF0aW9ucyBvZiB0aGUgInRvcC1sZXZlbCIgb2JqZWN0cy4KICAgU3VwcGxpZWQgYnkgU2VhbiBCdXJrZQogICAKMjAwMy0wMi0yOCAwMToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgUmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlcyBmb3IgaXB2NkZvcndhcmRpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFlpeGlvbmcgWm91IChCdWcgIzY5NDc0NSkKICAgCjIwMDMtMDItMjYgMjE6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBkZWZhdWx0IG9jdGV0IHN0cmluZ3MgdG8gdW5zaWduZWQgY2hhciBhcnJheXM7IGZpeCBleGFtcGxlOyBmaXggbG9naWMgb2YKICAgY29uZGl0aW9uYWw7IG1ha2UgY29kZSByZWZlcmVuY2luZyBjYW5fKGRlKWFjdGl2YXRlIGNvbmRpdGlvbmFsIHdpdGggc2FtZSBsb2dpYwogICB1c2VkIHRvIGdlbmVyYXRlIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcwogICAKMjAwMy0wMi0yNiAxMDozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M3ZhY21jb25maWcsIFN2YWNtY29uZmlnLAogICBUMTMwc25tcHYxdmFjbWdldCwgVDEzMXNubXB2MmN2YWNtZ2V0LAogICBUMTMyc25tcHYzdmFjbWdldCwgVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICBUMTQxc25tcHYyY3ZhY21nZXRmYWlsLCBUMTQyc25tcHYzdmFjbWdldGZhaWw6CgogICBQYXRjaCAjNjg3ODM3IGZyb20gWGlhb2ZlbmcgTGluZyBmb3IgVkFDTSB0ZXN0IGNhc2VzCiAgIAoyMDAzLTAyLTI2IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgd2luMzIvY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgd2luMzIvY29uZmlnLmguYm9ybGFuZAosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBSRUFETUUsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaDoKCiAgIHBhdGNoICM2OTAzNTMgZnJvbSBLZXZpbiBHcmFoYW06IHBvcnQgdG8gVHJ1NjQgdjUgLyBvc2Y1CiAgIAoyMDAzLTAyLTI2IDEwOjEwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoICM2OTI4MzQgZnJvbSBEYXZpZCBWcmFiZWw6IGFkZCAtLXdpdGhvdXQtcnBtIGZvciBkaXNhYmxpbmcgcnBtIGNoZWNrcwogICAKMjAwMy0wMi0yNiAwODoyOCAgZHRzMTIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgT29wcyAtIG1pc3NlZCB0aGUgZGVmaW5pdGlvbiBvZiAnSU5TVEFMTF9EQVRBJyBmcm9tIFBldGVyJ3Mgb3JpZ2luYWwgcGF0Y2guCiAgIFNvcnJ5IQogICAKMjAwMy0wMi0yNiAwNzoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgVGhhbmtzIHRvIFNyaWthbnRoIFBpbmRpcHJvbGkKICAgCjIwMDMtMDItMjYgMDc6MTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgdXBkYXRlIHRvIHBhdGNoICM2NTU0NDQ6IGRvY3VtZW50IGluY2x1ZGVBbGxEaXNrcyBmcm9tIFNyaWthbnRoIFBpbmRpcHJvbGkKICAgCjIwMDMtMDItMjYgMDQ6NDUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFN0b21wIG9uIHRyYWlsaW5nIHdoaXRlc3BhY2UgaW4gY29uZmlnIGxpbmVzLgogICBUaGlzIGFsbG93cyB0b2tlbiBjb21wYXJpc29ucyB0byB3b3JrIGFzIGV4cGVjdGVkLgogICAoU2VlIGJ1ZyAjNjkwNzcwKQogICAKMjAwMy0wMi0yNiAwNDoyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBnZXRvcHQgaGFuZGxpbmcgb2YgLVMgKHNlZSBidWcgIzY5MzE2NykKICAgCjIwMDMtMDItMjUgMTE6NDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgZG9uJ3QgdHJ5IGFuZCBydW4gYXV0b2NvbmYvYXV0b2hlYWRlciBpZiBub3QgaW5zdGFsbGVkCiAgIAoyMDAzLTAyLTI1IDA2OjQ4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBuZXQtc25tcC1jb25maWcgcGF0Y2ggKCM2OTIzNzMpCiAgIAoyMDAzLTAyLTI1IDA2OjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgUmVjb2duaXNlICJkZWZWZXJzaW9uIHYzIiBhcyB3ZWxsIGFzICJkZWZWZXJzaW9uIDMiIGFzIGRvY3VtZW50ZWQKICAgaW4gdGhlIG1hbiBwYWdlcyAocHJpb3IgdG8gUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvcnJlY3Rpb24pCiAgIFtXZSBtaWdodCBhcyB3ZWxsIHN1cHBvcnQgYm90aCBzdHlsZXMuLi4uXQogICAKMjAwMy0wMi0yNSAwNjowNiAgZHRzMTIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYKLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGNtZC4xLmRlZiwKICAgc25tcGNvbmYuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAwNjowNCAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBzZWRzY3JpcHQuaW4sCiAgIGxvY2FsL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb25maWd1cmF0aW9uLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIGNoYW5nZXMuCiAgIChwYXRjaGVzICM2OTIzNzIsICA2OTIzNzcsICA2OTIzNzkgYW5kIDY5MjM4NikKICAgCjIwMDMtMDItMjUgMDU6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaDoKCiAgIExpc3QgImZpeGVkIHR5cGUiIHN0b3JhZ2UgZW50cmllcyBmaXJzdCwgc28gdGhhdCB0aGVyZSBpc24ndCBhbgogICBhcmJpdHJhcnkgbGltaXQgb2YgMTAwIGRpc2stYmFzZWQgc3RvcmFnZSBlbnRyaWVzLgogICAKMjAwMy0wMi0yNSAwNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIEhhbmRsZSB1c2VyL2dyb3VwIG5hbWVzIHdoZW4gc2V0dGluZyBBZ2VudFggc29ja2V0IG93bmVyc2hpcC4KICAgCjIwMDMtMDItMjUgMDM6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgUHJlbGltaW5hcnkgcGF0Y2ggdG8gc3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIEFnZW50WCBzb2NrZXQgcGVybWlzc2lvbnMuCiAgIAogICBQZXJzb25hbGx5LCBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoaXMgaXMgcmVhZHkgZm9yIGNvbW1pdHRpbmcgdG8gdGhlCiAgIENWUyB0cmVlIHlldCwgYnV0IE15IE1hc3RlciBIYXMgU3Bva2VuLCBhbmQgSSBNdXN0IE9iZXkuLi4uLi4uCiAgIAoyMDAzLTAyLTIxIDIwOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQ2lkclJvdXRlVGFibGUuYywKICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLAogICBpcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5oLCBpcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmMsCiAgIGlwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuaCwgaXBDaWRyUm91dGVUYWJsZV9jb2x1bW5zLmgKLCBpcENpZHJSb3V0ZVRhYmxlX2VudW1zLmg6CgogICBBIGJlZ2lubmluZyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgSVAtRk9SV0FSRC1NSUI6OmlwQ2lkclJvdXRlVGFibGUuCiAgICAgLSB0aGlzIHRhYmxlIGlzIGEgcmVwbGFjZW1lbnQgZm9yIHRoZSBvYnNvbGV0ZSBpcFJvdXRlVGFibGUsIHdoaWNoCiAgICAgICBpc24ndCBldmVuIGltcGxlbWVudGVkIGJ5IG1vc3QgdmVuZG9ycyBhbnkgbW9yZS4KICAgICAtIG5vdCBjb21wbGV0ZS4gIFdyaXRlIHN1cHBvcnQgbm90IGltcGxlbWVudGVkIHlldC4gIFJlYWQtc3VwcG9ydAogICAgICAgd29ya2luZyB0aG91Z2guCiAgICAgLSBTaG91bGQgd29yayBvbiBldmVyeXRoaW5nIGJ1dCBocHV4MTE/ICB0ZXN0aW5nIG5lZWRlZC4KICAgICAtIHRoaXMgaXMgYW5vdGhlciBleGFtcGxlIG9mIGEgdGFibGVfaXRlcmF0b3IgYXBwbGljYXRpb24gKGRpZmZlcmVudAogICAgICAgdGhhbiB0aGUgcmVzdCB1c2luZyBhY2Nlc3NvcnMpLgogICAKMjAwMy0wMi0yMSAyMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiByb3V0ZV9oZWFkZXJzLmgsIHZhcl9yb3V0ZS5jOgoKICAgbW92ZWQgaGVhZGVycyB0byBhIHNlcGFyYXRlIGZpbGUgdXNhYmxlIGJ5IG90aGVyIG1vZHVsZXMuCiAgIGV4cG9ydGVkIHRoZSBjb2xsZWN0ZWQgcm91dGUgdGFibGUuCiAgIAoyMDAzLTAyLTIxIDIwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIG1vdmVkIGhlYWRlcnMgdG8gYSBzZXBhcmF0ZSBmaWxlIHVzYWJsZSBieSBvdGhlciBtb2R1bGVzCiAgIAoyMDAzLTAyLTIxIDIwOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgQW4gYWx0ZXJuYXRlIHRhYmxlX2l0ZXJhdG9yIC5jb25mIGZpbGUgKHRoYXQgbWF5IGV2ZW50dWFsbHkgYmVjb21lIHRoZQogICBkZWZhdWx0KS4gIFRoaXMgb25lIHVzZXMgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGdldC9zZXQgZGF0YSBhbmQgc2hvdWxkCiAgIHRha2UgY2FyZSBvZiBtb3N0IG90aGVyIFNOTVAgc3BlY2lmaWMgc3R1ZmYgZm9yIHlvdS4gIE5vdCBjb21wbGV0ZSwKICAgYW5kIGEgZ29vZCBwZXJjZW50YWdlIG9mIHRoZSBjb2RlIHJlcGV0aXRpb24gd2lsbCBsaWtlbHkgbW92ZSBpbnRvCiAgIGFub3RoZXIgc3ViLWl0ZXJhdG9yIGhhbmRsZXIgaW4gdGhlIGZ1dHVyZS4gIFRoZSBpcENpZHJSb3V0ZVRhYmxlIGlzCiAgIGFuIGV4YW1wbGUgb2YgdGhpcyBvdXRwdXQuCiAgIAoyMDAzLTAyLTIxIDIwOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICAtIGNvbW1lbnQgYWRkaXRpb25zIGFuZCBjbGVhbnVwcy4KICAgLSBwdXQgdGhlIGZyZWUvZXRjIGZ1bmN0aW9uIHBvaW50ZXJzIGluIGFuICNpZmRlZiBjbGF1c2UKICAgCjIwMDMtMDItMjEgMjA6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9lbnVtcy5jb25mOgoKICAgY29tbWVudCBtb3ZlIGZvciBiZXR0ZXIgZm9ybWF0dGluZy4KICAgCjIwMDMtMDItMjEgMjA6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgLSBnZW5lcmF0ZSBhbmQgdXNlIHRoZSBlbnVtcyBoZWFkZXIgZmlsZS4KICAgLSBnZW5lcmF0ZSBhIC5oIGZpbGUuCiAgIC0gbWlzYyBmaXhlcy4KICAgCjIwMDMtMDItMjEgMjA6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIEEgLmNvbmYgZmlsZSB0byBnZW5lcmF0ZSBnZXRfL3NldF8gYWNjZXNzIGZ1bmN0aW9ucyBmb3IgZWFjaCBjb2x1bW4uCiAgICAgLSBpdGVyYXRvciBzcGVjaWZpYy4KICAgCjIwMDMtMDItMjEgMjA6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBlbnVtIGZpeC4KICAgLSBkb24ndCBzb3VyY2UgKHJ1bikgLmNvbmYgZmlsZXMgdHdpY2UuCiAgIAoyMDAzLTAyLTIxIDIwOjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIC0gZG94eWdlbiB1cGRhdGUuCiAgIC0gaW5jbHVkZXMgbmV3IG5ldHNubXBfb2lkX3N0YXNoIG1hbiBwYWdlLgogICAKMjAwMy0wMi0yMSAyMDowNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIC0gZG94eWdlbiBjb21tZW50IGV2ZXJ5dGhpbmcKICAgLSBzdGFydGVkIChub3QgY29tcGxldGUpIGEgZ2V0bmV4dCBmdW5jdGlvbi4KICAgLSBpbXBsZW1lbnRlZCBhICJmcmVlIHRoZSB0cmVlIiBmdW5jdGlvbi4KICAgCjIwMDMtMDItMjEgMjA6MDQgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBhZGRlZCBhdXRvbTR0ZS5jYWNoZQogICAKMjAwMy0wMi0yMSAyMDowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgdGhlIGluY2x1ZGUgZGlyZWN0b3J5IHRvIHRoZSBtb2R1bGUgZWdyZXAgY3BwIC1JIGxpc3QuCiAgIAoyMDAzLTAyLTIxIDAxOjUwICBkdHMxMgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIEhUTUwtZXNjYXBlICc8JyBhbmQgJz4nIGNoYXJhY3RlcnMgaW4gRkFRIGVudHJpZXMKICAgCjIwMDMtMDItMjAgMDg6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgVXNlICduZXRzbm1wX3JlZ2lzdGVyX3NjYWxhcicgaW5zdGVhZCBvZiAnbmV0c25tcF9yZWdpc3Rlcl9pbnN0YW5jZScKICAgZm9yIGhhbmRsaW5nIHNjYWxhciBvYmplY3RzLgogICAKMjAwMy0wMi0xOSAyMTozOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHBhdGNoICM2NTc4MDg6IGNhbGN1bGF0ZSBhIHByb3BlciBpZlNwZWVkIHVuZGVyIGxpbnV4IHdoZW4gcG9zc2libGUKICAgYW5kIGRvIG1vcmUgcHJvcGVyIGlmT3BlclN0YXR1cyBzdGF0ZSBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wMi0xOSAyMTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTE5IDE2OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIHRvcCBsZXZlbCBkb3h5Z2VuIHdlYiBwYWdlIHRleHQKICAgCjIwMDMtMDItMTkgMTY6NTIgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2xkX2FwaS4zCiwgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zZXRfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMy0wMi0xOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgcnVuIHRoZSBjb2x1bW5fZW51bSBhbmQgY29sdW1uX2RlZmluZSAuY29uZiBmaWxlcyBhbmQgaW5jbHVkZSB0aG9zZSBoZWFkZXJzLgogICAKMjAwMy0wMi0xOSAxNjo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBBZGQgYSBAcnVuQCB0YWcgdG8gcnVuIG90aGVyIG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB0aGUKICAgY3VycmVudCBvbmUuCiAgIAoyMDAzLTAyLTE5IDE2OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIG1vcmUgKGJhZCkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGl0ZXJhdG9yIChnYXNwKQogICAKMjAwMy0wMi0xOSAxNjo1MCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIHByb2Nlc3NpbmcuCiAgIAoyMDAzLTAyLTE5IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJlbW92ZSBvbGQgdW51c2VkIGNvbW1lbnQuCiAgIAoyMDAzLTAyLTE5IDEzOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBjb252ZXJ0ZWQgYSBidW5jaCBvZiBub24tZG94eWdlbiBkb2NzIHRvIGRveHlnZW4gZG9jcy4KICAgCjIwMDMtMDItMTkgMTM6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgZG94eWdlbml6ZSBhIGZldyBkZWZpbmVzLgogICAKMjAwMy0wMi0xOCAwNzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGNvbmZpZ3VyZQogICAKMjAwMy0wMi0xNyAxMToyMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBzbXV4IHRvIGxpc3Qgb2YgbW9kdWxlcyBmb3IgZGlzdHJpYnV0aW9uOyBtb3ZlIHRlc3QgZm9yIG1ha2UgaW5zaWRlIG9mCiAgIG5zYi1tYWtlOyBhZGQgYmxhbmsgbGluZSBhYm92ZSBBQk9SVDsgcmVtb3ZlIHRlZSB0byBsb2dmaWxlLCBhcyBpdCBlYXRzCiAgIHJjIGZyb20gY29tbWFuZDsgYWRkIE5PQVVUT0RFUFM9eSB0byBhbGwgbWFrZSBzdGVwczsgZG8gbWFrZSB0b3VjaGl0IHdoZW4KICAgdGFyZ2V0ID0gYWxsOyB1c2UgbnNiLW1ha2UgZm9yIGRpc3RjbGVhbgogICAKMjAwMy0wMi0xNyAxMToxOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgZG8gYW55IG9mIHRoZSBhdXRvY29uZi9hdXRvaGVhZGVyIGRlcHMgaWYgTk9BVVRPREVQPSogc3BlY2lmaWVkCiAgIAoyMDAzLTAyLTE3IDExOjE1ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgYW5vdGhlciBkaXIgbGV2ZWwgZm9yIG1ha2UgZGVwZW5kcyAocGVyIERTLCBmcm9tIGEgd2hpbGUgYmFjayAtIHRob3VnaHQKICAgdGhpcyB3YXMgYWxyZWFkeSBjaGVja2VkIGluKQogICAKMjAwMy0wMi0xNyAwNzozMCAgbmJhCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTm90ZSBhYm91dCBiYWQgL3Vzci94cGc0L2Jpbi9zZWQKICAgCjIwMDMtMDItMTcgMDY6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgVGhlIGluY2x1ZGUgZm9yIGRtYWxsb2MgYmV0dGVyIGNvbWUgYWZ0ZXIgdGhlIHN0ZCBpbmNsdWRlcwogICAKMjAwMy0wMi0xNyAwNTozNiAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIERvbnQgc2VhcmNoIC91c3IvbG9jYWwgZm9yIGRtYWxsb2MgdW5sZXNzIHVzZXIgZXhwbGljaXRseSBhc2tzIGZvciBpdAogICAKMjAwMy0wMi0xNyAwNTozNCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIGJhY2sgdGhlIGRldmVsb3BlciB3YXJuaW5ncwogICAKMjAwMy0wMi0xNyAwNTozMyAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0ZXh0IGZvciBzb2NrbGVuX3QKICAgCjIwMDMtMDItMTcgMDU6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBTb21lIGVycm9yIG1lc3NhZ2VzIGZvciBTb2xhcmlzCiAgIAoyMDAzLTAyLTE3IDA0OjIzICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTkVULVNOTVAtVEMgbWliCiAgIAoyMDAzLTAyLTE0IDA3OjQxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgaW5jbHVkZUFsbERpc2tzCiAgIAoyMDAzLTAyLTE0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZGlzay5oOgoKICAgUGF0Y2ggIzY1NTQ0NCBmcm9tIFNyaWthbnRoIFBpbmRpcHJvbGk6CiAgICAgSW1wbGVtZW50IGEgbmV3IGluY2x1ZGVBbGxEaXNrcyBzbm1wZC5jb25mIHRva2VuIHRvIHBsYWNlIGFsbCBmb3VuZAogICAgIGRpc2tzIGludG8gdGhlIGRza1RhYmxlIGxpc3RpbmcuCiAgIAoyMDAzLTAyLTEzIDE3OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNS0wLXBhdGNoZXMuMSksIHZhcl9yb3V0ZS5jCjoKCiAgIFBhdGNoICM2NTQzMjk6IGRvdWJsZSBjaGVjayBsZW5ndGhzIHdoZW4gY29weWluZwogICAKMjAwMy0wMi0xMyAxNDo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMKLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0tZGlzYWJsZS1taWItbG9kYWluZyByZW1vdmVzIHRoZSBtaWIgbG9hZGluZyBjb2RlIGZyb20gYnVpbGRzLgogICAgIChvaWQgcHJpbnRpbmcgYXJlIGZvcmNlZCBudW1lcmljKQogICAgIFRoaXMgc2F2ZXMgYWJvdXQgYWJvdXQgMjAwayBpbiBiaW5hcnkgc2l6ZSBvbiBhIGxpbnV4IGJveC4KICAgICBUaGlzIHNhdmVzIGFib3V0IGFib3V0IDEwMGsgaW4gcnVubmluZyBzaXplIG9uIGEgbGludXggYm94IChhc3N1bWluZwogICAgICAgdGhlIHdpdGgtbWliLWxvYWRpbmcgaXMgYWN0dWFsbHkgbm90IGxvYWRpbmcgYW55dGhpbmcganVzdCB0byBiZQogICAgICAgZmFpciwgb3RoZXJ3aXNlIGl0cyBhYm91dCA+NTAwaykuCiAgIAoyMDAzLTAyLTEzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTkVXUywgYWNsb2NhbC5tNCwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIC0gTWlzYyBjb25maWd1cmUgY2hhbmdlcy9maXhlcyAoZWcsIG91dHB1dCB0aGUgZGlzYWJsZWQgc3RhdGVzIGZvciBwZXJsKQogICAtIEEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMgICAgICAgICAgRG8gbm90IGJ1aWxkIHRoZSBhcHBzIChzbm1wZ2V0LCAuLi4pLgogICAgIC0tZGlzYWJsZS1hZ2VudCAgICAgICAgICAgICAgICAgRG8gbm90IGJ1aWxkIHRoZSBhZ2VudCAoc25tcGQpLgogICAgIC0tZGlzYWJsZS1tYW51YWxzICAgICAgICAgICAgICAgRG8gbm90IGluc3RhbGwgdGhlIG1hbnVhbHMuCiAgICAgLS1kaXNhYmxlLXNjcmlwdHMgICAgICAgICAgICAgICBEbyBub3QgaW5zdGFsbCB0aGUgc2NyaXB0cyAobWliMmMsIC4uLikuCiAgICAgLS1kaXNhYmxlLW1pYnMgICAgICAgICAgICAgICAgICBEbyBub3QgaW5zdGFsbCB0aGUgbWliIGZpbGVzLgogICAKMjAwMy0wMi0xMyAwNjo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBjaGVjayBlbnRyeSBub2RlIGFzIHN1Z2dlc3RlZCBieSBJcmZhbiBTaGVyaWZmCiAgIAoyMDAzLTAyLTEzIDA1OjU5ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBSZW1vdmUgaW52YWxpZCAndGVzdGluZycgY29uZmlnX2ZpbGUgdGFyZ2V0LgogICBTaW5jZSB0aGlzIGlzIGEgZGlyZWN0b3J5LCAnY29uZmlnLnN0YXR1cycgZmFpbHMgdG8gY3JlYXRlIGl0LgogICAKICAgSSdtIG5vdCBxdWl0ZSBzdXJlIHdoZXJlIHRoaXMgYXBwZWFyZWQgZnJvbS4gIEl0J3Mgbm90IHBhcnQgb2YKICAgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZ2VuZXJhdGVkIGJ5IGF1dG9jb25mIDIuNTMsIGJ1dCBpdCBtaWdodAogICBoYXZlIGJlZW4gaW50cm9kdWNlZCBiZXR3ZWVuIHRoZXJlIGFuZCAyLjU3LgogICAKMjAwMy0wMi0xMyAwMjoxMCAgZHRzMTIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIE1lY2hhbmlzbSBmb3IgcGFzc2luZyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gdGhlIHRlc3QgcnVuLgogICBTdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMy0wMi0xMiAxMTozMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgaW5jbHVkZSBhZ2VudC9taWJncm91cCBoZWFkZXJzIGZyb20gJHtzcmNkaXJ9CiAgIAoyMDAzLTAyLTEyIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gdXBncmFkZSBjb25maWd1cmUgdG8gYXV0b2NvbmYgMi41NwogICAtIFRoaXMgaXMgZnVuY3Rpb25hbCBub3csIGJ1dCBub3QgYWxsIGZsYWdzLCBmZWF0dXJlcyBhbmQgdGVzdHMgaGF2ZQogICAgIGJlZW4gdGVzdGVkLiAgUGxlYXNlIHJlcG9ydCBlcnJvcnMhICBUaGVyZSBhcmUgbW9yZSB0aGluZ3MgdG8gZG8sCiAgICAgbGlrZSBjb252ZXJzaW9uIG9mIGxvY2FsIG1hY3JvcyAoZWcsIFNUUlVDVF9GT1IpIHRvIGF1dG9jb25mCiAgICAgbmV3ZXIgc3RhbmRhcmQgbWFjcm9zLgogICAKMjAwMy0wMi0xMiAwNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLzogdHVubmVsLmggKFY1LTAtcGF0Y2hlcy4xKSwgdHVubmVsLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIHR1bm5lbC5oOgoKICAgdXBkYXRlCiAgIAoyMDAzLTAyLTExIDE4OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgb25seSBkZWZpbmUgc3R1ZmYgaWYgaGF2ZV9yZWdleCBpcyBkZWZpbmVkCiAgIAoyMDAzLTAyLTExIDE4OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJ1biBjb25maWdfcmVxdWlyZSBjaGVja3MgdGhyb3VnaCBjcHAKICAgCjIwMDMtMDItMTEgMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgSXJmYW4gU2hlcmlmZiBwb2ludGVkIG91dCBhIGJ1ZyB3aXRoIGdldG5leHQgcmVxdWVzdHMgZGlyZWN0bHkgdG8KICAgYSBjb2x1bW4uCiAgIAoyMDAzLTAyLTExIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBwYXRjaCBmcm9tIENocmlzdG9waGUgVmFyb3F1aSB0byBmaXggZHJvcHBpbmcgc3RhdGUgY2hhbmdlIGZvciB0aHJlc2hvbGRzLgogICAKMjAwMy0wMi0xMSAwODoyNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHN5c3RlbS5jIChWNC0yLXBhdGNoZXMuNSksIHN5c3RlbS5jOgoKICAgUmVtb3ZlIGxhc3QgcmVtYWluaW5nIHVzZSBvZiAnbmxpc3QnIHVuZGVyIEhQLVVYIDEwICYgMTEuCiAgIEFzIHBlciBwYXRjaCAjNjU2NzczIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAzLTAyLTExIDA4OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIENoZWNraW5nIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgYnVmZmVyIG9uY2UgaXMgc3VmZmljaWVudC4KICAgVXNpbmcgJ3N0cm5uY3B5JyBbc2ljXSB0byBjaGVjayB0aGlzIGxlbmd0aCB0d2ljZSBpcyB1bm5lY2Vzc2FyeS4uLgogICAKMjAwMy0wMi0xMSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGlmZGVmIG91dCB1bmxpa2VseS1jb3JyZWN0LWNvZGUgb24gd2luMzIKICAgCjIwMDMtMDItMTEgMDc6NTUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgTWVzcyB3aXRoIG91dHB1dCBvZiBkb3h5Z2VuIHRvIGFkZCBzZiBsb2dvcywgZXRjLCB0byB0aGUgYm90dG9tIG9mIHRoZQogICBnZW5lcmF0ZWQgaHRtbCBmaWxlcy4KICAgCjIwMDMtMDItMTEgMDc6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBQYXRjaCAjNjU1MTU0IGZyb20gSm9lbCBSb3NkYWhsOiBtb3JlIHByb3BlciBkZW1vbml6YXRpb246CiAgICAgLSBjbG9zZSBzdGRpbi9zdGRvdXQvc3RkZXJyIGlmIGFwcHJvcHJpYXRlLgogICAgIC0gZG91YmxlIGZvcmsuCiAgICAgLSBjaGRpciAvICAgW0knbSBub3QgY29udmluY2VkIHRoaXMgaXMgY29ycmVjdCB1bmRlciB3aW5kb3dzPyAgQW55b25lP10KICAgCjIwMDMtMDItMTEgMDc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIHBhdGNoICM2Njc2OTQgKGFub24pIHRvIGFkZCBiYWNrIG5ld2xpbmVzIHRvIHBhc3MgY29kZQogICAKMjAwMy0wMi0xMSAwNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjNjYyMTY5IGZyb20gSmFuIFdpbGxlbSBMdWl0ZW46IGRpc2tpbyBzdXBwb3J0IGZvciBEYXJ3aW4KICAgCjIwMDMtMDItMTEgMDY6MTQgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgc2V0LnQ6CgogICBGaXggdGVzdHMgZm9yIGJ1bGt3YWxrIChkdXBsaWNhdGUgaGVhZGVyKSBhbmQgc2V0IChpbnZhbGlkIE9JRCBjb25zdGFudCkKICAgCjIwMDMtMDItMTEgMDQ6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgQWNjb21tb2RhdGUgYSBmdXNzeSBJUklYIGVudmlyb25tZW50LCB3aGljaCBpcyBwaWNreSBhYm91dCA8dW5pc3RkLmg+CiAgIFNlZSBidWcgIzY2NzcyNgogICAKMjAwMy0wMi0xMCAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIGZpeCBpbmRlbnQgY29tbWVudCBkYW1hZ2UuCiAgIAoyMDAzLTAyLTEwIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgRVhURU5TSUJMRSAtPiBVQ0RBVklTX01JQgogICAKMjAwMy0wMi0xMCAxNTozOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMTAgMTU6MzggIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEw6CgogICBmaXggbXkgZGVjbGFyYXRpb25zIGFzIHBvaW50ZWQgb3V0IGJ5IEFuZHJldyBQYWdlCiAgIAoyMDAzLTAyLTEwIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgZmlsZSBuYW1lIHR5cG8KICAgCjIwMDMtMDItMTAgMDc6NTcgIG5iYQoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgbHRtYWluLnNoLAogICBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgVXBkYXRlIGxpYnRvb2wgdG8gMS40LjMKICAgCjIwMDMtMDItMTAgMDc6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICB0dXJuIG9uIGxvZ19tYXRjaCBieSBkZWZhdWx0CiAgIAoyMDAzLTAyLTEwIDA2OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBDaHJpc3RvcGhlIFZhcm9xdWkgdG8gdGhlIHRoYW5rcyBmb3IgaGlzIERJU01BTiBwYXRjaGVzCiAgIAoyMDAzLTAyLTA5IDEwOjAyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFuIGFkZGl0aW9uYWwgY2hhbmdlIHRvIHN1cHBvcnQgJ3QnIGhpbnRzCiAgIAoyMDAzLTAyLTA2IDIxOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4Lmg6CgogICBGb3IgbGludXgsIHVzZSAvcHJvYy9YL3N0YXR1cyBpbnN0ZWFkLiAgSXQgaGFzIHRoZSBuYW1lIG9mIHByb2Nlc3NlcwogICB3aGVuIC9wcm9jL2NtZGxpbmUgZG9lcyBub3QuICBBIGRlZmluZSAoY29tbWVudGVkIG91dCkgd2FzIHB1dCBpbgogICBzeXN0ZW0vbGludXguaCB0byByZXZlcnQgdG8gcHJldmlvdXMgYmVoYXZpb3IgaWYgZGVzaXJlZC4gIEknbSBub3QKICAgc3VyZSBhdCB3aGljaCBrZXJuZWwgcmVsZWFzZSB0aGUgc3RhdHVzIGZpbGUgd2FzIGFkZGVkLgogICAKMjAwMy0wMi0wNiAyMDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQWRkIGEgZGVidWdnaW5nIHRhZyAicHJvYyIgd2hpY2ggcHJpbnRzIHByb2Nlc3MgbmFtZXMgYXMgZm91bmQgaW4gc29sYXJpcy4KICAgKHRoaXMgc2hvdWxkIGJlIG5pY2Ugd2hlbiBzZWFyY2hpbmcgZm9yIHVua25vd24gZXhhY3QgcHJvY2VzcyBuYW1lcykKICAgCjIwMDMtMDItMDYgMTE6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBwYXRjaCAjNjc0MjE4OiByZW9wZW4gbG9nIGZpbGVzIG9uIEhVUC4KICAgCjIwMDMtMDItMDYgMTA6NDIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgCjIwMDMtMDItMDYgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIFBhdGNoIGZyb20gQ2hyaXN0b3BoZSB0byBzdXBwb3J0IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIAoyMDAzLTAyLTA1IDIyOjA3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIEEgbWliMmMgZmlsZSB0aGF0IGdlbmVyYXRlcyBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyB0byBjaGVjayB0aGUgdmFsdWUgb2YKICAgaW5jb21pbmcgU0VUIHJlcXVlc3RzLgogICAgIChub3QgY29tcGxldGUgeWV0LiAgTmVlZHMgc3VwcG9ydCBmb3IgQklUUyBlbnVtcyBhbmQgYSBoZWFkZXIgZmlsZQogICAgIHdpdGggcHJvdG90eXBlcykKICAgCiAgIEhhcHB5IEJpcnRoZGF5IChsYXRlKSB0byBSb2JlcnQuCiAgIAoyMDAzLTAyLTA1IDIyOjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFN1cHBvcnQgZm9yIGZvcmVhY2ggb24gcmFuZ2VzLgogICAKMjAwMy0wMi0wNSAwMzoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB0aGUgbG9jYWwtb25seSBhY2Nlc3MgZm9yIG5vbi1zdGFuZGFyZCBwb3J0IEFnZW50WCBjb25uZWN0aW9ucy4KICAgCjIwMDMtMDItMDUgMDE6MTMgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIERvbid0IHByb21wdCBmb3IgYW4gYXV0aGVudGljYXRpb24gcGFzcy1waHJhc2UsIGlmIG9uZSBoYXMgYWxyZWFkeQogICBiZWVuIHN1cHBsaWVkLiAgUmVwb3J0ZWQgYnkgRGFycmVuIEdhbWJsZS4KICAgCjIwMDMtMDItMDQgMDY6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBkZXNjcmliaW5nIGNvbmZpZ3VyaW5nIEFnZW50WCBvbiBhIG5vbi1zdGFuZGFyZCBwb3J0LgogICAKMjAwMy0wMi0wMyAwNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY1LTAtcGF0Y2hlcy4yKSwgc25tcF9hcGkuYzoKCiAgIEZyb20gUmljaGFyZCBMYWluZzogY2hhbmdlIHZhbHVlIGNoZWNrIG9mIGEgc3RyaW5nIHRvIHVzZSBhIHByb3BlciBsZW5ndGguCiAgIAoyMDAzLTAxLTI5IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgcGVybCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgZnJvbSBIYXJyaWUKICAgCjIwMDMtMDEtMjQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzY3MjAyMSBmcm9tIEpvc2h1YSBHaWxlczogbGFyZ2Ugc2V0IHJlcXVlc3QgZml4ZXMKICAgCjIwMDMtMDEtMjIgMTQ6NDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgSGF2aW5nIGZvdW5kIGEgbmV3IHJvdyB0byB3b3JrIHdpdGgsIHVwZGF0ZSB0aGUgaW5kZXggdmFsdWVzIGFzIHdlbGwuCiAgIFRoaXMgc2VlbXMgdG8gZml4IHRoZSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBPSUQgYmVpbmcgcHJvY2Vzc2VkCiAgIGFuZCB0aGUgaW5kZXggdmFyYmluZHMuCiAgIAoyMDAzLTAxLTIwIDE5OjExICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN0cmluZyB0ZXN0IGNhc2UgZm9yIGJpbmFyeSBhcnJheSB0ZXN0aW5nCiAgIAoyMDAzLTAxLTIwIDE5OjExICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXhlcyBmb3IgYXJyYXlfcXNvcnQgLSBub3QgcXVpdGUgc3VyZSB3aHkvaG93IGl0IHdvcmtlZCBiZWZvcmUuLjotLwogICAKMjAwMy0wMS0yMCAxOTowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBuZXcgbmV0c25tcF9jb21wYXJlX21lbTsgZml4IHR5cG8gaW4gZGVidWcgbWVzc2FnZQogICAKMjAwMy0wMS0yMCAxOTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjcmVhdGUgbWQ1c3VtcyBhZnRlciBjcmVhdGluZyBnemlwcGVkIHRhcmJhbGwKICAgCjIwMDMtMDEtMTQgMDY6MTQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciAxNi1iaXQgcmVxdWVzdElEcywgZXRjIC0gZm9yIHRhbGtpbmcgdG8gYnJva2VuIGFnZW50cy4KICAgKEFzIHBlciBhIHN1Z2dlc3Rpb24gb2YgTmllbHMsIGluIGRpc2N1c3Npb24gd2l0aCBIZW5yaWsgT3N0ZXJnYWFyZCBNYWRzZW4pCiAgIAoyMDAzLTAxLTE0IDA1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYwosIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb3h5Z2VuIGNoYW5nZXMKICAgCjIwMDMtMDEtMTMgMTg6NDkgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMyAxNzozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZWNvZ25pemUgbmV3ICd0JyBjb2RlIGluIGRpc3BsYXkgaGludHMKICAgCjIwMDMtMDEtMTMgMTc6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXRjaCBmb3IgbWVtb3J5IGxlYWtzIHNlbnQgdG8gY29kZXJzIGJ5IEpheSBQYXJsYXIKICAgCjIwMDMtMDEtMTAgMjI6MjcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcgKQogICAKMjAwMy0wMS0xMCAyMjoyNiAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcKICAgCjIwMDMtMDEtMTAgMjI6MTUgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGNvbmZpZ3VyZS1zdW1tYXJ5CiAgIAoyMDAzLTAxLTEwIDIyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0wMS0xMCAyMjowOCAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgdmFyaWF0aW9ucyBvZiBjaGFuZ2Vsb2cuYWRkCiAgIAoyMDAzLTAxLTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBkb3h5Z2VuIG91dHB1dCB0YWdzIHRvIHB1dCB0aGUgcmVjZW50bHkgZGVmaW5lZCBmdW5jdGlvbnMgaW50byBncm91cHMuCiAgIAoyMDAzLTAxLTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlcwogICAKMjAwMy0wMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBvcHBzCiAgIAoyMDAzLTAxLTEwIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBkb3VibGUgY2hlY2tpbmcgb3V0cHV0CiAgIAoyMDAzLTAxLTEwIDExOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQ6CgogICBmaXggcG9zaXRpb25hbCBhcmd1bWVudHMKICAgCjIwMDMtMDEtMTAgMDY6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIFJlZmVyZW5jZSBCcnVjZSBTaGF3J3MgZGlzY3Vzc2lvbiBvZiB0aGUgcGVybCBjb21waWxhdGlvbiBwcm9ibGVtcwogICAoc2VlIFJFQURNRS5zb2xhcmlzKQogICAKMjAwMy0wMS0xMCAwNTozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiBBZ2VudFggdW5kZXIgd2luZG93cywgYW5kIGJlZWYgdXAgdGhlIHBlcmwgc3R1ZmYgYSBiaXQuCiAgIEFkZCBhIG1pc3NpbmcgZW50cnkgaW4gdGhlIGNvbnRlbnRzIGxpc3QuCiAgIChUaGlzIG1heSBwcm92ZSB0b28gbGF0ZSBmb3IgNS4wLjgsIGJ1dCBhdCBsZWFzdCBpdCdsbCBiZSByZWFkeSBmb3IgbmV4dCB0aW1lISkKICAgCjIwMDMtMDEtMDkgMTU6NDEgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTU6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTU6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaDoKCiAgIGVuZC1vZi1tb2RlIGhlbHBlciB0byBjYWxsIG1vcmUgaGFuZGxlcnMgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgbWFpbgogICBsaW5lLiAgRnVuY3Rpb25hbGx5IGFsbG93cyBwYXJhbGxlbCBoYW5kbGVyIHRyZWVzIGFuZCBjYWxsYmFja3MgYWZ0ZXIKICAgYSBwYXJ0aWN1bGFyIG1vZGUgaXMgY29tcGxldGVkICh1c2VmdWwgZm9yIHRoaW5ncyByZWdpc3RlcmVkIHVuZGVyIGEKICAgc2VyaWFsaXplIGhhbmRsZXIgd2hlbiB5b3UgZG9uJ3Qga25vdyB3aGVuIHRoZSBtb2RlIGlzIG92ZXIpLgogICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gcHJvZHVjdGlvbiBjb2RlIHlldC4pLgogICAKMjAwMy0wMS0wOSAwODo1NSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgcGVybCBzaGFyZWQvc3RhdGljIGxpYnJhcnkgcHJvYmxlbSwKICAgdGhlIHVucmVzcG9uc2l2ZSBhZ2VudCBwcm9ibGVtIChhbmQgZml4KSwgYW5kCiAgIGRpc2NsYWltIGFsbCBrbm93bGVkZ2Ugb2YgRGF2aWQgVG93bidzIE5ldDo6U05NUCBtb2R1bGUsCiAgIAoyMDAzLTAxLTA5IDA3OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNjBzbm1wdjJjYnVsa2dldCwgVDAyMjBzbm1wdjNidWxrZ2V0CjoKCiAgIEdldEJ1bGsgdGVzdGluZyBzdXBwbGllZCBieSBYaWFvZmVuZyBMaW5nCiAgIAoyMDAzLTAxLTA5IDA3OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQWRkIC14IGZsYWcgZm9yIGNhbGxpbmcgc3VidGVzdHMgd2l0aCAic2ggLXgiLgogICBGaXggbnVtYmVyIGNvdW50aW5nIGZvciBpbnRlcmFjdGl2ZSBvdXRwdXQuCiAgIAoyMDAzLTAxLTA3IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuOCksIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQogICAKMjAwMy0wMS0wNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIGlyYyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKICAgCjIwMDMtMDEtMDcgMDg6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBidWcgIzY2MzYyOCBhbmQgcGF0Y2g6IGZpeCBpcCBhZGRyZXNzIGluZGV4IHBhcnNpbmcgZnJvbSBPSURzCiAgIAoyMDAzLTAxLTA3IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IGNvZGUgdG8gZnJlZSAnY2FsbGJhY2tfZGF0YV9rZWVwJyBkYXRhLgogICBUaGlzIGJyYW5jaCB3b3VsZCBuZXZlciBiZSBpbnZva2VkLCBhbmQgaXMgaW4gdGhlIHdyb25nCiAgIHBsYWNlIGFueXdheS4gIFBhdGNoIHN1cHBsaWVkIGJ5IEpheSBQYXJsYXIKICAgCjIwMDMtMDEtMDYgMDg6MTYgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgU29sYXJpcyA5IGhlYWRlcgogICAKMjAwMy0wMS0wNSAxNToxNCAgbmJhCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTQ6MjggIG5iYQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsIHdpbjMyLm9wdAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxMjo0NSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsCiAgIFNOTVAtTVBELU1JQi50eHQsIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dAosIFNOTVB2Mi1NSUIudHh0LCBTTk1QdjItVE0udHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb25zCiAgIAoyMDAzLTAxLTAzIDEyOjUwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBjYWxsIEFDX0RJU0FCTEVfU0hBUkVELCBhcyBzZXRzIHRoZSBkZWZhdWx0IHRvIGRpc2FibGVkIChpdCdzIHZlcnkKICAgcHJlc2VuY2UgaW4gY29uZmlndXJlLmluIGdlbmVyYXRlcyBhIGNvbmZpZ3VyZSB3aXRoIHNoYXJlZCBkaXNhYmxlZCwgZXZlbgogICBpZiBpdCB3YXMgaW4gYW4gaWYgYmxvY2s7IGZvciBkZXZlbG9wZXIgZGVmYXVsdCwgc2V0IGVuYWJsZV9zaGFyZWQgZGlyZWN0bHkKICAgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IHNldDsgdGVzdCB0aGF0IGVuYWJsZV9zaGFyZWQ9eWVzIGZvciBlbWJlZGRlZC1wZXJsCiAgIAoyMDAzLTAxLTAzIDA1OjAyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgTWVudGlvbiB0aGUgU3RyYXR1cyBWT1MgcG9ydC4gKFRoYW5rcyB0byBCcmFuZG9uIEhhbGwpCiAgIAoyMDAzLTAxLTAyIDE1OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgcGFyZW5zIGFyb3VuZCB4IGluIG1hY3JvIGluIGNhc2UgeCBpcyBtdWx0aXBsZSBDIHRva2VucwogICAKMjAwMi0xMi0yMiAwOTozMiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLAogICBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTIgKQogICAKMjAwMi0xMi0yMiAwOTozMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMgogICAKMjAwMi0xMi0yMiAwOToyMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMjAgMDQ6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNsZWFuIGF3YXkgbmV0LXNubXAtY29uZmlnIG9uIG1ha2UgY2xlYW4KICAgCjIwMDItMTItMjAgMDQ6NTcgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHN0YXNoIHRoZSBvaWRfc3Rhc2ggLi4uCiAgIAoyMDAyLTEyLTIwIDAxOjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQSBwYXRjaCBmcm9tIFY0IHRoYXQgZGlkbid0IG1ha2UgaXQgLi4uIGFsbG93IGxpc3Qgb2YgbnVtZXJpYyBiaXRzIHNldHRpbmcgQklUUwogICAKMjAwMi0xMi0xOSAyMzo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIGFkZCBhIGdsb2JhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgcmVnaXN0ZXJpbmcgZGlyZWN0bHkgdmlhIGEgY2FsbGJhY2suCiAgIAoyMDAyLTEyLTE5IDIzOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgYWRkIGNhbGxiYWNrLmgKICAgCjIwMDItMTItMTkgMjM6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZSByZW5hbWluZy4gIChzbnByaW50ZiBjaGFuZ2UgbWlzdGFrZSkKICAgCjIwMDItMTItMTkgMjM6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzb21lIG5ldyByb3V0aW5lcyBmb3Igc2F2aW5nIG9pZCBzdGFzaCBkYXRhIHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gY3VycmVudCBwcm9kdWN0aW9uIGNvZGUpCiAgIAoyMDAyLTEyLTE5IDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gd2F0Y2ggZm9yIHVuZGVmcyBwYXNzZWQgaW4gYXMgYSB2YWx1ZSB0byBhIFNFVCBjbGF1c2UuCiAgIC0gY2hhbmdlIEJJVFMgdG8gYSBPY3RldCBTdHJpbmcgYXMgaXQgc2hvdWxkIGJlLgogICAgIC0gb24gYSBzaWRlIG5vdGUsIGRvIHlvdSBrbm93IHRoYXQgdGhlIE5ldC1TTk1QIHBhcnNlciBkb2Vzbid0CiAgICAgICBkaXN0aW5ndWlzaCBiZXR3ZWVuIEJJVFMgYW5kIEJJVCBTVFJJTkcgaW4gaXQncyBsaXN0IG9mIHR5cGVzPyAgSQogICAgICAgZG9uJ3QgdGhpbmsgaXQncyBwb3NzaWJsZSB0byB1c2UgYm90aCB0eXBlcyBpbiB0aGUgY29kZSB0b2RheQogICAgICAgKHdoaWNoIGlzIGZpbmUsIHNpbmNlIEJJVCBTVFJJTkcgaXMgbm90IHVzZWQgaW4gU05NUHYyIGFuZCBiZXlvbmQpLgogICAKMjAwMi0xMi0xOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcHJpbnQgYSB3YXJuaW5nIHdoZW4geW91IGNhbid0IHBhcnNlIGFuIE9JRCAoZXJyLCBub3QgaWRlYWwpCiAgIAoyMDAyLTEyLTE5IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBza2lwIFNFVGluZyBjb2x1bW5zIHdpdGggbm8gdmFsdWUgcGFzc2VkIGluLgogICAKMjAwMi0xMi0xOSAxMTo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvZXhhbXBsZS5jLCBob3N0L2hyX25ldHdvcmsuYwosIGhvc3QvaHJfc3dpbnN0LmM6CgogICBCZWluZyBhIGJpdCBxdWljaywgZWgsIERhdmUgLi4uCiAgIAoyMDAyLTEyLTE5IDA4OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMgKFY0LTItcGF0Y2hlcy4yKSwgYXQuYzoKCiAgIEVuc3VyZSB0aGUgaWZuYW1lIGJ1ZmZlciBpcyBiaWcgZW5vdWdoIHRvIHJlYWQgaW4gYSBmdWxsLWxlbmd0aCBuYW1lLgogICAoRnJvbSB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYwogICAoVjQtMi1wYXRjaGVzLls4LDksMywzLDBdKSwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmM6CgogICBEZXRlY3Qgd2hlbiBtZW1vcnkgYWxsb2NhdGlvbnMgZmFpbCwgYW5kIGRvbid0IHBsb3VnaCBvbiByZWdhcmRsZXNzLgogICAoQmFzZWQgb24gY2hhbmdlcyB3aXRoaW4gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMDc6MDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFRoZSBHcmVhdCBTVVNFICdzcHJpbnRmJyBIdW50Li4uLi4KICAgCjIwMDItMTItMTkgMDM6MDIgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgICAgLSBjb2RlIHdpdGggQlNEaTQKICAgCjIwMDItMTItMTkgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoYW5nZSBhIGNvbW1lbnQgdGhhdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRoZSB0cmFuc3BvcnQgc3R1ZmYKICAgICAtIGZpeCBzb21lIHBhcnRpY3VsYXJseSBiYWQgZm9ybWF0dGluZyBpbiBzbm1wX29wZW5fZXgKICAgCjIwMDItMTItMTggMTA6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHJlbW92ZSBtZW0tbGVhayBjb21tZW50LiAgT3V0IG9mIGRhdGUgYW5kIHdhcyBmaXhlZAogICAKMjAwMi0xMi0xOCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgZGVsZXRlIGV4cGVyaW1lbnRhbCB3YXJuaW5nIGFib3V0IGFnZW50eAogICAKMjAwMi0xMi0xOCAxMDo0MCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgZml4IGJ1ZyM2NTU0ODg6IGRlc2NyaXB0aW9ucyBvZiBzc0lPUmF3UmVjZWl2ZWQgYW5kIHNzUmF3SW50ZXJydXB0cyB3ZXJlIHJldmVyc2VkCiAgIAoyMDAyLTEyLTE4IDA1OjE5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzdGRlcnIgbG9nZ2luZyBvbiBIVVAgKGlmIC1MIHdhcyBnaXZlbiBvbiBjb21tYW5kIGxpbmUpCiAgIAoyMDAyLTEyLTE3IDE2OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlICc7JyBmcm9tIGRlZmluZTsgaWYgdGFibGUgaGFzIGEgc3RvcmFnZSB0eXBlLCBjaGVjayB0aGF0IGl0J3Mgbm90CiAgIHJlYWQgb25seSBiZWZvcmUgYWxsb3dpbmcgc2V0cwogICAKMjAwMi0xMi0xNyAxNjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIG5ldmVyIG1pbmQKICAgCjIwMDItMTItMTcgMTY6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEb24ndCBjaGVjayBmb3IgcHJlZml4ZXMgaW4gdGVzdC4gIFRoZXkgZG9uJ3QgZXhpc3QuICBIb3dldmVyLCBkbyBzZXQgU05NUENPTkZQQVRIIGluIHRlc3QgaW5pdGlhbGl6YXRpb24gdG8gYSBib2d1cyB2YWx1ZQogICAKMjAwMi0xMi0xNyAxNTo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRpcmVjdCBjYWxsIHRvIGluaXRfc25tcCgpLiAgVGhpcyBpcyBhbHJlYWR5IGNhbGxlZCBieSB0aGUgLnBtIGZpbGUKICAgCjIwMDItMTItMTcgMDc6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBwZXJzaXN0ZW5jZSBmb3IgYXJyYXktdGFibGVzCiAgIAoyMDAyLTEyLTE3IDA3OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGFkZCByZWFkX2NvbmZpZ19zdG9yZV9kYXRhX3ByZWZpeDsgYWRkIEFTTl9USU1FVElDS1Mgdy9BU05fVU5TSUdORUQgY2FzZXMKICAgCjIwMDItMTItMTcgMDY6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRvbid0IHVzZSBTT19SRVVTRV9BRERSIHNvIGFnZW50IHBvcnQgY2FuJ3QgYmUgaGlqYWNrZWQKICAgCjIwMDItMTItMTcgMDY6NDMgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICB1c2UgbG9jYWwgdmFyIGZvciBiYXNlIGFnZW50IGxpYnM7IHJlb3JkZXIgYmFzZSBhZ2VudCBsaWJzIHNvIHN0YXRpYyBsaW5raW5nCiAgIHdvcmtzCiAgIAoyMDAyLTEyLTE2IDE1OjMyICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmg6CgogICBZZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nIC4uLgogICAKMjAwMi0xMi0xNiAxNDo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgcmVtb3ZlIGJvZ3VzIGNvbW1lbnQgcmVmZXJlbmNlIHRvIHRhYmxlX2RhdGFzZXQgaGVscGVyLgogICAKMjAwMi0xMi0xNiAxNDo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCBhcHBzL3NubXB0cmFwZC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYwo6CgogICBTcHJlYWQgc29tZSBtYWdpYyBkdXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzICh3aHkgaXNuJ3QgLS1lbmFibGUtc2xpZW50LWxpYnRvb2wgdGhlIGRlZmF1bHQgLi4uKQogICAKMjAwMi0xMi0xNiAwODo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIChwZWVybmFtZSBpcyBjb3BpZWQgYnkgc25tcF9vcGVuX2V4KQogICAKMjAwMi0xMi0xNiAwODozMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAwODoxOSAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDA3OjAyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZSAoY2F1c2VkIHByb2JsZW1zIG9uIFN1biA1LjcsIHJlcG9ydGVkIGJ5IGpicG4pCiAgIAoyMDAyLTEyLTE2IDA1OjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY29uZmlndXJlIHcvb3V0IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNiAwNToxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgREVWRkxBR1M9IiIgaWYgbm90IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNSAyMzozOSAgbmJhCgogICAqIHNubXBsaWIvOiBvaWRfc3Rhc2guYywgc2NhcGkuYywgc25tcEFBTDVQVkNEb21haW4uYwosIHNubXBJUFhEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xNSAyMzozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgUG9zc2libGUgbGVhayBvZiBmZCBvbiBlcnJvciByZXR1cm4KICAgCjIwMDItMTItMTQgMDc6MjIgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMSApCiAgIAoyMDAyLTEyLTE0IDA3OjIxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoyMDAyLTEyLTE0IDA2OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIGFnZW50L21pYmdyb3VwOyBmaXggbW9kdWxlcyBmb3IgY29uZmlnX2Rpc3QKICAgCjIwMDItMTItMTQgMDY6NTggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCjIwMDItMTItMTQgMDY6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIHJldiB0byA1LjAuNwogICAKMjAwMi0xMi0xNCAwNjo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1uIHRvIGdyZXAgZm9yIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwNjo0NyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTE0IDA2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA2OjMwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgY29tbWVudHMgdG8gc29tZSBzdHJ1Y3R1cmUgbWVtYmVycwogICAKMjAwMi0xMi0xNCAwNjoyOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGVycm9ycyBkdXJpbmcgY29tbWl0IHVuZG8gc2hvdWxkIGJlIHh4RkFJTEVEOyB1c2Ugc2V0X3JlcXVlc3RfZXJyb3IgaW5zdGVhZCBvZgogICBzZXRfbW9kZV9yZXF1ZXN0X2Vycm9yOyByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQ7IG1vcmUgZGVidWdnaW5nOyBjaGVjayBmb3IKICAgYW5kIGNhbGwgbG93ZXIgaGFuZGxlcnMKICAgCjIwMDItMTItMTQgMDY6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbHdheXMgcHJvY2VzcyBsYXRlciBwYXNzZXMgb2YgYSBzZXQgcmVxdWVzdAogICAKMjAwMi0xMi0xMyAxMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMjo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMjo0MCAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCBpbmNvbXBsZXRlIHplcm9pbmcgb2Ygc2VjdXJpdHkgZGF0YQogICAKMjAwMi0xMi0xMyAxMjozOSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCBhIHBvc3NpYmxlIGZyZWVpbmcgb2YgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDItMTItMTMgMTI6MzggIG5iYQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMDg6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENsZWFyIHRoZSAncHJvY2Vzc2VkJyBmbGFnIGJldHdlZW4gcGFzc2VzLCBzbyB0aGF0IGhhbmRsZXJzCiAgIGNhbiBjb3JyZWN0bHkgY2xlYW4gdXAgYWZ0ZXIgZXJyb3JzIGhhdmUgYmVlbiBkZXRlY3RlZC4KICAgCjIwMDItMTItMTMgMDg6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGFkZCBhc3NlciB0byB0cnkgYW5kIGNhdGggaW50ZXJtaXR0ZW50IGNyYXNoIGkndmUgYmVlbiBzZWVpbmcKICAgCjIwMDItMTItMTMgMDg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBsb2cgdW5rbm93biBhZ2VudHggb3BlcmF0aW9uCiAgIAoyMDAyLTEyLTEzIDA3OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWYgbm8gcm93IGNyZWF0ZSBjYWxsYmFjayBvbiBzZXQsIHVzZSBOT1RXUklUQUJMRSBpbnN0ZWFkIG9mIE5PU1VDSElOU1RBTkNFCiAgIAoyMDAyLTEyLTEzIDA3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBmaXggY3V0LW4tcGFzdGUgc28gZGVsZWdhdGVkIGZsYWcgZGlzcGxheWVkIHByb3Blcmx5CiAgIAoyMDAyLTEyLTEzIDA3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBsb2cgdGV4dCAoQVBQfExJQnxUT0spIGluc3RlYWQgb2Ygc3RvcmUgaWQgaW4gZGVidWcgbXNncwogICAKMjAwMi0xMi0xMyAwNjo1MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCAtLXdpdGgtbGlid3JhcAogICAKMjAwMi0xMi0xMyAwNjo0OSAgcnN0b3J5CgogICAqIEZBUToKCiAgIGdyYW1tYXIvaW5kZW50aW9uIHR3ZWFrICsgbWVudGlvbiBzdHJpcCBmb3IgbWVtb3J5IGZvb3RwcmludCBxdWVzdGlvbgogICAKMjAwMi0xMi0xMyAwNjozMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGV4cGxpY2l0IG1lbnRpb24gb2YgU05NUCBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KICAgVGhpcyBzZXR0aW5nIGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWNlc3NhcnksIGFuZCB3aXRob3V0IGl0LAogICB0aGUgbWFuIHBhZ2UgaXMgaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkuCiAgIAoyMDAyLTEyLTEzIDA0OjQ3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSAtUyBkbyB0aGUgc2FtZSBhcyBzbm1wZCAtUyAoc2V0IHRoZSBzeXNsb2cgZmFjaWxpdHkpCiAgICAgLSBtYWtlIC1sIHByaW50IGEgd2FybmluZyBzYXlpbmcgdGhhdCBpdCBpcyBkZXByZWNhdGVkIGFuZCAtUyBzaG91bGQKICAgICAgIGJlIHVzZWQgaW5zdGVhZAogICAKMjAwMi0xMi0xMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gaW5jcmVhc2Ugd2lkdGggb2YgdG9rZW4gZmllbGQgdG8gaW1wcm92ZSBsZWdpYmlsaXR5IG9mCiAgICAgICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBoZWxwIG91dHB1dAogICAKMjAwMi0xMi0xMiAxNDo0NiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdW5rbm93biAtTyBvcHRpb25zCiAgIAoyMDAyLTEyLTEyIDEyOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc29tZSBzaXplX3QgdGhhdCByZWFsbHkgc2hvdWxkIGJlIGludAogICAKMjAwMi0xMi0xMiAxMToxOCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBBIGxvbmcgb3ZlcmR1ZSBwYXRjaCAoIzQxNTI1MikgZnJvbSBSb2JlcnQgSGFzdGluZ3MgdGhhdCBpbXBsZW1lbnRzCiAgIHJldmVyc2UgRElTUExBWS1ISU5UIHByb2Nlc3NpbmcsIGkuZS4gaXQgYWxsb3dzIHlvdSB0byBpbnB1dCBkYXRhCiAgIGZvcm1hdHRlZCBsaWtlIHRoZSBESVNQTEFZLUhJTlQgcHJlc2NyaWJlcy4gRW5hYmxlZCBieSBkZWZhdWx0LCBidXQKICAgY2FuIGJlIGRpc2FibGVkIHdpdGggdGhlIC1JaCBvcHRpb24gb3Igbm9EaXNwbGF5SGludCBpbiBzbm1wLmNvbmYKICAgCjIwMDItMTItMTIgMTA6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHBhcnNlIG9pZHMgaW4gdmlldyBzdGF0ZW1lbnRzIHRoZSBzYW1lIHdheSB0aGUgYXBwcyBkbyBpdCAoY29uc2lzdGVuY3ksIGhlIHNhaWQpCiAgIAoyMDAyLTEyLTEyIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQWRkIGEgZ2V0Um9vdE9JRCBmdW5jdGlvbiB0byB0aGUgcmVnaW5mbyBwb2ludGVyIHBhc3NlZCBpbnRvIGhhbmRsZXJzLgogICAKMjAwMi0xMi0xMiAxMDozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNoYW5nZSBjcmVhdGUgYW5kIGR1cGxpY2F0ZSByb3cgdG8gcmV0dXJuIHNwZWNpZmljIGNvbnRleHQgaW5zdGVhZCBvZiBnZW5lcmljCiAgIG5ldHNubXBfaW5kZXg7IGNhdGNoIGVycm9yIGZyb20gcGFyc2Vfb2lkX2luZGV4ZXMgb24gcm93IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEyIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIFByaW50IGVycm9ycyB0byBTVERFUlIgaW5zdGVhZC4KICAgICAoYWN0dWFsbHkgZG9uJ3QgYmVjYXVzZSB0aGVzZSBzdGF0ZW1lbnRzIGFyZSBjb21tZW50ZWQgb3V0IGluIHRoZQogICAgIGZpcnN0IHBsYWNlKQogICAKMjAwMi0xMi0xMiAxMDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJldmVyc2UgdGhlIGNvbnRleHQgb2YgYSBjb250ZXh0IGlmIHN0YXRlbWVudCBzbyBpZiBub3QgdGhlIGNvbnRleHQKICAgdGhlbiBkb24ndCB1c2UgdGhlIGNvbnRleHQgaW4gdGhlIGdpdmVuIGNvbnRleHQuCiAgIAoyMDAyLTEyLTEyIDA5OjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCBsb25nLWRlcHJlY2F0ZWQgLXEgYW5kIC1TIG9wdGlvbnMKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMTItMTIgMDk6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBtZXNzYWdlIGluIHVzYWdlCiAgIAoyMDAyLTEyLTEyIDA4OjM3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuMS5kZWYsIGFnZW50L3NubXBkLmM6CgogICBJbXBsZW1lbnQgYSBjb21tYW5kLWxpbmUgb3B0aW9uICgtUykgdG8gc2V0IHRoZSBmYWNpbGl0eSB0byB1c2Ugd2hlbgogICBsb2dnaW5nIHZpYSBzeXNsb2cuICAgQmFzZWQgb24gYW4gaWRlYSBieSBKb2VsIFJvc2RhaGwgKFBhdGNoICM2Mjc3MDEpCiAgIE5vdGUgdGhhdCAtbCBhbmQgLUwgYXJlIGFscmVhZHkgdGFrZW46LSgKICAgCiAgIFRvRG86CiAgICAgUHJvdmlkZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgZm9yIGJvdGggdGhpcywgYW5kIHRoZSBzeXNsb2cgdG9rZW4gKCdzbm1wZCcpLgogICAKMjAwMi0xMi0xMiAwODoxOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwo6CgogICBTdXBwb3J0IHNldHRpbmcgb2Ygc3lzRGVzY3IgYW5kIHN5c09iamVjdElEIHZpYSBzbm1wZC5jb25mCiAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyAodGhvdWdoIG5vdCB2aWEgU05NUCBTRVQgcmVxZXN0cykuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3NzAyIGFuZCAjNjI4MDExKQogICAKMjAwMi0xMi0xMiAwNzo1OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGFsbF9oZWxwZXJzLmMsIHRhYmxlLmM6CgogICBTdXBwcmVzcyBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBDaHJpcyBKb2hucyAoIzY0NDA0MSkKICAgCjIwMDItMTItMTIgMDc6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBVc2UgJ3N5c2NvbmYnIHRvIHJlcG9ydCBvbiBTb2xhcmlzIG1lbW9yeSB1c2FnZS4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQmVuIFN0ZXJuICgjNjUxMTgyKQogICAKMjAwMi0xMi0xMiAwNzowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQmFzaWMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgQWdlbnRYIHNvY2tldHMgKG9uIHRoZSBtYXN0ZXIgc2lkZSBhdCBsZWFzdCkuCiAgIFNlZSBGZWF0dXJlIFJlcXVlc3QgIzYzMjU1NgogICAKMjAwMi0xMi0xMiAwNTo1NyAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBjcmVhdGUgdmVyc2lvbiB0YWcgZnJvbSB2ZXJzaW9uIHNvIGN2cyBleHBvcnQgd29ya3M7IGZpeCBSRUw7IGFkZCB0YXIuZ3oKICAgb2Ygc291cmNlIGFzIGRlcGVuZGVuY3kgZm9yIHJwbWZpbGVzCiAgIAoyMDAyLTEyLTEyIDA1OjA0ICBuYmEKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2VudW0uYywgc25tcF9zZWNtb2QuYywgc25tcF90cmFuc3BvcnQuYwo6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTIgMDQ6MTggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb2N1bWVudCB0aGUgLU9VIG9wdGlvbiwgYW5kIGFscGhhYmV0aXNlIHRoZSBoYW5kbGluZyBvZiBvcHRpb25zLgogICAKMjAwMi0xMi0xMiAwMzoyNSAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgJ3NubXBpbmZvcm0nIGFzIGEgcmVsYXRpdmUgbGluaywgcmF0aGVyIHRoYW4gYW4gYWJzb2x1dGUgb25lLgogICBGaXggcHJvdmlkZWQgYnkgdGhlIGluZGVmYXRpZ2FibGUgU3RlZmFuIFJhZG1hbiAoQnVnICM2NTI1ODcpCiAgIAoyMDAyLTEyLTEyIDAyOjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFF1b3RlIGNvbmZpZ3VyZSBvcHRpb25zIHdoZW4gY29udHJ1Y3RpbmcgbmV0LXNubXAtY29uZmlndXJlIGFuZCBuZXQtc25tcC1jb25maWd1cmUuaAogICBUaGlzIGFsbG93cyBvcHRpb25zIGNvbnRhaW5pbmcgc3BhY2VzLCBldGMsIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5LgogICAoU2VlIEZlYXR1cmUgUmVxdWVzdCAjNTQ3MTUyKQogICAKMjAwMi0xMi0xMSAxMzo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgUGF0Y2ggZm9yIEZyZWVCU0QuIFRoYW5rcyB0byBKdW4gS3VyaXlhbWEKICAgCjIwMDItMTItMTEgMDk6MTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wX2xvZ2dpbmcuYzoKCiAgIFRyeSBkaXNhYmxpbmcgbGluZS1idWZmZXJpbmcgb24gV2luZG93cyBzeXN0ZW1zIChzaW5jZSBpdAogICBhcHBhcmVudGx5IGVuYWJsZXMgZnVsbC1idWZmZXJpbmcgaW5zdGVhZCkuICBTZWUgQnVnICM1NTg4MzcuCiAgIAoyMDAyLTEyLTExIDA4OjI1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGdldC50LCBnZXRuZXh0LnQsCiAgIG5vdGlmeS50LCBzZXQudDoKCiAgIEV4cGxpY2l0bHkgc2V0IFNOTVAgdmVyc2lvbiA9IDEgKHRoZSBvcmlnaW5hbCBkZWZhdWx0IGFzIGV4cGVjdGVkIGJ5IHRoZSB0ZXN0cykKICAgVGhpcyBzaG91bGQgbm93IHBhc3MgYWxsIHRlc3RzIGFwYXJ0IGZyb20gY29uZi50ICMzCiAgIAoyMDAyLTEyLTExIDAzOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaDoKCiAgIEJlIG1vcmUgc2VsZWN0aXZlIGluIHVzaW5nIHRoZSA2NC1iaXQgdmVyc2lvbiBvZiBubGlzdC4gKEJ1ZyAjNjExNjU1KQogICAKMjAwMi0xMi0xMSAwMzoyNyAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBub24tZnVuY3Rpb25hbGl0eSBvZiBvbmUgb2YgdGhlIHN1Z2dlc3RlZCBhcHByb2FjaGVzLgogICAoQnVnICM2MTcxMTkpLiAgIFJlcG9ydGVkIGJ5IFF1YW5haCBHaWJzb24tTW91bnQKICAgCjIwMDItMTItMTEgMDM6MjAgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgdGhlCiAgIGVtYmVkZGVkIHBlcmwgc2NyaXB0LiAgKEJ1ZyAjNjE3ODkxKSBGaXggcHJvdmlkZWQgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDItMTItMTEgMDI6NTYgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKFY0LTItcGF0Y2hlcy40KSwgUkVBRE1FLnNubXB2MzoKCiAgIERvY3VtZW50IHRoZSBsb2NhdGlvbiBhc3N1bXB0aW9ucyBiZWluZyBtYWRlIGluIHRoaXMgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTEyLTExIDAxOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgZm9yY2luZyBzdHJpbmdzIHRvIGJlIGRpc3BsYXllZCBpbiBlaXRoZXIKICAgQVNDSUkgb3IgSGV4IGZvcm1hdCwgYnlwYXNzaW5nIHRoZSAiZ3Vlc3MiIG1lY2hhbmlzbSBhcyB0byB3aGljaAogICBpcyBtb3JlIGFwcHJvcHJpYXRlLiAgIFN1Z2dlc3RlZCBieSBOaWNrIEthbmFrYWtvcm4uCiAgICAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYWZmZWN0IG9iamVjdHMgd2l0aCBhIERpc3BsYXktSGludCBpbgogICB0aGVpciBNSUIgZGVmaW5pdGlvbi4KICAgCjIwMDItMTItMTEgMDE6MzAgIGR0czEyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaAogICAoVjQtMi1wYXRjaGVzLlsyLDYsNl0pLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENvbW1hbmQtbGluZSBvcHRpb24gdG8gY29udHJvbCB3aGV0aGVyIHRvIHVubGluayB0aGUgUElEIGZpbGUgb3Igbm90LgogICBOZWNlc3NhcnkgZm9yIGNvcnJlY3QgdGVzdCBvcGVyYXRpb24uCiAgIAoyMDAyLTEyLTExIDAxOjIxICBkdHMxMgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgVGhlIGxhdGVzdCBsaWJyYXJ5IGRlZmF1bHRzIHRvIE1PRFVMRTo6bmFtZSBzdHlsZSBvdXRwdXQsCiAgIHNvIGFkanVzdCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGNoZWNrcyBhY2NvcmRpbmdseS4KICAgQWxzbywgdGhlcmUgYXJlIGFjdHVhbGx5IDM2IHRlc3RzLCBub3QgMzUhCiAgIAoyMDAyLTEyLTExIDAxOjE3ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBJbml0aWFsaXNlIHRoZSBTTk1QIGxpYnJhcmllcywgdG8gc2V0IHVwIHRoZSBPSUQgdHJlZS4KICAgQWRkcmVzc2VzIGJ1Z3MgIzYzODAyNCBhbmQgIzYyNzY0MwogICAgIFtRbjogRG8gd2UgbmVlZCB0byBzdXBwbHkgYW4gJ2FwcG5hbWUnIChjLmQgdGhlIFNOTVAgbW9kdWxlKSA/XQogICAKMjAwMi0xMi0xMCAxNjoyOSAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgQWxsb3cgcnVudGltZSBjb25maWd1cmF0aW9uIG9mIHBlcnNpc3RlbnQgZGlyZWN0b3J5CiAgIAoyMDAyLTEyLTEwIDE2OjI0ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVwb3J0IGVycm9ycyBoYW5kbGluZyBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMKICAgCjIwMDItMTItMTAgMTY6MjMgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGFzcyB1cCBlcnJvciBvbiBkaXJlY3RvcnkgY3JlYXRpb24KICAgCjIwMDItMTItMTAgMTQ6MjcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQmV0dGVyIHJlc3BlY3QgZm9yIHRoZSBtYXggd2lkdGggb3B0aW9uIChzbm1wdHJhbnNsYXRlIC1UZCkKICAgCjIwMDItMTItMTAgMTQ6MjYgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG9pZE91dHB1dEZvcm1hdCBvcHRpb24KICAgCjIwMDItMTItMTAgMTQ6MjUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ2xlYW4gdXAuIFJlbW92ZSBjYWxscyB0byBvYnNvbGV0ZSBmdW5jdGlvbnMgc25tcF9zZXRfcXVpY2tfcHJpbnQsCiAgIHNubXBfZ2V0X2R1bXBfcGFja2V0LCBzbm1wX2dldF9zdWZmaXhfb25seS4gUmVtb3ZlIGxhc3QgdHJhY2VzIG9mIHRoZQogICBub25fc2VxdWVudGlhbCBiYWNrd2FyZHMgaGFjay4gTWFrZSBzdXJlIGl0IHdvcmtzIGZvciBhbGwgLU8gb3B0aW9ucy4KICAgCjIwMDItMTItMTAgMDg6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuNiksCiAgIGludGVyZmFjZXMuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBlbXB0eSBsaW5lcyBpbiAvcHJvYy9uZXQvZGV2ICAoQnVnICM2MjU0MjYpCiAgIAoyMDAyLTEyLTEwIDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcHYzLmM6CgogICBGcmVlIGRlc3RpbmF0aW9uIG1lbW9yeSBiZWZvcmUgY2xvbmluZyBTTk1QIEVuZ2luZSBJRC4KICAgRml4IHByb3ZpZGVkIGJ5IE1hcnRpbiBDYXJsc3Nvbi4gIChCdWcgIzgzNTQ4MSkKICAgCjIwMDItMTItMTAgMDg6MDcgIGR0czEyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgQWRkICIkQ29uZmlne2NjZmxhZ3N9IiB0byBDQ0ZMQUdTLiAgIChTZWUgYnVnICM2NDA4OTkpCiAgIAoyMDAyLTEyLTEwIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNC0yLXBhdGNoZXMuOCksIGlwQWRkci5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIExpbnV4IHZpcnR1YWwgaW50ZXJmYWNlcyBpbiB0aGUgaXBBZGRyZXNzVGFibGUuCiAgIChOb3RlIHRoaXMgZG9lcyAqbm90KiBpbmNsdWRlIHNlcGFyYXRlIHBlci12LWludGVyZmFjZSBzdGF0aXN0aWNzCiAgICBpbiB0aGUgaW50ZXJmYWNlcyB0YWJsZSkuCiAgIAogICBQYXRjaCBzdXBwbGllZCBieSBKZW5zIFNpdHRuZXIgKCM2MjEyNzQpCiAgIAoyMDAyLTEyLTEwIDAxOjU5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgZXh0cmFuZW91cyBeTSBjaGFyYWN0ZXJzLgogICAKMjAwMi0xMi0wOSAyMzozNiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXaGVuIHVzaW5nIC1PcXYgYW5kIHByaW50aW5nIGFuIGVtcHR5IHN0cmluZyB5b3UgY291bGQgZW5kIHVwIHdpdGgKICAgYSBOVUxMIHN0cmluZyBhbmQgbm90IGFuIGVtcHR5IHN0cmluZyBsZWFkaW5nIHRvIHNvbWUgdmVyeSBvYnNjdXJlCiAgIHByb2JsZW1zIGluIHNubXB0YWJsZSBhbmQgb3RoZXIgYXBwbGljYXRpb25zLgogICAKMjAwMi0xMi0wOSAwODoxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSGFuZGxlIG1pc3NpbmcgaW50ZWdlciB2YWx1ZXMgKHdoZXRoZXIgMzItIG9yIDY0LWJpdCEpLiAgIE9vcHMhCiAgIAoyMDAyLTEyLTA5IDA3OjEyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wX2FwaS5jOgoKICAgSGFuZGxlIGludGVnZXItYmFzZWQgdmFsdWVzIGNvcnJlY3RseSBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVGhvbWFzIFdlYmVyICgjNTYxMDcxKQogICAKMjAwMi0xMi0wOSAwNjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVGFrZSBub3RlIG9mIHN1YmFnZW50LXJlcXVlc3RlZCBieXRlIG9yZGVyaW5nIGluIHN1YnNlcXVlbnQgY29tbXVuaWNhdGlvbnMuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFVyYmFuICgjNjMyMjg0KQogICAKMjAwMi0xMi0wOSAwNjozMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBkLmM6CgogICBSZW1vdmUgdGhlIFBJRCBmaWxlIG9uIGFnZW50IHNodXRkb3duLgogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTkpCiAgIAoyMDAyLTEyLTA5IDA2OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSGFuZGxlICdzdHJ1Y3Qgc29ja2FkZHInIHRoYXQgY29udGFpbiAnc2FfbGVuJyBmaWVsZHMgZGlmZmVyZW50bHkKICAgdG8gdGhvc2UgdGhhdCBkb24ndCAoYy5mIGlmaWx0ZXJfaW9jdGwuYyBpbiBCSU5EIDkuMi4xIHNvdXJjZXMpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5NikKICAgCjIwMDItMTItMDkgMDQ6MTIgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVjb2duaXNlIEJTRGk0LCBhbmQgdHdlYWsgdGhlIHJlY29nbml0aW9uIG9mICdkbG9wZW4nLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobC4KICAgCjIwMDItMTItMDkgMDM6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCjoKCiAgIFJlbW92ZSBzb21lIHdhcm5pbmdzLCBhbmQgdHJ5IHRvIGNvcGUgd2l0aCAnc3lzY3RsJyBmYWlsdXJlcy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBDaHJpcyBKb2hucy4KICAgCjIwMDItMTItMDkgMDE6MjAgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbGltaXRhdGlvbnMgb24gL3Vzci91Y2Ivc2VkLAogICBhbmQgcG9pbnQgcGVvcGxlIHRvd2FyZHMgL3Vzci9iaW4vc2VkIGluc3RlYWQuCiAgIAoyMDAyLTEyLTA3IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEluc2VydCBuZXdseS1jcmVhdGVkIHJvd3MgaW50byB0aGUgcGVyLXJlcXVlc3QgbGlzdHMsIHNvIHRoYXQgbG93ZXIKICAgbGV2ZWwgaGFuZGxlcnMgY2FuIGFjY2VzcyB0aGVtLgogICAgIFtRbjogU2hvdWxkIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIHdpdGggdXBkYXRlZCBsaXN0cyBhcyB3ZWxsP10KICAgCjIwMDItMTItMDcgMDU6MzQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVwb3J0IGJhY2sgdGhlIGNvcnJlY3QgZXJyb3IgZm9yIHJvd3MgdGhhdCBjb3VsZG4ndCBiZSBjcmVhdGVkLgogICAKMjAwMi0xMi0wNyAwNTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhIHJvdyB0aGF0IG5ldmVyIGdvdCBjcmVhdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KICAgCjIwMDItMTItMDYgMTU6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIFNraXAgb24gbm9uLW9wZW5zc2wgbWFjaGluZXMuICBUSGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIGp1c3Qgbm90IHVzaW5nIGVuY3J5cHRpb24gb24gdGhvc2UgbWFjaGluZXMsIGJ1dCBJIGRvIG5vdCBoYXZlIHRoZSB0aW1lIGF0IHRoZSBtb21lbnQKICAgCjIwMDItMTItMDYgMTA6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDA5OjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IGRlbGV0ZSB0aGUgIm9sZCIgKG5vbi1leGlzdGVudCkgcm93LCB3aGVuIHRpZHlpbmcgdXAgYWZ0ZXIKICAgY3JlYXRpbmcgYSBuZXcgcm93LgogICAKMjAwMi0xMi0wNiAwODo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBUd2VhayBoYW5kbGluZyBvZiAoaW52YWxpZCkgUm93U3RhdHVzIGNyZWF0aW9uIHJlcXVlc3RzIGluIGFuCiAgICJhdXRvbWF0aWMgY3JlYXRpb24iIHRhYmxlLiAgIFRoZXNlIHNob3VsZCByZXR1cm4gd3JvbmdWYWx1ZSBvcgogICBpbmNvbnNpc3RlbnRWYWx1ZSwgcmF0aGVyIHRoYW4gbm90V3JpdGFibGUuCiAgIAoyMDAyLTEyLTA1IDAyOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN1cHBvcnQgdXNlIG9mIFJvd1N0YXR1cyBvYmplY3QgdG8gY29udHJvbCBjcmVhdGlvbiBvZiBuZXcgcm93cwogICAoaS5lLiB3aGVuIHRoZSAnYWxsb3dfY3JlYXRpb24nIGZsYWcgaXMgbm90IHNldCkuCiAgIFRoaXMgc2hvdWxkIGRlYWwgd2l0aCBldmVyeXRoaW5nIGV4Y2VwdCBkZXRlcm1pbmluZyB3aGV0aGVyIGEKICAgcm93IGlzIHJlYWR5IHRvIGdvICdhY3RpdmUnIChlLmcuIHZpYSAnY3JlYXRlQW5kR28nKS4gIFN1Y2ggYQogICBkZWNpc2lvbiBpcyBpbmhlcmVudGx5IHNwZWNpZmljIHRvIGVhY2ggaW5kaXZpZHVhbCBNSUIsIHNvIG11c3QKICAgcmVhbGx5IGJlIGRvbmUgaW4gdGhlIGxvd2VyLWxldmVsIGhhbmRsZXIuCiAgIAoyMDAyLTEyLTA1IDAyOjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN0b3AgcHJvY2Vzc2luZyB3aGVuIGEgJ25vbi13cml0YWJsZSBjcmVhdGUnIGlzIGRldGVjdGVkLgogICAKMjAwMi0xMi0wNCAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIC0gcnVuIGV2ZW50VGFibGUgZW50cmllcy4KICAgCjIwMDItMTItMDQgMTY6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYzoKCiAgIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgCjIwMDItMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmM6CgogICB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgdG8gZ2V0IHJlYWwgc3RyaW5ncyBmcm9tIG1pYiBkYXRhLgogICAKMjAwMi0xMi0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCiwgbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmg6CgogICAtIGltcGxlbWVudGVkIHRoZSBtdGVFdmVudFRhYmxlIGFuZCB0aGUgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZQogICAgIC0gRllJLCB0b3RhbCBpbXBsZW1lbnRhdGlvbiB0aW1lOiBhYm91dCA0IGhvdXJzCiAgICAgLSBubyBlYXN5LXRvLXVzZSAuY29uZiB3cmFwcGVycyB5ZXQgdGhvdWdoLiAgc25tcHNldCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAyLTEyLTA0IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgLSB1c2UgdGhlIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uIHdoaWNoIGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0xMi0wNCAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBjcmVhdGUgYSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbi4KICAgLSBBbGxvdyByb3cgY3JlYXRpb24gdXNpbmcgcm93U3RhdHVzIHdoZW4gdGhlIGRhdGEgY29sdW1uIGV4aXN0cywgYnV0CiAgICAgdGhlcmUgaXMgbm8gYXNzaWduZWQgdmFsdWUgKGllLCBpcyBOVUxMKS4KICAgLSB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgaW5zdGVhZCBvZiBtZW1kdXAgdG8gbWFrZSBzdXJlIGFuCiAgICAgaW1wbGljaXQgTlVMTCBpcyBpbiBwbGFjZSBmb3IgdGhpbmdzIHRoYXQgdXNlIHRoZSBkYXRhIGFuZCBuZWVkIGl0CiAgICAgYXMgYSByZWFsIHN0cmluZy4KICAgCjIwMDItMTItMDQgMTY6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGRvY3VtZW50IC0tcHJlZml4CiAgIAoyMDAyLTEyLTA0IDEwOjE2ICBoYXJkYWtlcgoKICAgKiBORVdTIChWNC0yLXBhdGNoZXMuOSksIE5FV1M6CgogICBkb2N1bWVudCA0LjIuNgogICAKMjAwMi0xMi0wMyAwMTo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgQ2xvc2UgcHJpbnRlciBmaWxlIGhhbmRsZSB3aXRoICdmY2xvc2UnIHJhdGhlciB0aGFuICdwY2xvc2UnIHRvIGF2b2lkCiAgIGEgbWVtb3J5IGxlYWsgb24gU29sYXJpcyAyLjYuICAgRml4IHByb3ZpZGVkIGJ5IEphY29ibyBNYXR1dGUuCiAgIAoyMDAyLTEyLTAzIDAxOjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBUcmFuc2xhdGUgR2V0TmV4dCAoYW5kIEdldEJ1bGspIHJlcXVlc3RzIGludG8gc2ltcGxlIEdldCByZXF1ZXN0cywKICAgd2hlbiBwYXNzaW5nIHRoZW0gZnJvbSB0aGUgdGFibGVfZGF0YSBoYW5kbGVyIHRvIHRhYmxlX2RhdGFzZXQuCiAgICAgVGhpcyBpcyBhbmFsb2dvdXMgdG8gaG93IHRoZSBpdGVyYXRlIGhhbmRsZXIgd29ya3MsIGFuZCBhbGxvd3MKICAgbG93ZXIgbGV2ZWwgaGFuZGxlcnMgdG8gb3ZlcnJpZGUgdGhlIGJhc2ljIGJlaGF2aW91ciAod2l0aG91dAogICBoYXZpbmcgdG8gZHVwbGljYXRlIGFsbCBvZiB0aGUgImZpbmQgbmV4dCByb3ciIGNvZGUgZXZlcnkgdGltZSkuCiAgIAoyMDAyLTEyLTAyIDAxOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXR1cm4gU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuIHRoZSBTTk1QdjEgJ25vU3VjaE5hbWUnIGVycm9yLgogICBUaGlzIHVzZWQgdG8gYnJlYWsgQWdlbnRYIHN1YmFnZW50cywgYnV0IHRoZSBsYXRlc3QgY2hhbmdlIHRvIHNubXBfYWdlbnQuYwogICAodG8gY2F0Y2ggbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucykgc2VlbXMgdG8gaGF2ZSBmaXhlZCB0aGF0IHByb2JsZW0uCiAgIAoyMDAyLTEyLTAyIDAxOjQwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBsaWNpdGx5IHBhcmVudGhlc2lzZSBhIGNvbXBhcmlzb24sIHRvIGtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5LgogICAKMjAwMi0xMi0wMiAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5jbHVzaXZlLXJhbmdlIEdldE5leHQgcmVxdWVzdHMgYXJlIHRyYW5zbWl0dGVkIGFzIEdldCByZXF1ZXN0cywgc28gbWF5CiAgIHdlbGwgcmV0dXJuIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMuICBDYXRjaCB0aGVzZSBhcyB3ZWxsLgogICAKMjAwMi0xMi0wMiAwMTozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBDYXRjaCAoYW5kIHJlamVjdCkgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbmV3IHJvdyB2aWEgYSBub24td3JpdGFibGUgb2JqZWN0LgogICAKMjAwMi0xMS0yOCAwMToyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgTnVsbCBvdXQgb25lIGZpbmFsIGxvb3BfY29udGV4dCBwb2ludGVyIGFmdGVyIGJlaW5nIGZyZWVkLgogICAoUGF0Y2ggcHJvdmlkZWQgYnkgUm9nZXIgTWNDYWxtYW4pCiAgIAoyMDAyLTExLTI2IDE0OjU5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRGlzY2FyZCB0aGUgc2Vjb25kYXJ5IChHUk9VUCkgREVTQ1JJUFRJT04gaW5zaXplIGEgTU9EVUxFLUNPTVBMSUFOQ0UKICAgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuIFRoYW5rcyB0byBFdWdlbmVfQnJ1a0BibWMuY29tCiAgIAoyMDAyLTExLTI2IDE0OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZWluc3RhdGUgdGhlIC13IG9wdGlvbnMgdGhhdCB3YXMgbG9zdCBpbiB0aGUgaW5kZW50IGZ1cnkKICAgCjIwMDItMTEtMjYgMDc6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgVGhlIG5vdGlmaWNhdGlvbiB2YXJpYWJsZSBzaG91bGRuJ3QgYmUgc3RhdGljLiAgQSBidWcgZm91bmQgd2hpbGUKICAgdHJhY2tpbmcgZG93biBhIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgVmVuaWNlIG9uIElSQy4KICAgCjIwMDItMTEtMjYgMDE6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggaW5jb3JyZWN0IHVzYWdlIG9mIFNFX01BWF9JRFMgdnMgU0VfTUFYX1NVQklEUy4KICAgUmVwb3J0ZWQgYnkgJ3NoaW5lcGVhaycKICAgCjIwMDItMTEtMjUgMTk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgaGFjayBvZiBhIGhhY2sgb2YgYSBoYWNrLCBvcjogZml4IG11bHRpLWxpbmUgRkFRIHF1ZXN0aW9ucwogICAKMjAwMi0xMS0yNSAwNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAyLTExLTE4IDE4OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIGFwcGxpZWQgcGF0Y2ggIzUyNzY1MAogICAKMjAwMi0xMS0xMSAxNDoxMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXNwZWN0IHRoZSBtaWJkaXJzIGNvbmYgZGlyZWN0aXZlLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMTEgMTM6NTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBhIG1pc3NpbmcgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTExIDExOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBmaXggdGFkZHIgZ2VuZXJhdGlvbi9wYXJzaW5nIGZvciBwb3J0IGJhc2VkIHRyYW5zcG9ydHMgdG8gcHJvcGVybHkgdXNlCiAgIG5ldHdvcmsgYnl0ZSBvcmRlcmluZy4KICAgCjIwMDItMTEtMTEgMTE6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBmaXggd3JpdGUgc3VwcG9ydCBmb3IgdGhlIHRpbWVvdXQgY29sdW1uCiAgIAoyMDAyLTExLTA5IDA3OjA2ICBuYmEKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIERvIGF3YXkgd2l0aCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTExLTA5IDA2OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywgaG9zdC9ocl9wcmludC5jCjoKCiAgIFplcm8gaXMgYW4gT0sgZmlsZSBkZXNjcmlwdG9yLiAtMSBpcyB0aGUgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTA5IDA2OjU0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1vcmUgdG8gdGhlIHBvaW50IG1lc3NhZ2UgZm9yIHVuZGVmaW5lZCBpZGVudGlmaWVycy4gQnJvdWdodCBmb3J3YXJkIGZyb20gNC4yCiAgIAoyMDAyLTExLTA5IDA2OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgUHJpbnQgdGhlIGVycm9yIGluZm9ybWF0aW9uIGluIGNhc2Ugb2YgZXJyb3IKICAgCjIwMDItMTEtMDkgMDY6NTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdjIgZXhjZXB0aW9uIHJlc3VsdHMKICAgCjIwMDItMTEtMDkgMDY6NDkgIG5iYQoKICAgKiBzZWRzY3JpcHQuaW4sIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdGVjdCBQUkVGSVggd2hlbiBpdCBpcyB0aGUgZW52IHZhci4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTA5IDA2OjQ3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIFJGQyAzMzcxIEwyVFAtTUlCCiAgIAoyMDAyLTExLTA5IDA2OjQ2ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGVkIGZyb20gSUFOQQogICAKMjAwMi0xMS0wNyAwMjo1NSAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCAtQ2YgYW5kIC1DdyBvcHRpb24gcHJvY2Vzc2luZyAocHJldmlvdXNseSB3b3VsZCBjb3JlIGR1bXAgaWYKICAgICAgIG5vIG9wdGlvbiBwYXNzZWQpLCBhcyBwb2ludGVkIG91dCBieSBoYW1wYSBvbiAjbmV0LXNubXAKICAgCjIwMDItMTEtMDYgMTI6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggY3V0L3Bhc3RlCiAgIAoyMDAyLTExLTA2IDEyOjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbiAmIG1ha2VmaWxlcwogICAKMjAwMi0xMS0wNiAxMTowOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBtaXNzaW5nIGVuZCBxdW90ZQogICAKMjAwMi0xMS0wNiAxMDozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBAREVWRkxBR1NAIHdlaGVydmVyIHRoZXJlIGlzIGEgQENGTEFHU0AsIGV4Y2VwdCBmb3IgdGhlIG5ldyAtLWJhc2UtY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEwOjIyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYWRkIEBERVZGTEFHU0AgdG8gQ0ZMQUdTCiAgIAoyMDAyLTExLTA2IDEwOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgc2VwZXJhdGUgZGV2ZWxvcGVyIGNmbGFncyBmcm9tIG5vcm1hbCBjZmxhZ3MKICAgCjIwMDItMTEtMDYgMDk6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBjaGFuZ2Ugc3RydWN0LmggaW5jbHVkZSB0byB1c2UgIiIgaW5zdGVhZCBvZiA8bmV0LXNubXAvPiwgc2luY2UgaXQgaXQgYSBsb2NhbAogICBpbmNsdWRlLCBub3QgYSBzeXN0ZW0gaW5jbHVkZQogICAKMjAwMi0xMS0wNiAwOTozOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcHVyZ2UgSU5fVUNEX1NOTVBfU09VUkNFCiAgIAoyMDAyLTExLTA1IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGFkZGVkIGEgeG1sc2hvcnQgZGVsaW1pdGVyIGFzIHJlcXVlc3RlZCBieSBsYW5kcyBvbiBJUkMKICAgCjIwMDItMTEtMDUgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgdGFicyAtPiBzcGFjZXMgb25seSB0cnkgdG8gY2htb2QgUk8gc3JjIGRpciBpZiBvd25lciBvZiBkaXJzCiAgIAoyMDAyLTExLTA1IDA4OjU2ICByc3RvcnkKCiAgICogbWtpbnN0YWxsZGlyczoKCiAgIG1ha2luZyBhIGRpcmVjdG9yeSBpcyBub3QgYW4gZXJyb3IsIHNvIGRvbid0IHNlbmQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMi0xMS0wNCAwODoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgYWxsb3cgdW5yZWdpc3RlcmVkIHNlY3VyaXR5IG1vZGVscyA8PSAyCiAgIAoyMDAyLTExLTA0IDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIHRvIGJlIGJldHRlciBzdXBwb3J0ZWQgKHJvd3N0YXR1cyBubyBsb25nZXIgaGFzIHRvCiAgIGJlIGZpcnN0IGluIHRoZSBsaXN0LCAuLi4pCiAgIAoyMDAyLTExLTA0IDA4OjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY3BwZmxhZ3MgdG8gLS1jZmxhZ3MKICAgCjIwMDItMTEtMDQgMDg6MTMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGQgc3R1ZmYgZm9yIDUuMC43IChvciB3aGF0ZXZlcikgbWVudGlvbmluZyBhIGZldyBuZXcgZmVhdHVyZXMuCiAgIAoyMDAyLTExLTAxIDA5OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBidWcgIzYzMjA5NCB1c2luZyB0aGUgc3VnZ2VzdGVkIG1ldGhvZDogd2F0Y2ggZm9yIE5VTEwgc3RyZXJyb3IoKSByZXR1cm4KICAgCjIwMDItMTEtMDEgMDc6MDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVuZG8gbXkgY2hhbmdlcyBmcm9tIHIgNS4xNywgYXR0ZW1wdGluZyB0byByZWR1Y2UgcnVucyBvZiBjb25maWcuc3RhdHVzCiAgIGJ5IHVzaW5nIGV4cGxpY2l0IHBhdGhzIHRvIHNyY2RpciwgYW5kIGxldCBWUEFUSCBkbyBpdCdzIHRoaW5nCiAgIAoyMDAyLTEwLTI5IDExOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHRhcmdldCB0byBidWlsZCBiaW5hcnkgYXJyYXkgdGVzdCBhcHA7IHR3ZWFrIHRvIHBhcnNlIHRlc3QgdGFyZ2V0IChyZWR1Y2VzIG1vc3QKICAgYnV0IG5vdCBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcykKICAgCjIwMDItMTAtMjkgMTE6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBmb3IgYmluYXJ5IHNlYXJjaCBwcm9ibGVtIG5vdGVkIGJ5IFJvbXkgQ2hyaXN0ZW5zZW4gb24gY29kZXJzOyBwYXJ0aWFsCiAgIChpZmRlZidkIG91dCkgY29kZSBmb3IgYSBiaW5hcnkgYXJyYXkgaXRlcmF0b3IKICAgCjIwMDItMTAtMjkgMTE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBzaW1wbGUgdGVzdCBwcm9ncmFtIGZvciBiaW5hcnkgYXJyYXkKICAgCjIwMDItMTAtMjkgMDY6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGRlYnVnZ2luZyBhcyBub3RlZCBpbiBidWcgIzYzMDM0OAogICAKMjAwMi0xMC0yOCAxNjo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIC4xLjYuMyB0byAxLjMuNiBhcyBub3RlZCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIAoyMDAyLTEwLTI4IDEyOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2VkIHBhc3N3b3JkCiAgIAoyMDAyLTEwLTI4IDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBtaXNjIHZhY20gZml4ZXMKICAgCjIwMDItMTAtMjggMDU6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBlcnJvbmVvdXMgZnJlZSgpIG9mIHJ4YnVmCiAgIAoyMDAyLTEwLTI1IDA5OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXhlZCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgLT4gTkVUU05NUF9PUF9DQUxMQkFDS19ESVNDT05ORUNUIGFzIG5vdGVkIGJ5IFRyb2dMIG9uIElSQwogICAKMjAwMi0xMC0yNSAwNDozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0eXBlIGNhbGxiYWNrIGlmIHdlCiAgICAgICBkZWNpZGUgdG8gc2h1dGRvd24gYSBzdHJlYW0gdHlwZSBjb25uZWN0aW9uIGJlY2F1c2Ugd2UgcmVjZWl2ZWQKICAgICAgIGFuIGV4Y2Vzc2l2ZWx5IGxhcmdlIHBhY2tldC4KICAgCjIwMDItMTAtMjQgMDc6NDEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIHRoZSBzdXBlci1idWctcGF0Y2ggZ2VuZXJhdG9yIFN0ZWZhbiBSYWRtYW4gdG8gdGhlIFRIQU5LUyBsaXN0CiAgIAoyMDAyLTEwLTI0IDA3OjQwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBidWcgIzYxNzUwODogYWRkZWQgdGhlIG10YV9zZW5kbWFpbCBtb2R1bGUgdG8gLS1oZWxwCiAgIAoyMDAyLTEwLTI0IDA3OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBpbnN0YWxsIGxpc3QgZm9yIG1pYjJjIGNvbmYgZmlsZXMgYW5kIHJlbW92ZSBvbGQgb25lCiAgIAoyMDAyLTEwLTIzIDE3OjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpbmNvcnJlY3QgdmFyaWFibGUgbmFtZSBJIG5vdGljZWQgd2hlbiBjb3B5aW5nIHRvIGEgZGlmZmVyZW50IGNvbmZpZ3VyZSBzY3JpcHQgaW4gYW5vdGhlciBwYWNrYWdlCiAgIAoyMDAyLTEwLTIzIDE3OjI4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeGVkIGJ1ZyM2MTc4Mzg6IHZlcnNpb250YWcgaXNuJ3QgZGlzdHJpYnV0ZWQgYW5kIHNob3VsZG4ndCBiZSBhbHdheXMKICAgdXNlZCBpbiB0aGUgbWFrZSBkaXN0Y2xlYW4gY2FsbHMuCiAgIAoyMDAyLTEwLTIzIDE3OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBpbmNvbnNlcXVlbmNpYWwgbWVtb3J5IGxlYWtzIGZpeGVkIChpbml0IHRpbWUgbGVha3MpLgogICAKMjAwMi0xMC0yMyAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRml4ZWQgdmFyaW91cyBtZW1vcnkgbGVha3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIFJvZ2VyIE1jQ2FsbWFuIGFuZCBKYXkgUGFybGFyIG9uIHRoZSAtY29kZXJzIGxpc3QgKGluY2x1ZGluZyB0aGVpciBwYXRjaGVzKQogICAKMjAwMi0xMC0yMyAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgc25tcE5vdGlmeVRhYmxlLmMKICAgCjIwMDItMTAtMjMgMTU6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZyZWUgYSBwcmV2aW91c2x5IG1hbGxvY2VkIHBvaW50ZXIgdG8gdGhlIHdhdGNoIHZhcmlhYmxlIGJlZm9yZSByZXBsYWNpbmcgaXQuCiAgIAoyMDAyLTEwLTIzIDE1OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICByZW1vdmUgZHVwbGljYXRlIHVudXNlZCBtYWxsb2MuCiAgIAoyMDAyLTEwLTIxIDA5OjQzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjkuaDoKCiAgICAgLSBhZGQgc3lzdGVtIGZpbGUgZm9yIFNvbGFyaXMgOQogICAKMjAwMi0xMC0xNyAxOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBPcHRpbWl6ZWQgdGhlIFZBQ00gY2hlY2tzIGluIHRoZSBjYXNlIG9mIGdldG5leHQvZ2V0YnVsayBzbyB0aGF0IHdoZW4KICAgbGFyZ2UgcG9ydGlvbnMgb2YgdGhlIG1pYiB0cmVlIGFyZSBleGNsdWRlZCwgdGhlIHN1Yi1taWIgYWNjZXNzIGNvZGUKICAgd29uJ3QgYmUgY2FsbGVkIGF0IGFsbCAoZmluYWxseSBpbXBsZW1lbnRpbmcgYSB2ZXJ5IGxvbmcgbmVlZGVkIG9wdGltaXphdGlvbikuCiAgIAoyMDAyLTEwLTE3IDE5OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG5ldyBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb21tb25hbGl0eSBiZXR3ZWVuIHR3byBvaWRzOiBuZXRzbm1wX29pZF9maW5kX3ByZWZpeAogICAKMjAwMi0xMC0xNyAxOTozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUHJpbnQgb3V0IGEgInN1bW1hcnkiIGF0IHRoZSBlbmQgb2YgYSBydW4KICAgCjIwMDItMTAtMTcgMDI6NDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFByb3Blcmx5IHRlcm1pbmF0ZSBhIGxvb3AgY29uc3RydWN0IChtaXNzaW5nICdAZW5kQCcpCiAgIFNwb3R0ZWQgYnkgS2FybCBDb29wZXIuICAgIE9vcHMhCiAgIAoyMDAyLTEwLTE2IDE0OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlc3RvcmUgY29udGludWUgYWZ0ZXIgRUlOVFIgY2F1c2VkIGJ5IHNpZ25hbCB3ZSBoYW5kbGVkIChpbnN0ZWFkIG9mIGZhbGxpbmcKICAgdGhvcm91Z2ggdG8gZXhpdCEpCiAgIAoyMDAyLTEwLTE2IDE0OjAwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZWNrIGZvciBvdXIgc2lnbmFsIGZsYWdzIG9uIEVJTlRSLCBhbmQgb25seSByZWxlc2VjdCBpZiBub3QgY2hhbmdlZDsKICAgZGVidWcgbXNnIHdoZW4gc2lnbmFscyByZWdpc3RlcmVkIGFuZCBmb3Igc2VsZWN0L2Zkc2V0czsKICAgCjIwMDItMTAtMTYgMTI6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIENQUEZMQUdTIGJlZm9yZSB1c2VyIGNvbmZpZ3VyZSBDRkxBR1MuLiBzbyBpZiBhIHVzZXIgYWRkcyBzb21ldGhpbmcKICAgbGlrZSAvdXNyL2xvY2FsL2luY2x1ZGUgdG8gQ0ZMQUdTLCB3ZSB3aWxsIHBpY2sgdXAgb3VyIGxvY2FsIGluY2x1ZGVzIGZpcnN0LAogICBpbnN0ZWFkIG9mIGluY2x1ZGVzIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLi4KICAgCjIwMDItMTAtMTUgMjE6MDYgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oCjoKCiAgIG1ha2Ugc3VyZSBzbm1wdHJhcGQgYWx3YXlzIGhvbm9ycyBEU19BUFBfTlVNRVJJQ19JUCBmb3IgbG9nZ2luZwogICAKMjAwMi0xMC0xNSAxNDowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXRzbm1wX2dldF9ib29sZWFuIC0+IG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4KICAgCjIwMDItMTAtMTUgMTE6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggY29uc3RhbnQgdXNlZCBpbiBhc3NlcnQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMi0xMC0xNSAxMTowNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgc3lzbG9nIGZvciBsaWJ3cmFwIGxvZyBsZXZlbHMKICAgCjIwMDItMTAtMTUgMDc6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQWRkIHlldCBhbm90aGVyIHdheSB0byBzcGVjaWZ5IHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xNCAwODo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggaXB2NiB0cmFuc3BvcnQgYWRkcmVzcyBzcGVjcwogICAKMjAwMi0xMC0xMSAxNjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmNtdSwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVtb3ZlIHRoZSBSRUFETUUuY211IGZpbGUgKGVudGlyZWx5IG91dCBvZiBkYXRlIGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0xMC0xMSAxMzo1NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM2MDA5MzMgZnJvbSBEb25hbCBEaWFtb25kOiBkc2tQZXJjZW50Tm9kZSBmb3IgRnJlZUJTRDQKICAgCjIwMDItMTAtMTEgMTM6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTk4MjgwIGZyb20gSmVmZiBXYXRzb246IG1ha2UgLU9RIG5vdCBwcmludCB0eXBlIHdhcm5pbmdzLgogICAKMjAwMi0xMC0xMSAxMzo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBpbmNsdWRlIGRpcmVjdG9yeQogICAKMjAwMi0xMC0xMSAxMzo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHJwbSBzdWJkaXIKICAgCjIwMDItMTAtMTEgMTM6MzIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBiZXR0ZXIgZG9jcyBhYm91dCBhdXRvLWV4dHJhY3RlZCBTRiBuZXdzCiAgIAoyMDAyLTEwLTExIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogTWFrZWZpbGUsIG5ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBpbiBwYXRjaCAjNTk4ODY5OiBNYXJrIEhhcmlnJ3MgYmV0dGVyIHJwbSBzdHVmZgogICAKMjAwMi0xMC0xMSAxMjoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwo6CgogICBBbHRlcm5hdGl2ZSB0byBhIHBhdGNoIHN1Z2dlc3Rpb246IGFkZCAtT1UgdG8gbm90IHByaW50IFVOSVRTIHN1ZmZpeGVzLgogICAKMjAwMi0xMC0xMSAxMjoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAuLi9hZ2VudC9zbm1wX2FnZW50LmMKICAgCjIwMDItMTAtMTEgMTI6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBkb250UHJpbnRVbml0cwogICAKMjAwMi0xMC0xMSAxMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggIzYxNzE1MSBmcm9tIEFuZHJldyBSdWNrZXIgSm9uZXM6IGZpeCBsaWJ3cmFwIGhlYWRlcnMuCiAgICAgLSBJJ20gc3RpbGwgdW5oYXBweSB3aXRoIGhvdyBsaWJ3cmFwIGZ1bmN0aW9ucy4uLiAgbmVlZHMgdGhpbmtpbmcgYWJvdXQuCiAgIAoyMDAyLTEwLTExIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICMzMTI2OTQgZnJvbSBKb2huIFN1cnZleW9yOiBmaXggZGlza2lvIG9uIHNvbGFyaXMuCiAgIAoyMDAyLTEwLTExIDEwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNjIxMzk4IGZyb20gTWF0dGhldyBLcmVuemVyIHRvIGZpeCBsaW51eCBhcnAgdGFibGUuCiAgIAoyMDAyLTEwLTExIDA2OjQ3ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgY2hnIG5ldHNubXBtaWJzIC0+IG5ldHNubXBtaWJzc2tkIChub3RlZCBvbiBjb2RlcnMgYnkgSmVkIFdoaXR0ZW4pCiAgIAoyMDAyLTEwLTExIDA2OjQ1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIG5vdGUgc3F1YXJlIGJyYWNrZXRzIGZvciBJUHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xMSAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc2VsZWN0KCkgbW9yZSBxdWlja2x5IGlmIGFuIEVJTlRSIGhhcHBlbnMKICAgCjIwMDItMTAtMTAgMjI6NTEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFwcGxpZWQgSGFycmllJ3MgcGF0Y2ggZGVzY3JpYmluZyBsb3cgbWVtb3J5IGZvb3RwcmludHMKICAgCjIwMDItMTAtMTAgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gSG9yc3RlaW4gdG8gZml4IEtTTSBtb2R1bGUKICAgCjIwMDItMTAtMTAgMDM6MjIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgICAtIHJlbW92ZSBiYWQgaW5saW5lcyB3aGljaCBjYXVzZSBmaWxlIG5vdCB0byBjb21waWxlIHdpdGggU3VuIENDLgogICAgICAgU2VlIGJ1ZyAjNjIwODI3LgogICAKMjAwMi0xMC0wOSAyMzowMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYWRkIC5sYSBmaWxlcwogICAKMjAwMi0xMC0wOSAyMzowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWFrZSB0aGUgLnNwZWMgZmlsZSBhbG1vc3QgdXNhYmxlLgogICAKMjAwMi0xMC0wOCAxNTo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgRkFRIHVwZGF0ZXMgZm9yIGRvd25sb2FkIHNpdGVzLgogICAKMjAwMi0xMC0wOCAwNzozNiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgUGF0Y2ggZnJvbSBKb3NodWEgS2Vyb2VzIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKICAgCjIwMDItMTAtMDcgMTA6NTcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgc3RhdGVtZW50IGFib3V0IHRoZSBDT1BZSU5HIGZpbGUgKHN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTEwLTA2IDExOjMyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIG5zYi0qIGxpa2VzIGZ1bGwgcGF0aHMsIHVwZGF0ZSBleGFtcGxlczsgZml4IHNvdXJjZWZvcmdlIHVwbG9hZCBzaXRlCiAgIAoyMDAyLTEwLTA1IDE0OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYwosIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjYgKQogICAKMjAwMi0xMC0wNSAxNDo0MiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jcwogICAKMjAwMi0xMC0wNSAxNDo0MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDozOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pc2MgdXBkYXRlcwogICAKMjAwMi0xMC0wNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEwLTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC42CiAgIAoyMDAyLTEwLTA1IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmVtb3ZlIGlsbGVnYWwgZmxhZyBmcm9tIG5zYi1jb25maWcKICAgCjIwMDItMTAtMDUgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IGFsbG9jYXRlIDAgYnl0ZXMKICAgCjIwMDItMTAtMDUgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgcmVmZXJlbmNlIHB0ciBhZnRlciBpcyBoYXMgYmVlbiBmcmVlJ2QuCiAgIAoyMDAyLTEwLTA0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggc2Vjb25kYXJ5IGVmZmVjdCBvZiBidWcgNjEzOTgzIGFuZCByZWFsbHkgZml4IGl0IHRoaXMgdGltZS4KICAgCjIwMDItMTAtMDIgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC86IHR1bm5lbC5jIChWNC0yLXBhdGNoZXMuMiksIHR1bm5lbC5jCjoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc29tZSBjb2RpbmcgZXJyb3JzCiAgIAoyMDAyLTEwLTAxIDA3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBvZmZpY2FsIHBhdGNoIDYxNzA0OTogaW5pdGlhbGl6ZSBjb250YWluZXIgbGlzdCBlYXJsaWVyIChpbiBpbml0X2FnZW50KQogICAKMjAwMi0xMC0wMSAwNzozNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMgKGRhbW4gd2luZG93cyBlZGl0b3JzKQogICAKMjAwMi0wOS0zMCAxNToxNyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNSApCiAgIAoyMDAyLTA5LTMwIDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBpbmZvIG9uIG1kNXN1bXMgYW5kIGdwZyBzaWduaW5nCiAgIAoyMDAyLTA5LTMwIDE1OjE1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGZpeCBjaG1vZCB0byBkbyB3aGF0IEkgd2FudGVkLCBub3Qgd2hhdCBJIHRvbGQgaXQKICAgCjIwMDItMDktMzAgMTU6MTQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE1ha2VmaWxlLnRvcCwgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjUKICAgCjIwMDItMDktMzAgMTQ6MjcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICBtZXJnZSBwcmUgY2hhbmdlcyBpbnRvIDUuMC40IGNvbW1lbnRzCiAgIAoyMDAyLTA5LTMwIDE0OjI1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBORVdTIHVwZGF0ZXMgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQKICAgCjIwMDItMDktMzAgMTM6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtYWtlIGxlbiBhIHNpemVfdCB0byBmaXggcHJvYmxlbSBvbiA2NCBiaXQgc3lzdGVtLCByZXBvcnRlZCBieSBzZWJub2RgIGluIElSQwogICAKMjAwMi0wOS0zMCAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdGF0aWMgbG9jYWwgdmFycywgYXMgdGhleSBhcmUgbGlrZWx5IHRvIGNhdXNlIHByb2JsZW1zIHdpdGggdGhyZWFkcwogICAKMjAwMi0wOS0zMCAxMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtYWtlIHN1cmUgaW5zdGFsbCBkaXIgaXMgcmVsYXRpdmUgdG8gYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTMwIDEyOjIwICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnCiAgIAoyMDAyLTA5LTMwIDEyOjE5ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZml4IHR5cG9zCiAgIAoyMDAyLTA5LTMwIDEyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYXZvaWQgaW5maW5pdGUgbG9vcAogICAKMjAwMi0wOS0zMCAxMTo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGFzc3VtZSBtYWtlIGlzIEdOVSBtYWtlLCBhbmQgc2VhcmNoIGZvciBpdC4gcmVxdWlyZSB1c2VyIHRvIHNldCBhbgogICBlbnYgdmFyIGlmIG5vIEdOVSBtYWtlIGlzIGZvdW5kIGluIFBBVEgKICAgCjIwMDItMDktMzAgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgaWYgQ1ZTIGRpciBpcyBybywgYXV0b21hZ2ljYWxseSBtYWtlIGl0IHJ3IGJlZm9yZSB1cGRhdGUgYW5kIHJvIGFmdGVyIHVwZGF0ZQogICAKMjAwMi0wOS0yNyAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbWFrZSBnZXRfc2V0X2NhY2hlKCkgcmV0dXJuIGFuIGVycm9yIGlmIG5vIHByZXZpb3VzIFNFVCBoYXMgYmVlbiBzdGFydGVkLgogICAKMjAwMi0wOS0yNyAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRvdWJsZSBjaGVjayBhZ2FpbnN0IHNvbWUgbnVsbCBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbSBpbiB0aGUgY2FjaGUgY29kZS4KICAgCjIwMDItMDktMjcgMTA6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCB0cmVlY2FjaGVfbnVtIHRvIC0xIGF0IGluaXQgb2YgbWVtb3J5LCB0byBiZSBleHRyYSBzYWZlLgogICAKMjAwMi0wOS0yNiAxMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICBtb3ZlIGxpYndyYXAgdmFyaWFibGVzCiAgIAoyMDAyLTA5LTI2IDExOjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgb2ssIHJlbW92ZSB0Y3B3cmFwcGVycyB2YXJzCiAgIAoyMDAyLTA5LTI2IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZGVmaW5lIHN0dXBpZCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRjcHdyYXBwZXJzIGJlY2F1c2UgdGhleSBkb24ndCBnZXQKICAgY29uY2VwdHMgb2YgZW5jYXBzdWxhdGlvbi4gIGFyZy4KICAgCjIwMDItMDktMjYgMDg6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBjaGFuZ2UgY2FsbF9wdiB0byBwZXJsX2NhbGxfcHYgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHBlcmwuCiAgIAoyMDAyLTA5LTI2IDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcnVuIHN0cmR1cCgpIG9uIGdldF9taWJfZGlyKCkgcmVzdWx0cyB0byBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEV1Z2VuZSBCcnVrLgogICAKMjAwMi0wOS0yMyAxMDoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1lbnRpb24gZnJlc2htZWF0CiAgIAoyMDAyLTA5LTIzIDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSBpbXBsZW1lbnQgYSAobG9uZyBuZWVkZWQpIHNldHRhYmxlIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBjdXJyZW50CiAgICAgcGVyc2lzdGVudCBpbmZvcm1hdGlvbi4KICAgCjIwMDItMDktMjMgMDk6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gbWFrZSBub3QgaW4gdGltZSB3aW5kb3cgcmVwb3J0cyB0cmlnZ2VyIGEgcmVzZW5kIG9mIGluZm9ybXMuCiAgICAgKHN1Z2dlc3Rpb24gZnJvbSBFcmlrIEFuZ2dhcmQpCiAgIAoyMDAyLTA5LTIwIDA4OjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oOgoKICAgICAtIHJlbW92ZSBmdW5jdGlvbnMgdmFjbV9wYXJzZV9zZWN1cml0eSBhbmQgdmFjbV9mcmVlX3NlY3VyaXR5IHdoaWNoCiAgICAgICBkb24ndCBleGlzdAogICAKMjAwMi0wOS0xOSAxNDowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIC0gc3VwcG9ydCBhZ2VudCBzaHV0ZG93bnMgKHdlbGwsIG9rIGl0J3MganVzdCBhbiBhcGkgc2luY2UgaXQgZG9lc24ndCB3b3JrKS4KICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDktMTkgMTM6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC54cywgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICBmaXggYWdlbnQgcmVxdWVzdF9pbmZvUHRyIHByb2JsZW1zLgogICAKMjAwMi0wOS0xOSAwOTowNCAgZHRzMTIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIENvbXBpbGUgYW5kIGxpbmsgd2l0aCAnZ2V0b3B0LmMnIGV4cGxpY2l0bHkuCiAgIAogICBUaGlzIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5LCBidXQgZm9yIHNvbWUgcmVhc29uCiAgICh0aGF0IGNvbXBsZXRlbHkgZXNjYXBlcyBtZSEpLCB1c2luZyBjb21tYW5kLWxpbmUgb3B0aW9ucwogICAoc3VjaCBhcyAtSVIpIHdpdGggdGhlIFJlbGVhc2UgdmVyc2lvbiBvZiBzbm1wdHJhbnNsYXRlCiAgIGNhdXNlcyBhIHJ1bi10aW1lIERMTCBlcnJvci4gIChUaGUgRGVidWcgdmVyc2lvbiBpcyBmaW5lKS4KICAgVGhlIG90aGVyIGFwcGxpY2F0aW9ucyBzZWVtIHRvIGJlIE9LIC0gdGhpcyBwcm9ibGVtIG9ubHkKICAgc2VlbXMgdG8gaGl0IHNubXB0cmFuc2xhdGUuICBTbyBhcyBhIHN0aWNraW5nLXBsYXN0ZXIsCiAgIGNvbXBpbGlpbmcgZ2V0b3B0LmMgaW4gYXMgcGFydCBvZiB0aGUgcHJvamVjdCwga2VlcHMgYm90aAogICB2ZXJzaW9ucyBvZiB0aGUgYXBwbGljYXRpb24gaGFwcHkuCiAgICAgU29tZW9uZSB3aXRoIGJldHRlciBXaW5kb3dzIGtub3dsZWRnZSB0aGFuIG1lIG5lZWRzIHRvCiAgIGxvb2sgYXQgdGhpcyBhbmQgZml4IGl0IHByb3Blcmx5LgogICAKMjAwMi0wOS0xOSAwMzoxNCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSB1bmRvIHdvcnN0IG9mIGluZGVudCBkYW1hZ2UKICAgCjIwMDItMDktMTkgMDM6MDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIF9kcGFyc2UgZnVuY3Rpb25zICh3aGljaCBkb24ndCBleGlzdCkKICAgCjIwMDItMDktMTggMDc6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlc2V0IFNOTVBfU0xFRVAgYWZ0ZXIgbG9vcAogICAKMjAwMi0wOS0xOCAwNzo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcmVtb3ZlIHZlcnkgb2Jzb2xldGUgKGFuZCBub3QgdXNlZCBhbnl3aGVyZSkgI2RlZmluaXRpb25zIG9mCiAgICAgICBQQVJUWV9NSUJfQkFTRSBhbmQgQ09OVEVYVF9NSUJfQkFTRQogICAKMjAwMi0wOS0xNyAyMzo1OSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHR3ZWFrIGZvciA1LjAuNCBsYXN0IG1pbnV0ZSB1cGRhdGUKICAgCjIwMDItMDktMTcgMjM6NDggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBjaGcgPiB0byAtZ3QgdG8gYWNoaWV2ZSBpbnRlbmRlZCByZXN1bHQKICAgCjIwMDItMDktMTcgMjI6MzkgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xNyAyMjozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNCApCiAgIAoyMDAyLTA5LTE3IDIyOjMyICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xNyAyMTo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkICQoc3JjZGlyKSB0byBhIGZldyBkZXBlbmRlbmNpZXMgdG8gdHJ5IGFuZCByZWR1Y2UgdGhlICMgb2YgdGltZXMgdGhhdAogICBjb25maWcuc3RhdHVzIGlzIHJ1biB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNyYyBkaXIKICAgCjIwMDItMDktMTcgMjE6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICB2aXN1YWxseSBwcm92b2NhdGl2ZSBzZWN0aW9uIGhlYWRlcnM7IGFkZCByZWNlbnQgc3RhdHVzIChhbGwgYmFkIG5ld3MpOwogICBub3QgdG8gdXNlIG5ldyB3aW4zMnNkay5kc3cgdG8gZ2V0IGFkZGl0b25hbCBmdW5jdGlvbmFsaXR5IHdpdGggcGxhdGZvcm0gc2RrOwogICByZW1vdmUgaW5mbyBvbiByZW1vdmluZyBhZ2VudHgsIGFzIGl0J3MgYmVlbiBhcm91bmQgbm93IGZvciBhIHdoaWxlOyBhZGQKICAgc2VjdGlvbiBvbiB3aGF0IGZpbGVzIHRvIGVkaXQgdG8gYWRkIG1pYjJjIGdlbmVyYXRlZCBjb2RlIHRvIGFnZW50OyByZW1vdmUKICAgcmVmZXJlbmNlIHRvIHNwZWNpZmljIHJlbGVhc2UgbnVtYmVyIGluIGV4YW1wbGUKICAgCjIwMDItMDktMTcgMjE6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICB0YWtlICdzZGsnIG91dCBvZiBleGUgbmFtZQogICAKMjAwMi0wOS0xNyAyMToyNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIHN3YXAgc25tcGRzZGsgZm9yIHNubXBkCiAgIAoyMDAyLTA5LTE3IDIxOjE0ICByc3RvcnkKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGdldCBhbGwgb3VyIGR1Y2tzIGluIGEgcm93OiBhZGQgYWR2YXBpMzIubGliIHRvIGxpbmsgbGluZXMsIG1ha2Ugc3VyZSBhbGwKICAgUmVsZWFzZSBhbmQgRGVidWcgbGlicy9hcHBzIGFyZSBjb21waWxlIHdpdGggc2FtZSBDKysgc2V0dGluZ3MKICAgCjIwMDItMDktMTcgMjE6MTIgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICByZW1vdmUgc2RrIGRlcGVuZGVudCBtb2R1bGVzCiAgIAoyMDAyLTA5LTE3IDIxOjEwICByc3RvcnkKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgZ3JvdXAgbW9kdWxlcyB0aGF0IGRlcGVuZCBvbiB3aW4zMiBzZGsgdG9nZXRoZXIsIHdpdGggaWZkZWYKICAgCjIwMDItMDktMTcgMjE6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG5vIGNhbGxiYWNrIGZvciB3aW4zMiB1bnRpbCBwaXBlIGZkIHByb2JsZW0gaXMgZml4ZWQKICAgCjIwMDItMDktMTcgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgbmV3IHZlcnNpb25zIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTcgMjE6MDUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBuZXcgd29ya3NwYWNlIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTYgMTM6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWliIG1vZHVsZSBsb2FkaW5nIGZpeGVzIGJ5IGNhbGxpbmcgaW5pdF9zbm1wIGZpcnN0CiAgIAoyMDAyLTA5LTEzIDEyOjA1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHR3ZWFrIGV4YW1wbGUgbnNiLWNvbmZpZyBjb21tYW5kOyBhZGQgLWIgYmFjayB0byBjdnMyY2wsIG90aGVyd2lzZSB5b3UKICAgZ2V0IGNoYW5nZWxvZyBtc2dzIGZyb20gb3RoZXIgYnJhbmNoZXMgYW5kIGhhdmUgdG8gd2VlZCB0aGVtIG91dAogICAKMjAwMi0wOS0xMyAwOTozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIGZpeCBpbGxlZ2FsIG9pZHMgdG8gbm90IHJldHVybiBhIHBvaW50ZXIuCiAgIAoyMDAyLTA5LTEzIDA3OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIG1pbm9yIG9wdGltaXNhdGlvbjsgd2UgZG9uJ3QgbmVlZCBhIHplcm8tdGVybWluYXRlZCBjb21tdW5pdHkKICAgICAgIHN0cmluZyBleGNlcHQgZm9yIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAyLTA5LTEzIDA3OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZGVkIC1pIG9wdGlvbiB0byByZXF1ZXN0IGluZGVudCBub3QgYmUgcnVuCiAgIAoyMDAyLTA5LTEzIDA3OjA2ICBqYnBuCgogICAqIENPUFlJTkc6CgogICAgIC0gYWRkIG1pc3NpbmcgdmVyYiBpbiBpbnRyb2R1Y3Rpb24KICAgCjIwMDItMDktMTIgMTI6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcHJvdGVjdCBjYWxsaW5nIHNvbWUgU3ZJViBkZXJlZmVyZW5jZSBmdW5jdGlvbnMgaWYgaXQncyBub3QgYW4gSVYuCiAgICAgLSBlbGltaW5hdGVzIHRoZSByZW1haW5pbmcgcGVybCB3YXJuaW5ncy4KICAgCjIwMDItMDktMTIgMTE6NDUgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGluY2x1ZGUgbGRmbGFncyB3aGVyZSBhcHByb3ByaWF0ZSAoLS1saWJzLCAtLWFnZW50LWxpYnMsIC4uLikKICAgCjIwMDItMDktMTEgMjI6NDggIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlOgoKICAgYWRkL3VzZSBuZXcgb3B0aW9uIHRvIHJlbW92ZSBidWlsZCBkaXIgYWZ0ZXIgc3VjY2Vzc2Z1bCBidWlsZAogICAKMjAwMi0wOS0xMSAyMjo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHByaW50IGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMSAyMjoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIG11Y2ggbW9yZSBjb21wbGV4IHRlc3RzIG9mIFVTTSB1c2VyIGNyZWF0aW9uL21vZGlmaWNhdGlvbi4KICAgCjIwMDItMDktMTEgMjI6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDAxc25tcHYxZ2V0LAogICB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsCiAgIHRlc3RzL1QwMDRzbm1wdjFub3N1Y2g6CgogICAtIHN1cHBvcnQgZm9yIG11bHRpcGxlIHRlc3RzIGF0IG9uY2UuCiAgIC0gbWVyZ2UgdjEgdGVzdHMgaW50byBhIHNpbmdsZSAoZmFzdGVyKSB0ZXN0LgogICAKMjAwMi0wOS0xMSAyMTozNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IG1vbmtleSBhcm91bmQgd2l0aCByZXR1cm5pbmcgZXJyb3IgY29kZXMsIGp1c3QgZXhpdDsgbW9yZSByZWdleHAgdHdlYWtzCiAgIAoyMDAyLTA5LTExIDE2OjM2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIHVzZSBzdWItc2Vjb25kIHNsZWVwcyBpZiBhdmFpbGFibGUKICAgLSBzbGVlcCAxIChzdWItKXNlY29uZCBhdCBhIHRpbWUgd2hlbiB3YWl0aW5nIGZvciBwYXJ0aWN1bGFyIHRlc3RzCiAgICAgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgU05NUF9TTEVFUCBkdXJhdGlvbi4KICAgCjIwMDItMDktMTEgMTY6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB1c2Ugc25tcF9sb2cgaW5zdGVhZCBvZiBwcmludGYgZm9yIHNodXRkb3duIG1lc3NhZ2UuCiAgIAoyMDAyLTA5LTExIDE1OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNzaW5nIHZhcmlhYmxlIGRlY2wgcG9pbnRlZCBvdXQgYnkgaXJjOmRmCiAgIAoyMDAyLTA5LTEwIDEzOjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwcyAmIGVycm9yIG1lc3NhZ2VzCiAgIAoyMDAyLTA5LTEwIDEyOjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY29tcGlsZXIgd2FybmluZ3MgYXJlIHlvdXIgZnJpZW5kITsgZml4IGVtYmVkZWQgY29tbWVudHM7IGZpeCBub24tdm9pZAogICBmdW5jdGlvbnMgdy9ubyBydG4gdmFsdWVzOyBjb2RlIHJlb3JnIHRvIGZpeCBlbWFjcyBpbmRlbnQgY29tcGxhaW50cwogICAKMjAwMi0wOS0xMCAxMjoyNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgdGFyZ2V0cyB0byBoZWxwIG5pZ2h0bHkgYnVpbGQgc2NyaXB0IGRldGVybWluZQogICBpZiBhIG1ha2UgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogICAKMjAwMi0wOS0xMCAxMjoxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrcyBmb3IgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzOyBhZCBuc2ItYWJvcnQsIG5zYi1mbG93OwogICBkaXJlY3Qgc29tZSBtZXNzYWdlcyB0byBzdGRlcnI7IHVzZSBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyBtYWtlIHRhcmdldHM7CiAgIHVwZGF0ZSBlcnJvciBncmVwIHRvIGluY2x1ZGUgJyoqKic7IGNoZWNrIGZvciBuZXcgdmFsdWUgdG8gcm0gLWZSIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMCAxMjowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHMKICAgCjIwMDItMDktMTAgMTI6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgYWRkIG9wdGlvbiB0byBybSAtZlIgYnVpbGQgZGlyIGF0IHN0YXJ0OyBjaGVjayBzY3JpcCBwYXRoIGZvciBuc2ItZnVuY3Rpb25zOwogICBwcmVmaXggZGVmYXVsdCBidWlsZCBkaXIgdy92ZXJzaW9uOyBleGl0IHcvcmMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDktMTAgMTI6MDUgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLXBsYXRmb3JtOgoKICAgYWRkIGN1cnJlbnQgcGF0aCB0byBzY3JpcHQgdG8gbnNiLWZ1bmN0aW9uIHNlYXJjaCBwYXRoCiAgIAoyMDAyLTA5LTA5IDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEphcmVkIFNtaXRoLU1pY2tlbHNvbiAoYnVnICM2MDUxNDcpCiAgICAgICB3aGVyZWJ5IHBhc3NpbmcgYW4gdW5rbm93biB0eXBlIGNoYXJhY3RlciB0byBzbm1wX2FkZF92YXIgd291bGQKICAgICAgIGNhdXNlIGEgc2VnZmF1bHQuCiAgIAoyMDAyLTA5LTA5IDA2OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgdmFsdWUgYmVmb3JlIHVzaW5nIGl0LgogICAKMjAwMi0wOS0wOSAwNjowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDdXJyZW50IGhlYWRlciB1cGRhdGUgcGF0Y2ggZm9yIG5ldGJzZCBmcm9tIFBhdHJpY2sgV2VsY2hlLgogICAKMjAwMi0wOS0wNiAxNTozMCAgZHJpZWh1aXMKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTWFyayB0aGUgbm9uLXJhdyB2YXJpYW50cyBvZiBvYmplY3RzIHRoYXQgYXJlIGFjY2Vzc2FibGUgYXMgcmF3IGNvdW50ZXJzCiAgIGFzIGRlcHJlY2F0ZWQsIHRvIChob3BlZnVsbHkhKSBjdXQgZG93biBvbiB0aGUgbnVtYmVyIG9mIHVzZXJzIHRoYXQgZ2V0CiAgIGJpdHRlbiBieSBpdC4uCiAgIAoyMDAyLTA5LTA0IDExOjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGFkZGVkIEJydWNlJ3MgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0wNCAxMToyNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IHBlcmxjbGVhbgogICAKMjAwMi0wOS0wNCAxMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBwcm9jZXNzIGdyb3VwaW5nIGJ5IGNhbGxpbmcgc2V0c2lkKCkgKHJlcG9ydGVkIGJ5IGlyYzpUcm9nTCkKICAgCjIwMDItMDktMDQgMTE6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNldHNpZCgpLgogICAKMjAwMi0wOS0wMyAxMDo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FzZXMgd2hlcmUgdGhlcmUgZWl0aGVyIGFyZSBubyB0YWJsZXMgb3Igbm8gc2NhbGFycy4KICAgCjIwMDItMDktMDMgMTA6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZG9uJ3QgdXNlIE5VTEwgdmFyaWFibGVzLgogICAKMjAwMi0wOS0wMiAxOTozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUyICkKICAgCjIwMDItMDktMDIgMTk6MzMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMgogICAKMjAwMi0wOS0wMiAxOToyMiAgcnN0b3J5CgogICAqIG1hbi9uZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZWQgZG9jcwogICAKMjAwMi0wOS0wMiAxOToxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOS0wMiAxOToxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZzoKCiAgIHRyeSBhbmQgZ3Vlc3MgYXQgc3JjIGRpciBpZiBub3Qgc3BlY2lmaWVkCiAgIAoyMDAyLTA5LTAyIDE5OjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGFkZCBub3RlIGFib3V0IGVyciB3aGVuIGJ1aWxkaW5nIGluIGFuZCBvdXQgb2Ygc291cmNlIHRyZWUKICAgCjIwMDItMDktMDIgMTg6NTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZ1bGwgcGF0aCB0byB2ZXJzaW9udGFnLCBpbiBjYXNlIHdlIGFyZSBidWlsZGludCBvdXRzaWRlIG9mIHNyYyBkaXJlY3RvcnkKICAgCjIwMDItMDktMDIgMTg6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW1vdmUgZm9yY2VkIHByb21wdCBvbiBlcnJvcnMKICAgCjIwMDItMDktMDIgMTg6MzYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCB3YXJuaW5ncyB3aGVuIFZFUlNJT04gaXMgcmVxdWlyZWQ7IGFkZCB0YXJjbGVhbiB0YXJnZXQ7IGFkZCB0YXJjbGVhbiB0bwogICBkaXN0Y2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGFkZCBtc2cgb24gZXJyb3I7IGFkZCBjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMTc6MjcgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIHdpbjMyICYgQWdlbnRYIHN0YXR1cwogICAKMjAwMi0wOS0wMiAxNzoyMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBmaXggdG8gYXZvaWQgbG9ja2luZyB1cCB0aGUgYWdlbnQgd2hlbiBhIHN1Z2FnZW50IGRpZXMgZHVyaW5nIGEgc2V0IHJlcXVlc3QuIFdlCiAgIG11c3QgY2xlYW4gdXAgdGhlIGRlbGVnYXRlZCByZXF1ZXN0cyB3aGVuIHRoZSBzZXNzaW9uKHMpIGFyZSBjbG9zZWQsIHNvIHRoYXQKICAgdGhleSB3aWxsIGJlIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCwgYWxsb3dpbmcgZnVydGhlciByZXF1ZXN0cyB0byBiZSBwcm9jZXNzZWQuCiAgIAoyMDAyLTA5LTAxIDEwOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBjaGFuZ2UgcmVzdWx0IHR5cGUgYmFjayB0byBpbnQsIGFzIGl0IG1heSByZWNlaXZlIGEgbmVnYXRpdmUgdmFsdWUKICAgCiAgIFBMRUFTRSBjaGVjayB0aGUgdXNlIG9mIGEgdmFyaWFibGUgYmVmb3JlIGNoYW5naW5nIGlzIHNpZ25lZG5lc3MsIGVzcGVjaWFsbHkKICAgYXJlb3VuZCByZWxlYXNlIHRpbWUhCiAgIAoyMDAyLTA4LTMwIDEyOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGluY2x1ZGUgY2hlY2tfdmFyYmluZC5oCiAgIAoyMDAyLTA4LTMwIDEyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgY2hhbmdlIE5PU1VDSE5BTUUgdG8gTk9TVUNISU5TVEFOQ0UgYWdhaW4sIGFzIGl0IHNlZW1zIHRoZSBhZ2VudFggZml4IGFsc28KICAgY29ycmVjdGx5IGRlYWxzIHdpdGggdGhpcyBlcnJvciBjb2RlCiAgIAoyMDAyLTA4LTMwIDA2OjE0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gZGVsZXRlIHN1bnNpdGUuY25sYWItc3dpdGNoLmNoIG1pcnJvciwgYXMgaXQgaXNuJ3Qgb25lIGFueW1vcmUuCiAgIAoyMDAyLTA4LTI5IDEwOjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIG1vZHVsZXMgYmVmb3JlIGNvbmZpZ3VyaW5nIHRoZW0KICAgCjIwMDItMDgtMjkgMDc6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCB0aGUgbGFzdCBBRVMgYnVnIEkga25vdyBvZi4gIEFFUzEyOCB3b3JrcyBncmVhdC4KICAgICBJIHN0aWxsIE5lZWQgdG8gZml4IDE5Mi8yNTYgZm9yIGxvbmdlciBrZXkgZ2VuZXJhdGlvbiBmcm9tIE1ENS9TSEEKICAgCjIwMDItMDgtMjkgMDc6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICB1c2UgdGhlIHJpZ2h0IHBlcmwgbW9kdWxlIG5hbWUgaW4gdGhlIHVzZSBsaW5lLgogICAKMjAwMi0wOC0yOSAwMzo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgTW9yZSBXaW4zMi1yZWxhdGVkIHRpZHlpbmcgdXAuCiAgIFRoZSBhZ2VudCBub3cgY29tcGlsZXMgd2l0aCByZWxhdGl2ZWx5IGZldyB3YXJuaW5ncy4KICAgCjIwMDItMDgtMjkgMDE6NTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBEZWNsYXJlIG5ldyByb3V0aW5lICduZXRzbm1wX29pZF9lcXVhbHMnLCBhbmQgYXNzb3J0ZWQgV2luMzIgY2xlYW51cCBmaXhlcy4KICAgCjIwMDItMDgtMjggMTE6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY2xhcmlmeSBjdnMyY2wgc2NyaXB0IG5hbWU7IHJlbW92ZSAtYiBmbGFnIGZyb20gY3ZzMmNsIHBlciBEYXZlOyBhIGxpdHRsZQogICByZW9yZ2FuaXphdGlvbjsgcHV0IGNvbW1hbmRzIG9uIHNlcGFyYXRlIGxpbmVzIHByZWZpeGVkIHdpdGggJDsgbm90ZSA1LngvNC54CiAgIGRpZmZlcmVuY2VzIHBlciBEYXZlJ3MgZW1haWw7IHBsdWcgbXkgbmV3IHNjcmlwdHMgd2hlcmUgYXBwcm9wcmlhdGUKICAgCjIwMDItMDgtMjcgMTE6NDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIFVSTCBmb3IgY3ZzMmNsOyB1cGRhdGUgY3ZzMmNsIGNtZHMgdG8gY3ZzMmNsLnBsLCBzaW5jZSB0aGF0J3MgdGhlIGZpbGUKICAgdGhhdCdzIGFjdHVhbGx5IGRpc3RyaWJ1dGVkCiAgIAoyMDAyLTA4LTI2IDIxOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjYgMjE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUxICkKICAgCjIwMDItMDgtMjYgMjE6MjQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNiAyMToxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0yNiAyMToxNyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgbWFuIHBhZ2VzIGZvciA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI2IDIxOjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgbmV3IGZpbGUgdG8gY29uZmlndXJlIHVzaW5nIHNhbWUgb3B0aW9ucyBhcyBuc2ItcGFja2FnZSBmb3IgdGVzdCBvciBkaXN0CiAgIAoyMDAyLTA4LTI2IDIxOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGRvbid0IGFwcGVuZCBzeXMtbmFtZSB3aGVuIGJ1aWxkaW5nIGluIHNyYyB0cmVlCiAgIAoyMDAyLTA4LTI2IDIxOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDgtMjYgMjE6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW5hbWUgbnNiLWdldC1jb25mZyAtPiBuc2ItY29uZmlnLWRpc3Q7IHVzZSBkb3VibGUgcXVvdGVzIGN1eiBvZiBzb21lCiAgIHdpZXJkIHNoZWxsIHRoaW5nIEkgZG9uJ3QgeWV0IHVuZGVyc3RhbmQ7IGNoZWNrIGZvciBzcmMgZGlyIGluIGNvbmZpZyoKICAgCjIwMDItMDgtMjYgMjA6MzQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIGNvbW1lbnRjaGVjayB0YXJnZXQgdG8gd29yayBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAyMDozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzIChhbmQgYW55dGhpbmcgdGhhdCBldmVuIHJlbW90ZWx5IHJlc2VtYmxlcyBvbmUpCiAgIAoyMDAyLTA4LTI2IDE0OjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcGFzcyBtYWtlIHBhcmFtcyB0byBtYWtlLCBzbyB3ZSBkb24ndCB0cnkgdG8gaW5zdGFsbCBpbiAvdXNyL2xvY2FsL2JpbiBvZgogICB0aGUgY29tcGlsZSBzZXJ2ZXJzLi4uOi0vCiAgIAoyMDAyLTA4LTI2IDE0OjM5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWFrZSBkaXN0ICYgZXh0cmEgdHJhbnNwb3J0czsgbm8gaXB2NiBvbiBEYXJ3aW47IG1ha2UgdG91Y2hpdCBiZWZvcmUgbWFrZQogICAKMjAwMi0wOC0yNiAxNDowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYzoKCiAgIHJlcGxhY2UgdV9pbnQzMl90LCB3aGljaCBkb2Vzbid0IGNvbXBpbGUgb24gU3VuIDUuOCwgd2l0aCB1X2ludAogICAKMjAwMi0wOC0yNiAxMzo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jOgoKICAgZml4IHVuZGVjbGFyZWQgdmFyaWFibGUgZXJyb3Igc3BvdHRlZCBvbiBTdW4sIHdoaWNoIGxpbnV4IG1pc3NlZCBjb21wbGV0ZWx5LgogICBJIGhhdmUgbm8gaWRlYSBob3cgdGhpcyBjb21waWxlZCBiZWZvcmUhIQogICAKMjAwMi0wOC0yNiAxMzo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNsZWFuZXIgd2F5IHRvIGFkZCBzeXN0ZW0gc3BlY2lmaWMgbW9kdWxlczsgZGlzYWJsZSBwZXJsLCBhcyBpdCBicmVha3MKICAgYnVpbGRzIG91dHNpZGUgb2YgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDEyOjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4CiAgIAoyMDAyLTA4LTI2IDEyOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4OyBiYWlsIG9uIGNvbmZpZ3VyZSBlcnJvcnMKICAgCjIwMDItMDgtMjYgMTI6MDQgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIHN1Z2dlc3Rpb24gdG8gc3ltbGluayBuc2ItKiBpbiBsb2NhbCBiaW4gZGlyCiAgIAoyMDAyLTA4LTI2IDEyOjAzICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlLCBuc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiBmb3IgcHJlLXJlbGVhc2UgdGVzdCBjb25maWd1cmUgb3B0aW9ucwogICAKMjAwMi0wOC0yNiAxMjowMiAgcnN0b3J5CgogICAqIFJFQURNRS5zbm1wdjM6CgogICBtYWtlIHNlY3Rpb24gaGVhZGVycyBzdGFuZCBvdXQgbW9yZTsgbW92ZSBub3RlIGFib3V0IGVuY3J5cHRpb24gbm90IGJlaW5nCiAgIGVuYWJsZWQgdG8gYSBtb3JlIHByb21pbmVudCBwbGFjZS4KICAgCjIwMDItMDgtMjIgMDU6MzEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oOgoKICAgICAtIERPTlRfVVNFX05MSVNUIHJlaW5zdGF0ZWQsIHNvIE5PX0tNRU1fVVNBR0UgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTIyIDA1OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAgIC0gcmVpbnN0YXRlIHRlc3QgZm9yIERPTlRfVVNFX05MSVNUCiAgIAoyMDAyLTA4LTIyIDA0OjExICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwMTozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIEFkZCB0aGUgbWlzc2luZyAnLXgvWCcgb3B0aW9ucyB0byB0aGUgZXhhbXBsZSBhdXRoUHJpdiBjb21tYW5kIGxpbmUKICAgICAocmVwb3J0ZWQgYnkgUHJhc2FkYSBSIFZhbmtheWFsYXBhdGkpCiAgIAoyMDAyLTA4LTIwIDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBGQVE6CgogICBxdWlldCBzbm1wdHJhcGQgd2hlbiBpdCBjYW4ndCBjb25uZWN0IHRvIHRoZSBhZ2VudHggbWFzdGVyLgogICAKMjAwMi0wOC0yMCAwNTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43Lmg6CgogICAgIC0gYWRkICNkZWZpbmUgTk9fS01FTV9VU0FHRSAxIHNpbmNlIG5ldC1zbm1wLWNvbmZpZy5oLmluIG5vIGxvbmdlcgogICAgICAgcGF5cyBhdHRlbnRpb24gdG8gdGhlIERPTlRfVVNFX05MSVNUIHRva2VuLiAgT21pc3Npb24gb2YgdGhpcwogICAgICAgY2F1c2VzIHRoZSBhZ2VudCB0byBleGl0IHdpdGggdGhlIG1lc3NhZ2UgImluaXRfa21lbToga3ZtX29wZW4KICAgICAgIGZhaWxlZDogZXJyb3IgMCIuCiAgIAogICAgICAgTk9URTogdGhpcyBtYXkgbmVlZCBhcHBseWluZyB0byBvdGhlciBtZW1iZXJzIG9mIHRoZSBTb2xhcmlzIDIKICAgICAgIGZhbWlseSwgYnV0IEkgZG9uJ3QgaGF2ZSBtYWNoaW5lcyB0byBoYW5kIHRvIHRlc3QgdGhpcy4KICAgCjIwMDItMDgtMjAgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRldGVjdCBnaWdhYml0IGV0aGVybmV0IGRldmljZXMgKGdlTikKICAgICAtIHVuZG8gaW5kZW50IG1heWhlbQogICAKMjAwMi0wOC0yMCAwMjo1NyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgICAtIGZvciBub3csIGRvbid0ICNpbmNsdWRlIHNubXBfbG9ja2luZy5oIHNpbmNlIGl0IGJyZWFrcyByZS1lbnRyYW50CiAgICAgICBzdXBwb3J0IChiZWNhdXNlIG11dGV4X3R5cGUgZ2V0cyBtdWx0aXBseS1kZWZpbmVkKS4gIEZ1cnRoZXJtb3JlLCB0aGUKICAgICAgIGZ1bmN0aW9ucyBpdCBkZWNsYXJlcyBhcmUgbmV2ZXIgdXNlZCBhbnl3aGVyZSwgbm9yIGRlZmluZWQgYW55d2hlcmUuCiAgIAoyMDAyLTA4LTIwIDAyOjU2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0Lmg6CgogICAgIC0gZG9uJ3QgZGVmaW5lICJkbyBub3RoaW5nIiBtYWNyb3MgZm9yIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucwogICAgICAgb24gV2luMzIgcGxhdGZvcm0gKHNpbmNlIHJlYWwgImRvIG5vdGhpbmciIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQgZm9yCiAgICAgICByZWFzb25zIGJlc3Qga25vd24gdG8gc29tZW9uZSBlbHNlKS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMjAgMDI6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oOgoKICAgICAtIGZpeCBoaWdobHkgYm9ndXMgbm9uLUMgc3ludGF4CiAgIAoyMDAyLTA4LTIwIDAyOjUzICBqYnBuCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5jOgoKICAgICAtIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucyBubyBsb25nZXIgI2RlZmluZWQgdG8gImRvIG5vdGhpbmciCiAgICAgICB0YXJnZXRzIGZvciBXaW4zMiBpbiBtdF9zdXBwb3J0LmgsIHRoZXJlZm9yZSBubyBuZWVkIHRvICN1bmRlZiB0aGVtCiAgICAgICBoZXJlLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0xOSAyMjoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgaGVhZGVycyBmb3IgY2FjaGUgZW5hYmxpbmcgZnVuY3Rpb25zLgogICAKMjAwMi0wOC0xOSAyMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZG9uJ3QgdXNlIG5vbi1leGlzdGVudCBtZW1vcnkgcG9pbnRlcnMgdG8gdGhlIHJlc3BvbnNlIGRhdGEgKGVnOiAidGltZW91dCIpCiAgIAoyMDAyLTA4LTE5IDE0OjQ2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQ2hhbmdlIGEgZmV3IGNvbmRpdGlvbmFscyB0byB1c2UgI2lmIGluIHBsYWNlIG9mICNpZmRlZgogICAKMjAwMi0wOC0xOSAxNDoyOCAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIEFsaWduIHdpdGggNC4yIGJyYW5jaAogICAKMjAwMi0wOC0xOSAxNDoyNiAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIElBTkFpZlR5cGUtTUlCLnR4dAosIElORVQtQUREUkVTUy1NSUIudHh0LCBNYWtlZmlsZS5taWIsIGlhbmFsaXN0CiwgbWliZmV0Y2gsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBNSUJzCiAgIAoyMDAyLTA4LTE5IDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBCYWlsIG91dCBmb3IgYmFkIHNubXBBZG1pblN0cmluZyB2YWx1ZQogICAKMjAwMi0wOC0xOSAwNzo0MyAgamJwbgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4zKSwgRkFROgoKICAgICAtIGRvbid0IHVzZSBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgaW4gZXhhbXBsZXMKICAgICAtIGJyZWFrIGEgY291cGxlIG9mIG92ZXItbG9uZyBsaW5lcwogICAgIC0gbWVudGlvbiBuZXRzbm1wXyB2YXJpYW50IG9mIGRzX3NldF8gZnVuY3Rpb24KICAgCjIwMDItMDgtMTkgMDI6NDQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBBZGQgYW4gZW50cnkgYWJvdXQgdGhlIHNubXB0cmFwZC9BZ2VudFggd2FybmluZyBtZXNzYWdlLgogICAKMjAwMi0wOC0xOCAxODoyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGNvbmZpZ3VyZSB3aXRoIGJ1aWxkIGluc3RhbGwgZGlyLCBpdCBpcyBhbHJlYWR5IHNwZWNpZmllZCBvbiBjbWQgbGluZQogICBmb3IgbWFrZSBpbnN0YWxsCiAgIAoyMDAyLTA4LTE4IDEwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbW9yZSBkZWJ1Z2dpbmcgLSBsb2cgdmFsdWUgcmVxdWVzdCBpcyB0cnlpbmcgdG8gc2V0CiAgIAoyMDAyLTA4LTE2IDE1OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBCcnVjZSBTaGF3IHRvIHRoZSB0aGFua3MgbGlzdAogICAKMjAwMi0wOC0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBBIGdyZWF0IHVwZGF0ZSB0YWxraW5nIGFib3V0IHBlcmwgYW5kIHNvbGFyaXMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAyLTA4LTE2IDAxOjUxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDYXRjaCBleHBsaWNpdGx5ICdub1N1Y2hJbnN0YW5jZScgZXhjZXB0aW9ucywgd2hlbiB3YWxraW5nIGFuCiAgIGl0ZXJhdG9yLWhhbmRsZWQgbW9kdWxlLCBzbyB0aGF0IGhvbGVzIGNhbiBiZSBza2lwcGVkIGFuZCB0aGUKICAgbmV4dCByZWFsIGluc3RhbmNlIHJldHJpZXZlZC4gIChUaGlzIHdhcyBhbHJlYWR5IGhhbmRsZWQgZm9yCiAgIG1vZHVsZXMgdGhhdCBkaWRuJ3QgbWFyayBtaXNzaW5nIGluc3RhbmNlcyBleHBsaWNpdGx5KS4KICAgCjIwMDItMDgtMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHR1cm4gb2ZmIGNhY2hpbmcgYnkgZGVmYXVsdCwgc2luY2UgdGhlIGFnZW50eCBjb2RlIGFwcGVhcnMgYnJva2VuLgogICAKMjAwMi0wOC0xNiAwMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmM6CgogICBzcGVlZCBlbmhhbmNlbWVudHMgdmlhIGltcGxlbWVudGluZyBhIHJlZ2lzdHJhdGlvbiBzdWJ0cmVlIGxvb2t1cAogICBjYWNoZS4gIGdyZWF0bHkgc3BlZWRzIHRoaW5ncyB1cCB3aGVuIHNpbWlsYXIgcmVxdWVzdHMgY29tZSBpbgogICAoc25tcHdhbGssIC4uLikuCiAgIAoyMDAyLTA4LTE1IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwcm90ZWN0IGFnYWluc3QgTlVMTCBsYWJlbHMgaW4gc3VidHJlZXMKICAgCjIwMDItMDgtMTUgMDg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgdXNlIG5ldHNubXBfb2lkX2VxdWFscyAod2hpY2ggaXMgc29tZXRpbWVzIGZhc3RlciB0aGFuCiAgIHNubXBfb2lkX2NvbXBhcmUpIGluIGEgZmV3IHBsYWNlcyB0byBhY2hpZXZlIGJhcmVseSBub3RpY2VhYmxlIHNwZWVkIGdhaW5zLgogICAKMjAwMi0wOC0xNSAwODoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciBleGlzdHMgYmVmb3JlIHBhc3NpbmcgaXQgdG8gc3RyY21wKCkKICAgCjIwMDItMDgtMTUgMDg6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSBNQU4zUE9EUyB0byBzb21ldGhpbmcgY29tcGxpYW50IHdpdGggdGhlIHBlcmwgbWFudWFscy4gIEkgdGhpbmsuCiAgIAoyMDAyLTA4LTE0IDEwOjQyICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBhZGQgZGVidWcgZm9yIGxvY2FsIHBhcnNpbmcgb2YgYXJncwogICAKMjAwMi0wOC0xNCAwOToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYywKICAgc3ViYWdlbnQuYzoKCiAgIGFkZCBtb3JlIGRldGFpbGVkIGluIGRlYnVnIG1lc3NhZ2VzOyBhZGQgYSBmZXcgbmV3IGRlYnVncwogICAKMjAwMi0wOC0xNCAwOToyMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHdoZW4gYWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBoYXZlIGZpbmlzaGVkLCBjaGVjayBhbGwgcmVxdWVzdHMgc3RhdHVzIHNvIHRoYXQKICAgYXNwIHN0YXR1cyBpcyBzZXQsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBhZ2VudHggc2V0IHByb2Nlc3NpbmcuCiAgIChub3cgaWYgSSBjYW4ganVzdCBnZXQgYWxsIHRoaXMgaGFpciBvZmYgdGhlIGZsb29yLCBhbmQgZ2x1ZSBpdCBiYWNrIHRvIG15CiAgIGhlYWQsIGFuZCB0aGVuIGZpeCB0aGF0IGRlbnQgaW4gdGhlIHdhbGwgd2hlcmUgSSd2ZSBiZWVuIGJhbmdpbmcgbXkgaGVhZC4uLi4pCiAgIAoyMDAyLTA4LTEzIDE0OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYSBsZW5ndGggY29tcGFyaXNvbiBwcm9ibGVtIHdpdGggbmV0c25tcF9vaWRfaXNfc3VidHJlZSgpCiAgIAoyMDAyLTA4LTEzIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgYSBmZXcgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTA4LTEzIDE0OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBGaXggb3BlbiBmaWxlIHJ1bmF3YXkgb24gc29sYXJpcy4gIFNlZSBidWcgIzU5MjgwNiByZXBvcnRlZCBieSBKYW1lcyBJcndpbi4KICAgCjIwMDItMDgtMTMgMTI6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBhcnJheSBvZiBwb2ludGVycyA9IHBvaW50ZXIgdG8gYSBwb2ludGVyCiAgIAoyMDAyLTA4LTA5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIG1pc2MgZG9jIGZpeGVzLgogICAKMjAwMi0wOC0wOSAxNjozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvc25tcHVzbS5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE2OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIHNsaWdodCBzcGVlZCB1cHMgZm9yIHNubXBfb2lkX2NvbXBhcmUoKSB0byBkbyBzaW5nbGUgaW50IGNvbXBhcmVzIHRpbGwgIT0KICAgCjIwMDItMDgtMDkgMTY6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gb3BlbnNzbCAwLjkuNyBzdXBwb3J0IGZvciBERVMgY2hhbmdlcy4KICAgLSBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxNjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgaW5kZW50IGZpeGVzLgogICAKMjAwMi0wOC0wOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc2NhcGkuaCwgc25tcHVzbS5oOgoKICAgZGVmaW5lIEFFUyBrZXkgc3BlY2lmaWNzCiAgIAoyMDAyLTA4LTA5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gY2hlY2sgZm9yIG9wZW5zc2wgLjAuOS43IERFUyBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMuCiAgIC0gY2hlY2sgZm9yIEFFUyBzdXBwb3J0IGluIG9wZW5zc2wgKD4gMC45LjcpCiAgIAoyMDAyLTA4LTA5IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGZpeCBtb2RlIHByb2Nlc3NpbmcgZm9yIFJFU0VSVkUxL1JFU0VSVkUyIHRlc3QgZmFpbHVyZXMKICAgCjIwMDItMDgtMDkgMTU6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBsb2cgbXNnIHdoZW4gd2UgaWdub3JlL2ZpeCBpbGxlZ2FsIGVycm9yX3ZhbHVlcyBmb3IgdGhlIGNsaWVudCBBUElzCiAgIAoyMDAyLTA4LTA5IDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY29ycmVjdGlvbnMgdG8gZXhhbXBsZSBjb2RlCiAgIAoyMDAyLTA4LTA5IDE1OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgcmV2ZXJ0IGVycm9ycyB0byB1bmluZm9ybWF0aXZlIFNOTVB2MSBub1N1Y2hOYW1lIGZvciBBZ2VudFggZ2V0LW5leHQvaW5jbHVzaXZlCiAgIHByb2Nlc3Npbmc7IGFsc28gYWRkIG1vcmUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUKICAgCjIwMDItMDgtMDkgMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBkZWJ1ZyBtc2cgZm9yIGFnZW50eCBvaWQgZm9yIGNhc2VzIG90aGVyIHRoYW4gZ2V0L2dldG5leHQKICAgCjIwMDItMDgtMDkgMDg6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBkb24ndCBmcmVlIHJlZ2lzdHJhdGlvbiBpbmZvIG9uIGZhaWx1cmUsIGFzIG5ldHNubXBfcmVnaXN0ZXJfbWliIGFscmVhZHkgZGlkIGl0CiAgIAoyMDAyLTA4LTA5IDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmMsIHNubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gcmVuYW1lIHNubXBfPGRvbWFpbj5fYmxhaCBmdW5jdGlvbnMgdG8gbmV0c25tcF88ZG9tYWluPl9ibGFoCiAgICAgLSBtYWtlIHRyYW5zcG9ydCBtZW1iZXIgZnVuY3Rpb25zIHN0YXRpYywgdG8gZW1waGFzaXNlIHRoYXQgdGhleSBzaG91bGQKICAgICAgIG5vdCBiZSB1c2VkIGRpcmVjdGx5CiAgICAgLSBoYW5kbGUgRUlOVFIgaW4gc2VuZCBhbmQgcmVjdiBmdW5jdGlvbnMgKGFzIHBvaW50ZWQgb3V0IGJ5IEFudHRpIEt1bnRzaQogICAgICAgaW4gYnVnIHJlcG9ydCAjNTc2ODA2KQogICAgIC0gZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwNjo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBzbm1wSVBYRG9tYWluLmgsIHNubXBUQ1BEb21haW4uaCwgc25tcFRDUElQdjZEb21haW4uaAosIHNubXBVRFBEb21haW4uaDoKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA2OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgICAtIGRvbid0IGV4cG9ydCBuZXRzbm1wX3VuaXhfYmxhaCgpIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wOSAwNjo1MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBmaXggbmFzdHkgZm9ybWF0dGluZwogICAKMjAwMi0wOC0wOCAwOToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICByZXdvcmQgY29uZmlnX3BlcnJvciBtc2dzIHRvIHJlbW92ZSAiRXJyb3IiLCBhcyBpdCBpcyByZWR1bmRhbnQKICAgCjIwMDItMDgtMDggMDk6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICByZW1vdmUgaWZkZWYgdG8gbG9nIG1zZyB0byB1c2VyLCBhZnRlciBtYWtpbmcgbXNnIG1vcmUgaW5mb3JtYXRpdmU7IHJlbW92ZQogICBhbm5veWluZyBibGFuayBsaW5lcwogICAKMjAwMi0wOC0wOCAwODozMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCBmcm9tIEhhcnJpZSB0byBjb21wbGV0ZWx5IGRpc2FibGUga21lbSB1c2FnZQogICAKMjAwMi0wOC0wNiAwMDozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMDoyNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgCjIwMDItMDgtMDYgMDA6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYywgc25tcF9hcGkuYzoKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgICAgLSBjYWxsIGl0IGZyb20gc25tcF9zaHV0ZG93bigpCiAgICAgLSB0aGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNSAwNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hdGNoIGZ1bmN0aW9uIGRlZmluaXRpb24gdy9OZXRzbm1wXypfRGF0YVBvaW50IHR5cGVkZWZzOyBhZGQgY3ZzIElkCiAgIAoyMDAyLTA4LTAzIDA4OjUyICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGJyZWFrIHVwIGxpbmVzIGxvbmcgdGhhbiA4MCBjaGFyczsgYWJjZGUsIG5vdCBhYmNkZAogICAKMjAwMi0wOC0wMyAwMDoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1vcmUgdXBkYXRlcyBhYm91dCB0aGluZ3MgV2VzIGRvZXMgYXQgMTI6MzAgYW0KICAgCjIwMDItMDgtMDIgMjM6NDQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMyApCiAgIAoyMDAyLTA4LTAyIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBVcGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDIzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkIC5saWJzCiAgIAoyMDAyLTA4LTAyIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wOC0wMiAyMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTAyIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZm9yZ290dGVuIHRvIGNoZWNrIGluIHRlc3QgZm9yIHBlcmxfZXYgY2hhbmdlcwogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZW1vdmUgZGVidWdnaW5nIHByaW50IChvcHBzKQogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHZlcnNpb24gdXNhZ2UuCiAgIAoyMDAyLTA4LTAyIDIzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjNTcyMzk0IGZyb20gS2F0c3VoaXNhIEFCRToKICAgICAtIHN1cHBvcnQgbGluayBsb2NhbCBhZGRyZXNzZXMKICAgICAtIGJpbmQgdG8gaXB2NiBvbmx5IGlmIElQVjZfVjZPTkxZIGlzIGRlZmluZWQuCiAgIAoyMDAyLTA4LTAyIDIzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IGNvbmZpZ3VyZSBzcGVjaWZpZWQgZGVmYXVsdCB2ZXJzaW9uaW5nCiAgIAoyMDAyLTA4LTAyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM1NzIzOTQ6IGFkZCBpcHY2IHRyYW5zcG9ydHMgd2hlbiAtLWVuYWJsZS1pcHY2IGRlZmluZWQuICBUaGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDgtMDIgMTQ6NTkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICB1cGRhdGUKICAgCjIwMDItMDgtMDIgMTQ6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIGRvY3MuCiAgIAoyMDAyLTA4LTAyIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zLCBNYWtlZmlsZS5pbjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBmb3IgeWV0IG1vcmUgc3R1ZmYuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgYSBmZXcgbW9yZSBkaXN0IHJlbGF0ZWQgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlcnJvciBtZXNzYWdlIGNoYW5nZSB0byByZW1vdmUgREVTIHNwZWNpZmljIGVycm9yIG1zZy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIHNwYWNpbmcgZml4ZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnhzOgoKICAgcmVuYW1lZCBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIHJlbmFtZWQgZmlsZQogICAKMjAwMi0wOC0wMiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBBZGQgYSAiZXZhbHZhcnMiIGRpcmVjdGl2ZSB0byBkbyBzaW1wbHkgcmVwbGFjZW1lbnRzLgogICAKMjAwMi0wOC0wMiAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBDVlNVU0VSIHZhcmlhYmxlIHdoZW4gZG9pbmcgc3R1ZmYgaW5zdGVhZCBvZiBteSBoYXJkLWNvZGVkIG5hbWUuCiAgIAoyMDAyLTA4LTAyIDE0OjE0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBjaGFuZ2UgY2hlY2tjb21tZW50IHRhZyB0byBleGNsdWRlIHdpbjMyIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGNoYW5nZWxvZyBidWlsZCBub3RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNyZWF0ZWQgYSBob3ctdG8gZmlsZSBmb3IgbWFraW5nIHJlbGVhc2VzCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIGNoYW5nZWxvZyBmaXgtdXAgc2NyaXB0CiAgIAoyMDAyLTA4LTAyIDEwOjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHJhbnNsYXRlICcvJyBpbiBzeXN0ZW0gbmFtZSB0byAnXycgKGZvciBjeWd3aW4pCiAgIAoyMDAyLTA4LTAyIDA5OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIGN2cyBnZXQgY29tbWFuZCBleGFtcGxlCiAgIAoyMDAyLTA4LTAyIDA5OjA2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBTdXBwcmVzcyAnaW5saW5lJyB3aGVuIG5vdCB1c2luZyBHQ0MuIFN1Z2dlc3RlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDItMDgtMDIgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gb24gc2tpcHBpbmcgbWFrZSB0ZXN0OyBhZGQgLXAgZmxhZyB0byBleGFtcGxlcwogICAKMjAwMi0wOC0wMiAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBkZXNjcmliZSB1c2Ugb2YgbnNiLXBhY2thZ2Ugc2NyaXB0LiBUZXN0ZXJzIGFuZCBjb21tZW50cyBhcHByZWNpYXRlZC4uLgogICAKMjAwMi0wOC0wMiAwODozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBsYXRmb3JtOgoKICAgb3V0cHV0IHBsYXRmb3JtIGluZm8KICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbmFtZWQgdG8gbnNiLXBhY2thZ2UKICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgcmVuYW1lZCBuc2ItYnVpbGQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggc2NyaXB0IGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTAyIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDaGFuZ2UgbG9jYXRpb24gbmFtZSB0byBVbmtub3duCiAgIAoyMDAyLTA4LTAyIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowNCAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggcmV0dXJuIGNvZGUKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGRvbid0IHB1bGwgZmlyc3QgYXJnIHRpbCBhZnRlciBnZXRvcHRzL3NoaWZ0OyBtb3ZlIHNldCBvZiBkZWZhdWx0IG9wdHMKICAgCjIwMDItMDgtMDIgMDc6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgYWRkIC1mIG9wdGlvbiB0byBwcm9tcHQgdG8gb3ZlcnJpZGUKICAgbm8gcHJvbXB0IGZsYWcgKHVzZWZ1bCBmb3IgZXJyb3JzKTsgbmV3IG5zYi1tYWtlIG1ldGhvZDsgY2hlY2sgcmMgb2YKICAgbWFrZSBjbGVhbgogICAKMjAwMi0wOC0wMiAwNzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IHR3ZWFrIHVzYWdlCiAgIAoyMDAyLTA4LTAyIDA3OjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggdHlwbzsgcmVtb3ZlIGV4dHJhIHRyYWlsaW5nIHNsYXNoIGluIGRpcgogICAKMjAwMi0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgY2hlY2sgbW9yZSBwbGFjZXMgdG8gc291cmNlIG5zYi1mdW5jdGlvbnM7IGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgcGF0aAogICAKMjAwMi0wOC0wMiAwNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGp1c3Qgc2hvdyBlcnJvcnMgYWZ0ZXIgYnVpbGQsIG5vdCB3YXJuaW5ncwogICAKMjAwMi0wOC0wMSAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmV2ZXJ0IHRvIG5vbi1hbnNpIHByb3RvdHlwZXMgZm9yIG9sZGVyIHBlcmwgd2l0aCBvbGRlciBjb21waWxlcnMgb24KICAgb2xkZXIgc3lzdGVtcy4gIE5vdCB0aGF0IEknbSBncnVtcHksIG9mIGNvdXJzZS4KICAgCjIwMDItMDgtMDEgMTY6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBjaGVjayBmb3Igb2xkZXIgYW5kIG5ldyBlbWJlZGRlZCBwZXJsIGNhbGwgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTAxIDE0OjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3Qgc3ltbGluayB0byBzcmMgZnJvbSBidWlsZDsgdXBkYXRlIG5zYi1nZXQtY29uZmlnCiAgIAoyMDAyLTA4LTAxIDE0OjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIGRpcgogICAKMjAwMi0wOC0wMSAxMjo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBjb25maWcgaW5zdGFsbCBwYXRoOyByZW1vdmUgcGxhdGZvcm0gc3BlY2lmaWMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDgtMDEgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbW92ZSBoYXJkIGNvZGVkIGluZm8KICAgCjIwMDItMDgtMDEgMTI6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgcHJvbXB0czsgcmVtb3ZlIHByZXZpb3VzIGluc3RhbGxzOyB0d2VhayBlcnIgcGF0dGVybgogICAKMjAwMi0wOC0wMSAxMjoxNCAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpIGluc3RlYWQgb2YgZHNfc2V0X2Jvb2xlYW4oKQogICAKMjAwMi0wOC0wMSAxMjoxMiAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICAgIC0gY2hhbmdlIGNvZGUgc2FtcGxlIHRvIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkKICAgICAtIHVwZGF0ZSByZWZlcmVuY2VzIHRvIGxpYnJhcmllcyAod2hpY2ggd2VyZSBzdGlsbCB0YWxraW5nIGFib3V0CiAgICAgICBsaWJ1Y2RhZ2VudCBldCBhbC4pIC0tIFBMRUFTRSBSRVZJRVcgQkVGT1JFIDUuMC4zCiAgIAoyMDAyLTA4LTAxIDEyOjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbG90cyBvZiBmaXhlcyB0byBwcmV2aW91c2UgdW50ZXN0ZWQgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgc2NyaXB0IHRvIGJ1aWxkIHJlbGVhc2VzLi4uIHN0aWxsIHNvbWUgaGFyZGNvZGluZyB3aGlsZSB0ZXN0aW5nLCBidXQgaXRzCiAgIGdldHRpbmcgdGhlcmUuLi4KICAgCjIwMDItMDgtMDEgMTE6NTEgIHJzdG9yeQoKICAgKiBkaXN0LzogY3Zzc2hvdywgY3ZzdXA6CgogICB1dGlsaXR5IHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyMi5jOgoKICAgR28gd2l0aCB0aGUgInNjYWxhciBhcyBzdXBlci1oYW5kbGVyIG9mIGluc3RhbmNlIiBpbXBsZW1lbnRhdGlvbi4KICAgU2NhbGFyMS5jIGlzIHByb2JhYmx5IHJlZHVuZGVudCwgYnV0IHdlIGNhbiByZW1vdmUgdGhpcyBsYXRlci4KICAgKFl1cCAtIEknbSBhIGNvd2FyZC4uLi4pCiAgIAoyMDAyLTA4LTAxIDAxOjExICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBNaW5vciB0eXBvcywgcGx1cyBlbXBoYXNpc2UgdGhlIG5lZWQgZm9yIHRoZSBJcEhscEFQSSBsaWJyYXJ5LgogICAKMjAwMi0wNy0zMCAwODoyNiAgZHRzMTIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQ6CgogICBSZWNvZ25pc2UgJzAnIGFzIGEgdmFsaWQgc2V0dGluZyBmb3Igc3VmZml4UHJpbnRpbmcsIGFuZCB1cGRhdGUgdGhlCiAgIHByb21wdHMgdG8gbWF0Y2ggdGhlIHY1IG91dHB1dCBmb3JtYXRzIGRlZmF1bHRzLiBTZWUgQnVnICM1Njc0NTEKICAgCjIwMDItMDctMzAgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXJzdCBhdHRlbXB0IGF0IHRhY2tsaW5nIEJ1ZyAjNTc0NDM0CiAgIFJlY29nbmlzZSB0aGF0IGRlZmF1bHQgb3V0cHV0IGZvcm1hdCBpcyBlcXVpdmFsZW50IHRvIC1PUy4KICAgU25tcHRhYmxlIHN0aWxsIGNyYXNoZXMgd2l0aCAtT2Ygb3IgLU91LCBidXQgYXQgbGVhc3QgdGhlCiAgIGRlZmF1bHQgaW52b2NhdGlvbiB3b3Jrcy4KICAgCjIwMDItMDctMzAgMDU6NDEgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0IG5ld2x5LWRlZmluZWQgcHVibGljIG5hbWVzLCBhbmQgcmUtZXhwb3J0IHNvbWUgcm91dGluZXMgdGhhdAogICBoYXZlIGNoYW5nZWQgbmFtZS4gIFRoaXMgc2hvdWxkIG5vdyBjb21waWxlIHVuZGVyIFZpc3VhbCBDKysgYWdhaW4uCiAgIAoyMDAyLTA3LTMwIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IHJlbW92ZSBhIFJvdy1TdGF0dXMgYXV0by1kZWxldGVkIHJvdyB1bnRpbCB0aGUgbGFzdCBtaW51dGUsCiAgIGluIGNhc2Ugb3RoZXIgKGxvd2VyKSBoYW5kbGVycyB0cnkgdG8gYWNjZXNzIGl0LgogICAKMjAwMi0wNy0zMCAwMTozOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMSksIEZBUToKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gZXNjYXBlIHF1b3RlcyB3aGVuIHF1ZXJ5aW5nIHN0cmluZy1pbmRleGVkIHRhYmxlcy4KICAgCjIwMDItMDctMjkgMjM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1cGRhdGUgcmVnaXN0ZXIgZnVuY3Rpb24gbmFtZQogICAKMjAwMi0wNy0yOSAyMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGF1dG9nZW4gZXhhbXBsZSBjb2RlIGZvciBpbmRleCBjaGVja2luZyBpbiBleHRyYWN0X2luZGV4OyB1cGRhdGUgcmVnaXN0ZXIKICAgZnVuY3Rpb24gbmFtZTsgdXNlIGNvbnRhaW5lciBpbiAqX2dldF9ieV9pZHgoKQogICAKMjAwMi0wNy0yOSAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgbmV3IHN0cnVjdCBuYW1lOyBhZGQgZXhhbXBsZSBjb2RlIGFzIGNvbW1lbnRzIGluc3RlYWQgb2YgdmFyX1hYWAogICBhbmQgc3VjaDsgaW4gYSBmZXcgaW1wb3J0YW50IHBsYWNlcyBhZGQgY29kZSB3aGljaCB3aWxsIGFsbG93IGEgbmV3bHkKICAgZ2VuZXJhdGVkIG1vZHVsZSB0byBiZSBjb21waWxlZCBpZiAtRFRBQkxFX0NPTlRBSU5FUl9UT0RPIGlzIHNwZWNpZmllZDsKICAgcHJvYmFibHkgYSBmZXcgb3RoZXIgdHdlYWtzIEkgZm9yZ290CiAgIAoyMDAyLTA3LTI5IDAzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfYXJyYXkuYywgdGFibGUuYywgdGFibGVfZGF0YS5jCiwgdGFibGVfZGF0YXNldC5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGRlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMuCiAgIChNb3N0IG9mIHRoZXNlIFNob3VsZCBOZXZlciBIYXBwZW4gYnV0IFlvdSBDYW4ndCBCZSBUb28gQ2FyZWZ1bCEpCiAgIAoyMDAyLTA3LTI5IDAzOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgYGRtZmUnIGV0aGVybmV0IGNhcmRzIGFzIGZvdW5kIG9uIE5ldHJhIFgxIG1hY2hpbmVzLgogICAgICAgVGhhbmtzIHRvIEpvaG4gT2xzb24gZm9yIHZlcmlmeWluZyB0aGlzIGZpeC4KICAgCiAgICAgICBBbHNvIG5vdGUgdGhhdCBgaW5kZW50JyBoYXMgLS0tLWVkIHRoZSBmb3JtYXR0aW5nIG9mIHRoaXMgZmlsZQogICAgICAgYmV5b25kIGxlZ2liaWxpdHkgaW4gc2V2ZXJhbCBwbGFjZXMuICBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdG8KICAgICAgIGRvICp0aGF0KiBhZ2Fpbi4KICAgCjIwMDItMDctMjkgMDI6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRnVsbGVyIHZhbGlkYXRpb24gb2YgUm93U3RhdHVzIHZhbHVlcyB3cnQgcm93IGNyZWF0aW9uL2V4aXN0aW5nIHJvd3MuCiAgIAoyMDAyLTA3LTI5IDAxOjI1ICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFRha2UgYWNjb3VudCBvZiByZWNlbnQgY2hhbmdlcyBpbiBsaWJyYXJ5IGZpbGVzLgogICAnUmVsZWFzZScgYXBwbGljYXRpb25zIHN0aWxsIGRvbid0IGxpbmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdAogICB0aGUgbGlicmFyaWVzIGNvbXBpbGUsIGFuZCB0aGUgJ0RlYnVnJyBzaWRlIHNlZW1zIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTI5IDAxOjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFR3ZWFrIGlubGluZSBoYW5kbGluZyBmb3IgQUlYIC0gc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDItMDctMjYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGF1dG9kZXBlbmRlbmNpZXMgdW50aWwgcG9ydGFibGUgc29sdXRpb24gY2FuIGJlIGZvdW5kCiAgIAoyMDAyLTA3LTI2IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgbWliX21vZHVsZV9pbml0cy5oOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChvYnNvbGV0ZSkgdWNkLXNubXAvcmVnaXN0cnkgbW9kdWxlLgogICAKMjAwMi0wNy0yNiAwNzozMiAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBQcm90ZWN0IHRoZSBXaW4zMiB2ZXJzaW9uIG9mIHRoZSBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgb3RoZXIgaGVhZGVyCiAgIGZpbGVzIHJlY29nbmlzZSB0aGF0IGl0IGhhcyBpbmRlZWQgYmVlbiBpbmNsdWRlZC4KICAgCjIwMDItMDctMjYgMDc6MjQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjApLCBGQVE6CgogICBBIGJpdCBtb3JlIGRldGFpbCBvbiBtaWIyYywgcGx1cyB0aGUgbm9uLXdyaXRlYWJpbGl0eSBvZiBzeXN7TG9jYXRpb24sQ29udGFjdH0KICAgCjIwMDItMDctMjYgMDU6MjIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjkpLCBGQVE6CgogICBBbm90aGVyIGVudHJ5IGFib3V0IGludmFsaWQgdXNlIG9mIG1pYjJjLgogICAKMjAwMi0wNy0yNiAwNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFN1cHByZXNzIHRoZSAibm9uLXN0YW5kYXJkIiBjb25kaXRpb25hbCBjb25zdHJ1Y3QsCiAgIHNpbmNlIGl0J3Mgbm90IHJlY29nbmlzZWQgYnkgc29tZSB2ZXJzaW9ucyBvZiAnbWFrZScuCiAgIAoyMDAyLTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIHRoZSAnc2NhbGFyJyBhbmQgJ3dhdGNoZXInIGhlbHBlcnMgdG8gdGhlIGhlbHBlciBsaWJyYXJ5LgogICAKMjAwMi0wNy0yNSAwMzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIFN1cHBvcnQgZm9yIHdhdGNoaW5nIGEgc3lzVXBUaW1lIG1hcmtlci4KICAgCjIwMDItMDctMjUgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIE5ldyByb3V0aW5lIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIHZhbHVlIGRpcmVjdGx5IGZyb20gYSByZXF1ZXN0IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMTM6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNoZWNrIGZvciBzZXR0aW5nIHNhbWUgdmFsdWUgaW4gZHNfc2V0X3N0cmluZywgc2luY2UgaXQgZnJlZXMgdGhlIG9sZAogICB2YWx1ZSBiZWZvcmUgZHVwaW5nIHRoZSBuZXcgb25lCiAgIAoyMDAyLTA3LTI0IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICBmaXJzdCBzdGFiIGF0IGluaXQuZCBzdGFydHVwIHNjcmlwdCBmb3Igc25tcGQKICAgCjIwMDItMDctMjQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgV2hlbiBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIG9uZSBjb2x1bW4sIGFuZCBtb3Zpbmcgb24gdG8gdGhlIG5leHQKICAgKGluIGEgR2V0TmV4dCksIHdlIG5lZWQgdG8gc3RhcnQgYWdhaW4gd2l0aCB0aGUgZmlyc3Qgcm93LgogICBUaGlzIGlzIHByb2JhYmx5IHRoZSBpbnRlbnRpb24gb2YgdGhlIGNvbmRpdGlvbmFsIGJsb2NrIGF0IHRoZSBzdGFydAogICBvZiB0aGlzIGxvb3AsIGJ1dCBJIGNhbid0IHNlZSBob3cgdGhpcyB0ZXN0IGNvdWxkIGV2ZXIgcG9zc2libHkgbWF0Y2guCiAgIAogICBOb3RlIHRoYXQgdGhlcmUgaXMgYWxzbyBhIHJlZmVyZW5jZSB0byB0aGUgcm93IGRhdGEgYWNjZXNzaWJsZSB2aWEKICAgdGhlICdyZXF1ZXN0LT5wYXJlbnRfZGF0YScgZGF0YSBsaXN0LiAgIFRoaXMgd2lsbCBhbHNvIG5lZWQgdG8gYmUKICAgcmV3b3VuZC4gIFN1Z2dlc3Rpb25zIGFzIHRvIGhvdyBiZXN0IHRvIGRvIHNvIGdyYXRlZnVsbHkgcmVjZWl2ZWQuCiAgIAoyMDAyLTA3LTI0IDA2OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgZmFpbGluZyB0byBleHRyYWN0IGEgcm93IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMDY6MzUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBpbnZhbGlkIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTIzIDE0OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtaXNzaW5nIGNvbW1lbnQgdGVybWluYXRvci46LSgKICAgCjIwMDItMDctMjMgMTI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9hc3NlcnQgaW5zdGVhZCBvZiBhc3NlcnQKICAgCjIwMDItMDctMjMgMTI6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICBhZGQgbmV3IG5ldHNubXBfYXNzZXJ0LCB3aGljaCBkZWZhdWx0cyB0byBsb2dnaW5nIGEgbWVzc2FnZQogICAKMjAwMi0wNy0yMyAwNzo0MyAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zIChWNC0yLXBhdGNoZXMuMyksIG1pYl9hcGkuMy5kZWY6CgogICBGaXggdGhlIGRlc2NyaXB0aW9ucyBvZiB0aGUgJ3NwcmludF9yZWFsbG9jJyBjYWxscywgdG8gaW5jbHVkZSB0aGUgJ2FsbG93X3JlYWxsb2MnIHBhcmFtZXRlci4KICAgCjIwMDItMDctMjIgMTA6NTggIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYywgbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyAoYWxtb3N0IGVtcHR5KSBzcGVjIGZpbGU7IHN0YXJ0IGNyZWF0aW5nIGZ1bmN0aW9ucyBmb3IgYXV0b21hdGVkIGJ1aWxkcwogICAKMjAwMi0wNy0yMiAwMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEEgbW9yZSBnZW5lcmFsaXNlZCBmb3JtIG9mIHRoZSAnbnNfcmVnaXN0ZXJfe3R5cGV9X2luc3RhbmNlJyByb3V0aW5lcywKICAgaW1wbGVtZW50ZWQgYXMgYSBzZXBhcmF0ZSBoZWxwZXIgbW9kdWxlLCBhbmQgdXNlYWJsZSB3aXRoIGJvdGggdGhlCiAgIGluc3RhbmNlIGFuZCBzY2FsYXIgaGVscGVycy4KICAgICBUaGlzIGFsc28gc3VwcG9ydHMgYXJiaXRyYXJ5IEFTTiB0eXBlcyAoaW5jbHVkaW5nIHN0cmluZ3MgYW5kIE9JRHMpLgogICAKMjAwMi0wNy0yMiAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyMi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oOgoKICAgQWdlbnQgaGVscGVyIG1vZHVsZSBmb3Igc3VwcG9ydCBvZiBzY2FsYXIgb2JqZWN0cy4KICAgVmVyeSBzaW1pbGFyIHRvIHRoZSAiaW5zdGFuY2UiIGhlbHBlciwgZXhjZXB0IHRoYXQgdGhpcyBkZWFscyB3aXRoCiAgIGludmFsaWQgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMgYXMgd2VsbCAocmVwb3J0aW5nIG5vU3VjaEluc3RhbmNlCiAgIHJhdGhlciB0aGF0IG5vU3VjaE9iamVjdCkuCiAgIAogICBUaGVyZSBhcmUgdHdvIHBhcmFsbGVsIGltcGxlbWVudGF0aW9ucyBhcyB0aGUgbW9tZW50OgogICAgIC0gc2NhbGFyMSBpcyBlc3NlbnRpYWxseSBhbiBlbmhhbmNlZCBjb3B5IG9mIHRoZSBpbnN0YW5jZSBoZWxwZXIsCiAgICAgICBidXQgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiBpdC4KICAgICAtIHNjYWxhcjIgc2l0cyBhYm92ZSB0aGUgaW5zdGFuY2UgaGVscGVyLCBhbmQgdXNlcyB0aGF0IHRvIGRvIG1vc3QKICAgICAgIG9mIHRoZSByZWFsIHByb2Nlc3NpbmcuCiAgIFNjYWxhcjEgaXMgcHJvYmFibHkgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQsIHdoaWxlIHNjYWxhcjIgZmVlbHMgbW9yZQogICBpbiBrZWVwaW5nIHdpdGggdGhlIGdlbmVyYWwgZXRob3Mgb2YgdGhlIGhhbmRsZXIgbWVjaGFuaXNtLgogICBXZSBwcm9iYWJseSBuZWVkIHRvIGRlY2lkZSB3aGljaCB0byBhZG9wdCwgYW5kIGp1bmsgdGhlIG90aGVyLgogICAKMjAwMi0wNy0xOSAxNDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHVzZSBuZXQgYWdlbnR4IHJldGlyZXMvdGltZW91dCBkcyB2YWx1ZXMKICAgCjIwMDItMDctMTkgMTQ6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgcmVnaXN0ZXIgcGFyc2VyIGZvciBhZ2VudHhUaW1lb3V0IGFuZCBhZ2VudHhSZXRyaWVzIHRva2VucwogICAKMjAwMi0wNy0xOSAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbi1leGlzdGVudCBuc3RBZ2VudCogZmlsZXMKICAgCjIwMDItMDctMTkgMTQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbW92ZSBPTkVfU0VDIHRvIGRlZmluaXRpb25zLmg7IGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMgZGVmYXVsdHMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oOgoKICAgbW92ZSBkZWZpbml0aW9uIG9mIE9ORV9TRUMgaGVyZSBmcm9tIHNubXBkLmMKICAgCjIwMDItMDctMTkgMTE6MjMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcGFzcyBsb2NhbCBvYmosIG5vdCByYW5kb20gdW5pdGlhbGl6ZWQgcG9pbnRlci46LSgKICAgCjIwMDItMDctMTkgMDQ6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgTUFYUEFUSExFTiBpc24ndCBkZWZpbmVkLgogICAKMjAwMi0wNy0xOSAwMzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgdGhlICJzeXN0ZW0taW5kZXBlbmRlbnQiIFNOTVBfTUFYUEFUSCBsZW5ndGggZGVmaW5pdGlvbiBpbnN0ZWFkIG9mIE1BWFBBVEhMRU4KICAgCjIwMDItMDctMTggMjI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub25leGlzdGVudCBtaWJncm91cC9uc3RBZ2VudE1vZHVsZU9iamVjdC5oCiAgIAoyMDAyLTA3LTE4IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIgKQogICAKMjAwMi0wNy0xOCAxOTo0MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuMgogICAKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWlub3IgcGF0Y2ggZm9yIG5vbi1leGlzdGVudCAoZGllZCkgbG9nIGZpbGVzLgogICAKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMgogICAKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBtYWtlIGRlcGVuZCBmaXhlcy4KICAgCjIwMDItMDctMTggMTg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhbGFybS5jLCBldmVudC5jOgoKICAgbWFrZSB0aGUgcm1vbiBjb2RlIGNvbXBpbGUuCiAgICAtIG5ldyBzdWJ0cmVlIHBvaW50ZXIgc3RydWN0dXJlLgogICAgLSBzcHJpbnRfb2JqaWQgLT4gc25wcmludF9vYmppZAogICAKMjAwMi0wNy0xOCAxODozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBzaWxlbmNlIHBlcmwgc3ViZGlyZWN0b3J5IGJ1aWxkIGNvbW1hbmRzLgogICAKMjAwMi0wNy0xOCAxODozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIFVzZSBuZXRzaCAtdCAtZCB4bWwgdG8gZ2V0IHhtbCBvdXRwdXQgZnJvbSBuZXRzaC4KICAgICAoT2ssIEknbSBzaXR0aW5nIGhlcmUgYXQgYW4gSUVURiBjb25mZXJlbmNlIGhhdmluZyBhbiBhcmd1bWVudCBhYm91dAogICAgICB4bWwgdnMgQkVSIGFuZCBuZWVkZWQgYSBYTUwoLWxpa2UpIGV4YW1wbGUgb2YgYSBodWdlIGRhdGEgc2V0LCBzbyBJCiAgICAgIG1hZGUgbmV0c2ggZG8gaXQuKQogICAKMjAwMi0wNy0xOCAxNzo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gaW5pdGlhbCBzdXBwb3J0IGZvciBkb2luZyByZXF1ZXN0cyBmcm9tIG11bHRpcGxlIGhvc3RzIChyZXRyaWV2YWwsIG5vdCBzZXRzKQogICAKMjAwMi0wNy0xOCAxNzo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBtb3JlIGZpeGVzIHRvIHN0aWxsIHVnbHkgY29sb3JpemVkIHRleHQgKHdlbGwsIHRoZSB0ZXh0IGlzIHByZXR0eSBidXQKICAgdGhlIHN1cHBvcnQgaXMgdWdseSkuCiAgIAoyMDAyLTA3LTE4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBjaGFuZ2UgdGV4dCBzdHJpbmcgZXJyb3IgdG8gbWF0Y2ggZnVuY3Rpb24gbmFtZSBjYWxsZWQuCiAgIAoyMDAyLTA3LTE4IDE1OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW5hbWUgZnJlZSAtPiBjZnJlZSB0byBhdm9pZCBzb21lIHByb2JsZW0gd2VzIGhhZC4uLiA7LSkKICAgCjIwMDItMDctMTggMTQ6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdHdvIHBlb3BsZSBmaXhpbmcgbWVtb3J5IGxlYWsgaW4gZGlmZmVyZW50IHBsYWNlcyA9IHNlZ2ZhdWx0CiAgIAoyMDAyLTA3LTE4IDExOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgJG5hbWUgLT4gJGkKICAgCjIwMDItMDctMTggMTA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTggMDk6NDAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1kZWJ1Zy10b2tlbnMsIC0taW5kZW50LW9wdGlvbnMKICAgCjIwMDItMDctMTggMDk6MTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLCBzbm1wbGliL3NubXAtdGMuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIEFwcGx5IHBhdGNoIGZyb20gQnVnICM1ODIzNDcsIGZvciBJcml4IDYuNSBzdXBwb3J0LgogICBTdWJtaXR0ZWQgYnkgSmFuIFllbnlhIEthc3ByemFrCiAgIAoyMDAyLTA3LTE4IDA5OjEyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOCAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuOC5kZWY6CgogICBGaXggbWFya3VwIHByb2JsZW0gb24gc25tcHRyYXBkIG1hbiBwYWdlIChCdWcgIzU4MzMyOSkKICAgCjIwMDItMDctMTggMDk6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgVGhlIGZpeCBmb3IgdGhlIHRtX2dtdG9mZiBwcm9ibGVtIG9uIEFJWCAoQnVnICM1NjU3NjkpIGFsc28gYXBwbGllcyB0byBBSVggNQogICAKMjAwMi0wNy0xOCAwOTowNiAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAoVjQtMi1wYXRjaGVzLjEpLCBlbmNvZGVfa2V5Y2hhbmdlLmMKOgoKICAgRml4IG9mZi1ieS1vbmUgYnVmZmVyIG92ZXJmbG93IChwYXRjaCAjNTc3MjYxKQogICAKMjAwMi0wNy0xOCAwODo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgR2VuZXJhdGUgb25lIGNvZGUtZmlsZSBwZXIgdGFibGUgKHRvIG1hdGNoIHRoZSBoZWFkZXIgc3RydWN0dXJlKS4KICAgTXkgYXBvbG9naWVzIGlmIHRoaXMgaXNuJ3QgY29ycmVjdCwgUm9iZXJ0IC0gYnV0IHRoZSBwcmV2aW91cyBiZWhhdmlvdXIKICAgc2VlbWVkIHRvIGJlIGJyb2tlbi4KICAgCjIwMDItMDctMTggMDg6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFRhY2tsZSBzb21lIG9mIHRoZSBpbW1lZGlhdGUgZGVmaWNpZW5jaWVzIGluIHRoZSBmaXJzdCBkcmFmdCBvbGQtYXBpIGNvbmZpZy4KICAgKE5vdyB0aGF0IFdlcyBoYXMgcG9pbnRlZCBtZSBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uISkKICAgCjIwMDItMDctMTggMDg6MjIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHRoZSAnZGVjbCcgc3Vic3RpdHV0aW9uIGhhbmRsaW5nIChzbyBpdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGludGVybmFsIHRva2VuIGFzIHdlbGwpLgogICAKMjAwMi0wNy0xOCAwNzoxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBQcm92aWRlIHRoZSBtaXNzaW5nIHBhcmFtZXRlciBpbiBhIHJlYWRfb25seSBpbnN0YW5jZSByZWdpc3RyYXRpb24uCiAgIAoyMDAyLTA3LTE4IDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBCcmluZyB0aGUgJ3JlYWRfb25seV9pbnQnIGluc3RhbmNlIGhhbmRsZXIgaW4gbGluZSB3aXRoIHRoZSByZXN0IG9mCiAgIHRoZSBjb252ZW5pZW5jZSBpbnN0YW5jZSBoYW5kbGVycy4KICAgKGFuZCBldmVuIGJyZWFrIHRoZSBoYWJpdCBvZiBhIGxpZmV0aW1lIGFuZCBkZWNsYXJlIHRoZSB0aGluZy4uLi4pCiAgIAoyMDAyLTA3LTE4IDA1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggYW5vdGhlciBtZW1vcnkgbGVhayBkdWUgdG8gYW4gaW1wcm9wZXIgaWZkZWZlZCBvdXQgc2VjdGlvbiBvZiBjb2RlCiAgIAoyMDAyLTA3LTE4IDA0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBJJ20gYmVnaW5uaW5nIHRvIHJlZ3JldCBldmVyIHJ1bm5pbmcgaW5kZW50IG9uIHRoZSBjb2RlIGJhc2UuLi4KICAgCjIwMDItMDctMTcgMTU6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICBkb2N1bWVudCBhbmQgaW5zdGFsbCBtaWIyYy5vbGQtYXBpLmNvbmYKICAgCjIwMDItMDctMTcgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggc2VnZmF1bHQgKHBvc3NpYmx5IGNyZWF0aW5nIG1lbW9yeSBsZWFrKTsgYXV0aG9yIG5lZWRzIHRvIGV4YW1pbmUgY29kZQogICAKMjAwMi0wNy0xNyAwNzo0MSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNvbmYsCiAgIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLmludF93YXRjaC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgRGF2ZSdzIGJlaW5nIHVucmVhc29uYWJseSBwaWNreSBhYm91dCBncmFtbWFyICYgc3BlbGxpbmcgYWdhaW4uCiAgIEp1c3QgaWdub3JlIGhpbSwgYW5kIGhlJ2xsIGdvIGF3YXkuLi4uLgogICAKMjAwMi0wNy0xNyAwNzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgb2xkIDR4LXN0eWxlIGFnZW50IEFQSSB1c2luZyB0aGUgbmV3IHZlcnNpb24gb2YgbWliMmMuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHR5cGVzIHByb3Blcmx5LCBhbmQgSSdtIHN1cmUgSSdsbCBoYXZlIGJ1Z2dlcmVkIHVwIHNvbWUgb2YKICAgdGhlIGNvbnRyb2wgc3RydWN0dXJlIGhhbmRsaW5nLCBidXQgaXQgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZXRoaW5nIHRoYXQncwogICBwcmV0dHkgY2xvc2UgdG8gdGhlIG9sZCBvdXRwdXQuICAgSXQncyBiZXR0ZXIgdGhhbiBub3RoaW5nLi4uLi4KICAgCjIwMDItMDctMTYgMjI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgcmVzdG9yZSBpbmxpbmUgZnVuY3Rpb25zIChzaWdoLiBJIGZlZWwgbGlrZSBJJ20gcGxheWluZyByaW5nLWFyb3VuZC10aGUtcm9zaWUpCiAgIAoyMDAyLTA3LTE2IDIxOjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbmFtZSBzb21lIHN0cnVjdCBtZW1iZXJzIHRvIG1ha2UgY29kZSBlYXNpZXIgdG8gcmVhZDsgYSBiaXQgb2YgcmUtb3JkZXJpbmcKICAgaW4gdGhlIHNldCBjb2RlOyBuZXcgZmxhZ3MgZm9yIG5ldyBhbmQgZGVsZXRlZCByb3dzOyByb3cgZGVsZXRlcyBub3cKICAgYWN0dWFseSB3b3JrIQogICAKMjAwMi0wNy0xNiAxOTozMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGFuZ2UgY29tcGxleCBtYWNyb3MgaW50byBmdW5jdGlvbnMuIHdvdWxkIGJlIG5pY2UgaWYgQyBoYWQgaW5saW5lLgogICAKMjAwMi0wNy0xNiAxODowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHVtbSwgdHJ5IHVzaW5nIGNvcnJlY3QgZGVmaW5lLjotLwogICAKMjAwMi0wNy0xNiAxODowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHRlc3QgdGhhdCBuZXQtc25tcC1jb25maWcuaCBoYXMgYmVlbiBpbmNsdWRlZCwgaW5zdGVhZCBvZiBhY3R1YWxseSBpbmNsdWRpbmcgaXQuLgogICAoc2hvdWxkbid0IHRoaXMgcmVhbGx5IGJlIGluIGFsbCB0aGUgaGVhZGVyIGZpbGVzPykKICAgCjIwMDItMDctMTYgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTYgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0xNiAxMToxNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcyAoZ3J1bWJsZSBncnVtYmxlKQogICAKMjAwMi0wNy0xNiAxMToxNCAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuZGVwZW5kLCBtaWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGZhY3RvcnkuYwogICAKMjAwMi0wNy0xNiAxMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2NvbnRhaW5lcl9pbml0X2xpc3QoKSBpbiBzdGFydHVwIGluaXRzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLCBzbm1wbGliL29pZF9hcnJheS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hnIHBhcmFtIHR5cGUgZnJvbSB2b2lkKiB0byBzdHJ1Y3QgKgogICAKMjAwMi0wNy0xNiAxMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaDsgYWRkIGZhY3RvcnksIGJpbmFyeSBhcnJheSAuW2NoXTsgZGVyaXZlCiAgIE9CSlMgYW5kIExPQkpTIGZyb20gQ1NSQ1M7IGFkZCAob3B0aW9uYWwpIGF1dG8gZGVwZW5kZW5jeSBnZW5lcmF0aW9uCiAgIAoyMDAyLTA3LTE2IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaAogICAKMjAwMi0wNy0xNiAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIHN0cnVjdCBzdWJ0cmVlIC0+IG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNiAwOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGxhc3QgcmVtYWluaW5nIHJlZnMgdG8gbm93IGRlZnVuY3Qgb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBnZW5lcmljIGJpbmFyeSBhcnJheSBjb250YWluZXIgZXh0cmFjdGVkIGZyb20gb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaDsgbmV3IHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaW5kZXggKG9pZCBwdHIgKyBsZW4pCiAgIAoyMDAyLTA3LTE2IDA5OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgZ2VuZXJpYyBjb250YWluZXIgaW50ZXJmYWNlOyB1c2UgbmV3IG5ldHNubXBfaW5kZXggaW5zdGVhZCBvZgogICBvaWRfYXJyYXlfaGVhZGVyOyByZW5hbWUgYXJyYXlfZ3JvdXAgLT4gcmVxdWVzdF9ncm91cAogICAKMjAwMi0wNy0xNiAwOTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaXRlcmF0b3JzOyBtb3JlIGZ1bmN0aW9uIHR5cGVkZWZzOyByZW5hbWUgc29tZSBmdW5jIHB0cnMsIGFkZCBmaW5kX25leHQsCiAgIGdldF9zdWJzZXQsIGdldF9pdGVyYXRvciwgZm9yX2VhY2gsIG5jb21wYXJlOyBhZGQgYWJpbGl0eSB0byBoYXZlIG5lc3RlZAogICBjb250YWluZXJzOyBtb3JlIHV0aWxpdHkgcm91dGluZXM7IGNvbnZlbmllbmNlIG1hcmNyb3M7IHN0YXJ0IGFkZGluZyBjb21tZW50cwogICAKMjAwMi0wNy0xNiAwOToyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5Lmg6CgogICBkZWNsYXJhdGlvbnMgZm9yIGEgZ2VuZXJpYyBmYWN0b3J5CiAgIAoyMDAyLTA3LTE2IDA4OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9keW5peC5jLCBtZW1vcnlfaHB1eC5jCiwgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9ocHV4LmM6CgogICBBcHBseSBwYXRjaCBmcm9tIGJ1ZyByZXBvcnQgNTgxNjE4IChhbHNvIGFwcGxpY2FibGUgdG8gZHluaXgpCiAgIFByb3ZpZGVkIGJ5IE5pY2hvbGFzIEwuIE5pZ2F5CiAgIAoyMDAyLTA3LTE2IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgcmVtb3ZlICJvdXIiIHByb2JsZW0gYW5kIHVzZSBvbGRlciAidXNlIHZhcnMiIGluc3RlYWQgZm9yIG9sZGVyIHBlcmwuCiAgICAgKHRoaXMgc2hvdWxkIG1ha2UgaXQgd29yayB3aXRoIHBlcmwgNS4wMDUuICBDb3VsZCBzb21lIG9uZSB0ZXN0IHRoaXMKICAgICAgZm9yIG1lPykKICAgCjIwMDItMDctMTUgMDY6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIG5hbWVzIG9mIG5ldHNubXBfc3VidHJlZSBlbGVtZW50cyBjaGFuZ2VkCiAgIAoyMDAyLTA3LTE1IDA2OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNSAwNToyNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBTb21lIHJlYWxseSBuYXN0eSBoYWNrcyB0byBnZXQgY29sb3JpemVkIHRhYmxlcyB0byB3b3JrLgogICAKMjAwMi0wNy0xNCAyMDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWIudDoKCiAgIGNvbW1lbnQgb3V0IGJyb2tlbiB0ZXN0cyBmb3Igbm93IChYWFggbWFya2VkKQogICAKMjAwMi0wNy0xNCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZ2V0YnVsay4KICAgCjIwMDItMDctMTQgMjA6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBBIG5ldyBmdW5jdGlvbiB0byBjYWxsIGEgc3ViLWhhbmRsZXIgYnV0IHBhc3NpbmcgaXQgb25seSBvbmUgcmVxdWVzdCB0byBoYW5kbGUuCiAgIAoyMDAyLTA3LTEwIDIxOjIxICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkZWZpbmUgTE9HX0RBRU1PTiwgc2luY2Ugd2luZG93cyBkb2Vzbid0IGhhdmUgaXQKICAgCjIwMDItMDctMTAgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBkZWZpbmUgb2YgaW5fYWRkcl90LCB3aGljaCBjYW4gYmUgZm91bmQgaW4gbmV0LXNubXAvdHlwZXMuaAogICAKMjAwMi0wNy0xMCAwMjozNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTAgMDI6MzUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBkb24ndCB1c2UgMCBpbiAlcCBmb3JtYXQgc3BlY2lmaWVycwogICAKMjAwMi0wNy0xMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIGZpeCBzb21lIGhvcnJpYmxlIGluZGVudCBicm9rZW4gZm9ybWF0dGluZwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gcmVtb3ZlIHNvbWUgb2Jzb2xldGUgdmFyaWFibGVzCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHJlZmxlY3QgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcyBmcm9tIGFnZW50X3JlZ2lzdHJ5CiAgIAoyMDAyLTA3LTEwIDAyOjMyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgICAgLSBjaGFuZ2VzIGR1ZSB0byByZW5hbWluZyBvZiBzdHJ1Y3Qgc3VidHJlZSB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIE5PVEUgTUVNT1JZIExFQUsgKHdoaWNoIEkgY2FuJ3Qgc2VlIGhvdyB0byBmaXggLS0gbmV3IGFnZW50IEFQSQogICAgICAgZXhwZXJ0cyBwbGVhc2UgZXhhbWluZSkKICAgCjIwMDItMDctMTAgMDI6MjkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gbmFtZSwgc3RhcnQsIGVuZCBtZW1iZXJzIGFyZSBub3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHRvIHJlZHVjZQogICAgICAgd2FzdGVkIG1lbW9yeSAoYnkgYSBmYWN0b3Igb2YgNSBvciBzbykKICAgICAtIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCBjb25zaXN0ZW50bHkKICAgCjIwMDItMDctMTAgMDI6MjAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG5ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMDkgMDY6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUgY2FjaGVfaWQgc3RvcmFnZSB3aGVuIGNsb3Npbmcgc2Vzc2lvbgogICAKMjAwMi0wNy0wOSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0ganVzdCBjYWxsIG5ldHNubXBfZHNfc2h1dGRvd24oKSBvbmNlIGluIHNubXBfc2h1dGRvd24oKQogICAKMjAwMi0wNy0wOSAwNDoxNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBuZXRzbm1wX2ZpeHVwX21pYl9kaXJlY3RvcnkoKQogICAKMjAwMi0wNy0wOSAwMzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBhIGNhc3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wOCAyMjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGV4dGVybiBDIGZvciBDKysgY29tcGlsZXMKICAgCjIwMDItMDctMDggMDc6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wNy0wNyAxOTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0wNyAxOTozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA3LTA3IDE5OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIHByb2MuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDItMDctMDcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG1ha2UgcGFyYW0gY29uc3Q7IGZpeCBjb21waWxlIGNvbnN0IHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpeCBtZW1vcnkgbGVhazsgcHJlcCBhIGZldyBjb21tZW50cyBmb3IgaW5kZW50CiAgIAoyMDAyLTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMi5wcmUxICkKICAgCjIwMDItMDctMDYgMTQ6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSBwcm9qZWN0IHZlcnNpb24gdG8gNS4wLjIKICAgCjIwMDItMDctMDYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHNubXB0cmFwZCBpcyBhY3R1YWxseSBidWlsdCBpbiB0aGUgYXBwcyBkaXJlY3RvcnksIG5vdCB0aGUgYWdlbnQgZGlyZWN0b3J5LgogICAKMjAwMi0wNy0wNSAxMTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xhcmlmeSBkaXJlY3Rpb25zIGZvciBvYnRhaW5pbmcgcGVybC9TTk1QIG1vZHVsZS4KICAgCjIwMDItMDctMDUgMDU6MTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gLi4uCiAgIAoyMDAyLTA3LTA1IDAzOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2NsaWVudC5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gc3lzT2JqZWN0SUQgd2FzIGJlaW5nIHJldHVybmVkIG1pbnVzIGl0cyBsYXN0IHN1Yi1pZGVudGlmaWVyIGJlY2F1c2UKICAgICAgIHRoZSBsZW5ndGggdmFyaWFibGUgaGFkIG5vdCBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0IGl0CiAgICAgICBpcyBub3cgbG9uZ2VyLiAgQ29kZSBjaGFuZ2VkIHRvIHVzZSBzaXplb2YoKSBpbnN0ZWFkLCBzbyB0aGlzIHdvbid0CiAgICAgICBoYXBwZW4gYWdhaW4uICBSZXBvcnRlZCBieSBTdGlhbiBTb2lsYW5kIChidWcgIzU3NzQzOSkuCiAgIAoyMDAyLTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAKICAgCjIwMDItMDctMDQgMDc6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIGhhbmRsaW5nIG9mIG9wYXF1ZSBwb2ludGVyIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cyB0bwogICAgICAgYXZvaWQgYm90aCBtdWx0aXBsZSBmcmVlKCkgcHJvYmxlbSBhbmQgdW5uZWNlc3NhcnkgY29weWluZy4KICAgCjIwMDItMDctMDQgMDY6MDAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAoVjQtMi1wYXRjaGVzLls1LDldKSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTmV0d29ya0Rpc2sgcGF0Y2ggIzU1NDU1NAogICAKMjAwMi0wNy0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oCiAgIChWNC0yLXBhdGNoZXMuWzUsMV0pLCBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5GUyBmaWxlc3lzdGVtIHBhdGNoICM1NTQ1NTMKICAgKHNpbXBsaWZpZWQgdG8gYXZvaWQgdGhlIHJlLWluZGVudGF0aW9uIC0gd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIHNlZQogICAgd2hhdCdzIGNoYW5nZWQuICBUaGUgd2hvbGUgSG9zdFJlcyBncm91cCBuZWVkcyBjbGVhbmluZyB1cCBhbnl3YXkhKQogICAKMjAwMi0wNy0wNCAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5zdXJlIHRyYW5zcG9ydCBvcGFxdWUgZGF0YSBpc24ndCBtdWx0aXBseSBhc3NpZ25lZAogICAoYW5kIGhlbmNlIG11bHRpcGx5IGZyZWVkKSBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMuCiAgIERhdGFncmFtLWJhc2VkIHRyYW5zcG9ydHMgZG9uJ3Qgc3VmZmVyIGZyb20gdGhpcyBwcm9ibGVtLgogICBCYXNlZCBvbiBQYXRjaCA1NzM3NzEKICAgCjIwMDItMDctMDMgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGJlIHByZWNpc2UgYWJvdXQgd2hhdCBmaWxlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGFjY2VzcyBjb250cm9sCiAgIAoyMDAyLTA3LTAzIDE0OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCBtaW5vciBncmFtbWFyIGVycm9yczsgYWRkIGRlc2NyIGZvciBtaWIyYy5hcnJheS11c2VyOyBhZGQgc2VjdGlvbiBoZWFkZXIKICAgZm9yIGdlbmVyYXRpbmcgaGVhZGVyIGRlZmluaXRpb24gZmlsZXMKICAgCjIwMDItMDctMDMgMTM6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1vdmUgaW5jbHVkZSBmb3IgaW5fYWRkcl90IHRvIG5ldC1zbm1wL3R5cGVzLmgsIHdoZXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkCiAgIGZvciBzeXN0ZW1zIHcvb3V0IG5ldGluZXQvaW4uaAogICAKMjAwMi0wNy0wMyAxMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgbW9yZSB0d2Vha3Mgbm90aWNlZCBvbiB0aGUgbWFpbGluZyBsaXN0CiAgIAoyMDAyLTA3LTAzIDA4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBtYWtlIHRlc3QgY2xlYW51cHMgdGVzdC5wbAogICAKMjAwMi0wNy0wMyAwMzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMgKFY0LTItcGF0Y2hlcy4xKSwgdXRpbF9mdW5jcy5jCjoKCiAgIFNodXQgdGhlIGFnZW50IGRvd24gY2xlYW5seSBiZWZvcmUgcmVzdGFydGluZy4KICAgVGhpcyBjbG9zZXMgYW55IFNOTVAvQWdlbnRYIHBvcnRzIGFzIHdlbGwuCiAgIAoyMDAyLTA3LTAzIDAzOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBPSUQgc3ViLWlkZW50aWZpZXJzIGFyZSB1bnNpZ25lZCwgc28gdHJlYXRpbmcgdGhlbSBhcyBzaWduZWQgY2FuCiAgIGdpdmUgdGhlIHdyb25nIHJlc3VsdHMgd2l0aCBsYXJnZSB2YWx1ZXMuCiAgIAoyMDAyLTA3LTAzIDAzOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5oIChWNC0yLXBhdGNoZXMuNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIEVuc3VyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZC4KICAgCjIwMDItMDctMDMgMDI6MzQgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdGluZyBmb3IgPHN5cy9kaXNrbGFiZWwuaD4gcmVxdWlyZXMgPG1hY2hpbmUvdHlwZXMuaD4gb24gTmV0QlNEIDEuNS4KICAgUmVwb3J0ZWQgYnkgRmVsaWNpYSBOZWZmLgogICAoQXBwYXJlbnRseSBmcm9tIHRoZSBOZXRCU0QgYnVnIGRhdGFiYXNlIC0gd2h5IHRoZXkgZGlkbid0IHRlbGwgdXMgYWJvdXQKICAgaXQgaXMgYSBteXN0ZXJ5IHRvIG1lLi4uLikKICAgCjIwMDItMDctMDMgMDI6MTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc3lzT2JqZWN0SUQgYXMgcmVwb3J0ZWQgaW4gdGhlIGNvbmZpZ3VyZSAtLWhlbHAgb3V0cHV0LgogICAoVGhlIGFjdHVhbCB2YWx1ZSB1c2VkIGlzIGNvcnJlY3QgLSBpdCdzIGp1c3QgdGhlIGhlbHAgb3V0cHV0IHRoYXQncyB3cm9uZykuCiAgIFNwb3R0ZWQgYnkgU2FuZGh5YSBTYXR5YW5hcmF5YW4uCiAgIAoyMDAyLTA3LTAyIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgdXBkYXRlIHRleHQgZm9yIHZhcmlvdXMgLmNvbmYgZmlsZXMKICAgCjIwMDItMDctMDIgMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIGZpeGVzIG5vdGVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYnkgUGF0cmljZSBLYWRpb25payA8a2FkaW9uaWtAZW5zZWlyYi5mcj4KICAgCjIwMDItMDctMDIgMDI6MzkgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgJ3NubXBkJyBhbmQgJ3NubXB0cmFwZCcgYmluYXJ5IG5hbWVzIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXRocwogICB3aGVuIHNldHRpbmcgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgogICAKMjAwMi0wNy0wMSAwNzo1MyAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjgpLCBhc24xLmM6CgogICBFbmNvZGUvRGVjb2RlIE9JRHMgb2YgdGhlIGZvcm0gMi5YIChYID4gNDApIGNvcnJlY3RseS4KICAgCjIwMDItMDctMDEgMDI6NDAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGhvcnJpYmxlIGZvcm1hdHRpbmcgaW4gaGVscCBmb3IgdHJhbnNwb3J0cwogICAKMjAwMi0wNy0wMSAwMjoyMyAgZHRzMTIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgUGljayB1cCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIGZvciB0aGUgcm9vdCBvZiB0aGUgVUNEIGV4dGVuc2libGUgYWdlbnQgdGFibGVzCiAgIChzbyB0aGF0IHRoZSBFWEFNUExFLmNvbmYgZmlsZSBnZXRzIHNldCB1cCB3aXRoIHRoZSBjb3JyZWN0IG51bWVyaWMgT0lEcykKICAgCjIwMDItMDYtMjggMDY6NDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3RjcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjggMDQ6NDEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIFVwZGF0ZSBkZWZhdWx0IHN0b3JlIHJldHJpZXZhbCBmdW5jdGlvbnMgdG8gdXNlIHRoZSBjb3JyZWN0IG5hbWUuCiAgIAogICBOb3RlIHRoYXQgdGhpcyB0ZXN0IHNjcmlwdCBhcHBlYXJzIHRvIGluY2x1ZGUgdHdvIGluZmluaXRlIGxvb3BzLgogICBJJ20gbm90IGNsZWFyIGhvdyB0aGlzIGlzIGV4cGVjdGVkIHRvIHJ1biBzdWNjZXNzZnVsbHkgPwogICAKMjAwMi0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJlbW92ZSByZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IGRlZ3VnZ2luZyBmdW5jdGlvbi4KICAgCjIwMDItMDYtMjggMDQ6MzcgIGR0czEyCgogICAqIHBlcmwvbWFuYWdlci86IE1ha2VmaWxlLlBMLCBkaXNwbGF5dGFibGUucG0sCiAgIGdldFZhbHVlcy5wbSwgbWFuYWdlci5wbSwgc25tcHRvc3FsOgoKICAgQnJpbmcgcGVybCAnbWFuYWdlcicgbW9kdWxlIHVuZGVyIHRoZSBOZXRTTk1QIGJhbm5lcgogICAoYm90aCBpbiB0ZXJtcyBvZiBtb2R1bGUgZ3JvdXAgbmFtZSwgYW5kIHJlZmVyZW5jZXMgdG8gJ3VjZC1zbm1wJykuCiAgIFJlbW92ZSBzb21lIFVDRC1zcGVjaWZpYyBzZXR0aW5ncy4KICAgCiAgIE5vdGUgdGhhdCBzbm1wdG9zcWwgc3RpbGwgcmVmZXJzIGV4cGxpY2l0bHkgdG8gV2VzJyBVQ0QgZW1haWwgYWRkcmVzcywKICAgYW5kIG1hbmFnZXIucG0gdG8gV2VzJyBVQ0QgZmlsZXN0b3JlIHBhdGguICBUaGUgcmVsZXZhbnQgbGluZXMgaGF2ZQogICBiZWVuIGhpZ2hsaWdodGVkLCB0byBlbmNvdXJhZ2UgYW55b25lIHdpc2hpbmcgdG8gdXNlIHRoaXMgdG8gY2hhbmdlIHRoZW0uCiAgIAoyMDAyLTA2LTI4IDA0OjEyICBkdHMxMgoKICAgKiBwZXJsLzogQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBtYW5hZ2VyL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGNoZWNraW5nIGZvciAiaW50ZXJuYWwiIHByZXJlcXVpc2l0ZXMsIHNvIHRoYXQgInBlcmwgTWFrZWZpbGUuUEwiCiAgIGF0IHRoZSB0b3AgbGV2ZWwgd2lsbCB3b3JrIC0gZXZlbiBvbiBhIHByaXN0aW5lIHN5c3RlbS4KICAgCiAgIFFuOgogICAgIElzIGl0IG5lY2Vzc2FyeS9kZXNpcmFibGUgdG8gc2VwYXJhdGUgdGhlIE5ldFNOTVAgbW9kdWxlcyB0byB0aGlzIGV4dGVudD8KICAgV291bGQgaXQgbm90IGJlIHNpbXBsZXIgdG8gaGF2ZSBhbGwgb2YgdGhlIG1haW4gLnBtLy54cyBmaWxlcyBpbiBhIHNpbmdsZQogICBOZXRTTk1QIGRpcmVjdG9yeSwgYW5kIGNvbXBpbGUvaW5zdGFsbCB0aGVtIGFsbCBmcm9tIHRoZXJlPwogICAKMjAwMi0wNi0yOCAwMTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgLS13aXRoLWVudGVycHJpc2UgKGV0IGFsKSBiZWluZyBpbnZva2VkIHdpdGhvdXQgYSB2YWx1ZSwgYW5kIGJvbWIgb3V0LgogICAKMjAwMi0wNi0yNyAyMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbmV3IFJFQURNRSBkZXRhaW5saW5nIHRoZSB1c2Ugb2YgU0ZJTyB0byBjaXJjdW12ZW50IHRoZSAyNTUgZmQgbGltaXQgb24KICAgc29sYXJpcy4KICAgCjIwMDItMDYtMjcgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBjaGFuZ2luZyBhcnJheTsgYWRkIG5ldHNubXBfdGFibGVfYXJyYXlfcmVtb3ZlX3JvdygpCiAgIAoyMDAyLTA2LTI3IDA0OjE1ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgJ21ha2VkZXBlbmQnIChlLmcuIFJlZEhhdCA3LjEpLCBjYW4ndCBoYW5kbGUgIi1vc3VmZml4IgogICBhcyBhIHNpbmdsZSBvcHRpb24uICBBbGwgdmVyc2lvbnMgc2VlbSBoYXBweSB3aXRoICItbyBzdWZmaXgiIHNvIHVzZSB0aGF0LgogICAKMjAwMi0wNi0yNyAwMzozMSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBFTlZfU0VQQVJBVE9SX0NIQVIgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyAnOicgaW4gbmV0c25tcF9zZXRfbWliX2RpcmVjdG9yeQogICAoYXMgc3VnZ2VzdGVkIGJ5IFJvYmVydCkKICAgCjIwMDItMDYtMjcgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3VkcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjcgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX21pYi5jCjoKCiAgIFZhbGlkYXRlIG5ldyBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgdmFsdWUgYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCiAgIFNwb3R0ZWQgJiBmaXhlZCBieSBTaGFudGhhIEt1bWFyYQogICAKMjAwMi0wNi0yNSAxNDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIEFQUFRPUFMgKC1DcSkgZm9yIHN1cHByZXNzaW5nIG91dHB1dCBvZiBzZXQgcmVzdWx0cyBvbiBzdWNjZXNzCiAgIAoyMDAyLTA2LTI1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBcHBseSBwYXRjaCAjNTU5ODQ4IHRvIHVzZSB0aGUgL3Byb2MgcHNldWRvLWZpbGVzeXN0ZW0gdW5kZXIgTGludXgKICAgKHJhdGhlciB0aGFuIHBhcnNpbmcgdGhlIG91dHB1dCBvZiBwcykKICAgCjIwMDItMDYtMjUgMDg6NTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ2hlY2sgZm9yICdhaXg0JyAod2hpY2ggaXMgdGhlIHRva2VuIGRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXIgZmlsZSkKICAgcmF0aGVyIHRoYW4gJ2FpeCcuICAgU2VlIGJ1ZyAjNTY1NzY5CiAgIAoyMDAyLTA2LTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBUcmVhdCAnMCcgYXMgYW4gaW52YWxpZCBpbmRleCBmb3IgYSAic2ltcGxlIHRhYmxlIi4KICAgCjIwMDItMDYtMjUgMDc6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc3lzQ29udGFjdC4wIGFuZCBzeXNMb2NhdGlvbi4wCiAgIGNvbmZpZ3VyYXRpb24gdG9rZW5zLgogICAKMjAwMi0wNi0yNSAwNjo0MCAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcDoKCiAgICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IHRvIGRlZmF1bHRfc3RvcmUgZnVuY3Rpb25zCiAgIAogICAgIC0gY2xlYW4gdXAgbWFucGFnZSBhIGJpdAogICAKICAgICAtIGZpeCBicmVha2FnZSBpbiBnZW5lcmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUuMy5oIGR1ZSB0byBhdXRvLWluZGVudGF0aW9uCiAgICAgICBvZiBkZWZhdWx0X3N0b3JlLmgKICAgCjIwMDItMDYtMjUgMDI6NTUgIGpicG4KCiAgICogRVhBTVBMRS5jb25mLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBFWEFNUExFLmNvbmYuZGVmOgoKICAgICAtIG1lbnRpb24gdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uIGV0IGFsLiBpbiBzbm1wZC5jb25mIG1ha2VzIHRoZW0KICAgICAgIHJlYWQtb25seQogICAKICAgICAtIGFsc28gY2hhbmdlIHN5bnRheCBvZiBhbGwgZXhhbXBsZSBjb21tYW5kIGxpbmUgdG9vbHMgdG8gdXNlIG5ld2VyCiAgICAgICAtYyBDT01NVU5JVFkgc3ludGF4IG5vdCBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKMjAwMi0wNi0yNCAwODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBtYWtlIGJ1ZmZlciBzaXplIGluY3JlYXNlIG5vdGUgYSBkZWJ1ZyBzdGF0ZW1lbnQgcmF0aGVyIHRoYW4gYSBnZW5lcmljCiAgIGxvZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTA2LTIzIDE4OjQwICBkcmllaHVpcwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEhhbmRsZSBDT1VOVEVSNjQgaW4gX190cmFuc2xhdGVfYXNuX3R5cGUuCiAgIAoyMDAyLTA2LTIzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzY3JpcHQgYW5kIHRoZSBsYW5ndWFnZSBpdCBob3VzZXMuCiAgICAgKG1hbiBwYWdlIGF1dG8tZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnRhaW5lZCBwb2QgZG9jdW1lbnRhdGlvbikKICAgCjIwMDItMDYtMjMgMTU6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICB1cGRhdGUgdG8gcmVmZXJlbmNlIHRvcCBsZXZlbCBNYWtlZmlsZS5QTAogICAKMjAwMi0wNi0yMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjQtMi1wYXRjaGVzLjEpLCBTTk1QLnhzOgoKICAgZml4IHJlcG9ydGVkIGJ5IFdpbGxlbSBEZWtrZXIgZm9yIFdpbmRvd3MuICBCdWcgIzU0MzE5NCBmaXhlZC4KICAgCjIwMDItMDYtMjIgMDg6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgZm9yIHJlY2VudCBtZXRob2RvbG9naWVzCiAgIAoyMDAyLTA2LTIxIDE2OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpbmFsIChob3BlZnVsbHkhKSBmaXggZm9yIHBhcnNpbmcgaXAgYWRkcmVzc2VzIGZyb20KICAgIkZjby4gSmF2aWVyIFJpZHJ1ZWpvIiA8YWNicmlwZWZAc2kuZWh1LmVzPgogICAKMjAwMi0wNi0xOSAxNDozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZyb20gZG94eWdlbgogICAKMjAwMi0wNi0xOSAxMTo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pbnRfd2F0Y2guY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBzY2FsYXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgZ2VuZXJhdGluZyBzY2FsYXIgY29kZS4KICAgCjIwMDItMDYtMTkgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGNsZWFuIHVwIG11bHRpLWxpbmUgY29tbWVuZCB3aGljaCB3YXMgbWVzc2VkIHVwIGJ5IGluZGVudC4KICAgCjIwMDItMDYtMTkgMTE6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBhZGQgc3VwcG9ydCBmb3IgcHJvbXB0aW5nIG9mIHVua25vd24gcGFyYW1ldGVycyB0byBhbGlhc2VzLgogICAtIG1pc2Mgb3RoZXIgaW1wcm92ZW1lbnRzIChsaWtlICJyZWhhc2giKQogICAKMjAwMi0wNi0xOSAxMTozOCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGZvciBuZXcgZGVmYXVsdCBzdG9yZSBBUEkKICAgCjIwMDItMDYtMTkgMTE6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQVJHR0dHR0cKICAgSSBsb3ZlIHBlcmwuCiAgIEkgaGF0ZSBwZXJsJ3MgbWFrZSBzeXN0ZW0uCiAgIEkgaGF0ZSB0aGUgZmFjdCB0aGF0IHBlcmwgc2VnZmF1bHRzIGlmIEdldE9wdGlvbnMoKSBpcyBjYWxsZWQgbW9yZQogICB0aGFuIG9uY2UuCiAgIHNpZ2guCiAgIFRoaXMgaG9wZWZ1bGx5IHdpbGwgZml4IHRoZSBwZXJsIG1vZHVsZSBidWlsZCByb3V0aW5lcyBzbyBpdCBhdCBsZWFzdAogICB3b3JrcyAoYnV0IGl0J3Mgc3RpbGwgdWdseSBhbmQgY291bGQgdXNlIG1vcmUgY2xlYW5pbmcpLgogICAKMjAwMi0wNi0xOSAwNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBpbmZpbnRlIGxvb3AgYW5kIGFkZCBkZWJ1ZyBpbiByZW1vdmVfZGVsZWdhdGVkCiAgIAoyMDAyLTA2LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBOVUxMIHRoZSBwcml2IHBvaW50ZXIgb24gc2Vzc2lvbiBkdXBsaWNhdGlvbi4gIHRoYW5rcyB0byByZXppdG96CiAgIAoyMDAyLTA2LTE3IDA2OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2VkIEthdHN1aGlzYSdzIGVtYWlsIGFkZHJlc3MsIG9uIHJlcXVlc3QKICAgCjIwMDItMDYtMTQgMDc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM1NjkwMjE6IGZyb20gTGF1cmkgTXlsbGFyaQogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHRoZSB0YWJsZSBpdGVyYXRvciBzdXBwb3J0LgogICAKMjAwMi0wNi0xNCAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbGllZCBwYXRjaCAjNTY5MDIwIGZyb20gcmV6aXRveiBvbiBJUkMgdG8gZml4IG5vbi1pbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMi0wNi0xNCAwMzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgQWRkIChudWxsKSBjb250ZXh0LCB0byBicmluZyBpbnRvIGxpbmUgd2l0aCB0aGUgdjUgcmVnaXN0cnkgQVBJcy4KICAgRml4ZXMgYnVnIDU2ODU4MC4KICAgCjIwMDItMDYtMTQgMDI6MjcgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFVzZSBtYXRjaGluZyAnIGFuZCAiIHF1b3RlcyBmb3IgQUlYIGNvbmZpZ3VyZSB0ZXN0LgogICBNZW50aW9uZWQgaW4gcGFzc2luZyBpbiBidWcgNTY1NzY5LgogICAKMjAwMi0wNi0xMyAxNDozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgZml4IGRlZmF1bHRfc3RvcmUgcm91dGluZXMKICAgCjIwMDItMDYtMTIgMDY6NDMgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQnJpbmcgV2luZG93cyBPSUQgdXNhZ2UgaW50byBsaW5lIHdpdGggdGhlIG1haW4gY29uZmlnIGZpbGUgc2V0dGluZ3MuCiAgIAoyMDAyLTA2LTEyIDA2OjM3ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ29ycmVjdCB0aGUgZGVmYXVsdCBFbnRlcnByaXNlIE9JRCB1c2VkIGluIHRyYXBzLCB0byBhdm9pZCBhIHJlcGVhdGVkIDAKICAgc3ViaWRlbnRpZmllci4gIChGaXhlcyBidWcgIzU2NjkxNykKICAgCjIwMDItMDYtMTIgMDU6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSAnbGVuZ3RoJyBhcyBhIHNpZ25lZCB2YXJpYWJsZSwgc28gaXQgY2FuIGhhbmRsZSBhbiBlcnJvciB2YWx1ZSBvZiAtMS4KICAgUmVwb3J0ZWQgYnkgSm9ha2ltIEFsdGhpbmkuCiAgIAoyMDAyLTA2LTEyIDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHN1cmUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5leHQgbGluayBpcyBwcm9wZXJseSBzYXZlZCwgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgogICBQcm9ibGVtIGRpc2NvdmVyZWQgYnkgSHVnbyBDYWNvdGUuCiAgIAoyMDAyLTA2LTEyIDAyOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvYWdlbnRfaW5kZXguaCwgYWdlbnQvYWdlbnRfdHJhcC5oCiwgYWdlbnQvYWxsX2hlbHBlcnMuaCwgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9idWxrX3RvX25leHQuaCwgYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9tdWx0aXBsZXhlci5oLCBhZ2VudC9udWxsLmgKLCBhZ2VudC9vbGRfYXBpLmgsIGFnZW50L3JlYWRfb25seS5oLAogICBhZ2VudC9zZXJpYWxpemUuaCwgYWdlbnQvc2V0X2hlbHBlci5oLAogICBsaWJyYXJ5L2NtdV9jb21wYXQuaCwgbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCBsaWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVENQRG9tYWluLmgsIGxpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIGxpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCBsaWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBsaWJyYXJ5L3NubXBfc2VjbW9kLmgsIGxpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgbGlicmFyeS91Y2RfY29tcGF0Lmg6CgogICBTdXBwbHkgbWlzc2luZyAjaWZuZGVmLyNkZWZpbmUvI2VuZGlmIGFuZCBleHRlcm4gIkMiIHt9IHdyYXBwZXJzCiAgIAoyMDAyLTA2LTExIDE3OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlbW92ZSBzcHVyaW91cyBwcmludGYgdG8gc3RkZXJyCiAgIAoyMDAyLTA2LTExIDE0OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYWRkIGV4dGVybiAiQyI7IGFkZCB2b2lkX2FycmF5IHN0cnVjdAogICAKMjAwMi0wNi0xMSAxNDoyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB0c2VhcmNoOyB1c2UgbmV3IGNvbnRhaW5lciBpbnN0ZWFkCiAgIAoyMDAyLTA2LTExIDE0OjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGNvbnRhaW5lciBmb3Igc2Vjb25kYXJ5IGluZGV4CiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjb250YWluZXIgdG8gaGVhZGVyczsgYWRkIGNvbnRhaW5lci5jCiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGluaXQgZnVuY3Rpb25zIGZvciBiYXNpYy9zb3J0ZWQgY29udGFpbmVyCiAgIAoyMDAyLTA2LTExIDE0OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgbW9yZSBtZXRob2RzIGZvciBiYXNpYyBjb250YWluZXI7IGFkZCBzb3J0ZWQgKHdpbGwgcHJvYmFibHkgcmVuYW1lKSBjb25hdGluZXIKICAgCjIwMDItMDYtMTEgMTI6MjIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVkZXM7IGFkZCBleHRlcm4gIkMiIGZvciBfX2NwbHVzcGx1cwogICAKMjAwMi0wNi0xMSAxMToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgbmV0c2gsIHNubXBzaDoKCiAgIHJlbmFtZWQgc25tcHNoIHRvIG5ldHNoLCBhcyBJIGxpa2UgdGhlIG5hbWUgYmV0dGVyIGFuZCBpdCBhcHBlYWxzIHRvIGEKICAgd2lkZXIgbnVtYmVyIG9mIHBlb3BsZS4KICAgCjIwMDItMDYtMTAgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGRlbGV0aW5nIGFuIGFzcCBwb2ludGVyLCBtYWtlIHN1cmUgaXQgaXNuJ3QgaW4gdGhlIGRlbGVnYXRlZCBsaXN0CiAgIAoyMDAyLTA2LTEwIDA4OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBwYXJzZV9vbmVfb2lkX2luZGV4IHRvIGFsbG93IHRvbyBzaG9ydCBJUCBhZGRyZXNzIHdoZW4gY29tcGxldGUgaXMKICAgc3BlY2lmaWVkOyBhZGQgbmV0c25tcF9vaWQyY2hhcnMgJiBuZXRzbm1wX29pZDJzdHIKICAgCjIwMDItMDYtMTAgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkZWZhdWx0X3N0b3JlIGRlZmluZXMKICAgCjIwMDItMDYtMTAgMDc6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvTWFrZWZpbGUuUEw6CgogICBUb3AgbGV2ZWwgcGVybCBNYWtlZmlsZS5QTCB0byBpbnN0YWxsIHRoZSB3aG9sZSBidW5jaCB1bmRlcm5lYXRoLgogICBUaGlzIHNob3VsZCBub3cgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBsb3dlciBsZXZlbCBtYWtlZmlsZXMgZm9yCiAgIHNpbXBsaWNpdHkuCiAgIAoyMDAyLTA2LTEwIDA3OjI3ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIEFja25vd2xlZGdlIGtub3duIGZhaWxpbmcgdGVzdHMuCiAgIFRoaXMgbWVzc2FnZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoZSBwcm9ibGVtIGhhcyBiZWVuIGlzb2xhdGVkIGFuZCBmaXhlZC4KICAgCjIwMDItMDYtMTAgMDc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0IGZvciBpcGFkZHJlc3MgYnVpbGRpbmcvcGFyc2luZyBvZiBPSUQgaW5kZXhlcy4KICAgCjIwMDItMDYtMTAgMDI6MDcgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBNZW50aW9uIHRoZSBvdGhlciBwZXJsIG1vZHVsZXMsIGludHJvZHVjZWQgd2l0aCB2NSAocGFydGljdWxhcmx5ICdkZWZhdWx0X3N0b3JlJykKICAgCjIwMDItMDYtMTAgMDE6MjggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBOZXcgZW50cnkgZGVzY3JpYmluZyBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRyYXAgaGFuZGxlcnMuCiAgIAoyMDAyLTA2LTA4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNi0wOCAyMDo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYnJlYWsgcGVybCBtYWtlZmlsZSBjcmVhdGlvbiBpbnRvIHNlcGVyYXRlIHN0ZXA7IG9ubHkgY2xlYW4gcGVybCBkaXJlY3RvcnkKICAgaWYgdGhlcmUgaXMgYSBtYWtlZmlsZQogICAKMjAwMi0wNi0wOCAyMDoxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHBlcmx0ZXN0IHRhcmdldCB0byBtYWtlIHRlc3QgaW4gYWxsIHBlcmwgZGlyZWN0b3JpZXMKICAgCjIwMDItMDYtMDggMDk6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBmaXggdG8gZGVhbCB3aXRoIHVwZGF0ZWQgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wNi0wOCAwNzowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSB0byBTUUwtU3RhdGVtZW50IHJlcXVpcmVtZW50IG9mIDEuMDA0CiAgIAoyMDAyLTA2LTA4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBtaWIgaW5pdCBjb2RlIGZyb20gQyBzbm1wX3RyYW5zbGF0ZV9vYmogY2FsbAogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbml0X3NubXAgaW5zaWRlIHRyYW5zbGF0ZU9iagogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gMC4xCiAgIAoyMDAyLTA2LTA4IDA2OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBBIGZldyBjbGVhbnVwcyB0byBpZmNvbmZpZyBhbmQgbmV0c3RhdCBjb21tYW5kcwogICAKMjAwMi0wNi0wOCAwNjozNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgLSBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgaW1wb3J0L2V4cG9ydCBvZiBkYXRhIChjdXJyZW50bHkgdG8vZnJvbSBDU1YpLgogICAtIHN1cHBvcnQgZm9yICJkaWZmIiB3aGljaCBjb21wYXJlcyBvbGQgKHBvc3NpYmx5IGltcG9ydGVkIGRhdGEpIHRvIGN1cnJlbnQuCiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSByZXF1aXJlZCBTTk1QIG1vZHVsZSB2ZXJzaW9uIGZyb20gNCB0byA1CiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSB0dXRvcmlhbCBwbGFjZSBob2xkZXIgY29tbWVudCBPSUQuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0a21pYiBmb3IgbmV3ZXIgcGVybCBtb2R1bGVzLgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICB0dXJuIG9mZiBleHRyYSBib2xkL3VuZGVybGluZSBmb3JtYXR0aW5nIGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA2LTA3IDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZ2VuZXJpYyBjb250YWluZXIgc3RydWN0dXJlIGZvciBzdG9yaW5nIGRhdGEKICAgCjIwMDItMDYtMDcgMTM6MDEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA2LTA3IDEwOjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSB0byBrZWVwIGluIGxpbmUgd2l0aCBjb25maWd1cmUuaW4gKHdoeT8gc2hvdWxkbid0CiAgIGNvbmZpZ3VyZSBub3QgYmUgaW4gQ1ZTIGFuZCBiZSBhdXRvZ2VuZXJhdGVkPyBPbmUgb2YgdGhlc2UgZGF5cyBJJ20gZ29pbmcKICAgdG8gaGF2ZSB0byBsZWFybiBhdXRvY29uZi4uLi4pCiAgIAoyMDAyLTA2LTA3IDEwOjM1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWx3YXlzIGNoZWNrIHJldHVybiBzdGF0dXMgb2YgbWFrZSB3aGVuIGluc2lkZSBhIGxvb3AsIGFuZCBleGl0IG9uIGVycm9ycwogICAKMjAwMi0wNi0wNyAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4zKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgT25seSBudWxsLXRlcm1pbmF0ZSB0aGUgaW50ZXJmYWNlIG5hbWUgd2hpbGUgaXQncyBhY3R1YWxseSBiZWluZyBjb3BpZWQuCiAgIFJlc3RvcmUgdGhlIGRhdGEgbGluZSBhZnRlcndhcmRzLCBzbyB0aGUgZGVidWdnaW5nIG91dHB1dCBpcyBtZWFuaW5nZnVsLgogICAKMjAwMi0wNi0wNyAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGZvciBpbmRleGluZyBlcnJvciwgdGhhdCBjYXVzZXMgYSBjcmFzaCBpZiBtb3JlIHRoYW4gMTYgdmFyYmluZHMKICAgYXJlIGFkZGVkIHRvIHRoZSBjYWNoZSBpbiBvbmUgZ28uICBTcG90dGVkIGJ5IFNoYW50aCBLdW1hcmEKICAgCjIwMDItMDYtMDYgMDE6MTIgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLls3LDVdKSwgYWNsb2NhbC5tNCwKICAgY29uZmlndXJlOgoKICAgRG9uJ3QgZGlmZmVyZW5jaWF0ZSBiZXR3ZWVuIGVsZi0gYW5kIGEub3V0LWJhc2VkIE5ldEJTRCBzeXN0ZW1zLgogICAoUHJvYmxlbSBoaWdobGlnaHRlZCBieSBGZWxpY2lhIE5lZmYpCiAgIAoyMDAyLTA2LTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHB1dCBkZWZpbmVzIGZvciBzb2NrbGVuX3QgYW5kIGluX2FkZHJfdCBpbiBuZXQtc25tcC90eXBlcy5oIGluc3RlYWQgb2YgaGF2aW5nCiAgIGNvbmZpZ3VyZSBnZW5lcmF0ZSB0aGVtOyBjb25maWd1cmUgaW5zdGVhZCBnZW5lcmF0ZXMgSEFWRV9TT0NLTEVOX1QgYW5kCiAgIEhBVkVfSU5fQUREUl9UIGZvciBzeXN0ZW1zIHdoaWNoIGRvbid0IG5lZWQgdGhlIGRlZmluZXM7IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgV2luMzIgcGxhdGZvcm0sIHdoaWNoIGRvZXNuJ3QgaGF2ZSBjb25maWd1cmUuCiAgIAoyMDAyLTA2LTA1IDA5OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZG9uJ3QgYWR2YW5jZSByZXF1ZXN0IHBvaW50ZXIgaW5zaWRlIGZvciBsb29wLCBzaW5jZSBmb3IgbG9vcCBkb2VzIGl0IGZvcgogICB1czsgb3RoZXJ3aXNlIGZvciBsb29wIG1heSBlbmQgdXAgZGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIuCiAgIAoyMDAyLTA2LTA1IDA2OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgdmFyaW91cyB1bml4IHV0aWxpdGllczoKICAgIC0gY3VycmVudGx5OiBuZXRzdGF0LCBwcywgZGYsIGlmY29uZmlnCiAgIAoyMDAyLTA2LTA1IDA2OjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3NjbGk6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBpbiBKdWVyZ2VuJ3MKICAgc2NsaSBjb21tYW5kLgogICAKMjAwMi0wNi0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgbmV3IGNvbW1hbmRzOgogICAgIHNvdXJjZSBmaWxlIC0tIHNvdXJjZXMgYW4gcmMgZmlsZQogICAgIHdhdGNoIGV4cHJlc3Npb24gLS0gcmVwZWF0ZWRseSBydW5zIGEgY29tbWFuZCBhbmQgY29sb3JpemVzCiAgICAgICBkaWZmZXJlbmNlcyBpbiBkYXRhCiAgICAgZXZhbCBleHByZXNzaW9uIC0tIGV2YWx1YXRlcyBhbiBleHByZXNzaW9uIGRpcmVjdGx5IGluIHBlcmwKICAgICAgIC0gYmVnaW5uaW5ncyBvZiBvdmVybG9hZHMgaW4gcGVybCBzbyB0aGF0IGNhbGxpbmcgc3lzQ29udGFjdCgpCiAgICAgICAgIHdpbGwgcmV0dXJuIHRoZSBzeXNDb250YWN0IHZhbHVlLiAgdGFibGVzIG5vdCByZXR1cm5lZCB5ZXQuCiAgIGZpeGVzOgogICAgIHR1cm5zIG9mIG9ybmFtZW50YWwgcHJvbXB0IHN1cHBvcnQgKGljaykgYnkgZGVmYXVsdAogICAKMjAwMi0wNi0wNSAwNDo0MyAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xIChWNC0yLXBhdGNoZXMuOCksIHNubXBjbWQuMS5kZWY6CgogICBCcmllZiBtZW50aW9uIG9mIHRoZSBuZWVkIHRvIHF1b3RlIE9JRHMgY29udGFpbmluZyBzdHJpbmcgaW5kZXhlcywKICAgdG8gcHJvdGVjdCB0aGUgZG91YmxlIHF1b3RlcyBmcm9tIHRoZSBzaGVsbC4KICAgCjIwMDItMDYtMDQgMTA6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhIG51bGwgdHJlZWNhY2hlIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0CiAgIAoyMDAyLTA2LTA0IDEwOjMzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYXNwLT5wZHUgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldC4KICAgCjIwMDItMDYtMDQgMDU6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgZm9yIHByaW50Ziwgc2luZ2xlIHF1ZXJ5L3NldHMgb2Ygc2NhbGFycywgbXVsdGktbGluZSBhbGlhc2VzLgogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBtYWtlIG5ldygpIG9wZXJhdG9yIGEgYml0IHNtYXJ0ZXIKICAgCjIwMDItMDUtMjkgMTk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9hbGFybS5jOgoKICAgc2V0IHRoZSBzdG9yYWdlIHBvaW50ZXIgdG8gTlVMTCwgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBIb3kuCiAgIAoyMDAyLTA1LTI5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIEFQSWlmeSBNSUJESVJTIHN1cHBvcnQKICAgCjIwMDItMDUtMjkgMDc6NDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBFeHBhbmQgb24gd2hlbiBPcGVuU1NMIGlzIG5lY2Vzc2FyeSwgYW5kIGhvdyB0byBjb21waWxlIHVzaW5nIGl0LgogICAKMjAwMi0wNS0yOSAwNjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBTZXQgUkVVU0VBRERSIHNvIHRoYXQgc3BlY2lmeWluZyB0aGUgc2FtZSBwb3J0IHR3aWNlIGRvZXNuJ3Qga2lsbCB0aGUgYWdlbnQuCiAgIChTdWdnZXN0ZWQgYnkgUm9iZXJ0IEhhc3RpbmdzKQogICAKMjAwMi0wNS0yOSAwMjo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIFJlZmVyZW5jZSBib3RoIHZlcnNpb25zIG9mIHRoZSB0dXRvcmlhbCAoc2luY2UgdGhpcyBkb2N1bWVudCBpcyB1c2VkCiAgIGZvciBidWlsZGluZyB0aGUgb24tbGluZSB2ZXJzaW9uIG9mIHRoZSBGQVEpCiAgIAoyMDAyLTA1LTI5IDAyOjE2ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy40KSwgRkFROgoKICAgQ2xhcmlmeSB0aGF0IHRyYXAgZmlsdGVyaW5nIGlzIG5vdCB5ZXQgb3BlcmF0aW9uYWwuCiAgIAoyMDAyLTA1LTI4IDE0OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHJlbW92ZSBeTSBjaGFycwogICAKMjAwMi0wNS0yOCAxNDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpeCBsb2dpYyBpbiBjYW5fZGVsZXRlOyBjb25zb2xpZGF0ZSB1c2Ugb2YgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0IGJ5IHNldHRpbmcKICAgcmMgZm9yIHVzZSBhdCBlbmQgb2YgbG9vcDsgZG9uJ3QgdXNlIHJlbW92ZWQgbWFjcm9zIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUsCiAgIHVzaW5nIG5ldyBuZXRzbm1wX2NoZWNrX3ZiKiByb3V0aW5lcyBpbnN0ZWFkOyBhZGQgYXNzZXJ0cyBmb3IgZXJyb3IgY2FzZXMgdGhhdAogICBzaG91bGQgYmUgY2F1Z2h0IGJ5IGVhcmxpZXIgcm91dGluZXMKICAgCjIwMDItMDUtMjggMTQ6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgY2FsbGJhY2tzIGZvciByb3cgKGRlKWFjdGl2YXRpb24KICAgCjIwMDItMDUtMjggMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgIiNpbmNsdWRlIDxzZWFyY2guaD4iIHdpdGggdGhlIEhBVkVfU0VBUkNIX0ggdG9rZW4uICAoU3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjggMDY6MjAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIEZpeCB0aGUgZGVjbGFyYXRpb24gb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50LiAoU3BvdHRlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI3IDAxOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRG9uJ3QgaGFyZHdpcmUgc3lzbG9nIGZhY2lsaXR5IHRvIExPR19EQUVNT04uCiAgIEZpeCBwcm92aWRlZCBieSBKb2FraW0gRmFsbHNqby4KICAgCjIwMDItMDUtMjcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvc25tcHRyYXBkLmMKICAgKFY0LTItcGF0Y2hlcy5bMiw4XSksIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBUd2VhayAndXNtVXNlcicgaGVscCBzdHJpbmcgdG8gYWNjdXJhdGVseSByZWZsZWN0IHdoaWNoIGJpdHMgYXJlIG9wdGlvbmFsLgogICBSZXBvcnRlZCBieSBBbGkgQ2hhbmF1aS4KICAgCjIwMDItMDUtMjcgMDE6MjIgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY0LTItcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mICJmaWxlIiBkaXJlY3RpdmVzLgogICAKMjAwMi0wNS0yNyAwMToxNyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2gsIHRoYXQgY29uZnVzZXMgc29tZSAnbWFrZSdzCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgUHJvcGVyIGNyZWF0aW9uIG9mIHJldHVybmVkIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50cyBvbiByZXR1cm5lZCBtaWIgcmVnaXN0cmF0aW9uIG9iamVjdHMgc28KICAgdGhleSdyZSBub3QgYXV0by1jbGVhbmVkIGJ5IHBlcmwgKHRoZSBhZ2VudCBub3cgaGFzIGEgY29weSBvZiB0aGUgcG9pbnRlcikKICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGRlZmF1bHRfc3RvcmUgbmV0c25tcF8gcHJlZml4ZXMuCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIHNjYWxhcnMgKG1pYjJjLnNjYWxhci5jb25mIGZpbGUgY29taW5nIHNob3J0bHkpCiAgIAoyMDAyLTA1LTI0IDA5OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEEgbmV3IHJ1bGUgY2FsbGVkICJjb21tZW50Y2hlY2siIHRvIGdyZXAgYWxsIHNvdXJjZXMgZm9yIC8vIGNvbW1lbnRzLgogICAKMjAwMi0wNS0yNCAwODowOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERlY2xhcmUgJ3JlZ2lzdGVyX21pYl9kZXRhY2hfbm9kZScgYmVmb3JlIGl0J3MgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgIChTcG90dGVkIGJ5IFhpYW5nIFpoYW5nKQogICAKMjAwMi0wNS0yNCAwNzo0NCAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaC4KICAgKFRoYXQgKm1pZ2h0KiBiZSBjb25mdXNpbmcgU3VuJ3MgbWFrZSwgYnV0IGlzIHdyb25nIGFueXdheSkKICAgCjIwMDItMDUtMjMgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9ic2RpNC5jLAogICB2bXN0YXRfZHluaXguYywgdm1zdGF0X2ZyZWVic2QyLmMsIHZtc3RhdF9ocHV4LmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgQnJpbmcgdGhlIHZhcmlvdXMgJ3Zhcl9leHRlbnNpYmxlX3Ztc3RhdCcgZGVmaW5pdGlvbnMgaW50byBsaW5lCiAgIHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZmlsZSAtIGkuZS4gbm9uLXN0YXRpYy4KICAgCjIwMDItMDUtMjEgMTU6MjUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtSSQoc3JjZGlyKS9pbmNsdWRlIHRvIENQUCBwYXRoIGZvciBwZW9wbGUgYnVpbGRpbmcgb3V0c2lkZSBvZiBzcmMgdHJlZQogICAKMjAwMi0wNS0yMSAwODoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNTU4MTI5IF0gTWFrZSB0aGUgdHVubmVsIG1pYiBjb21waWxlIGluIDUuMC4xLCBzdWJtaXR0ZWQKICAgYnkgTG9yZW56byBDb2xpdHRpIChsY29saXR0aSksIHdoaWNoIGFkZHMgbWlzc2luZyBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNS0yMSAwNTozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBjb3JlIGR1bXAgaW4gLXUgb3B0aW9uIHByb2Nlc3NpbmcsIG5vdGVkIGJ5IEFuZHJlYXMgTWF1cwogICAKMjAwMi0wNS0yMSAwNToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjkpLCBtZW1vcnkuYwo6CgogICBMYXRjaCBtZW1vcnkgcmVwb3J0aW5nIGF0IDJeMzEtMSwgcmF0aGVyIHRoYW4gMl4zMi0xIHNpbmNlIHRoZXNlCiAgIG9iamVjdHMgYXJlIGRlZmluZWQgYXMgKHNpZ25lZCkgSW50ZWdlcjMyLgogICBPbmx5IGxhdGNoIGlmIHRoZSB2YWx1ZSBpcyAqZ3JlYXRlciogdGhhbiB0aGlzIHRocmVzaG9sZCwgbm90IGxlc3MhCiAgIAoyMDAyLTA1LTIxIDAxOjIwICBqYnBuCgogICAqIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3VjZF9jb21wYXQuYwo6CgogICAgIC0gYWRkIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucyBmb3IgbmV3bHktcmVuYW1lZAogICAgICAgZGVmYXVsdCBzdG9yZSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgKGRlZmluZWQgaWZmCiAgICAgICAtLWVuYWJsZS11Y2QtY29tcGF0aWJpbGl0eSBpcyBnaXZlbiB0byBhdCBjb25maWd1cmF0aW9uIHRpbWUpCiAgIAoyMDAyLTA1LTIxIDAwOjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgICAtIG1vdmUgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX2RzX3JlYWRfY29uZmlnIHR5cGUgZnJvbSBkZWZhdWx0X3N0b3JlLmgKICAgICAgIGludG8gZGVmYXVsdF9zdG9yZS5jIChzaW5jZSBpdCBpcyBub3QsIGFuZCBzaG91bGQgbm90LCBiZSB1c2VkCiAgICAgICBlbHNld2hlcmUpLgogICAKMjAwMi0wNS0yMCAwMzo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVnaXN0ZXJzIHRva2VucyBmb3IgaXB2NiByby9ydyBjb21tdW5pdHksIGFuZCBtYWtlIHN1cmUgdG8gcGFyc2UgdGhlbQogICBhcyBpcHY2LCBub3QgdjQuCiAgIAoyMDAyLTA1LTE5IDExOjM4ICBkcmllaHVpcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEJ1Z2ZpeCBmb3IgRnJlZUJTRCBzdXBwb3J0IG9mIHRoZSBkaXNrSU8gbWliLiBUaGUgb3JpZ2luYWwgY29kZSBuZWdsZWN0ZWQKICAgdGhlIGRldmljZSBudW1iZXIsIHdoaWNoIG1hZGUgZGlzdGluZ3Vpc2hpbmcgYmV0d2Vlbiwgc2F5LCBhZDAgYW5kIGFkMQogICBpbXBvc3NpYmxlLgogICAKMjAwMi0wNS0xNyAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBzbGlnaHRseSByZWR1Y2UgbWVtb3J5IGNvc3RzIG9mIHJlZ2lzdGFydGlvbnMKICAgCjIwMDItMDUtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgc3RvcmUgdGFnIG5hbWVzLgogICBmaXggaW5pdF9zbm1wKCkgZGVmaW5pdGlvbiB0byBtYXRjaCBub3JtYWwgcGVybCBub24tYW5zaSBtb2RlLgogICAKMjAwMi0wNS0xNiAxNjozOSAgZHJpZWh1aXMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFrZSBzdXJlIC0tY2ZsYWdzIHNwaXRzIG91dCB0aGUgcmVxdWlyZWQgaW5jbHVkZSBwYXRoIHdoZW4gaW5zdGFsbGluZwogICBpbiBhIG5vbi1kZWZhdWx0IGxvY2F0aW9uLCBhcyBkb2N1bWVudGVkIGluIHRoZSB1c2FnZSBpbmZvIGluIHRoZSBzY3JpcHQuCiAgIAoyMDAyLTA1LTE2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBhZGQgYSBsaW5lIHRvIHRoZSBzeXNTZXJ2aWNlcyBwcm9tcHQgc2F5aW5nIGlmIHlvdSBkb24ndCBrbm93LCBzYXkgbm8uCiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgdXBkYXRlIHRvIG5ldyBkZWZpbmUgbGlzdAogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB0ZXN0IHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMjo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIGF1dG9nZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGVzIHRvIG5ldyAuaCB0b2tlbnMKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW46CgogICAuaCAtPiBwZXJsbW9kdWxlIHJlZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMDc6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIENvbnNvbGlkYXRlIHRoZSB2YXJpb3VzIE9JRCBvdXRwdXQgY29uZmlndXJhdGlvbiBtZWNoYW5pc21zIGludG8gb25lLgogICBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgKHlldCEpIC0ganVzdCB0aGUgaW50ZXJuYWxzLgogICAKMjAwMi0wNS0xNSAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjcmVhdGUgYSBkZWZpbmUgbG9jYXRpb24gZm9yIEhBVkVfR0VUREVWUwogICAKMjAwMi0wNS0xNSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIGRlcGVuZCB1cGRhdGUsIHdoaWNoIEkgbWVhbnQgdG8gY2hlY2sgaW4gYmVmb3JlIHRoZSA1LjAuMSByZWxlYXNlCiAgIAoyMDAyLTA1LTE1IDA1OjUzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3BlcmwuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM5ICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLAogICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9zZWNtb2QuYywgc25tcHVzbS5jLAogICBzbm1wdjMuYywgdWNkX2NvbXBhdC5jLCB2YWNtLmM6CgogICAgIC0gcmVuYW1lIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIGZyb20gZGVmYXVsdF9zdG9yZSBmcm9tIGRzX2JsYWgKICAgICAgIHRvIG5ldHNubXBfZHNfYmxhaAogICAKMjAwMi0wNS0xNSAwMjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuMCksIHNtdXguYzoKCiAgICAgLSBpbml0aWFsaXNlIHNtdXhfbGlzdGVuX3NkIHRvIGF2b2lkIHByb2JsZW1zIG5vdGVkIGluIGJ1ZyAjNTQ1NDQ4CiAgICAgICAoYSBiaXQgdW5yZWFzb25hYmxlIGluIG15IHZpZXcgYnV0IGl0IGNhbid0IGRvIGFueSBoYXJtKS4KICAgCjIwMDItMDUtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwcmVjaXNpb24gZXh0cmFjdGlvbiBvZiB0dW1vciBpbnN0ZWFkIG9mIGFtcHV0YXRpb24sIG9yLCBpZmRlZiBzZWFyY2guaAogICBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgZXNzZW50aWFsIHRvIHRhYmxlX2FycmF5IG9wZXJhdGlvbiBhbmQgd2lsbCBwcm9iYWJseQogICB2YW5pc2ggaW4gdGhlIG5lYXIgZnV0dXJlIGFueXdheS4KICAgCjIwMDItMDUtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgZml4IHR5cGUgaW4gc2l6ZW9mCiAgIAoyMDAyLTA1LTEzIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzZWFyY2guaCBiZWZvcmUgY29tcGlsaW5nIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIKICAgCjIwMDItMDUtMTMgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0wNS0xMyAwMDozOSAgZHJpZWh1aXMKCiAgICogQ2hhbmdlTG9nOgoKICAgTm90ZSBjaGFuZ2VzIHRvIGNvbmZpZ3VyZS5pbi4KICAgCjIwMDItMDUtMTIgMTA6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE1ha2Ugc3VyZSB0aGUgY2hlY2tzIGZvciBrdm0gcmVsYXRlZCBzdHVmZiBoYXBwZW5zIHdoZW4gLWxrdm0gaXMgaW4gc2NvcGUuCiAgIEFkZCBkZXRlY3Rpb24gb2YgdGhlIC1sZGV2c3RhdCByZXF1aXJlbWVudCB3aGVuIGJ1aWxkaW5nIHdpdGggdWNkLXNubXAvZGlza2lvLgogICAKMjAwMi0wNS0xMCAyMzozMyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjEgKQogICAKMjAwMi0wNS0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbGlidG9vbCB2ZXJzaW9uIGluYwogICAKMjAwMi0wNS0xMCAyMjozMiAgaGFyZGFrZXIKCiAgICogTkVXUywgQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuMQogICAKMjAwMi0wNS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIHR1dG9yaWFsLTUgaW5zdGVhZCBvZiB0dXRvcmlhbAogICAKMjAwMi0wNS0xMCAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICByZXF1ZXN0IGluZm8gcGVybCBjb2RlIG1vdmVkIHRvIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAyLTA1LTEwIDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgT0lEIGJ1aWxkaW5nIG92ZXJsb2Fkcy4KICAgCjIwMDItMDUtMTAgMTY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEFkZCBwcm9wZXIgbGVuZ3RoIHNlZ21lbnQgdG8gdGhlIGJ1aWxkIHZpZXcgT0lELgogICAKMjAwMi0wNS0xMCAxNDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldyBkb2MgcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcKICAgCjIwMDItMDUtMTAgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy4wKSwgdmFjbV92YXJzLmMKOgoKICAgZml4IHZhY20gcHJvYmxlbSBvbiBzZXRzIHdpdGggT0lEcyBjb250YWluaW5nIGxhcmdlIG51bWJlcnMgYXMgbm90ZWQKICAgYnkgVmluYXkgR2FvbmthciBvbiB0aGUgLWNvZGVycyBtYWlsaW5nIGxpc3QuCiAgIAoyMDAyLTA1LTEwIDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYWxsaW5nIG9uIG11bHRpcGxlIHRhYmxlcwogICAKMjAwMi0wNS0xMCAwMzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1lcmdlICJTVFJJTkc6IEhleDoiIHR5cGUgdG9rZW5zIGludG8gYSBzaW5nbGUgdG9rZW4gIkhleC1TVFJJTkc6IgogICAKMjAwMi0wNS0xMCAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgUmVwb3J0IG5vbi1leGl0ZW50IHN1Ymluc3RhbmNlcyBhcyAnbm9TdWNoSW5zdGFuY2UnIHJhdGhlciB0aGFuICdub1N1Y2hPYmplY3QnLgogICAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMC45OSIgbm93IHJlc3BvbmRzIGNvcnJlY3RseS4KICAgKHRob3VnaCAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMSIgc3RpbGwgcmV0dXJucyAnbm9TdWNoT2JqZWN0JykKICAgCiAgIEFsc28gZ3Vlc3MgdGhhdCBmYWlsZWQgU0VUIHJlcXVlc3RzIGFyZSAnbm9DcmVhdGlvbicgZXJyb3JzICh3aGljaCBpcwogICBwcm9iYWJseSB0aGUgbW9zdCBsaWtlbHkgb3B0aW9uKS4KICAgCjIwMDItMDUtMDkgMTU6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZXhpdCBwcm9wZXJseSB3aGVuIGEgc3ViZGlyIGZhaWxzIHRvIG1ha2UgcHJvcGVybHkKICAgCjIwMDItMDUtMDkgMTU6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjcmVhdGUgYSB0b2tlbiBmb3IgdGhlIC1PdiBlcXVpdmVsYW50CiAgIAoyMDAyLTA1LTA5IDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNSksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgcGF0Y2ggZnJvbSBUYWt1bWkgS2Fkb2RlIHRvIGZpeCBtZW1vcnkgdXNhZ2Ugb24gc29sYXJpcwogICAKMjAwMi0wNS0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICB1cGRhdGVzIGZyb20gbWFsbG9jZWQgdm1zdGF0IGZpeGVzIGZyb20gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDItMDUtMDggMTY6MzQgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG5ldyAtLWNvbXBpbGUtc3ViYWdlbnQgZmVhdHVyZXM6CiAgICAgLS1jZmxhZ3MKICAgICAtLW5vcm0KICAgICAtLWxkZmxhZ3MKICAgICBpbmNsdWRlcyBoZWFkZXIgZmlsZXMKICAgICBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDUtMDggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWFrZSB0aGUgc3ViYWdlbnQgcHJvcGVybHkgY2FsbCB0aGUgcmVzZXJ2ZTIgc3RhdGUgYWdhaW4uCiAgIAoyMDAyLTA1LTA4IDEwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDggMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgdW0sIHVzZSAzMCBzZWNvbmRzIGxpa2UgYWR2ZXJ0aXNlZC4KICAgCjIwMDItMDUtMDggMDg6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZGVmaW5lIGEgYmV0dGVyIG5vdGlmaWNhdGlvbiBleGFtcGxlIChubyByZXF1ZXN0cy4gIGp1c3QgYWxhcm0gLT4gc2VuZCkKICAgCjIwMDItMDUtMDcgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgdXBkYXRlIHRvIGN1cnJlbnQgaW5kZW50IGNvbW1hbmQKICAgCjIwMDItMDUtMDcgMjI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBtb3ZlIHRleHQgaW4gY29tbWVudCBsZWZ0IHNsaWdodCAod2FzIHRvbyBsb25nKS4KICAgCjIwMDItMDUtMDcgMjI6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZW51bSBmaXhlcy4KICAgCjIwMDItMDUtMDcgMjI6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbHVtbl9kZWZpbmVzLmNvbmYsCiAgIG1pYjJjLmNvbHVtbl9lbnVtcy5jb25mLCBtaWIyYy5jb25mOgoKICAgTmV3IG1pYjJjIGZpbGVzIGZvciBnZW5lcmF0aW5nIGhlYWRlcnMgZnVsbCBvZiBjb2x1bW4gbnVtYmVyIGRlZmluZXMKICAgYW5kIGVudW0gZGVmaW5lcy4KICAgCjIwMDItMDUtMDcgMjI6NDAgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IGFnZW50IGxpYnJhcnkgcmVvcmRlcmluZyBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgbm93IHN1cHBvcnRzIC5vIGZpbGVzIChwcmVjb21waWxlZCBjb2RlKS4KICAgCjIwMDItMDUtMDcgMjI6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZToKCiAgIGhtbS4gIG1pc3NlZCBzb21lIGNoZWNraW4gZmlsZXMuCiAgIAoyMDAyLTA1LTA3IDExOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGNvbmZ0ZXN0LmNvbmYsIHN0YXJ0YWdlbnQucGwsIGNvbmYudAo6CgogICB0ZXN0IGZvciBjb25maWd1cmF0aW9uIGZpbGUvZGVmYXVsdF9zdG9yZSBzdXBwb3J0CiAgIAoyMDAyLTA1LTA3IDExOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBpbml0X3NubXAoKSB0YWtlIGEgY2hhciAqIGFyZ3VtZW50IGxpa2UgdGhlIHJlYWwgQVBJCiAgIAoyMDAyLTA1LTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICB0eXBvcy4KICAgCjIwMDItMDUtMDcgMDk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IHRoZSAtZyBmbGFnLgogICAKMjAwMi0wNS0wNyAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGxpa2UgYSBnb29kIGJveS4KICAgCjIwMDItMDUtMDYgMjA6NDMgIHJzdG9yeQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpeCBtaXNzaW5nICQgbm90ZWQgYnkgSm9obiBNaWxscyBvbiB0aGUgY29kZXJzIGxpc3QKICAgCjIwMDItMDUtMDYgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzQsMiwzLDNdKSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZSAoY29ycmVjdGx5IGRvbmUgdGhpcyB0aW1lKQogICAKMjAwMi0wNS0wNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluCiAgIChWNC0yLXBhdGNoZXMuWzMsNywxLDJdKSwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA2IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgUGF0Y2hlcyAjNTUxOTE0KyBmcm9tIEdhcnkgRWR3YXJkcyB0byBzdXBwb3J0IGhwdXgxMSBmb3IgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBuZXcgaHB1eCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBuZXcgY29udHJpYnV0b3JzLgogICAKMjAwMi0wNS0wNiAxNDozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYKLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU1MTQ4OTogRnJvbSBKZWZmcmV5IFdhdHNvbiB0byBhZGQgYSAtUSBvcHRpb24gZm9yIHF1aWNrIGJ1dCB3LyBhbiAnPScKICAgCjIwMDItMDUtMDYgMTQ6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIGNoYW5nZSAtRCBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgY3VycmVudCBjb2RlLgogICAKMjAwMi0wNS0wNiAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgbWlzYyBzbWFsbCBidWdzIGFuZCBlcnJvciBtZXNzYWdlIHdvcmRpbmcgZml4ZXMuCiAgIAoyMDAyLTA1LTA2IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuOSksIHNtdXguYzoKCiAgIGJ1ZyAjNTQ3MDEwOiBmaXggc211eCBhdXRoIGJ1ZyBhcyByZXBvcnRlZCBhbmQgZml4ZWQgYnkgU3RlZmFuIFJhZG1hbgogICAKMjAwMi0wNS0wMSAyMzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyBmb3IgdXBkYXRlIHRvIHRhYmxlX2FycmF5CiAgIAoyMDAyLTA1LTAxIDIzOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgb2JqZWN0X21vbml0b3Igc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNoZWNrX3ZhcmJpbmQgc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdmFsaWRhdGlvbiB2YWJyaW5kIGluZm8KICAgCjIwMDItMDUtMDEgMjI6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGRvIEkgcmVhbGx5IGhhdmUgdG8gZG8gdGhpcz8gc2lnaC4gT2ssIHJlbmFtZSBkZWJ1ZyB0b2tlbjsgcmV2YW1wIGxvZ2ljIHRvCiAgIG1vZGlmeSByb3dzIGluIHBsYWNlLCBrZWVwaW5nIHVuZG8gaW5mbyAodnMgYWx3YXlzIGNoYW5naW5nIGEgY29weSBvZiBhIHJvdwogICBhbmQgc3dhcHBpbmcgcm93cyB3aGVuIHNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KSB0byBhbGxvdyBleHRlcm5hbCBjb2RlCiAgIHRvIGtlZXAgcG9pbnRlcnMgdGhhdCBkb24ndCBkaXNhcHBlYXIgb24gdGhlbTsgYWRkIGEgZmV3IGNhbGxiYWNrcywgaW5jbHVkaW5nCiAgIHJvd19jb21wYXJlLCBzbyB0YWJsZV9hcnJheSBjYW4gbWFpbnRhaW4gdGhlIHNlY29uZGFyeSBpbmRleCB0cmVlOyBkb24ndCBjYWxsCiAgIGNhbl9hY3RpdmF0ZS9jYW5fZGVsZXRlIHVubGVzcyB3ZSBhcmUgYWN0dWFsbHkgdHJ5aW5nIHRvIGFjdGl2YXRlL2RlbGV0ZSByb3c7CiAgIGFkZCBza2VsZXRvbiAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGNvb3BlcmF0aXZlIG5vdGlmaWNhdGlvbnMgb2Ygcm93IGV2ZW50czsKICAgdXBkYXRlIGNoYW5naW5nIGFycmF5IGluIGNvbW1pdCAmIHVuZG8gY2FzZXMsIG5vdCBqdXN0IGNvbW1pdDsgY2hhbmdlIHR5cGRlZnMKICAgZm9yIGEgZmV3IGNhbGxiYWNrIHBvaW50ZXJzOyB1bW1tbS4uLiBJICp0aGluayogdGhhdCdzIGl0Li4uLjotKQogICAKMjAwMi0wNS0wMSAxNzozMCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEFkZCBpbmRleCBidWlsZGluZyB0byB0aGUgKyBvcGVyYXRvci4KICAgCjIwMDItMDUtMDEgMDk6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBPSUQvT0lELnhzLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbAosIGFnZW50L3R5cGVtYXA6CgogICBNYWtlIGdldE9JRCBmb3IgcmVxdWVzdHMgcmV0dXJuZWQgYSBOZXRTTk1QOjpPSUQgYmxlc3NlZCByZWZlcmVuY2UuCiAgIEknbSBub3QgaGFwcHkgYWJvdXQgaG93IHRoaXMgaXMgZG9uZSwgYnV0IGFsbCBhdHRlbXB0cyB0byBkbyBpdAogICBjb3JyZWN0bHkgb25seSBsZWZ0IG1lIGluIGNvbmZ1c2lvbi4KICAgCjIwMDItMDUtMDEgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwo6CgogICBDaGFuZ2UgdGhlIGRvbWFpbiBPSURzIHRvIHBvaW50IHRvIHRoZSBuZXQtc25tcCBkb21haW5zIGNyZWF0ZWQgYnkgRGF2ZS4KICAgVGhpcyBmaXhlcyBidWcgIzU0NDI0NSBhcyB3ZWxsLgogICAKMjAwMi0wNS0wMSAwOTozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgdGhlIE9JRCBwZXJsIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBtb2R1bGVzLgogICAKMjAwMi0wNS0wMSAwNzo0NSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy4wKSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIHJlbW92ZSBvbGQgKGFuZCBjb25mbGljdGluZyB3aXRoIHRyYXBzKSB0cmFuc3BvcnQgZG9tYWluIE9JRHMKICAgCjIwMDItMDUtMDEgMDY6MTkgIGR0czEyCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEuZGVmLAogICBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHdhbGsuMS5kZWY6CgogICBBZGQgdHlwZSB0YWdzICJTVFJJTkc6ICIgYW5kICJJTlRFR0VSOiAiIHRvIGV4YW1wbGUgb3V0cHV0LgogICBBZGQgZXhwbGljaXQgc2V0dGluZyBvZiBwcm90b2NvbCB2ZXJzaW9uIHRvIGV4YW1wbGUgY29tbWFuZHMuCiAgIAoyMDAyLTA1LTAxIDAzOjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWd1dGlsLmgsCiAgIGFndXRpbF9hcGkuaCwgYWxhcm0uYywgYWxhcm0uaCwgZXZlbnQuYywKICAgZXZlbnQuaCwgaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHJvd19hcGkuaCwKICAgcm93cy5jLCByb3dzLmgsIHN0YXRpc3RpY3MuYywgc3RhdGlzdGljcy5oOgoKICAgICAtIHJlbW92ZSBDVlMgTG9nOiBlbnRyaWVzIHdoaWNoIGFyZSBjYXVzaW5nIHByb2JsZW1zIHNpbmNlIHRoZXkgYXJlCiAgICAgICBlbWJlZGRlZCBpbiBhIGNvbW1lbnQsIGJ1dCBzb21lIG9mIHRoZSBsb2cgZW50cmllcyBjb250YWluIGNvbW1lbnQKICAgICAgIGRlbGltaXRlcnMuCiAgIAoyMDAyLTA0LTMwIDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSBuZXRzbm1wX3Byb2Nlc3Npbmdfc2V0LCBpdCBsaXZlcyBpbiBzbm1wX2FnZW50LmMKICAgCjIwMDItMDQtMzAgMjI6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL3NubXAtdGMuYwo6CgogICByZW1vdmUgdW51c2VkIHBhcmFtZXRlcjsgYWxsb3cgTk9ORSBhcyBvbGQgdmFsdWUgZm9yIHN0b3JhZ2UgdHlwZSB0cmFuc3Rpb25zCiAgIAoyMDAyLTA0LTMwIDIyOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIG92ZXJseSBjb21wbGV4IG1hY3JvIHN0dWZmIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUKICAgCjIwMDItMDQtMzAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUKLCB0ZXN0LnBsOgoKICAgLSBhbGxvdyBjb252ZXJzaW9ucyB0byBhbiBhcnJheSAobmVlZHMgdG8gYmUgdGllZCBzdGlsbCkuCiAgIC0gZG9jdW1lbnRhdGlvbi4KICAgCjIwMDItMDQtMzAgMDg6MTUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMyksIHNubXBkLmM6CgogICAgIC0gZml4IGJ1ZyAjNTQ1Nzc1LCByZXBvcnRlZCBieSBEYXZlIERlbnNvbiwgd2hlcmVieSB0aGUgUElEIG9mIGFuCiAgICAgICBhbHJlYWR5LXJ1bm5pbmcgc25tcGQgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3RhcnRpbmcgYSBuZXcgc25tcGQKICAgICAgICh3aGljaCB3b3VsZCB0aGVuIGV4aXQsIGxlYXZpbmcgdGhlIG9yaWdpbmFsIHNubXBkIHJ1bm5pbmcgYW5kIHRoZQogICAgICAgd3JvbmcgUElEIGluIHRoZSBmaWxlKS4gIFNvbHV0aW9uIGlzIG5vdCB0byB3cml0ZSB0aGUgUElEIHVudGlsIHdlCiAgICAgICBoYXZlIHN1Y2Nlc3NmdWxseSBvcGVuZWQgYWxsIG91ciBzb2NrZXRzLgogICAKMjAwMi0wNC0zMCAwNzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVCwKICAgTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUsCiAgIHRlc3QucGwsIHR5cGVtYXA6CgogICBPSUQgcGVybCBtb2R1bGUgc28geW91IGNhbiBkbyBzaW1wbGUgT0lEIG1hbmlwdWxhdGlvbnMgd2l0aGluIHBlcmwgZWFzaWx5OgogICAgIC0gRXhhbXBsZTogIG5ldyBOZXRTTk1QOjpPSUQoJ2ludGVyZmFjZXMnKSA+IG5ldyBOZXRTTk1QOjpPSUQoJ3N5c3RlbScpCiAgIAoyMDAyLTA0LTI5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVnZXhwIGZpeCBmb3Igd2hpdGUgc3BhY2UgY2hlY2tzIGluIGluZGVudCBmb3JtYXR0ZWQgY29kZQogICAKMjAwMi0wNC0yOSAxNjo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW9yZGVyIHBlcmwgbW9kdWxlIG5hbWVzIHRvIHJlZmxlY3QgKG5ldykgZGVwZW5kZW5jaWVzLgogICAKMjAwMi0wNC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBmaXggYSBmZXcgd2FybmluZ3Mgb24gZmFpbGVkIHRlc3RzIChqdXN0IHNjcmVlbiBjbGVhbnVwcykKICAgCjIwMDItMDQtMjkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgTWFrZSB0aGUgcGVybCBtb2R1bGUgcmVzcGVjdCBzbm1wLmNvbmYgc2V0dGluZ3MgKGZpbmFsbHkpLgogICAgIC0gTm93IHJlcXVpcmVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgTmV0U05NUDo6ZGVmYXVsdF9zdG9yZSBtb2R1bGUgdGhvdWdoLgogICAKMjAwMi0wNC0yNyAwODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvbid0IHByb2Nlc3Mgc2V0IHJlcXVlc3QgdGlsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLCBhbmQgcXVldWUKICAgYW55IG90aGVyIHJlY2VpdmVkIHBhY2tldHMgdW50aWwgYSBzZXQgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nLgogICAKMjAwMi0wNC0yNyAwODoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFuIHVwIGNvbW1lbnRzIG11bmdlZCBieSBpbmRlbnQKICAgCjIwMDItMDQtMjcgMDg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNC0yNyAwODowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogb2JqZWN0X21vbml0b3IuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZmRlZiBneW1uYXN0aWNzIHRvIG1ha2Ugc3VyZSBhc3NlcnRzIGFyZSBvbmx5IGNvbXBpbGVkIGluIG9ubHkgaWYgZXhwbGljaXR5CiAgIHJlcXVlc3RlZAogICAKMjAwMi0wNC0yNiAyMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IHVuYmFsYW5jZWQgZW5kaWYgb24gbGludXguIGhvcGUgSSBkaWRuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZS4KICAgCjIwMDItMDQtMjYgMTk6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IHVudXNlZCB2YXIgd2FybmluZyBmb3IgIXdpbmRvd3MKICAgCjIwMDItMDQtMjYgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGZpeCBPSURfTEVOR1RIIGRlZmluaXRpb25zCiAgIAoyMDAyLTA0LTI2IDEwOjUzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcyBpbiBtYWtlZmlsZXMuICBNYWtlIGV2ZXJ5dGhpbmcgdXNlCiAgIG5ldC1zbm1wLWNvbmZpZywgLi4uCiAgIAoyMDAyLTA0LTI2IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtOgoKICAgLSBDbGVhbnVwLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gQ2hhbmdlIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcyBmb3IgdWNkLXNubXAKICAgLSBDaGFuZ2UgY29udGFjdCBsb2NhdGlvbiB0byBuZXQtc25tcC11c2VycyAocGVyIEpvZSdzIGFncmVlbWVudCkKICAgCjIwMDItMDQtMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgZGVmYXVsdF9zdG9yZS5wbSwgdGVzdC5wbDoKCiAgIC0gY2xlYW51cC4KICAgLSBVc2UgbmV0LXNubXAtY29uZmlnIHRvIGZpbmQgbGlicmFyeSwgZXRjLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gYSBmZXcgbW9yZSB0ZXN0cyBhZGRlZAogICAtIHVzZSBjb3JyZWN0IGxpYnJhcmllcwogICAtIGFkZCBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTA0LTI2IDA0OjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEV4dHJhY3RpbmcgdGhlIHZlcnNpb24gZnJvbSAnc25tcGxpYi9zbm1wX3ZlcnNpb24uYycgbmVlZHMgdG8gdGFrZSBhY2NvdW50CiAgIG9mIGJsYW5rIHNwYWNlLiAgUmVwb3J0ZWQgYnkgU3RlZmFuIFJhZG1hbiAoQnVnICM1NDczNzkpCiAgIAoyMDAyLTA0LTI2IDA0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOCksIG1lbW9yeS5jCjoKCiAgIEhhbmRsZSBtZW1vcnkgdmFsdWVzID4gMzJiaXQgKGxhdGNoaW5nIGF0IDJeMzItMSkKICAgUGF0Y2ggIzU0ODY2MyBmcm9tIFJvYiBNeWVycwogICAKMjAwMi0wNC0yNiAwMzo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJ0ludmFsaWQgb3B0aW9uJyBtZXNzYWdlLCBzaW5jZSB0aGlzIGlzIHR5cGljYWxseQogICByZXBvcnRlZCBieSBnZXRvcHQoKS4gIChTdWdnZXN0ZWQgYnkgQW5kcmV3IFJ1Y2tlciBKb25lcyAtIHBhdGNoICM1NDg3NDggKQogICAKMjAwMi0wNC0yNiAwMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFkZCAndicgdG8gdGhlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucyAocGF0Y2ggIzU0ODc0OCkKICAgVGhhbmtzIHRvIEFuZHJldyBSdWNrZXIgSm9uZXMuCiAgIAoyMDAyLTA0LTI2IDAzOjM2ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBpbXByb3ZlZCBIUC1VWCAxMSBwYXRjaAogICAoIzUzMDcyNCkgdG8gdGhlIG1haW4gdjUgbGluZSwgYXMgd2VsbCBhcyB0aGUgdjQtMiBicmFuY2guCiAgIFRoZSBjb2RlIG5vdyBjb21waWxlcyBjbGVhbmx5IHVuZGVyIEhQLVVYIDExIHVzaW5nIGdjYy4KICAgCjIwMDItMDQtMjUgMDc6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBQYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZyB0byBmaXggcG9zc2libGUgdmFyaWFibGUgbmFtZSBjbGFzaAogICAKMjAwMi0wNC0yNCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBoYW5kbGUgY2FsbGJhY2tzIHNlbmRpbmcgbmV3IG5vdGlmaWNhdGlvbnMgKHdoaWxlIHByb2Nlc3Npbmcgbm90aWZpY2F0aW9ucykKICAgCjIwMDItMDQtMjQgMjE6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICBoZWFkZXIgZm9yIG5ldyBmdWNudGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0cwogICAKMjAwMi0wNC0yNCAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBuZXcgZnVuY3Rpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdCB2YWx1ZXMKICAgCjIwMDItMDQtMjQgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgL3Byb2Mvc3RhdCBjYW4gYmUgbGFyZ2VyIHRoYW4gMTAyNAogICAKMjAwMi0wNC0yNCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pc3NpbmcgJ21kNS5oJyBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDQtMjMgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBsYXN0IG9mIHRoZSAjd2FybmluZ3MsIGFkZCB4eHgtcmtzIGlmIG5lY2Vzc2FyeQogICAKMjAwMi0wNC0yMyAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTIyIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUU6CgogICB1cGRhdGUgVVJMIHRvIHVzZSBmcmVlbm1wLmNvbSBtaXJyb3IgKHVubGVzcyBzb21lb25lIGtub3dzIGEgYmV0dGVyIHBsYWNlPykKICAgCjIwMDItMDQtMjIgMTQ6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYXBwbHkgZG9jdW1lbnRhdGluIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnZXIgPEF4ZWwuS2l0dGVuYmVyZ2VyQG1heHhpby5jb20+CiAgIAoyMDAyLTA0LTIyIDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlIGV4dHJhIEBlbmRAIChzdXJlIHdvdWxkIGJlIG5pY2UgaWYgbWliMmMgd291bGQgY2hlY2sgZm9yIHVuYmFsYW5jZWQKICAgQGVuZEBzKQogICAKMjAwMi0wNC0yMiAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICB1cGRhdGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2ggaGVhZGVyIChubyBtaXhlZCBjYXNlKQogICAKMjAwMi0wNC0yMiAwODoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCBidWcgIzU0NzExMDogcHJvcGVybHkgc3BlbGwgZGVmaW5lCiAgIAoyMDAyLTA0LTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBhZGQgc3RhdGljIHRvIGEgcmV0dXJuZWQgdmFyaWFibGUKICAgCjIwMDItMDQtMjEgMTY6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMKICAgCjIwMDItMDQtMjEgMTE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgNS4wLnByZTMgLT4gNS4wOyAoSSdtIHN1cmUgdGhlcmUgYXJlIG90aGVyIHBsYWNlcyB0aGlzIG5lZWRzIHRvIGNoYW5nZSwKICAgYnV0IEkgd2FudGVkIHRvIGdldCB0aGUgZmlyc3QgcG9zdCA1LjAgY2hlY2tpbi4uLjotKQogICAKMjAwMi0wNC0yMCAwMDozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMCApCiAgIAoyMDAyLTA0LTIwIDAwOjMyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gNS4wCiAgIAoyMDAyLTA0LTIwIDAwOjI5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBBR0VOVC50eHQsIENPUFlJTkcsIENoYW5nZUxvZwosIENvZGluZ1N0eWxlLCBFWEFNUExFLmNvbmYuZGVmLCBGQVEsCiAgIElOU1RBTEwsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywKICAgTWFrZWZpbGUudG9wLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsCiAgIFJFQURNRS5hZ2VudHgsIFJFQURNRS5jbXUsIFJFQURNRS5ocHV4MTEsCiAgIFJFQURNRS5rcmI1LCBSRUFETUUuc25tcHYzLCBSRUFETUUudGhyZWFkLAogICBSRUFETUUud2luMzIsIFRPRE8sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBkb3RnZGJpbml0LCBkb3h5Z2VuLmNvbmYsIGluc3RhbGwtc2gsCiAgIGx0bWFpbi5zaCwgbWFrZWRlcGVuZC5pbiwgbWFrZWZpbGVpbmRlcGVuZC5wbCwKICAgbWFrZW5vc3lzZGVwZW5kLnBsLCBtYWtldGFyZ2V0LCBta2luc3RhbGxkaXJzLAogICBuZXQtc25tcC1jb25maWcuaW4sIHJlbW92ZS1maWxlcywgc2Vkc2NyaXB0LmluLAogICBzdGFtcC1oLCBzdGFtcC1oLmluLCBhZ2VudC8uY3ZzaWdub3JlLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvbTJtLmgsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsCiAgIGFnZW50L3NubXBfcGVybC5wbCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9kbG1vZHMvLmN2c2lnbm9yZSwKICAgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jCiwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMKLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRQosIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4LCBhZ2VudC9taWJncm91cC9SbW9uLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50eC5oCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIGFnZW50L21pYmdyb3VwL21pYklJLmgKLCBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oLCBhZ2VudC9taWJncm91cC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLCBhZ2VudC9taWJncm91cC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYWdlbnQvbWliZ3JvdXAvUm1vbi9SRUFETUUKLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9hbGFybS5zaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2hpc3Quc2gsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2QsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmUKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmgsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgKLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oCiwgaW5jbHVkZS9uZXQtc25tcC8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvLmN2c2lnbm9yZSwgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmgsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaAosIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaAosIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLCBsb2NhbC8uY3ZzaWdub3JlLAogICBsb2NhbC9GQVEySFRNTCwgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL1JFQURNRS5taWIyYwosIGxvY2FsL2NvbnZlcnRjb2RlLCBsb2NhbC9maXhwcm9jLAogICBsb2NhbC9pcGYtbW9kLnBsLCBsb2NhbC9taWIyYywKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCBsb2NhbC9taWIyYy5jb25mLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mLCBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0CiwgbG9jYWwvcGFzc3Rlc3QsIGxvY2FsL3NubXAtdWNkLnNoLAogICBsb2NhbC9zbm1wY2hlY2suZGVmLCBsb2NhbC9zbm1wY29uZiwgbG9jYWwvdGttaWIsCiAgIGxvY2FsL3RyYXB0b2VtYWlsLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2F1dGhvcHRzCiwgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9kZWJ1Z2dpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvbWlicywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9hY2wsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2Jhc2ljX3NldHVwLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9leHRlbmRpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL29wZXJhdGlvbiwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW0sCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3RyYXBzaW5rcywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlLCBtYW4vLmN2c2lnbm9yZQosIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywKICAgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsCiAgIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsCiAgIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfZGVidWcuMywKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF90YWJsZS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMywgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIG1hbi9wcmludF9taWIuMywgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zCiwgbWFuL3ByaW50X3ZhcmlhYmxlLjMsIG1hbi9yZWFkX2FsbF9taWJzLjMsCiAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3JlYWRfbWliLjMsCiAgIG1hbi9yZWFkX21vZHVsZS4zLCBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLAogICBtYW4vcmVhZF9vYmppZC4zLCBtYW4vc2h1dGRvd25fbWliLjMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZiwKICAgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZiwKICAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMKLCBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsCiAgIG1hbi9zbm1wX3NlbmQuMywgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWYsCiAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsCiAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsCiAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLAogICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLAogICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsCiAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsCiAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjMsCiAgIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsCiAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMSwgbWFuL3NubXBkZi4xCiwgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwKICAgbWFuL3NubXBpbmZvcm0uMSwgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEuZGVmCiwgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsCiAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsCiAgIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtYW4vc25tcHVzbS4xLmRlZiwKICAgbWFuL3NubXB3YWxrLjEuZGVmLCBtYW4vdmFyaWFibGVzLjUuZGVmLAogICBtaWJzLy5jdnNpZ25vcmUsIG1pYnMvQUdFTlRYLU1JQi50eHQsCiAgIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQsIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQKLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwgbWlicy9FdGhlckxpa2UtTUlCLnR4dAosIG1pYnMvSENOVU0tVEMudHh0LCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgIG1pYnMvSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LAogICBtaWJzL0lBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dCwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsCiAgIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwgbWlicy9JRi1NSUIudHh0LAogICBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0LCBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwKICAgbWlicy9JUC1NSUIudHh0LCBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LAogICBtaWJzL0lQVjYtTUlCLnR4dCwgbWlicy9JUFY2LVRDLnR4dCwKICAgbWlicy9JUFY2LVRDUC1NSUIudHh0LCBtaWJzL0lQVjYtVURQLU1JQi50eHQsCiAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLm1pYiwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0CiwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgbWlicy9ORVQtU05NUC1UQy50eHQKLCBtaWJzL05FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsIG1pYnMvUkVBRE1FLm1pYnMsCiAgIG1pYnMvUkZDLTEyMTUudHh0LCBtaWJzL1JGQzExNTUtU01JLnR4dCwKICAgbWlicy9SRkMxMjEzLU1JQi50eHQsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1NNVVgtTUlCLnR4dCwgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LAogICBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQsIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwKICAgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dAosIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIG1pYnMvU05NUHYyLUNPTkYudHh0LAogICBtaWJzL1NOTVB2Mi1NSUIudHh0LCBtaWJzL1NOTVB2Mi1TTUkudHh0LAogICBtaWJzL1NOTVB2Mi1UQy50eHQsIG1pYnMvU05NUHYyLVRNLnR4dCwKICAgbWlicy9UQ1AtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dCwKICAgbWlicy9VQ0QtREVNTy1NSUIuaW5jLCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsCiAgIG1pYnMvVUNELURJU0tJTy1NSUIuaW5jLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwKICAgbWlicy9VQ0QtRExNT0QtTUlCLmluYywgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwKICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLmluYywgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwKICAgbWlicy9VQ0QtSVBGV0FDQy1NSUIuaW5jLCBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQsIG1pYnMvVUNELVNOTVAtTUlCLmluYywKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0CiwgbWlicy9taWJmZXRjaCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZgosIG1pYnMvc21pc3RyaXAsIG92Ly5jdnNpZ25vcmUsIG92L01ha2VmaWxlLmluCiwgb3YvUkVBRE1FLCBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsCiAgIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluLAogICBvdi9iaXRtYXBzL1VDRC4yMC5tLCBvdi9iaXRtYXBzL1VDRC4yMC5wLAogICBvdi9iaXRtYXBzL1VDRC4yNi5tLCBvdi9iaXRtYXBzL1VDRC4yNi5wLAogICBvdi9iaXRtYXBzL1VDRC4zMi5tLCBvdi9iaXRtYXBzL1VDRC4zMi5wLAogICBvdi9iaXRtYXBzL1VDRC4zOC5tLCBvdi9iaXRtYXBzL1VDRC4zOC5wLAogICBvdi9iaXRtYXBzL1VDRC40NC5tLCBvdi9iaXRtYXBzL1VDRC40NC5wLAogICBvdi9iaXRtYXBzL1VDRC41MC5tLCBvdi9iaXRtYXBzL1VDRC41MC5wLAogICBvdi9iaXRtYXBzL1VDRC5maWVsZHMsIHBlcmwvLmN2c2lnbm9yZSwKICAgcGVybC9BU04vLmN2c2lnbm9yZSwgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FTTi9BU04ueHMKLCBwZXJsL0FTTi9DaGFuZ2VzLCBwZXJsL0FTTi9NQU5JRkVTVCwKICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvQVNOL3Rlc3QucGwsCiAgIHBlcmwvQW55RGF0YV9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvQW55RGF0YV9TTk1QL0NoYW5nZXMKLCBwZXJsL0FueURhdGFfU05NUC9EQkRfQW55RGF0YS5wYXRjaCwKICAgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLCBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMLAogICBwZXJsL0FueURhdGFfU05NUC9NQU5JRkVTVCwgcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwKLCBwZXJsL0FueURhdGFfU05NUC9SRUFETUUsIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0KLCBwZXJsL0FueURhdGFfU05NUC9zbm1wc2gsIHBlcmwvU05NUC8uY3ZzaWdub3JlLAogICBwZXJsL1NOTVAvQlVHLCBwZXJsL1NOTVAvTUFOSUZFU1QsCiAgIHBlcmwvU05NUC9NQU5JRkVTVC5TS0lQLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsCiAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54cwosIHBlcmwvU05NUC9UT0RPLCBwZXJsL1NOTVAvcGVybHNubXAuaCwKICAgcGVybC9TTk1QL3R5cGVtYXAsIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzEucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzIucGwsIHBlcmwvU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbAosIHBlcmwvU05NUC9leGFtcGxlcy9pcGZvcndhcmQucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy9taWJ0cmVlLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvbWlid2Fsay5wbAosIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdGFibGV3YWxrLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdGVzdGxlYWsucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIHBlcmwvU05NUC9oaW50cy9pcml4LnBsCiwgcGVybC9TTk1QL2hpbnRzL3NvbGFyaXMucGwsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUKLCBwZXJsL1NOTVAvdC9SRUFETUUsIHBlcmwvU05NUC90L2FzeW5jLnQsCiAgIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsIHBlcmwvU05NUC90L2dldC50LAogICBwZXJsL1NOTVAvdC9nZXRuZXh0LnQsIHBlcmwvU05NUC90L21pYi50LAogICBwZXJsL1NOTVAvdC9taWIudHh0LCBwZXJsL1NOTVAvdC9taWJsb2FkLnQsCiAgIHBlcmwvU05NUC90L25vdGlmeS50LCBwZXJsL1NOTVAvdC9zZXNzaW9uLnQsCiAgIHBlcmwvU05NUC90L3NldC50LCBwZXJsL1NOTVAvdC9zbm1wdGVzdC5jb25mLAogICBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLCBwZXJsL2FnZW50Ly5jdnNpZ25vcmUsCiAgIHBlcmwvYWdlbnQvQ2hhbmdlcywgcGVybC9hZ2VudC9NQU5JRkVTVCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgcGVybC9hZ2VudC9hZ2VudC54cywgcGVybC9hZ2VudC90ZXN0LnBsLAogICBwZXJsL2FnZW50L3R5cGVtYXAsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlCiwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCBwZXJsL2RlZmF1bHRfc3RvcmUvQ2hhbmdlcwosIHBlcmwvZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCwKICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsLCBwZXJsL2RlZmF1bHRfc3RvcmUvdHlwZW1hcCwKICAgcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmUsIHBlcmwvbWFuYWdlci9JTlNUQUxMLAogICBwZXJsL21hbmFnZXIvTWFrZWZpbGUuUEwsIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG0sCiAgIHBlcmwvbWFuYWdlci9nZXRWYWx1ZXMucG0sIHBlcmwvbWFuYWdlci9ncmVlbi5naWYsCiAgIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtLCBwZXJsL21hbmFnZXIvcmVkLmdpZiwKICAgcGVybC9tYW5hZ2VyL3NldHVwYXV0aCwgcGVybC9tYW5hZ2VyL3NldHVwZGIsCiAgIHBlcmwvbWFuYWdlci9zZXR1cHVzZXIsIHBlcmwvbWFuYWdlci9zbm1wdG9zcWwsCiAgIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NU0cwMDAwMS5iaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMKLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMKLCBzbm1wbGliL3N0cnRvbC5jLCBzbm1wbGliL3N0cnRvdWwuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi93aW5zZXJ2aWNlLmMsCiAgIHNubXBsaWIvd2luc2VydmljZS5tYywgc25tcGxpYi93aW5zZXJ2aWNlLnJjLAogICB0ZXN0aW5nLy5jdnNpZ25vcmUsIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUkVBRE1FCiwgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gKLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwKICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzCiwgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsCiAgIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwKICAgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsCiAgIHRlc3RpbmcvdGVzdF9rdWwuc2gsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzREVTY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2M1NIQURFU2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAwMnNubXB2MWdldG5leHQKLCB0ZXN0aW5nL3Rlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMDRzbm1wdjFub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwKICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsCiAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwKICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcAosIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsCiAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbAosIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwKICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB3aW4zMi8uY3ZzaWdub3JlLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZCwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oLCB3aW4zMi9zbm1wc21faW5pdC5oLAogICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLm9wdCwgd2luMzIvYmluLy5jdnNpZ25vcmUKLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLy5jdnNpZ25vcmUsCiAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYi8uY3ZzaWdub3JlLCB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlLAogICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAosIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgIHdpbjMyL2xpYnNubXAvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnVjZG1pYnMvLmN2c2lnbm9yZSwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZgosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oLAogICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIHdpbjMyL3NubXBidWxrZ2V0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZGVsdGEvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZ2V0Ly5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICB3aW4zMi9zbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy8uY3ZzaWdub3JlCiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwCiwgd2luMzIvc25tcHRlc3QvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgd2luMzIvc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHdpbjMyL3NubXB0cmFwZC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcAosIHdpbjMyL3NubXB2YWNtLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcAosIHdpbjMyL3NubXB3YWxrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICBjdnMgZmlsZSB2ZXJzaW9uIG51bWJlciBjaGFuZ2UKICAgCjIwMDItMDQtMjAgMDA6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIGNoYW5nZWxvZwogICAKMjAwMi0wNC0yMCAwMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9SbW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC5oLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaAosIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oCiwgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oCiwgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgKLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvZGF0YV9saXN0LmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMKLCBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL2V0aW1ldGVzdC5jCiwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIFdoaXRlIHNwYWNlLCBvaCBnbG9yaW91cyB3aGl0ZSBzcGFjZS4KICAgSG93IGdyZWF0IG91ciB0aG91Z2g/CiAgIFRoZSBjb2RlIGlzIGZpbmUuCiAgIFdlIGFncmVlIG9uIGZ1bmN0aW9uYWxpdHkgZWFzaWx5LgogICBXaGF0IHJlYWxseSB0cm91YmxlcyB1cz8KICAgU29tZXRoaW5nIHdlIGNhbid0IHNlZS4KICAgU29tZXRoaW5nIGJldHdlZW4gdGhlIGNvZGUuCiAgIFdlIGJvdyBkb3duIHRvIHlvdXIgbWFnbmlmaWNlbmNlLAogICBGb3IgeW91IGFyZSBldmVyeXdoZXJlLAogICBCZXR3ZWVuIGV2ZXJ5dGhpbmcuCiAgIFByZXR0eSBub3RoaW5nbmVzcyB5b3UgYXJlLgogICAKMjAwMi0wNC0yMCAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0dXJuIG9uIHVjZCBjb21wYXQgYnkgZGVmYXVsdC4KICAgCjIwMDItMDQtMjAgMDA6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBsYXN0IHVwZGF0ZXMKICAgCjIwMDItMDQtMTkgMjM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICByZW1vdmUgdGVzdGRlbGF5ZWQKICAgCjIwMDItMDQtMTkgMjM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IC5jdnNpZ25vcmUsIC5jdnNpZ25vcmU6CgogICBjdnMgaWdub3JlIGZpbGUKICAgCjIwMDItMDQtMTkgMjM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgZG9uJ3QgZGllIGlmIHBlcmwgZG9lc24ndCBpbml0LgogICAKMjAwMi0wNC0xOSAyMzowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBSRUFETUUsIFNOTVAucG06CgogICBjaGFuZ2Ugd2FybmluZy4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG11bHRpcGxlIGluc2VydHMgaW50byB0aGUgZGVsZWdhdGVkIGNoYWluIGRvbid0CiAgIGhhcHBlbiAocmVhZDogdGhleSBzaG91bGRuJ3QgYW55d2F5LCBidXQuLi4uLikuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHR5cGVkZWYgdXBkYXRlCiAgIAoyMDAyLTA0LTE5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgRml4IHRoZSBjYWxsYmFjayBidWlsZCBob29rIHRvIHR1cm4gb2ZmIHRoZSBleHBlY3QgcmVzcG9uc2UgZmxhZyB3aGVuCiAgIG5vdCBhcHByb3ByaWF0ZS4KICAgCjIwMDItMDQtMTkgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBzcGVsbGluZyBtaXN0ZWFrOyByZW1vdmUgY2FwaXRhbCBsZXR0ZXJzIGluIGZ1bmN0aW9uIG5hbWVzCiAgIAoyMDAyLTA0LTE5IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZWQgaW4gb2lkX2FycmF5LmgKICAgCjIwMDItMDQtMTkgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbWFrZSB0aGUgcGVybEluaXRGaWxlIGFuZCBkaXNhYmxlUGVybCB0b2tlbnMgcmVnaXN0ZXIgYXMgcHJlbWliIHN1Y2gKICAgdGhhdCB3aGVuIHBhc3NlZCBhcyBhIC0tRkxBRyBpdCdsbCBhY3R1YWxseSBkbyB0aGUgcmlnaHQgdGhpbmcgYW5kCiAgIGRpc2FibGUgdGhlIGxhdGVyICJwZXJsIiB0b2tlbiBoYW5kbGVycy4KICAgCjIwMDItMDQtMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfZGVidWcuMywKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF90YWJsZS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIGRvY3VtZW50YXRpb24uICBDYW4ndCBnZXQgZW5vdWdoLgogICAgIC0gbWFrZSBkb2NzIG5vdyBpbnN0YWxscyBtYW4gcGFnZXMgaW50byB0aGUgbWFuIGRpciwgd2hpY2ggYXJlIHRoZW4gaW5zdGFsbGVkLgogICAKMjAwMi0wNC0xOSAxNzoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgIENvcnJlY3QgZm9yIG5ldyBTVFJJTkcgcHJlZml4LgogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIEthdHN1aGlzYSBBQkUKICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnhzLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBmaXggaGVhZGVyIGZpbGVzIGZvciBuZXcgcGF0aHMuCiAgIAoyMDAyLTA0LTE5IDE3OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoICM1MzI1NTU6IGlwdjYgY29tMnNlYyBzdXBwb3J0LCB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDQtMTkgMTY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggc3lzVXBUaW1lIChhbmQgcmVsYXRlZCBmdW5jdGlvbnMpIHRvIGhhbmRsZSBtdWNoIGxhcmdlciB1cFRpbWUKICAgdmFsdWVzIChpZSwgZml4IHNpZ25lZCBpbnRlZ2VyIHdyYXBwaW5nKS4KICAgCjIwMDItMDQtMTkgMTE6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZW1iZWRkZWQgcGVybCBzdXBwb3J0LgogICAKMjAwMi0wNC0xOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfcGVybC5wbCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMCjoKCiAgIEFkZCBzb21lIG5ldyBzbm1wZC5jb25mIHRva2VucyBmb3IgY29udHJvbGxpbmcgcGVybCBiZXR0ZXIuCiAgIEZpeCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTA0LTE5IDExOjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54czoKCiAgIEFkZGVkIG1pc3NpbmcgYWdlbnQgZGVmYXVsdF9zdG9yZSBzdHVmZi4gICh0aGV5IGV4aXN0ZWQgb24gbXkgbWFjaGluZSwKICAgSSBkb24ndCBrbm93IHdoeSBldmVyeW9uZSBlbHNlIHdhcyBoYXZpbmcgcHJvYmxlbXMpCiAgIAoyMDAyLTA0LTE5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhpbmdzIHRoYXQgc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuCiAgIAoyMDAyLTA0LTE5IDAzOjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIDxTaWdoPiBBIGxpdHRsZSBsZWFybmluZyBpcyBhIGRhbmdlcm91cyB0aGluZy4KICAgQXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGZyb20gQXhlbCAtIHNvcnJ5LgogICAKMjAwMi0wNC0xOSAwMTo0OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGRvY3VtZW5hdGlvbiB3aGVuIHNyY2RpciAhPSBjb25maWdkaXIKICAgKFBhdGNoIHN1cHBsaWVkIGJ5IEF4ZWwgS2l0dGVuYmVyZ2VyKQogICAKMjAwMi0wNC0xOCAxNzozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBmaXggc25tcElQWERvbWFpbiAoYWdhaW4pCiAgIAoyMDAyLTA0LTE4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBvbmx5IG9wZW4gc3ViYWdlbnQgY29ubmVjdGlvbnMgb25jZSBhdCBzdGFydHVwCiAgIAoyMDAyLTA0LTE4IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IGZvciBkb3duIHN1YmFnZW50IGNhc2VzLCBtYXJrIHJlZ2lzdHJhdGlvbnMgYXMgZGV0YWNoZWQKICAgCjIwMDItMDQtMTggMTc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlZmluZSBhIG1heGltdW0gcGFja2V0IHNpemUgd2UgY2FuIGFjY2VwdCB0byBwcm90ZWN0IGNlcnRhaW4gZXJyb3IKICAgY29uZGl0aW9ucyAoLTEgYWZ0ZXIgY29udmVyc2lvbiBpcyBub3cgdG9vIGxhcmdlKS4KICAgCjIwMDItMDQtMTggMTY6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBjaGFuZ2UgdGhlIGVudGVycHJpc2UgT0lEcyBpbiB0aGUgcHJvcGVyIHBsYWNlIChuZXQtc25tcC1jb25maWcuaC5pbgogICBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUpLgogICAKMjAwMi0wNC0xOCAxMzo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICAtIEFkZCB0d28gbmV3IG9wdGlvbnMgdG8gbmV0LXNubXAtY29uZmlnIGFzIHJlcXVlc3RlZCBvbiB0aGUgSVJDIGNoYW5uZWwuCiAgICAgLS1jb25maWd1cmUtb3B0aW9ucwogICAgIC0tc25tcGQtbW9kdWxlLWxpc3QKICAgCjIwMDItMDQtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wNC0xOCAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiBzdXBwbGllZCBlbnRlcnByaXNlIE9JRHMgY29ycmVjdGx5CiAgIChhbmQgdXNlIGEgbW9yZSBtZWFuaW5nZnVsIG91dHB1dCBtZXNzYWdlKQogICAKICAgU2hhbWUgdGhlc2Ugc2V0dGluZ3MgYXJlbid0IGNhY2hlZCBmb3IgbGF0ZXIgcmUtdXNlLi4uLgogICAKMjAwMi0wNC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE5vdGlmeSBvbiBhZ2VudCByZWNvbmZpZ3VyYXRpb24uCiAgIAoyMDAyLTA0LTE4IDA3OjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBub3RpZmljYXRpb25zIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE4IDA3OjA4ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXggdGhlIHRhYmxlLW9mLWNvbnRlbnRzIHNlcXVlbmNlIGZvciB0aGUgbnNNb2R1bGVUYWJsZSwgYWRkIG5vdGlmaWNhdGlvbgogICBkZWZpbml0aW9ucyBmb3IgdGhlIGFnZW50LCBhbmQgZGVmaW5lIGdyb3VwcyBmb3IgZXZlcnl0aGluZy4KICAgCjIwMDItMDQtMTggMDI6NTIgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCcmluZyBpbnRlZ2VyIGFuZCBzdHJpbmcgb3V0cHV0IGZvcm1hdHMgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIHR5cGVzCiAgIGJ5IHByaW50aW5nIGEgdHlwZSB0b2tlbiBiZWZvcmUgdGhlIHZhbHVlICh1bmxlc3Mgc3VwcmVzc2VkIGJ5ICdxdWljayBwcmludCcpCiAgIFRoYW5rcyB0byBFcmlrIGZvciB0aGUgcGF0Y2gKICAgCjIwMDItMDQtMTggMDE6NDYgIGR0czEyCgogICAqIEZBUToKCiAgIFJlcGxhY2UgdGhlIGRsbW9kICdXSEVSRScgd2l0aCBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLi4uLgogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBkZWZpbmUgdGhlIGlweERvbWFpbiB2YXJpYWJsZXMKICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEVycm9yIGNvbmRpdGlvbiB0ZXN0cwogICAKMjAwMi0wNC0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBPaCwganVzdCBhIHNtYWxsIHBhdGNoIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gbWFrZSBtb2R1bGVzIHJlcXVlc3QKICAgdGhhdCBhbGwgcXVlcmllcyB0byBhIHNldCBvZiByZWdpc3RyYXRpb25zIGdldCBwYXNzZWQgYWxsIGF0IG9uY2UKICAgKHdoaWNoIGFwcGFyZW50bHkgaXMgaW1wb3J0YW50IGZvciwgb2gsIGFnZW50eCkKICAgCjIwMDItMDQtMTcgMTA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1pc2Mgbm9uLWNoYW5nZSBjbGVhbiB1cHMKICAgCjIwMDItMDQtMTcgMTA6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbmFtZSBzdHJ1Y3R1cmVzIGJlZ2lubmluZyB3aXRoIF8gdG8gZW5kaW5nIHdpdGggX3MKICAgCjIwMDItMDQtMTcgMTA6MDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBzZXNzaW9uIGNyZWF0b3IgdG8gdXNlIGF0IHdpbGwgKGRpZmZlcmVudAogICBmcm9tIHRoZSBjYWxsYmFjayBtYWdpYykuCiAgIAoyMDAyLTA0LTE3IDA5OjAwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgc3lzT0lEcyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xNyAwODoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlLgogICAKMjAwMi0wNC0xNyAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZQogICAKMjAwMi0wNC0xNyAwNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBtb3ZlIG5zTW9kdWxlVGFibGUgaW50byBEYXZlJ3Mgc3RydWN0dXJlLgogICAKMjAwMi0wNC0xNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcFRDUElQdjZEb21haW4uaCwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbnMgb2YgRG9tYWluIG9iamVjdHMgKGNvbnN0IC0+IGV4dGVybikKICAgCjIwMDItMDQtMTcgMDY6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIHNubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCBzbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcKOgoKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBkYXRhCiAgIAoyMDAyLTA0LTE3IDAzOjAxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSByZXBvcnRlZCBkZWZhdWx0IHNldHRpbmdzIGZvciBzeXNvaWQgJiBub3RpZmljYXRpb24gT0lEcwogICBiYWNrIGludG8gbGluZSB3aXRoIHdoYXQgd2UgYWN0dWFsbHkgdXNlIChpLmUuIHRoZSB1Y2RhdmlzIE9JRHMpLgogICAKICAgUW46ICBEbyB3ZSB3YW50IHRvIHN3aXRjaCB0byB1c2luZyB0aGUgbmV0LXNubXAgZXF1aXZhbGVudCBzeXNPSURzPwogICBRbjogIFdoYXQgYWJvdXQgZGVmaW5pbmcgbmV0LXNubXAgbm90aWZpY2F0aW9ucz8KICAgCjIwMDItMDQtMTcgMDI6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IC0td2l0aC1lbnRlcnByaXNlLXN5c29pZCBhbmQgLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCwKICAgYW5kIHRyeSB0byBjbGFyaWZ5IHRoYXQgdGhlc2UgYXJlIE9JRHMsIHdoaWxlIC0td2l0aC1lbnRlcnByaXNlLW9pZAogICBpcyBhY3R1YWxseSBqdXN0IHRoZSBlbnRlcnByaXNlICpudW1iZXIqCiAgIAogICBRbjogIHNob3VsZCB3ZSBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gdG8gcmVmbGVjdCB0aGlzPwogICAKMjAwMi0wNC0xNiAxMDowNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUzICkKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGRlbGV0ZSB0b3AgZGlzY2xhaW1lcnMKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMDQtMTYgMTA6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWlzYyBidWcgZml4ZXMKICAgCjIwMDItMDQtMTYgMDg6MTkgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBjb25jZXJuaW5nIHRoZSAnbGliY3J5cHRvJyBSUE0gZGVwZW5kZW5jeS4KICAgCjIwMDItMDQtMTYgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wNC0xNiAwNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGEgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIHRvZG8gY29tbWVudAogICAKMjAwMi0wNC0xNiAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgSSBndWVzcyBJIGZvcmdvdCB0byBydW4gYXV0b2NvbmYKICAgCjIwMDItMDQtMTUgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogc25tcGNvbmYsIE1ha2VmaWxlLmluOgoKICAgbW92ZSBzbm1wY29uZiBkYXRhIGRpcmVjdG9yaWVzIHRvIGRpZmZlcmVudCBuYW1lcyB0byBhdm9pZCBjb25mdXNpb24KICAgCjIwMDItMDQtMTUgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9hdXRob3B0cywKICAgc25tcC1kYXRhL2RlYnVnZ2luZywgc25tcC1kYXRhL21pYnMsIHNubXAtZGF0YS9vdXRwdXQKLCBzbm1wZC1kYXRhL2FjbCwgc25tcGQtZGF0YS9iYXNpY19zZXR1cCwKICAgc25tcGQtZGF0YS9leHRlbmRpbmcsIHNubXBkLWRhdGEvbW9uaXRvciwKICAgc25tcGQtZGF0YS9vcGVyYXRpb24sIHNubXBkLWRhdGEvc3lzdGVtLAogICBzbm1wZC1kYXRhL3RyYXBzaW5rcywgc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywKICAgc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZToKCiAgIGRhdGEgZmlsZSBtb3ZpbmcKICAgCjIwMDItMDQtMTIgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgTWFzc2l2ZSBjbGVhbnVwIGVmZm9ydC4gIEl0IHNob3VsZCBub3cgcmVzcGVjdCBvcmRlcmluZyBpbiB0aGUKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBmaWxlcyBhcyB3ZWxsLgogICAKMjAwMi0wNC0xMiAxMzowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGZpeCBmb3Igb3ZlcnplYWxvdXMgcGVybCBzY3JpcHQKICAgCjIwMDItMDQtMTIgMDk6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvcHkgdWNkIHBlcnNpc2VudCBkaXJlY3RvcnkgdG8gbmV0LXNubXAgKHByb21wdHMsIGZsYWdzIGFuZCBvdGhlciBmdW4pCiAgIAoyMDAyLTA0LTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgdHJhcHRvZW1haWwKICAgCjIwMDItMDQtMTIgMDc6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIHJlbW92ZSB0cmFwbm90aWYKICAgCjIwMDItMDQtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHJzbm1wOgoKICAgcmVtb3ZlIHJzbm1wLCB3aGljaCBpcyB2ZXJ5IHZlcnkgb2xkIGFuZCBvdXQgb2YgZGF0ZQogICAKMjAwMi0wNC0xMiAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIG1pYjJjLjEuZGVmOgoKICAgQSBtYW51YWwgcGFnZSBmb3IgbWliMmMgKGhlbHAsIEknbSB0dXJuaW5nIGludG8gRGF2ZSkKICAgCjIwMDItMDQtMTIgMDc6MjggIGhhcmRha2VyCgogICAqIGRvdGdkYmluaXQ6CgogICBhIGdkYiBpbml0aWFsaXphdGlvbiBmaWxlIHdpdGggaGVscGZ1bCBmdW5jdGlvbnMKICAgCjIwMDItMDQtMTIgMDI6NDIgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQWRkICdzbm1wY29uZicgYW5kICdtaWIyYycgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyB0byBpbnN0YWxsLgogICAKICAgSSd2ZSBsZWZ0ICd0cmFwdG9lbWFpbCcgb2ZmIHRoaXMgbGlzdCwgc2luY2UgaXQgc2F5cyBpdCdzIG5vdCBpbnRlbmRlZAogICBhcyBhIGRpcmVjdGx5IHVzZXItaW52b2tlZCBjb21tYW5kLCBzbyBwcm9iYWJseSBvdWdodCBub3QgdG8gYmUgaW5zdGFsbGVkCiAgIGludG8gYSBiaW5hcnkgZGlyZWN0b3J5LgogICAKMjAwMi0wNC0xMiAwMjo0MSAgZHRzMTIKCiAgICogbG9jYWwvcnNubXA6CgogICBGaXggdGhlIHBhdGggb2Ygc25tcHdhbGsgdG8gYmUgc29tZXRoaW5nIG1vcmUgcGxhdXNpYmxlLgogICAoSSdtIG5vdCBjb252aW5jZWQgYWJvdXQgdGhlIHZhbGlkaXR5IG9mIHRoYXQgaW5pdGlhbCAncnRvcG1pYicgT0lEIG1pbmQhKQogICAKMjAwMi0wNC0xMiAwMjozNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIEZpeCB0eXBvIGluIHJlZmVyZW5jZSB0byAnbWliMmMuaXRlcmF0ZS5jb25mJwogICAKMjAwMi0wNC0xMiAwMjozMyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtYWluIGxpYnJhcnkgYXMgJ2xpYnNubXAnIGlmIGNvbmZpZ3VyZWQgdXNpbmcgVUNEIGNvbXBhdGliaWxpdHkuCiAgIFRoaXMgc2hvdWxkIGhhbmRsZSB0aGUgcmVxdWlyZW1lbnRzIG9mIGFwcGxpY2F0aW9uIGNvbXBhdGliaWxpdHkuCiAgIEFnZW50IGxpYnJhcnkgY29tcGF0aWJpbGl0eSBpcyBsaWtlbHkgdG8gcHJvdmUgYSBoYXJkZXIgcHJvYmxlbQogICAoc2luY2UgdGhlcmUgYXJlIG5vdyB0aHJlZSBsaWJyYXJpZXMsIG5vdCBqdXN0IHR3by4uLikKICAgCjIwMDItMDQtMTEgMjI6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBzZXQgU05NUENPTkZQQVRIIGlmZiBbc2ljXSBub3Qgc2V0CiAgIAoyMDAyLTA0LTExIDIyOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJldHVybiBmcm9tIGluaXRNaWIgYmVmb3JlIGRvaW5nIGFueXRoaW5nLgogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgdHVybiBvZmYgY29tcGxpZXIgd2FybmluZ3MKICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgInNob3cgY29sdW1ucyBmcm9tIFRBQkxFIgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgbmV3IGRlbW8gc2NhbGFyOiB0aGUgc2xlZXBlci4gIChkYWggZGFoIGRhaCBkdW1tbW1tKQogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgaW5kZW50LgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy5oLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMKLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmg6CgogICBBZGQgYSBkZWxheWVkIGluc3RhbmNlIGV4YW1wbGUsIHNob3dpbmcgaG93IHRvIHJldHVybiBtaWIgcmVxdWVzdAogICByZXN1bHRzIGxhdGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5LgogICAKMjAwMi0wNC0xMSAyMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIHJlbW92ZSBsZWdhY3kgZXhhbXBsZS4KICAgCjIwMDItMDQtMTEgMjI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBjb21tZW50IGFib3V0IHBvc3NpYmx5IGZpeGluZyBpbmNsdXNpdmUgcmVxdWVzdHMgaW4gdGhlIGZ1dHVyZS4KICAgCjIwMDItMDQtMTEgMTc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIGNoYW5nZSBtb2R1a2VzLT4gbW9kdWxlcwogICAKMjAwMi0wNC0xMSAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHR1cm4gb2ZmIGRlYnVnZ2luZyB3aGVuIGNhbGxpbmcgbG9nZ2luZyBjYWxsYmFja3MKICAgCjIwMDItMDQtMTAgMTI6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggcGVybCBtb2R1bGUgaW4gbWFueSBtYW55IHBsYWNlcy4gIG1vc3QgdGVzdHMgbm93IHBhc3MuCiAgIAoyMDAyLTA0LTEwIDEyOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgZm9yY2Ugc2V0dGluZyB0byBhICJib2d1cyIgU05NUENPTkZQQVRILgogICAKMjAwMi0wNC0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgRXhwb3J0aW5nIGZ1bmN0aW9ucyBnb29kLiAgSW50ZXJuYWxpemluZyBiYWQuCiAgIAoyMDAyLTA0LTEwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICBzaWdoLgogICAKMjAwMi0wNC0xMCAwOToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wNC0xMCAwOToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIE1ha2UgdGhlIHBlcmwgbW9kdWxlIGNhbGwgaW5pdF9zbm1wKCkKICAgICAtIHRoaXMgaXMgYSBmYWlybHkgbWFqb3IgY2hhbmdlLCBpcyBpdCBub3cgd2lsbCByZWFkIC5jb25mIGZpbGVzLgogICAgIC0gbWFueSBwZW9wbGUgaGF2ZSBhc2tlZCBmb3IgdGhpcy4KICAgLSBtaXNjIGNsZWFuIHVwcy4KICAgCjIwMDItMDQtMTAgMDk6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRG9uJ3QgcmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIGZvciB0aGUgY29uc2l0dWVudCBzdWJ0YXJnZXRzIG9mICJtYWtlIGluc3RhbGwiCiAgIAoyMDAyLTA0LTEwIDA5OjA5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgYSBmZXcgdGhpbmdzLCBzZXBhcmF0ZWQgcGVybCBzdHVmZiBpbnRvIGl0J3Mgb3duIHNlY3Rpb24uCiAgIAoyMDAyLTA0LTEwIDA4OjQ2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSBoZWxwIG1lc3NhZ2UgZm9yIHRoZSBVQ0QgY29tcGF0YWJpbGl0eSBvcHRpb24gaW50byBsaW5lIHdpdGgKICAgd2hhdCdzIGFjdHVhbGx5IHJlY29nbmlzZWQuCiAgIAoyMDAyLTA0LTEwIDA3OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjaGFuZ2UgbGlidG9vbCB2ZXJzaW9uaW5nIHRvIHRoZWlyIHJlY29tbWVuZGVkIG1ldGhvZCBvZiBkb2luZyB0aGluZ3MKICAgKHdoaWNoIEkgaGF0ZSwgYnV0IGlzIHN0aWxsIGJldHRlciB0aGFuIHdoYXQgd2Ugd2VyZSBkb2luZywgSSBndWVzcykKICAgCjIwMDItMDQtMTAgMDc6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgQnJpbmcgdXNlIG9mIEJVSUxUU1VCRElSIHdpdGhpbiAnaW5zdGFsbGxvY2FsaGVhZGVycycgaW50byBsaW5lCiAgIHdpdGggdGhlIHByZWNlZGluZyBjb21tZW50LCBhbmQgYWN0dWFsIHVzYWdlLgogICAoaS5lLiBJTlNUQUxMQlVJTFRTVUJESVIgcmF0aGVyIHRoYW4gSU5DTFVERUJVSUxUU1VCRElSKQogICAKMjAwMi0wNC0xMCAwNTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR5cG8gaW4gc2VjdXJpdHktaW5jbHVkZSBoZWFkZXIgZGVzdGluYXRpb24gZGlyZWN0b3J5IHZhcmlhYmxlCiAgIAoyMDAyLTA0LTEwIDA1OjU1ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyBtaWIyYyBjb25mIGZpbGVzLgogICAKMjAwMi0wNC0xMCAwMTo1NSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDRzbm1wdjFub3N1Y2gsIFQwMTlzbm1wdjJjbm9zdWNoOgoKICAgVHdvIG5ldyB0ZXN0cyB0byBjaGVjayBoYW5kbGluZyBvZiBHRVRpbmcgbm9uLWV4aXN0YW50IGluc3RhbmNlcwogICAKMjAwMi0wNC0xMCAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQSBmaXggZm9yIFNOTVB2MSBlcnJvcnMgdGhhdCBkb2Vzbid0IGVuZCB1cCBicmVha2luZyBBZ2VudFggZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAyLTA0LTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBmcm9tIERhdmUgdG8gZml4IHYxIGVycm9yIHJlc3VsdHMuCiAgIAoyMDAyLTA0LTA4IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpeCBpbmNvcnJlY3QgbGVuZ3RoIHJldHVybiB2YWx1ZQogICAKMjAwMi0wNC0wOCAxODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICBkb24ndCBhbGxvdyBuby1jb25maWd1cmF0aW9uIGFjY2VzcyBhbnltb3JlLgogICAKMjAwMi0wNC0wOCAxNzo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXB1c20uYwo6CgogICBtb3JlIHVuY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDItMDQtMDggMTc6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgc2l6ZV90IGV4dGVybnMgZm9yIGV4cG9ydGVkIG9pZHMKICAgCjIwMDItMDQtMDggMTc6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHN0YXRlbWVudHMgdGhhdCBhY2NpZGVudGFsbHkgYmVjYW1lIHBlcm1hbmVudC4KICAgCjIwMDItMDQtMDggMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBfdHJhbnNwb3J0LmM6CgogICBkZWZpbmUgbGVuZ3RoIHNpemVfdCdzIGZvciBvaWQgdmFyaWFibGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBzdXBwb3J0ICJudWxsIiB0eXBlcy4KICAgCjIwMDItMDQtMDggMTY6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIG5vdGlmaWNhdGlvbiBsb2cgbWliIHN1cHBvcnQgYmVmb3JlIC1IIHVzYWdlLgogICAKMjAwMi0wNC0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpeCBhIGZldyB0aGluZ3MgYW5kIG1ha2Ugc3ViaGFuZGxlcnMgbm90IGFibGUgdG8gdGVsbCB0aGVyZSB3ZXJlIG1vcmUgcmVxdWVzdHMuCiAgIAoyMDAyLTA0LTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgQSBjby13b3JrZXIgcG9pbnRlZCBvdXQgdGhhdCB0aGUgSU5TVEFMTCBzY3JpcHQgc3RpbGwgc2FpZCB0byBlZGl0IGNvbmZpZy5oCiAgIAoyMDAyLTA0LTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHVuc3RhdGljLWl6ZSBhIGZldyBvaWRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBleHRlcm5hbAogICAKMjAwMi0wNC0wOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYywgc25tcF9hcGkuYywgc25tcF90cmFuc3BvcnQuYwosIHNubXB1c20uYzoKCiAgIENoYW5nZSBjb25zdCBvaWQgZGVjbGFyYXRpb25zIGludG8gc3RhdGljIG9uZXMgc2luY2Ugc2hhcmVkIGxpYnJhcmllcwogICBoYXZlIGEgcHJvYmxlbSB3aXRoIGluaXRpYWxpemluZyB0aGVtIG9uIGxpbnV4IHN5c3RlbXMgYXQgbGVhc3QuCiAgIAoyMDAyLTA0LTA4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbmltYWwgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdnaW5nIGFuZCB0aGUgaW5qZWN0SGFuZGxlciB0b2tlbgogICAKMjAwMi0wNC0wNSAxNDozMiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcHRyYXBkLjguZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQiBzdXBwb3J0LgogICAKMjAwMi0wNC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBjb250ZXh0IG5hbWUgc3VwcG9ydCBpbiBwcm94eSBjb2RlLgogICAKMjAwMi0wNC0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZGlzbWFuIGV2ZW50IG1pYiBzdXBwb3J0IGZvciBzZW5kaW5nIHRyYXBzIHZpYSBtb25pdG9yZWQgT0lEcy4KICAgCjIwMDItMDQtMDUgMTA6MTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcHV0IHRyYXAgY29uZmlnIGludG8gaXRzIG93biBzZWN0aW9uLgogICBkb2N1bWVudCB0aGUgIm92ZXJyaWRlIiB0b2tlbi4KICAgCjIwMDItMDQtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBjaGFuZ2UgZGVmYXVsdCBjb250ZXh0IHRvIGFuIGVtcHR5IHN0cmluZwogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuNSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgTWFrZSBhbiBleGFtcGxlIGRhdGFzZXQgdGFibGUgdG8gaG9sZCBhbmQgc3RvcmUgZGF0YSBpbiAoYWRtaXR0ZWRseQogICB1c2VsZXNzIGRhdGEgZnJvbSBhIG5ldHdvcmsgbWFuYWdlbWVudCBwb2ludCBvZiB2aWV3LCBidXQgaXQncyBhbiBleGFtcGxlKS4KICAgCjIwMDItMDQtMDIgMjI6MTIgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gZnJvbSBzdWJkaXIgYnVpbGQgY2FzZS4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcyBmcm9tIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmggYW5kIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuaCBmcm9tIHRoZSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGNyZWF0ZSBzb21lIGluc3RhbGwgZnJvbSBidWlsdCBoZWFkZXIgcnVsZXMuCiAgIAoyMDAyLTA0LTAyIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgcmVtb3ZlIGRlbGV0ZWQgYXJyYXktYXV0byBmcm9tIC5jb25mIGluc3RhbGwvcmVmZXJlbmNlIGxpc3RzCiAgIAoyMDAyLTA0LTAyIDE1OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIHVjZC1zbm1wL3JlZ2lzdHJ5Lmg6CgogICByZW1vdmUgdGhlIHJlZ2lzdHJ5IG1vZHVsZSwgYXMgaXQncyBvYnNvbGV0ZSBkdWUgdG8gY29udGV4dHMuICBVc2UgdGhlIG5zTW9kdWxlVGFibGUgaW5zdGVhZAogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIChWNC0yLXBhdGNoZXMuNyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY0LTItcGF0Y2hlcy44KSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMiAwNzowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgY2hhciBmb3IgTlVMTCBiZWZvcmUgc2V0dGluZyB0bzoKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOSksIGNtdV9jb21wYXQuYywKICAgc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI5IDE1OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzICYgdXBkYXRlcwogICAKMjAwMi0wMy0yOSAxMDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhZGQgY29tbWVudAogICAKMjAwMi0wMy0yOSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBhIGFsbG93X2NyZWF0aW9uIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTI5IDA4OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2UgbmV0LXNubXAtY29uZmlnIGV4ZWN1dGFibGUgYWZ0ZXIgaXQncyBidWlsdAogICAKMjAwMi0wMy0yOSAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzZXRTZXJpYWxOby5jLCBzZXRTZXJpYWxOby5oOgoKICAgb3Bwcy4gIGZvcmdvdCB0byBjaGVjayB0aGUgc2V0U2VyaWFsIGNvZGUgaW4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNCksIHBhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFY0LTItcGF0Y2hlcy40KSwgaHJfZmlsZXN5cy5jCjoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvaW50ZXJmYWNlcy5jCiwgbWliSUkvaXBBZGRyLmM6CgogICBBcHBseSBuZXRic2QgZml4IHBhdGNoICM1Mjk3MzMKICAgCjIwMDItMDMtMjggMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjUgIGR0czEyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIHJlYWRfY29uZmlnLjMuZGVmLAogICBzbm1wX2FwaS4zLmRlZjoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlLgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbmFtZS9wcmVmaXggZnVuY3Rpb25zOyBhZGQgZG94eWdlbiBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTAzLTI4IDEzOjAwICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGRlZmluZSBmb3IgZXhjbHVkaW5nIHN0dWZmIChET1hZR0VOX1NIT1VMRF9TS0lQX1RISVMpCiAgIAoyMDAyLTAzLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHNldFNlcmlhbE5vCiAgIAoyMDAyLTAzLTI4IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIGZpeCBhIG5ldmVyLXNlZW4tYnV0LXZlcnktb2xkLWJ1ZyB1c2luZyB0aGUgd3JvbmcgZGVmYXVsdF9zdG9yZSB0b2tlbi4KICAgCjIwMDItMDMtMjggMTI6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9ubHkgc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBzdHlsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgd3JhcHBpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgdmVyc2lvbiBudW1iZXIKICAgCjIwMDItMDMtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGJhY2sgb3V0IGNoYW5nZSBmcm9tIHZlcnNpb24gMS42NSB1bnRpbCBiZXR0ZXIgc29sdXRpb24gY2FuIGJlIGZvdW5kOwogICBidWcgIzUzNTAyOQogICAKMjAwMi0wMy0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZXR1cm4gc3BlY2lmaWMgcmVzdWx0IGNvZGUgZm9yIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGlmIGF2YWlsYWJsZS4KICAgCjIwMDItMDMtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCjoKCiAgIHBlcmwgdHlwbwogICAKMjAwMi0wMy0yNyAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGRlbGV0ZSBvbGQsIHVudXNlZCBjb25mIGZpbGUKICAgCjIwMDItMDMtMjcgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMsIG5vdGlmaWNhdGlvbl9sb2cuaCwKICAgc25tcHRyYXBkLmM6CgogICBhZGQgImRvbnRSZXRhaW5Mb2dzIiB0b2tlbiB0byBzbm1wdHJhcGQuY29uZiB0byBub3QgZW5hYmxlIHRoZQogICBub3RpZmljYXRpb24gbG9nIG1pYi4KICAgCjIwMDItMDMtMjcgMDE6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gUmVhbGx5IGZpeCB0aGUgInVuZG8gZmFpbGVkIiBwcm9ibGVtLiAgSUUsIG5vdCBqdXN0IGFueSBvbGQgZXJyb3IKICAgICB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIG1lc3NhZ2UgdG8gZ2V0IHNlbnQgYmFjay4gIE9ubHkgdmFyYmluZHMKICAgICB3aXRoIGFuIHVuZG8gZmFpbGVkIGVycm9yIGNvZGUgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCByZXN1bHQuCiAgICAgdW5kbyBmYWlsZWQgcmVzdWx0cyBkbyBzdGlsbCBzdXBlcnNlZGUgYWxsIG90aGVyIGVycm9yIGNvZGVzLAogICAgIGhvd2V2ZXIsIHdoaWNoIGlzIHdoYXQgdGhlIG9yaWdpbmFsIHByb2JsZW0gd2FzIGFsbCBhYm91dC4gIFdlIHN0aWxsCiAgICAgaGF2ZSB0byBkZXBlbmQgb24gdGhlIG1vZHVsZXMgcmV0dXJuaW5nIHRoZSByaWdodCBlcnJvciBjb2RlIChidXQKICAgICB0aGF0J3MgdGhlaXIgZmF1bHQgaWYgdGhleSBkb24ndCkuCiAgIC0gbWlzYyBjbGVhbnVwcyBhbmQgcmVuYW1lcwogICAKMjAwMi0wMy0yNiAyMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIENyYWlnIFNldGVyYQogICAKMjAwMi0wMy0yNiAxNDowNyAgcnN0b3J5CgogICAqIFRPRE86CgogICBhZGQgY3JlYXRpbmcgc3JjIHJwbSBzcGVjIGZpbGUKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlza2lvLmMgKFY0LTItcGF0Y2hlcy4yKSwgZGlza2lvLmMKOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NTggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBmaXggZm9yIG90aGVyLWRpciBidWlsZHMKICAgCjIwMDItMDMtMjYgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGluZm8gaW4gc3BsaXRfc3VidHJlZQogICAKMjAwMi0wMy0yNiAwNzo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bMCwwXSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls5LDldKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo0MSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgbGlzdCBvZiBhZ2VudCBsaWJyYXJpZXMsIHdoZW4gcnVubmluZyBvbiBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjQtMi1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDMtMjUgMTQ6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgdXNlIGVtYWNzIHRvIGZpeCBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgcGVybCB0byBzZWFyY2ggYW5kIHJlcGxhY2UgcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMjUgMDg6NDMgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIub3B0LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucyBvZiAnZ2V0b3B0LmMnIGFuZCAnc25tcF9wYXJzZV9hcmdzLmMnIGluCiAgIGVhY2ggaW5kaXZpZHVhbCBhcHBsaWNhdGlvbiBwcm9qZWN0LiAgVGhlc2Ugcm91dGluZXMgYXJlIGluY2x1ZGVkIHdpdGhpbgogICB0aGUgbGlicmFyaWVzLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIHVzZSB0aG9zZS4KICAgCjIwMDItMDMtMjUgMDU6NTMgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oLCB3aW4zMi5vcHQsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIEdvdGNoYSEgIEV2ZXJ5dGhpbmcgbm93IGJ1aWxkcyAobW9yZS1vci1sZXNzKSBjbGVhbmx5IHVuZGVyIFZpc3VhbCBDKysuCiAgIFlvdSBzdGlsbCBoYXZlIHRvIHVzZSB0aGUgIkJhdGNoIEJ1aWxkIiBtZWNoYW5pc20gKG9yIGVsc2UgYmUgY2FyZWZ1bCB3aGljaAogICBvZiBsaWJzbm1wL2xpYnNubXBfZGxsIHlvdSBidWlsZCBpbiBlYWNoIG9mIHRoZSBEZWJ1ZyAmIFJlbGVhc2UgbW9kZXMpLAogICBhbmQgeW91IG5lZWQgdG8gYnVpbGQgdHdpY2UgaW4gb3JkZXIgdG8gZ2V0IGVuY29kZV9rZXljaGFuZ2UgbGlua2luZy4KICAgQnV0IHRoaW5ncyAqZG8qIGZpbmFsbHkgYnVpbGQuCiAgIAoyMDAyLTAzLTI0IDA1OjIxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjMgMDk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICByZWFsbHkgZml4IHNubXBpbmZvcm0gaW5zdGFsbHMgdGhpcyB0aW1lLgogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaW5hbCBjbGVhbnVwcyBvZiBub3RpZmljYXRpb24gbG9nIHN1cHBvcnQKICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIG9mIHNubXBpbmZvcm0KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSZW5hbWUgc3R1ZmYuICBGaXggc3R1ZmYuICBZb3Uga25vdywgbm9ybWFsIHJvdXRpbmUuCiAgIAoyMDAyLTAzLTIyIDIyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB2ZXJzaW9uIGZpbGUgbG9jYXRpb24gZm9yIG5vbi1zb3VyY2VkaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTIyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZvcmdvdCB0byBjb21taXQgYSBwcm90b3R5cGUuCiAgIAoyMDAyLTAzLTIyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgcmVnaXN0ZXJfbWliX2NvbnRleHQyIC0+IG5ldHNubXBfcmVnaXN0ZXJfbWliIChhbmQgbWFya2VkIGFzIGludGVybmFsKQogICAKMjAwMi0wMy0yMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICB1c2UgbmV3IGVycm9yIGxvZ2dpbmcgYXBpIHdoZW4gIXJvb3QKICAgCjIwMDItMDMtMjIgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVuYWJsZSBsb2dnaW5nIHNlc3Npb24gZXJyb3JzIHRvIHNvbWUgbG9nIGxldmVsIG90aGVyIHRoYW4gRVJSLgogICAKMjAwMi0wMy0yMiAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICBiZXR0ZXIgYWdlbnR4IGNvbm5lY3Rpb24gcmVsYXRlZCBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMjIgMDk6MzUgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMi5vcHQsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHNubXBkL3NubXBkLmRzcDoKCiAgIFNsb3dseSBtYWtpbmcgcHJvZ3Jlc3Mgb24gNS4wIFdpbmRvd3MgYnVpbGQuCiAgIEV2ZXJ5dGhpbmcgbm93IGNvbXBpbGVzLCB0aG91Z2ggdGhlIFJlbGVhc2UgdmVyc2lvbiBkb2Vzbid0IGxpbmsuCiAgICAgKGNvbXBsYWlucyBhYm91dCBhc3NvcnRlZCB1bmtub3duIHJvdXRpbmVzIHRoYXQgYXJlIHRoZXJlLAogICAgICBzdGFyaW5nIGl0IGluIHRoZSBmYWNlLiAgR3JyciEhISEpCiAgIAoyMDAyLTAzLTIyIDA4OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIG5vdCAidHdlYWsiIHJhbmdlX3N1YmlkIHdoZW4gZGVhbGluZyB3aXRoIGNvbXByZXNzZWQgT0lEcy4KICAgICAgIFRoYW5rcyB0byBDcmFpZyBTZXRlcmEgZm9yIHBvaW50aW5nIG91dCB0aGlzIGRldmlhdGlvbiBmcm9tIFJGQwogICAgICAgMjc0MS4KICAgCjIwMDItMDMtMjIgMDc6NTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL29pZF9hcnJheS5jCiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBWYXJpb3VzIG1pbm9yIGluY29uc2lzdGVuY2llcyAobW9zdGx5IHRvIGRvIHdpdGggc3VidGxlIHZhcmlhdGlvbnMgaW4gdHlwZXMpCiAgIAoyMDAyLTAzLTIyIDA3OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTAzLTIyIDA3OjI5ICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDoKCiAgIEJyaW5nIFdpbmRvd3MgdmVyc2lvbnMgb2YgImF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIiBoZWFkZXIgZmlsZXMgdXAgdG8gZGF0ZS4KICAgCjIwMDItMDMtMjIgMDI6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRvbid0IHVzZSAicmVnIiBhcyBhIHBhcmFtZXRlciBuYW1lIGluIGtlcm5lbF9zdW5vczVfY2FjaGVfYWdlKCkKICAgICAgIGFzIC91c3IvaW5jbHVkZS9pbmV0L2NvbW1vbi5oIHNheXM6CiAgICAgICAjZGVmaW5lIHJlZyByZWdpc3RlcgogICAgICAgKCEpIHdoaWNoIHRoZSBjb21waWxlciB0aGVuIGJhcmZzIG9uLiAgUmVwb3J0ZWQgYXMgYnVnICM1MzMzMzYgYnkKICAgICAgIEFub255bW91cy4KICAgCjIwMDItMDMtMjEgMDk6MjQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gc25tcF9jb25maWcqIC0+IG5ldHNubXBfY29uZmlnIChmb3IgbmV3IGZ1bmN0aW9ucyBvbmx5KQogICAtIGZpeCBidWcgd2hlcmUgc25tcF9jb25maWcoKSBzdHJpbmdzIHdlcmUgZ2V0dGluZyBwYXJzZWQgdHdpY2UuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgd3JhcCBhZ2VudHggc3R1ZmYgaW4gYSBzdGlsbCB1bnVzZWQgdmFyaWFibGUgKGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggb2lkIHBhcnNpbmcuCiAgIAoyMDAyLTAzLTIxIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24vYWxhcm0uYywgUm1vbi9zdGF0aXN0aWNzLmMsCiAgIG1pYklJL2F0LmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIxIDA2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjAgMjA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBhIGxpc3Qgb2YgcmVnaXN0ZXJlZCB0ZXh0IGVudW1zIHRvIEFTTl8qIHZhbHVlcy4KICAgICAoSW4gcHJvYmFibHkgdGhlIHdyb25nIHBsYWNlLikKICAgCjIwMDItMDMtMjAgMjA6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oOgoKICAgY3JlYXRlIGEgbmV3ICJvdmVycmlkZSIgZGlyZWN0aXZlIHRvIGZvcmNlIGFuIE9JRCB0byBhIHBhcnRpY3VsYXIgdmFsdWUKICAgLSBub3QgZmluaXNoZWQuICBJdCdzIGRlc2lnbmVkIHRvIGRvIHJlYWQtd3JpdGUgYXMgd2VsbCwgYnV0IGRvZXNuJ3QuCiAgIAoyMDAyLTAzLTIwIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjaGVjayBmb3IgaW5jbHVzaXZlCiAgIAoyMDAyLTAzLTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIGluY2x1ZGUgbmV3IGRlbGV0ZS9yZW1vdmUgYnJlYWtkb3duIEFQSXMKICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQVBJIGNoYW5nZS4KICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgc29tZSAidGhpcyB3aWxsIGNoYW5nZSIgZWFybHkgcm93IHN0YXR1cyBpbXBsZW1lbnRhdGlvbi4KICAgIC0gKHRoaXMgd2lsbCBtb3ZlIHRvIGEgc2VwYXJhdGUgaGFuZGxlcikKICAgCjIwMDItMDMtMjAgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcG9pbnRlciBjaGVja2luZyBhZ2FpbnN0IGlsbGVnYWwgYWRkcyAoaWUsIHNob3VsZG4ndCBoYXBwZW4gYnV0IGNoZWNrIGFueXdheSkKICAgCjIwMDItMDMtMjAgMDg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBPaywgSSBtYWtlIG1pc3Rha2VzLiAgSSBhZG1pdCBpdC4gIEl0IHJlYWxseSBzaG91bGQgaGF2ZSBiZWVuIGEgTlVMTC4KICAgCjIwMDItMDMtMjAgMDg6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wMy0yMCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgc2VwYXJhdGUgb3V0IGRlbGV0ZS9yZW1vdmUgcm93IGZ1bmN0aW9uYWxpdHkKICAgCjIwMDItMDMtMjAgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIHN5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMjAgMDY6MjcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlLCBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG1hbnkgbWFueSAtVCBmbGFncyBmb3IgZGVmaW5pbmcgdHlwZXMuCiAgIAoyMDAyLTAzLTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZm9yY2Ugc2V0dGluZyBvZiAnIXJvb3QnIGZsYWcgc28gdGhhdCBpdCB3aWxsIHJ1biBmb3Igbm9uLXByaXZpbGVnZWQKICAgdXNlcnMgb3Igd2hlbiBhbiBhZ2VudHggbWFzdGVyIHNpbXBseSBoYXMgbmV2ZXIgZXhpc3RlZC4KICAgCjIwMDItMDMtMTkgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gYWxsb3cgdGFibGVzIHRvIGJlIG1hcmtlZCB3aGV0aGVyIHRoZXkgc2hvdWxkIHN1cHBvcnQgY3JlYXRpb24gb3Igbm90LgogICAtIGJ1ZyBmaXhlcwogICAKMjAwMi0wMy0xOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGhlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBtaWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMKOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIHBlcmwvYWdlbnQvYWdlbnQueHMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIHJlbmFtZWQgYSBmZXcgYmFkbHkgbmFtZWQgZnVuY3Rpb25zIChuZXRzbm1wXyBhcHBlYXJlZCB0d2ljZSkuCiAgIC0gaW1wbGVtZW50ZWQgdGhlIGJlZ2lubmluZyBvZiBjcmVhdGlvbiBzdXBwb3J0IGZvciBkYXRhc2V0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFwcGFyZW50bHkgSSByYW4gYXV0b2NvbmYgZWFybGllciBhbmQgbWlzc2VkIGNoZWNraW5nIGluIHRoZSByZXN1bHRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBhZGQgLW5mY2EKICAgCjIwMDItMDMtMTcgMTY6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIFNldCBkZWZhdWx0IHBvcnQgdG8gMTYyLgogICAKMjAwMi0wMy0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgaW1wcm92ZWQgZm9ybWF0dGluZyBzdHJpbmdzIHNob3dpbmcgYm90aCB0cmFuc3BvcnQgdHlwZSBhbmQgcG9ydCBudW1iZXIuCiAgIAoyMDAyLTAzLTEzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBtaXNzaW5nICJpbnN0YWxsc3ViZGlycyIgdGFyZ2V0IG1pc3NpbmcgKHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFKQogICAKMjAwMi0wMy0xMyAyMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jcmVhdGUtc25tcHYzLXVzZXIgdG8gYXV0b21hdGUgYWRkaW5nIGEgdjMgdXNlciB0byBib3RoIHRoZSB1c20KICAgYW5kIHZhY20gdGFibGVzIChieSBhZGRpbmcgbGluZXMgdG8gYm90aCB0aGUgcGVyc2lzdGVudCBhbmQgbm9ybWFsCiAgIGNvbmYgZmlsZXMpLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgYnVnIGZpeCBmb3IgcHJlLXByb2Nlc3NlZCByZXF1ZXN0cy4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICAtIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYWN0dWFsbHkgaW5zdGFsbHMgaGVhZGVycyAoYXMgb3Bwb3NlZAogICAgIHRvIGFsd2F5cywgd2hpY2ggaXMgd2hhdCBpdCB1c2VkIHRvIGRvKS4KICAgLSBhZGQgYWdlbnRfbWlicyB0byBjb25maWd1cmUgZGVmYXVsdCBtaWIgbW9kdWxlcyBhbmQgZG9jdW1lbnQuCiAgIC0gY2hhbmdlIGhlbHAgZG9jdW1lbnRhdGlvbiBhIGJpdCBmb3IgdGhlIG1pYiBtb2R1bGVzLgogICAtIGFkZCBhIGZvcmNlZCBkZXBlbmRlbmN5IGZvciBtaWJfbW9kdWxlcy5sbwogICAKMjAwMi0wMy0xMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaDoKCiAgIG9wcHMuICBkdXBsaWNhdGVzIGV4aXN0aW5nIGFnZW50X21pYnMuaAogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0CiAgIChWNC0yLXBhdGNoZXMuWzEsMSwxLDEsMSw5XSksIFVDRC1ERU1PLU1JQi50eHQsCiAgIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LAogICBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBBZGRlZCBhIG5zTW9kdWxlVGFibGUgdGFibGUgd2hpY2ggcmVwbGFjZXMgdGhlIG9sZGVyIG1yVGFibGUuCiAgIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgaXRlbXMgd2l0aGluIHRoZSBNSUIKICAgdHJlZSBqdXN0IGxpa2UgdGhlIG1yVGFibGUgd2FzLCBidXQgd2l0aCBzdXBwb3J0IGZvciBjb250ZXh0cyBhbmQgZm9yCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIHdpdGggZGlmZmVyZW50IHByaW9yaXRpZXMuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAoVjQtMi1wYXRjaGVzLjQpLCB0b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgdW5uZWVkZWQgZGVidWcgc3RhdGVtZW50CiAgIAoyMDAyLTAzLTEzIDE0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGxvY2FsIHZhcmlhYmxlIG5hbWUgYnVmZmVycyBieSBkZWZhdWx0IHdoZW4gYnVpbGRpbmcgb2lkIHNlZ21lbnRzLgogICAKMjAwMi0wMy0xMyAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLyogc3RvcCB3YXRlciBmcm9tIGZsb3dpbmcgdGhyb3VnaCBkYW0gKi8KICAgZmluZ2VyLT5pbnNlcnQoImhvbGUiKQogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjE6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIGZpeCBoZWFkZXJzLgogICAKMjAwMi0wMy0xMiAyMToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZG9uJ3QgZm9ybWF0IGNvbW1lbnRzIG9wdGlvbgogICAKMjAwMi0wMy0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIHRhYmxlcyB3aXRoIGhvbGVzLgogICAKMjAwMi0wMy0xMiAyMTowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIG1vdmUgZGVmYXVsdCBtaWJzIHRvIHRoZWlyIG93biB2YXJpYWJsZS4KICAgCjIwMDItMDMtMTIgMjE6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvYWdlbnQueHMsIGFnZW50L3R5cGVtYXA6CgogICAtIHVzZSBuZXQtc25tcC1jb25maWcgdG8gZmlndXJlIHRoaW5ncyBvdXQuCiAgIC0gdXBkYXRlIGhlYWRlcnMgYW5kIHR5cGVpbmZvIGZvciByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogRkFRMkhUTUwsIFJFQURNRS5taWIyYywgbWliMmMsIHRrbWliCiwgbWliMmMuYXJyYXktYXV0by5jb25mLCBtaWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgcmVtb3ZlIG9ic29sZXRlIG1pYjJjLmNvbmYgZmlsZQogICAKMjAwMi0wMy0xMiAxODoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb24ndCBmb3JnZXQgdG8gc2V0IHJvdy0+bmV4dC0+cHJldiB0byBzb21ldGhpbmcgd2hlbiByZW1vdmluZyByb3cuCiAgIAoyMDAyLTAzLTEyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggYWdlbnR4IGluY2x1c2l2ZSBzZWFyY2hlcyB0byBpZ25vcmUgZ2V0IGVycm9ycy4KICAgCjIwMDItMDMtMTIgMTc6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBzb21lIG1pbmltYWwgZHVtcCBkZWJ1Z2dpbmcuCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2FzdCAtMSB0byB1X2NoYXIgc28gdGVzdCBkb2Vzbid0IGFsd2F5cyBmYWlsIChmaXggY29tcGlsZXIgd2FybmluZykKICAgCjIwMDItMDMtMTEgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHRyZWF0IChpbGxlZ2FsKSBlcnJvcnMgZnJvbSBzdWJhZ2VudHMgc3BlY2lhbGx5IGZvciBnZXRuZXh0IGNhc2VzLgogICAKMjAwMi0wMy0xMSAxMzo0MSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG91ciBzbm1wIGxpYnJhcmllcyB0byBvdXRwdXQKICAgCjIwMDItMDMtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiB0YWJsZV9kYXRhLmgsIHRhYmxlX2RhdGFzZXQuaAo6CgogICBkZWxldGUvcmVtb3ZlIHN1cHBvcnQgaGVhZGVyIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTExIDA5OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGFsbG93IGNvbXBpbGF0aW9uIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1UQ1AKICAgCjIwMDItMDMtMTEgMDg6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBmaXhlcyBmb3IgLS1kaXNhYmxlLWRlYnVnZ2luZwogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA2OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgY29ycmVjdCBzZXNzaW9uIElEIHdoZW4gdGFsa2luZyB0byBzdWJhZ2VudHMuICBUaGFua3MgdG8gQ3JhaWcKICAgICAgIFNldGVyYSBmb3IgdGhpcyBmaXguCiAgIAoyMDAyLTAzLTExIDA1OjIwICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIGZyZWVzLCBldmVuIHRob3VnaCBpdCdzIHN1cHBvc2VkIHRvIGJlIG9rIGFjY29yZGluZyB0byBhbnNpLgogICAKMjAwMi0wMy0xMSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgbWF4aW11bSBsb2dnZWQgY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTExIDAwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgLSBudWxsIGNoZWNrCiAgIC0gZG9jIGNvbW1lbnRzLgogICAKMjAwMi0wMy0xMSAwMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAKMjAwMi0wMy0xMSAwMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXh0IGhhbmRsZXJzIChvcHBzKS4KICAgCjIwMDItMDMtMTAgMTQ6MTEgIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZpeCBvbmUgc3ByaW50X3ZhcmlhYmxlID0+IHNucHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDMtMTAgMTQ6MDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBBZGQgc25wcmludF8qIGZ1bmN0aW9ucyB0aGF0IHdlcmUgc3ByaW50XyogaW4gdWNkLXNubXAgNAogICAKMjAwMi0wMy0xMCAxNDowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXggY29tcGlsYXRpb24gd2hlbiBJUFgtdHJhbnNwb3J0IGVuYWJsZWQKICAgCjIwMDItMDMtMTAgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgRml4IGNvbXBpbGF0aW9uIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMy0wOCAyMjoyNiAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUyICkKICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1pc2MgY2hhbmdlcy4KICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTA4IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZCB0byBkZWFsIHdpdGggU2VuZG1haWwgOC4xMiBxdWV1ZWdyb3Vwcy4KICAgCjIwMDItMDMtMDggMTY6NTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIGNzZXRlIHRvIGZpeCB3aW4zMiBidWlsZHMKICAgCjIwMDItMDMtMDggMTY6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIENhbGxiYWNrIHRyYW5zcG9ydCB0byBjeWd3aW4KICAgCjIwMDItMDMtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHJtb24gc3VwcG9ydC4KICAgCjIwMDItMDMtMDggMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmVtb3ZlIG9sZCBhbiB1bnVzZWQgcG9pbnRlcgogICAKMjAwMi0wMy0wOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLAogICBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmYsIHBlcmwvU05NUC9TTk1QLnhzLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc3RydWN0IHNubXBfc2Vzc2lvbiB0eXBlZGVmZWQgdG8gbmV0c25tcF9zZXNzaW9uLiAgJiBwZHUuICYgLi4uCiAgIAoyMDAyLTAzLTA4IDE0OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldF9zeW1ib2wgLT4gZ2V0X3RyZWUKICAgCjIwMDItMDMtMDggMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMsIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cwosIGFnZW50L3Rlc3QucGw6CgogICBtaXNzZWQgdXBkYXRlcwogICAKMjAwMi0wMy0wOCAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jCiwgb2lkX2FycmF5LmMsIG9pZF9zdGFzaC5jLCByZWFkX2NvbmZpZy5jCiwgc25tcEFBTDVQVkNEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXB2My5jOgoKICAgbWlzc2luZyB1cGRhdGVkIGNvZGUKICAgCjIwMDItMDMtMDggMDI6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgICAtIHNvbWUgc25tcCAtPiBuZXRzbm1wIGZpeGVzCiAgIAoyMDAyLTAzLTA3IDEzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyA0KQogICAKMjAwMi0wMy0wNyAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDMpCiAgIAoyMDAyLTAzLTA3IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMikKICAgCjIwMDItMDMtMDcgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaAosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAxKQogICAKMjAwMi0wMy0wNyAwNjoyMSAgamJwbgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6NDcgIGpicG4KCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICAgIC0gbWlub3IgdXBkYXRlcwogICAKMjAwMi0wMy0wNyAwNTozOSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6MDAgIGpicG4KCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgICAtIG1ha2UgcHJvdG90eXBlcyBtYXRjaCBoZWFkZXIKICAgCiAgICAgLSBtYWtlIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAzOjA3ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGZpeCB1cCBzbnByaW50XyBkZWNsYXJhdGlvbnMsIGZpeCBzbWFsbCB0eXBvLiAgUGF0Y2ggYnkgR3V5CiAgIEhhcnJpcy4KICAgCjIwMDItMDMtMDcgMDI6NDQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2Ygc3ByaW50X3JlYWxsb2NfYnlfdHlwZSwgYXMgbm90ZWQKICAgICAgIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlCjoKCiAgIG5ldyBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDMtMDYgMTc6MTMgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgZG9jcwogICAKMjAwMi0wMy0wNiAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGV4YW1wbGVzIG1vZHVsZSB3cmFwcGVyIHRvIGluY2x1ZGUgYWxsIChuZXcpIGV4YW1wbGVzLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnQgYmV0dGVyLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgc2VhcmNoIGV4YW1wbGVzIGZvciBkb2NzLgogICAKMjAwMi0wMy0wNiAxNjoyOSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZXhhbXBsZSBNSUIgdGVtcGxhdGUgKGFuZCBvbmUgbm9kZSkKICAgCjIwMDItMDMtMDYgMTY6MjggIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIGluc3RhbnRpYXRlIGV4YW1wbGVzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIE5TIG1pYnMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogc2NhbGFyX2ludC5jLCBzY2FsYXJfaW50Lmg6CgogICBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgU05NUCBlbmFibGVkIGludCByZWdpc3RlcmVkIGF0IGEgc2NhbGFyLgogICAKMjAwMi0wMy0wNiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgbWFueSBjaGFuZ2VzIGZvciBpbnN0YW5jZXMuICBTcGVjaWZpY2ljYWxseToKICAgICAtIGFsbG93IGZvciBzdWJoYW5kbGVycy4KICAgICAtIHByb3ZpZGUgYW4gaW50IHdyYXBwZXIuCiAgICAgLSByZXVzZSBtb3JlIGNvZGUuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZS4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIEZpeCBtYXN0ZXIgYWdlbnQgZ2V0YnVsayBzdXBwb3J0LiAgdGhpcyBoYXMgdG8gYmUgaW5kZXBlbmRlbnRseSBvZiB0aGUKICAgbm9ybWFsIGJ1bGstPm5leHQgZml4ZXMgZHVlIHRvIGRlbGVnYXRpb24uICBMb25nIHN0b3J5LgogICAKMjAwMi0wMy0wNiAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIG1vdmUgYnVsa190b19uZXh0IGZpeGluZyBmdW5jdGlvbmFsaXR5IGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UuCiAgIAoyMDAyLTAzLTA2IDEwOjI2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBzcHJpbmtsZSBtYWdpYyBjb25zdCBkdXN0CiAgIAoyMDAyLTAzLTA2IDEwOjE4ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGRvY3VtZW50IGNoYW5nZWQgQVBJLCBpbmNvcnBvcmF0aW5nIHBhdGNoZXMgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDk6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEyYWdlbnR4c2V0ZmFpbCwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGZpeCB0ZXN0cy4KICAgCjIwMDItMDMtMDYgMDk6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICByZS1lbmFibGUgc2V0dGluZyBvcHRpbmQgdG8gMSB0aWxsIERhdmUgdGVsbHMgbWUgd2hlcmUgdGhpcyBicmVha3MuCiAgIAoyMDAyLTAzLTA2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICBmaXhlcyBmb3IgbmV3IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjIwMDItMDMtMDYgMDk6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vcmUgaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgKG1vc3RseSkKICAgCjIwMDItMDMtMDYgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGF1dG9jb25mCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgcHJvdG9jb2wuYzoKCiAgIHByb3BlciBmaXggZm9yIG5vdCByZXF1aXJpbmcgcmVzcG9uc2VzIHRvIENMRUFOVVAgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTA2IDA2OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB6ZXJvIHRoZSBuYW1lIG9mIGVsZW1lbnRzIG9mIHRoZSBidWxrIGNhY2hlCiAgIAoyMDAyLTAzLTA2IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY2FsbG9jKCkgbm90IG1hbGxvYygpIGluIGEgZmV3IHBsYWNlcyB0byBpbml0aWFsaXNlIHNvbWUgYnVmZmVycwogICAgICAgdG8gemVyb2VzLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDA1OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCBzZW5kIHJlcXVlc3RzIGZvciBPSURzIHByZWNlZWRpbmcgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uCiAgICAgICAodGhpcyBjYW4gbGVhZCB0byBsb29wcyBpZiBlLmcuIGEgc3ViYWdlbnQgaGFzIHJlZ2lzdGVyZWQgdHdvCiAgICAgICBhZGphY2VudCByb3dzKS4KICAgCjIwMDItMDMtMDYgMDU6MDcgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgdGVzdGNsZWFuCiAgIAoyMDAyLTAzLTA2IDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gdXNlIG1vcmUgZWZmaWNpZW50IGdldF90cmVlKCkgaW4gc3ByaW50X3JlYWxsb2NfdmFsdWUoKQogICAKMjAwMi0wMy0wNSAxODoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTVzbm1wdjJjZ2V0bmV4dCwgVDAwMXNubXB2MWdldCwKICAgVDAwMnNubXB2MWdldG5leHQsIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldAosIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDEwMGFnZW50aHVwOgoKICAgZml4ZXMgZm9yIG5ldyBmb3JjZWQgLWMgZmxhZ3MKICAgCjIwMDItMDMtMDUgMTg6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBhcHByb3ByaWF0ZSBjb21tZW50LgogICAKMjAwMi0wMy0wNSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggZHVwbGljYXRlIGZyZWUgYnkgY2xvbmluZyB0aGUgcGR1IGJlZm9yZSBzZW5kaW5nIGl0IG91dCBhZ2FpbgogICAodGhvdWdodCBJIGhhZCBkb25lIHRoaXMgb25jZSBpbiB0aGUgcGFzdCBhbHJlYWR5LCBidXQgSSBnb3QgMS8yIGZ1bmN0aW9ucykuCiAgIAoyMDAyLTAzLTA1IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRlbXBvcmFyeSBmaXggdG8gZml4IGZvciBhZ2VudHggU0VUIHJlcXVlc3RzLiAgVGhpcyByZXZlcnNlcyBhCiAgIHByZXZpb3VzIEpvaG4gY2hhbmdlIHdoZXJlIHJlc3BvbnNlcyB0byBjbGVhbnVwcyBhcmUgbm93IGV4cGVjdGVkCiAgIGFnYWluLiAgVGhpcyB0b29rIG1lIGEgZ29vZCAyIGRheXMgdG8gdHJhY2sgZG93biwgc2lnaC4uLgogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBhZGQgKGFzY2lpKSBhZ2VudHggc3RhdGUgZGlhZ3JhbQogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBtdWx0aXBsZSBmcmVlIGJ1ZyBmaXhlcy4KICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDMtMDUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMsIG1hc3Rlcl9yZXF1ZXN0LmgKOgoKICAgcmVtb3ZlZCB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDMtMDUgMTA6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gb29wcywgZml4IGJhZCBjdXQgYW5kIHBhc3RlCiAgIAoyMDAyLTAzLTA1IDEwOjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlaW50cm9kdWNlIHNjb3BlIHByb2Nlc3NpbmcgKHNlZSBSRkMgMjc0MSwgcC4gNjYsIHNlY3Rpb24gNy4yLjMuMgogICAgICAgcGFyYWdyYXBoIDIpOiAiSWYgdGhlIHN1YmFnZW50IGNhbid0IGxvY2F0ZSBhbiBhcHByb3ByaWF0ZQogICAgICAgdmFyaWFibGUsIF9fdi5uYW1lX2lzX3NldF90b190aGVfc3RhcnRpbmdfT0lEX18gW3RoZSBpbXBvcnRhbnQKICAgICAgIGJpdF0gYW5kIHRoZSBWYXJCaW5kIGlzIHNldCB0byBgZW5kT2ZNaWJWaWV3JyIKICAgCjIwMDItMDMtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDg6NDggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBzbm1wX2FnZW50LmMsCiAgIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIG5ldyBERUJVR01TR1ZBUiBtYWNybyBpbiBhIGZldyBwbGFjZXMKICAgCjIwMDItMDMtMDUgMDg6NDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHTVNHVkFSIG1hY3JvIHRvIHByaW50IG91dCBhIHZhcmlhYmxlCiAgIAoyMDAyLTAzLTA1IDA4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgcHJpbnRfdmFsdWUgZnVuY3Rpb24gdXBkYXRlcy4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogdWNkRGVtb1B1YmxpYy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIHVjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDg6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGdycnIsIGJvdGNoZWQgbGFzdCBmaXgKICAgCjIwMDItMDMtMDUgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IGNhbGxiYWNrIHNlc3Npb24gdmVyc2lvbiBudW1iZXIgdG8gdGhlIGdlbmVyaWMgLTEKICAgdmVyc2lvbiBhbGxvd2luZyB0aGUgcGR1IHRvIHBhc3NlZCB3aXRob3V0IHZlcnNpb24gY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtb3ZlIE5VTEwgY2hlY2sgdG8gKmJlZm9yZSogeW91IGFjdHVhbGx5IHVzZSB0aGUgcG9pbnRlci4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIG1hcmsgSU5DTFVTSVZFIHJlcXVlc3RzIGFzIHN1Y2gKICAgCjIwMDItMDMtMDUgMDc6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSB1c2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgd2hpbGUgbG9vcCwganVzdCBhIHByZWNhdXRpb24gZm9yIGZ1dHVyZSBwcm9ibGVtcy4KICAgCjIwMDItMDMtMDUgMDc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfY2hlY2tfcGFyc2UpIGFsbG93IGludGVybmFsIHNldCB0cmFuc2FjdGlvbnMgdG8gYmUgcGFzc2VkIHRvCiAgICAgdGhlIGFnZW50LCBzaW5jZSBhZ2VudHggc2VuZHMgdGhlbS4KICAgCjIwMDItMDMtMDUgMDc6MjEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBkb24ndCBhZGQgdGhlICJtb2R1bGUgSUQiIHRvIE9JRHMgaWYgaXQgaXMgbnVtZXJpYyBiZWNhdXNlIHdlCiAgICAgICBjb3VsZG4ndCBsb29rIGl0IHVwIHByb3Blcmx5ICh0byBhdm9pZCBob3JyaWJsZSBsb29raW5nIG91dHB1dAogICAgICAgbGlrZSB0aGlzOiAiT0lEOiAjLTE6Omlzby4yLjMuNC41LiIpCiAgIAoyMDAyLTAzLTA1IDA3OjA1ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIDJjIGluIGVycm9yIG1lc3NhZ2UgZnJvbSB2ZXJzaW9uIHByb21wdAogICAKMjAwMi0wMy0wNSAwNzowMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB0ZXN0cwogICAKMjAwMi0wMy0wNSAwNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIHJlLWVtcGhhc2lzIGEgc3VnZ2VzdGlvbiB0byBzd2l0Y2ggdG8gYSBzZWN1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wuCiAgIC0gZGVsZXRlIG5vdGlvbiB0aGF0IHYzIHdpdGhvdXQgYXV0aC9wcml2IHByb3ZpZGVzIGJldHRlciBzZWN1cml0eSAoaXQgZG9lc24ndCkuCiAgIC0gRG9uJ3QgYWNjZXB0IHYyYyBhcyBhbiBhY2NlcHRlZCB2YWx1ZSwgYXMgaXQncyB1c2VkIGFzIGFuIGludC4KICAgICAtIGJ1dCBkbyBjaGFuZ2UgaGVscCBtZXNzYWdlcywgZXRjLCB0byByZWZsZWN0IHRoYXQgMiA9IHYyYy4KICAgCjIwMDItMDMtMDUgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY2FsbG9jIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA1IDA2OjIwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8gaW4gT0JKUyBkZWZpbml0aW9uCiAgIAoyMDAyLTAzLTA1IDA2OjE4ICBqYnBuCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgICAtIGNsZWFuIHRhcmdldCBkZXBlbmRzIG9uICQoT0JKUykgYW5kICQoTE9CSlMpLCBzbyBkZWZpbmUgdGhlbQogICAKMjAwMi0wMy0wNSAwMzo1MiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGRlZmF1bHQgdmVyc2lvbiB0ZXN0cyAoc3BsaXR0aW5nIHRoZW0gb3ZlciBzZXZlcmFsIGxpbmVzCiAgICAgICBjb25mdXNlcyBzaCBvbiBTb2xhcmlzLCBhdCBsZWFzdCkuCiAgIAogICAgIC0gZGlzYW1iaWd1YXRlIHNvbWUgaW5zdGFuY2VzIG9mICJ2ZXJzaW9uIiBpbiBkZWZhdWx0IHZlcnNpb24KICAgICAgIHByb21wdCB0ZXh0LgogICAKMjAwMi0wMy0wNSAwMjozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb3JyZWN0bHkgZGV0ZWN0IHdoZW4gbm8gaW5pdGlhbCBkZWZhdWx0IHZlcnNpb24gaGFzIGJlZW4gc2V0LgogICBBY2NlcHQgJzJjJyBhcyB3ZWxsIGFzICcyJyBmb3IgYSBkZWZhdWx0IHZlcnNpb24gY2hvaWNlLgogICBGaXggdGhlIHRpdGxlIGZvciB0aGlzIHByb21wdCwgYW5kIHJld29yZCB0aGUgZGVzY3JpcHRpb24gdG8KICAgbWFrZSBpdCBhICpzbGlnaHRseSogbGVzcyBsZWFkaW5nIHF1ZXN0aW9uLCBtJ2x1ZC4KICAgCiAgIFFuOiBTaG91bGQgd2Ugc3VwcG9ydCBhICJubyBkZWZhdWx0IHZlcnNpb24iIG9wdGlvbiA/CiAgICAgKGhlbmNlIGFsbG93IHRoZSBhZG1pbiB0byBmb3JjZSB0aGUgZGVjaXNpb24gZG93biB0byB0aGUgdXNlcikKICAgCjIwMDItMDMtMDQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZQogICAKMjAwMi0wMy0wNCAxODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgKFRvIEpvaG4pOiBkbyBub3QgZnJlZSB0aGUgbXl2b2lkIHBvaW50ZXIgaW4gYSBoYW5kbGVyLiAgWW91IGNhbiBub3QKICAgYXNzdW1lIHRoYXQgaXQncyBhIGZyZWVhYmxlIHJlc291cmNlLiAgRm9yIGluc3RhbmNlLCB0aGUgYWdlbnR4IG1hc3RlcgogICBhZ2VudCB3YXMgdXNpbmcgaXQgdG8gc3RvcmUgdGhlIG1hc3RlciBzZXNzaW9uIHBvaW50ZXIgaW4gaXQgKHdoaWNoCiAgIHdvdWxkIGV4aXN0IGluIG11bHRpcGxlIHJlZ2lzdGVyZWQgbm9kZXMpLgogICAKMjAwMi0wMy0wNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhIGNvbmZpZ3VyZSBnZW5lcmF0ZWQgd3JhcHBlciBoZWFkZXIgZm9yIHYzIHNlY3VyaXR5IG1vZHVsZXMuCiAgIAoyMDAyLTAzLTA0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgZG1hbGxvYy5oIHRvIHRoZSBwcm9wZXIgcGxhY2UuCiAgIAoyMDAyLTAzLTA0IDExOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzdHJpbmcgY2xlYW4gdXBzLgogICAKMjAwMi0wMy0wNCAxMTo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBJbXBsZW1lbnQgYSBkZWZhdWx0IHZlcnNpb24gcHJvbXB0IGZvciBjb25maWd1cmUuCiAgICAtIChXZXMgZHVja3MgYXMgdGhpcyBpcyBjdXJyZW50bHkgc2V0IHRvICczJyB3aGljaCBoZSBtYXkgaGF2ZSB0bwogICAgICAgY2hhbmdlIGFzIGl0IGhhc24ndCBleGFjdGx5IGJlZW4gYWdyZWVkIHVwb24gYXMgdGhlIHByb3BlciBkZWZhdWx0IHlldCkuCiAgICAtIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiBhbHNvIGNyZWF0ZWQuCiAgICAtIGNoYW5nZWQgaGFuZGxpbmcgb2YgZGVmYXVsdCBzdG9yZSAvIHNubXAuY29uZiB1c2FnZSBidXQgaW1wYWN0CiAgICAgIHNob3VsZCBiZSBsb3csIGhvcGVmdWxseS4KICAgCjIwMDItMDMtMDQgMTE6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGEgZmV3IGVycm9yIHN0cmluZ3Mgc2xpZ2h0bHkgaW1wcm92ZWQuICBXZSByZWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlCiAgIHdheSB0aGVzZSBhcmUgaGFuZGxlZCB0byBnZXQgYmV0dGVyIGltcHJvdmVtZW50LgogICAKMjAwMi0wMy0wNCAwNzo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgY2xlYW5pbmcgb2YgL3RtcCBmcm9tIHRoZSBtYWluIGNsZWFuaW5nIHRvIHByb3ZpZGUgaXQKICAgYXMgYSBzcGVjaWFsIHRhcmdldC4KICAgCjIwMDItMDMtMDQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLVdhbGwgZml4ZXMuCiAgIAoyMDAyLTAzLTA0IDA1OjMyICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmCiwgc25tcHRlc3QuMS5kZWYsIHNubXB0cmFwLjEuZGVmOgoKICAgICAtIHJlbW92ZSBmdXJ0aGVyIGluc3RhbmNlcyBvZiBwb3NpdGlvbmFsIGNvbW11bml0eSBzdHJpbmcgcGFyYW1ldGVyLAogICAgICAgYWZ0ZXIgUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDU6MjUgIGpicG4KCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcHdhbGsuMS5kZWY6CgogICAgIC0gcGF0Y2hlcyBmcm9tIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuNiksIG1lbW9yeS5jCjoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgbWFraW5nIHRoZSAoc2FtZSkgZGVidWdnaW5nIHN0YXRlbWVudCBtb3JlIHVzZWZ1bC4KICAgCjIwMDItMDMtMDEgMjI6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSB0byBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTAzLTAxIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWliLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYSBmZXcgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wMSAxMjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IGluc3RhbGwgaGVhZGVycyBoZXJlLgogICAKMjAwMi0wMy0wMSAwNTo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICAgIC0gYWRkIHNucHJpbnRfdmFsdWUsIHNucHJpbnRfdmFyaWFibGUsIHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDItMjggMDY6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBBZGQgYmFjayB0aGUgJ3NubXBDYWxsYmFjaycgZG9tYWluIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI3IDEwOjA0ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jCiwgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMsIG1ha2UgdGhlbSBtb3JlIGNvbnNpc3RlbnQgYW5kIGJyaW5nIGluIGxpbmUKICAgICAgIHdpdGggbWFudWFsIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwgc25tcHRyYXAuMS5kZWYKLCBzbm1wdXNtLjEuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgY2hhbmdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBpbiBsaW5lIHdpdGggbWFudWFsCiAgICAgICBwYWdlcwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI3IDA2OjUwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gW0FERFJFU1NFU10gLT4gW0xJU1RFTklORyBBRERSRVNTRVNdIGluIHVzYWdlIG1lc3NhZ2UsIHRvIG1hdGNoCiAgICAgICBtYW51YWwgcGFnZS4KICAgCjIwMDItMDItMjcgMDY6MDkgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZHJvcCBvcHRpb25hbCBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgZnJvbSB0cmFwc2VzcwogICAgICAgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTAyLTI3IDA1OjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBkcm9wIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIG5vIHNucHJpbnRfYmxhaCB5ZXQKICAgCjIwMDItMDItMjcgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmM6CgogICBVc2UgdGhlIG1vcmUgaW5mb3JtYXRpdmUgJ291dHB1dF9hcGkuaCcgaGVhZGVyIGZpbGUgbmFtZQogICAgIChJIG11c3QgaGF2ZSBtaXNzZWQgdGhlc2UgZWFybGllcikKICAgCjIwMDItMDItMjcgMDU6MzUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB5ZXMsIGZvciBvbmNlIHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgKmJlZm9yZSogdGhlCiAgIGNvZGUhCiAgIAoyMDAyLTAyLTI3IDA1OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA1OjExICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfYXBpLmgsIHNubXBfZGVidWcuaCwKICAgc3lzdGVtLmg6CgogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MTAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmg6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUEwgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDQ6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYwosIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDAyOjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI3IDAyOjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlLCBubywgSSBNRUFOIGl0IHRoaXMgdGltZQogICAKMjAwMi0wMi0yNyAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNsZWFyIG5ldyBtZW1vcnkgYWZ0ZXIgcmVhbGxvYygpIHNpbmNlIHJlYWxsb2MgZG9lc24ndCBkbyBpdC4KICAgCjIwMDItMDItMjYgMTI6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIFVOU0lHTkVEMzIKICAgCjIwMDItMDItMjYgMDg6NTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgbWliSUkvYXQuYywgbWliSUkvaWNtcC5jLCBtaWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYklJL2lwLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gY2hhbmdlIGNhY2hlIGltcGxlbWVudGF0aW9uIGFmdGVyIHNvbWUgaW50ZXJlc3RpbmcgcHJvZmlsaW5nIChzZWUKICAgICAgIGxlbmd0aHkgbmV3IGNvbW1lbnQgaW4ga2VybmVsX3N1bm9zNS5jKQogICAKMjAwMi0wMi0yNiAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgc25tcGxpYi9zbm1wLXRjLmMsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgUmVtb3ZlIGFzc29ydGVkIGV4dHJhbmVvdXMgXk0ncwogICAKMjAwMi0wMi0yNiAwNzoxNCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQSBxdWljayBndWlkZSB0byBpbnN0YWxsaW5nIHRoZSBDb3JlIFBsYXRmb3JtIFNESywgbmVlZGVkIGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjYgMDc6MDMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBBc3NvcnRlZCBtaW5vciB0d2Vha3MgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgIE1vc3RseSBiZWNhdXNlIFZDKysgaXMgZnVzc3kgYWJvdXQgc29ydC1vZi1jb21wYXRpYmxlIGRhdGEgdHlwZXMKICAgICAoZS5nLiBzaWduZWQgdnMgdW5zaWduZWQgaW50ZWdlcnMpLgogICAKMjAwMi0wMi0yNiAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyLmRzdywgd2luMzIub3B0CiwgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIHNubXBkL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBSZW5hbWUgJ2xpYnVjZG1pYnMnIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiBwcm9qZWN0IG5hbWUsCiAgIGFuZCBhc3NvcnRlZCB0d2Vha3Mgc28gdGhhdCB0aGUgZnVsbCBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICAgIChOLkI6IFRoZSBhZ2VudCByZXF1aXJlcyAiTWljcm9zb2Z0IFBsYXRmb3JtIENvcmUgU0RLIiBpbiBvcmRlcgogICAgICAgdG8gYnVpbGQgdGhlICduZXRzbm1wbWlicycgcHJvamVjdCkKICAgCjIwMDItMDItMjYgMDY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICByZW1vdmUgZHVwbGljYXRlIHZhcmlhYmxlIGluIGEgd2FybmluZwogICAKMjAwMi0wMi0yNiAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTAyLTI1IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbW9yZSBpbnN0YWxsIGNoYW5nZXMKICAgCjIwMDItMDItMjUgMjE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGluc3RhbGxpbmcgREJEOjpGaWxlLgogICAKMjAwMi0wMi0yNSAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG9uZSB0b28gbWFueSAnMCdzIGluIGEgdXJsLgogICAKMjAwMi0wMi0yNSAyMDozMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHJld29yZC4KICAgCjIwMDItMDItMjUgMjA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBtb3ZlIHdhcm5pbmcgb3V0c2lkZSBzZWNvbmRhcnkgd2FybmluZyBhdWdtZW50YXRpb24gbG9vcC4KICAgCjIwMDItMDItMjUgMjA6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wMi0yNSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBmaW5kX3RhYmxlX2FycmF5X2hhbmRsZXIoKTsgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlL2NvbW1lbnRzOwogICBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgaGFuZGxlciBiZWZvcmUgdXNpbmcgdGhlIHZvaWQgcG9pbnRlcjsKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDItMjUgMTE6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAo6CgogICAyIG5ldyBmdW5jdGlvbnMuCiAgIAoyMDAyLTAyLTI1IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBzZWN1cml0eSBtb2RlbAogICAKMjAwMi0wMi0yNSAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgd2luMzIvd2luMzIuZHN3OgoKICAgQ29udGludWluZyBpbXByb3ZlbWVudHMgdG8gY29tcGlsYXRpb24gb2YgdGhlIGxhdGVzdCBjb2RlIHVuZGVyIFZpc3VhbCBDKysuCiAgIFRoZSAnbGliaGVscGVycycgcHJvamVjdCBub3cgY29tcGlsZXMsIGFuZCB0aGlzIGFsc28gYWRkcmVzc2VzIGEgbnVtYmVyCiAgIG9mIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGxpYmFnZW50IGFuZCBsaWJ1Y2RtaWJzIHByb2plY3RzLgogICAgIEJ1dCB0aGVzZSB0d28gc3RpbGwgZmFpbCBvbiAnT0lEX0xFTkdUSCcgYW5kICdpcGhscGFwaS5oJwogICAKMjAwMi0wMi0yNSAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFByb3ZpZGUgYSBwbGF1c2libGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI1IDA2OjA0ICBqYnBuCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgICAgLSByZXNvbHZlIGNvbmZsaWN0aW5nIFNZTlRBWGVzIGZvciBuc1RyYW5zYWN0aW9uTW9kZQogICAKICAgICAtIGFkZCByYW5nZSBmb3IgaW5kZXggbnNUcmFuc2FjdGlvbklECiAgIAoyMDAyLTAyLTI1IDAzOjIzICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBFbnN1cmUgdGhlIG1haW4gbGlicmFyeSBjb21waWxlcyBhbmQgd29ya3MgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MTkgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmgsIHNubXB0cmFwZC5jOgoKICAgRW5zdXJlIHNubXB0cmFwZCBjb21waWxlcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzowOSAgZHRzMTIKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfc3Rhc2guYywgc25tcC10Yy5jLAogICB1Y2RfY29tcGF0LmM6CgogICBNaW5vciB0d2Vha3MgdG8ga2VlcCBWaXN1YWwgQysrIGhhcHB5LgogICAKMjAwMi0wMi0yNSAwMjo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICBXcmFwIHdpdGggImV4dGVybiBDIgogICAKMjAwMi0wMi0yNSAwMjo1NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhbmRlciB0byBDUFAncyBpbmNyZWRpYmx5IGZ1c3N5IG5hdHVyZSwgYW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUgbmFtZS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBAZm9yZWFjaCAkdmFyMSAkdmFyMiBlbnVtc0AKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHJlbW92ZSB0cmFpbGluZyA7J3MgZnJvbSBzcWwgc3RhdGVtZW50cy4KICAgCjIwMDItMDItMjIgMTA6NTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBkZWZpbmUgbmV0c25tcF9zdHJkdXBfYW5kX251bGwKICAgCjIwMDItMDItMjIgMTA6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgdXRpbGl0aWVzLgogICAKMjAwMi0wMi0yMiAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBkb24ndCBsb29wIGFnYWluIGZvciBzZWNvbmRhcnkgU0VUIG1vZGVzIGFuZCBjYWNoZSBpbmZvcm1hdGlvbiBpbnN0ZWFkLgogICAtIHZhcmlvdXMgZml4ZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGwgZGlyZWN0b3JpZXMgZm9yIGhlYWRlcnMKICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNvbXBpbGUtc3ViYWdlbnQgZm9yIGF1dG9tYXR0ZWQgc3ViYWdlbnQgY29tcGlsYXRpb24gZnJvbQogICBtaWJtb2R1bGUgLmMgZmlsZXMgOy0pCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jIChWNC0yLXBhdGNoZXMuWzEsMV0pLAogICBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWM6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDA4OjQwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFR3ZWFrcyByZXF1aXJlZCB0byBnZXQgdGhlIGxpYnJhcnkgY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MgVkMrKwogICAKMjAwMi0wMi0yMiAwODozNyAgZHRzMTIKCiAgICogd2luMzIvOiBzbm1wc21faW5pdC5oLAogICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgbGliYWdlbnQvbGliYWdlbnQuZHNwLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AKLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBQcm92aWRlIFdpbmRvd3Mtc3BlY2lmaWMgdmVyc2lvbnMgb2YgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLAogICBhbmQgYWRkIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUgdG8gdGhlIHByb2plY3QgZmlsZXMuCiAgIAoyMDAyLTAyLTIyIDA3OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIERlZmluZSBzdGFuZGFyZCBPSUQgbGVuZ3RocyBoZXJlICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSB0byBhbnkKICAgZmlsZSB3YW50aW5nIHRvIGFjY2VzcyB0aGUgT0lEIHN0cnVjdHVyZXMpCiAgIAoyMDAyLTAyLTIyIDAzOjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgU3VwcG9ydCAiLi4uLiAtM3Uge3NlY05hbWV9IC4uLi4iIHN5bnRheAogICAoaW4gdGhlIG5vcm1hbCBnZXRvcHQgc3R5bGUgLSBpLmUuIG5vIG5lZWQgZm9yIHN1cnJvdW5kaW5nIHF1b3RlcykKICAgCiAgIEl0IHNob3VsZCBub3cgYmUgcG9zc2libGUgdG8gc3dpdGNoIHRvIHRoaXMgYXMgdGhlIHJlY29tbWVuZGVkIGZvcm0KICAgZm9yIFNOTVB2MyBvcHRpb25zIC0gaWYgdGhhdCdzIHdoYXQgd2Ugd2FudCB0byBkby4KICAgICBRbjogIERvIHdlIHdhbnQgdG8/CiAgIAoyMDAyLTAyLTIxIDA4OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgU3VwcG9ydCAiLTN1IHtzZWNOYW1lfSIgc3ludGF4ICgqd2l0aCogdGhlIHF1b3RlcywgdW5mb3J0dW5hdGVseSkuCiAgIE5vdyBjb21lcyB0aGUgZnVuIGJpdC4uLi4uCiAgIAoyMDAyLTAyLTIxIDA3OjU0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDA3OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGRyb3AgaW5saW5lIChtb3JlIHRyb3VibGUgdGhhbiBpdCBpcyB3b3J0aCkKICAgCjIwMDItMDItMjEgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGFuIFNOTVB2MyAiY29tYmluZWQtb3B0aW9uIiBjb21tYW5kLWxpbmUgZmxhZyAoLTN4KS4KICAgKEluICphZGRpdGlvbiogdG8gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIGZsYWdzLCBJIGhhc3RlbiB0byBhZGQhKQogICAKICAgU3VwcG9ydHMgICIuLi4gLTN1e3NlY05hbWV9IC4uLiIgYW5kICIuLi4gLTN1PXtzZWNOYW1lfSAuLi4iIHN5bnRheCwKICAgYnV0IG5vdCB0aGUgc2VwYXJhdGUgIi4uLiAtM3Uge3NlY05hbWV9IC4uLiIgc3R5bGUuCiAgIAogICBJIGhhdmVuJ3QgdG91Y2hlZCB0aGUgZG9jdW1lbnRhdGlvbiBvciB1c2FnZSBtZXNzYWdlIHRvIG1lbnRpb24gdGhpcy4KICAgCjIwMDItMDItMjAgMTg6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHVzZSBmb3IgaW5zdGVhZCBvZiBjb250aW51ZSBmb3IgbG9vcHMuCiAgIAoyMDAyLTAyLTIwIDEzOjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIEFkZCBhIC0tcXVpdCBvcHRpb24gKGFuZCBhIGNvbmZpZ3VyYXRpb24gdG9rZW4pIHNvIHRoYXQgeW91IGNhbiBub3cKICAgICBjcmVhdGUgbmV3IHVzZXJzIGJ5IHNpbXBseSBjYWxsaW5nIHNubXBkIGFzOgogICAgICAgc25tcGQgLS1jcmVhdGVVc2VyPSJteXVzZXIgTUQ1IG15cGFzc3dvcmQiIC0tcXVpdAogICAtIENoYW5nZSBSRUFETUUuc25tcHYzIGRvY3VtZW50YXRpb24gdG8gbWFrZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgogICAKMjAwMi0wMi0yMCAwNjoxNiAgamJwbgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IHRvIHNubXB0cmFwZCAodW50ZXN0ZWQpCiAgIAogICAgIC0gbWlub3IgY2hhbmdlcyB0byBzbm1wZCBsaWJ3cmFwIHN1cHBvcnQKICAgCiAgICAgLSBjb25maWd1cmUgZml4ZXMgZm9yIGxpYndyYXAKICAgCjIwMDItMDItMjAgMDM6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0yMCAwMzowNiAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0yMCAwMzowMyAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIHVwIHRoZSBvYmplY3QgZmlsZXMgYXMgd2VsbAogICAKMjAwMi0wMi0yMCAwMTo0MSAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgdGhlIG5ldyBjcm9wIG9mIGdlbmVyYXRlZCBtYW4gcGFnZXMuCiAgIAoyMDAyLTAyLTIwIDAxOjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBTdXBwbHkgbWlzc2luZyBkb3VibGUtcXVvdGUgIChvb3BzKQogICAKMjAwMi0wMi0xOSAwNDowMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBJbml0aWFsaXNlIHRoZSBsaWJyYXJ5IGludGVybmFscyAqYmVmb3JlKiBwYXJzaW5nIHRoZSBjb21tYW5kIGxpbmUsCiAgIHNvIHRoYXQgZGVmYXVsdHMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgUW46ICBTaG91bGQgJ19pbml0X3NubXAnIGJlIGludm9rZWQgYnkgJ3NubXBfcGFyc2VfYXJncycgaXRzZWxmPwogICAKMjAwMi0wMi0xOSAwMzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IG11bHRpcGxlIG91dHB1dCBmb3JtYXQgZmxhZ3Mgd29yayBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLgogICAoaS5lLiB0aGUgbGFzdCBvbmUgaXMgdXNlZCwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBpbnRlcm5hbCBvcmRlcmluZykuCiAgIAoyMDAyLTAyLTE4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMsIHRlc3RoYW5kbGVyLmM6CgogICBpbmNsdWRlIHN0ZGxpYi5oCiAgIAoyMDAyLTAyLTE4IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBpbmNsdWRlcwogICAKMjAwMi0wMi0xOCAyMTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICAtIG1ha2UgY2FwYWJpbGl0eSB0byBjcmVhdGUgZGF0YSBjb250ZXh0cyBmcm9tIGEgbG9vcCBjb250ZXh0IChsZXNzCiAgICAgbWFsbG9jcyB3aGVuIG1hbGxvY3MgYXJlbid0IG90aGVyd2lzZSBhdm9pZGFibGUpLgogICAtIGRvbid0IGRvdWJsZSBmcmVlIHRoZSBkYXRhIGNvbnRleHQgcG9pbnRlci4KICAgCjIwMDItMDItMTggMjE6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgYWxsIGFnZW50IGhlbHBlcnMuCiAgIAoyMDAyLTAyLTE4IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmg6CgogICBwcm90ZWN0IGluY2x1ZGUgZnJvbSBkb3VibGUgaW5jbHVkZQogICAKMjAwMi0wMi0xOCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgZml4IGluY2x1ZGUgcGF0aHMKICAgCjIwMDItMDItMTggMDI6MzUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHdlYWsgdGhlIGxpc3Qgb2YgaGVhZGVyIGZpbGVzIHRvIGJlIGluc3RhbGxlZCAodGhhbmtzIHRvIENocmlzdG9waCBNYW1taXR6c2NoKQogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAoVjQtMi1wYXRjaGVzLjcpLCBocl9zdG9yYWdlLmMKOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNiAyMzoxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IE5FVC1TTk1QLU1JQi50eHQsIE5FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCwKICAgTkVULVNOTVAtU1lTVEVNLU1JQi50eHQsIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHdoaXRlIHNwYWNlIGNsZWFuIHVwLiAgKEFHRU5ULU1JQiBub3QgY2hlY2tlZCBpbiBkdWUgdG8gb3RoZXIKICAgaW5jb21wbGV0ZSBjaGFuZ2VzKS4KICAgCjIwMDItMDItMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1MsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBmaW5pc2ggaW1wbGVtZW50aW5nIHNubXBfY29uZmlnKCJteSBjb25maWcgbGluZSIpCiAgICAgLSB3YXMgZG9uZSBiZWZvcmUsIGJ1dCBwcmV2aW91c2x5IGhhZCB0byBiZSBjYWxsZWQgb25seSBhZnRlcgogICAgICAgY29uZmlndXJhdGlvbiBmaWxlcyBoYWQgYmVlbiByZWFkLiAgTm93IGNhbiBiZSBjYWxsZWQgYXQgYW55IHRpbWUuCiAgIC0gbWFrZSBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBhcyAtLWxvbmdvcHRzIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIC0gLS1zb21ldGhpbmc9dmFsdWUgLT4gInNvbWV0aGluZyB2YWx1ZSIKICAgICAtIC0tc29tZXRoaW5nICAgICAgIC0+ICJzb21ldGhpbmcgMSIgKHdvcmtzIGZvciBzZXR0aW5nIGJvb2xlYW5zIHRvIHRydWUpCiAgIAoyMDAyLTAyLTE2IDAwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcnBtIGZvciA0LjAuMyBhbmQgYWJvdmUgKG9yIHdoZW5ldmVyIGl0IHdhcyB0aGF0IHdlIG5vdyBuZWVkIGxpYnJwbWRiKQogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBpbnN0YWxsL2NsZWFuL2V0Yy4KICAgCjIwMDItMDItMTUgMjI6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGluc3RhbGwgYWxsIHN5c3RlbSBhbmQgbWFjaGluZSBmaWxlcywgc2luY2UgdGhleSBpbmNsdWRlIGVhY2ggb3RoZXIKICAgCjIwMDItMDItMTUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwKICAgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIFNrZWxldG9uIGZyYW1ld29yayBmb3IgdGhlIE5ldC1TTk1QIGVudGVycHJpc2UgdHJlZS4KICAgKGluY29ycG9yYXRpbmcgdGhlIGluaXRpYWwgJ25zVHJhbnNhY3Rpb25UYWJsZScsIGJ1dCBub3RoaW5nIGVsc2UgYXMgeWV0KQogICAKMjAwMi0wMi0xNSAwOToxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KICAgCjIwMDItMDItMTUgMDc6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCiwgYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aHUgUHJhYmh1KQogICAKMjAwMi0wMi0xNSAwNzoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgU3Rva2UgV2VzJyBzZW5zZSBvZiBwYXJhbm9pYSBieSBjb25jZWRpbmcgd2l0aG91dCBjb21tZW50LgogICAgICAgKFdoYXQgbWlnaHQgU2hpZWxkIGJlIHBsb3R0aW5nIG5vdy4uLi4uLikKICAgCjIwMDItMDItMTUgMDc6MTkgIGpicG4KCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICAgIC0gZml4IHRpbnkgZm9ybWF0dGluZyBlcnJvcgogICAKMjAwMi0wMi0xNSAwNzoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTk9USUZJQ0FUSU9OLUxPRy1NSUIgKHNpbmNlIGl0J3Mgb25lIG9mIHRoZSBkZWZhdWx0IGxvYWQgbGlzdCEpCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UucmM6CgogICBmaWxlIHdpbnNlcnZpY2UucmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmg6CgogICBmaWxlIHdpbnNlcnZpY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGZpbGUgd2luc2VydmljZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEluY2x1ZGUgdGhlIDxzeXMvdGltZS5oPiBjYXNjYWRlLCB0byBwaWNrIHVwIHRoZSBkZWZpbml0aW9uIG9mICd0aW1ldmFsJwogICAKMjAwMi0wMi0xNSAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBicmluZyB1c2FnZSBtZXNzYWdlIGluIGxpbmUgd2l0aCBtYW5wYWdlCiAgIAoyMDAyLTAyLTE1IDAzOjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ2F0Y2ggdXNlIG9mIHRoZSB0cmFuc3BvcnQgYW5kIHBvcnQgb3B0aW9ucywgYW5kIGlzc3VlIGFuIGFwcHJvcHJpYXRlCiAgIGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgdXNlIG9mIHRoZSA8aG9zdG5hbWU+IHBhcmFtZXRlciBpbnN0ZWFkLgogICAKMjAwMi0wMi0xNSAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgKmJlZm9yZSogcHJvY2Vzc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywKICAgcmF0aGVyIHRoYW4gYWZ0ZXIuICBUaGF0J3MgcHJvYmFibHkgYSBiaXQgbW9yZSBmbGV4aWJsZTotKQogICAKMjAwMi0wMi0xNSAwMjozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCwgZGVmaW5pdGlvbnMuaCwKICAgbWliX2FwaS5oLCBvdXRwdXRfYXBpLmgsIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaAosIHNubXB2M19hcGkuaCwgdHlwZXMuaCwgdXRpbGl0aWVzLmgsCiAgIHZhcmJpbmRfYXBpLmg6CgogICBSZW1vdmUgJ25ldC1zbm1wLWNvbmZpZy5oJyBmcm9tIHRoZSBtYWluIEFQSSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgd2lsbCBoYXZlIHRvIGJlICNpbmNsdWRlZCBzZXBhcmF0ZWx5IChlaXRoZXIgZXhwbGljaXRseQogICBvciB2aWEgdGhlIGFsbC1pbi1vbmUgJ25ldC1zbm1wLWluY2x1ZGVzLmgnIGhlYWRlcikKICAgCjIwMDItMDItMTUgMDI6MzEgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBSRUFETUUgdG8gZGVzY3JpYmUgdGhlIHN0YXR1cyBvZiA8bmV0LXNubXAvbGlicmFyeT4gYW5kIDxuZXQtc25tcD4gaGVhZGVyIGZpbGVzLgogICAKMjAwMi0wMi0xNSAwMjoxMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUge3N5c3RlbSxtYWNoaW5lfS8qLmggaGVhZGVyIGZpbGVzIGFzIHdlbGwuCiAgIAogICBEb2luZyB0aGlzIHZpYSB0aGUgJ21hbicgJiAnbWlicycgTWFrZWZpbGVzIGlzIGEgZ3Jvc3MgaGFjaywKICAgYW5kIHJlYWxseSBuZWVkcyB0byBiZSBoYW5kbGVkIG1vcmUgY2xlYW5seS4gIEJ1dCBpdCdzIHRoZQogICBiZXN0IEkgY2FuIGNvbWUgdXAgd2l0aCBhdCB0aGUgbW9tZW50LiAgU29ycnkgLSBEYXZlLgogICAKMjAwMi0wMi0xNSAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBVQ0QtY29tcGF0YWJpbGl0eSBoZWFkZXJzIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTE1IDAxOjU3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIE9ubHkgaW5zdGFsbCBzdWJkaXJlY3Rvcnkgc3R1ZmYgKm9uY2UqLiAgKERvbid0IGJlIHNvIGVudGh1c2lhc3RpYywgRGF2ZSEpCiAgIAoyMDAyLTAyLTE1IDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgUmVtb3ZlIHJlZHVuZGVudCAnLUNOJyBhbmQgJy1DTycgb3B0aW9ucyBmcm9tIHRoZSBleGFtcGxlIHNubXB1c20gY29tbWFuZC4KICAgICAoYXMgbWVudGlvbmVkIGJ5IFdlcyBvbiB0aGUgdXNlcnMgbWFpbGluZyBsaXN0IDIwMDItMDItMTMpCiAgICAgUW46IERvZXMgdGhpcyBuZWVkIHRvIGJlIGRvbmUgb24gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2ggYXMgd2VsbD8KICAgCjIwMDItMDItMTUgMDE6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBSZXN0b3JlICd2ZXJzaW9uLmgnIGFzIGJlaW5nIGEgInRvcC1sZXZlbCIgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTAyLTE1IDAxOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgZnVsbCBzZXQgb2YgbGlicmFyeSBoZWFkZXIgZmlsZXMsCiAgIHJldGFpbmluZyB0aGUgdG9wLWxldmVsIHZzIGxpYnJhcnkgc3ViZGlyZWN0b3J5IHNwbGl0LgogICAKMjAwMi0wMi0xNSAwMToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBMb29rIGZvciB0cmFuc3BvcnQtcmVsYXRlZCBoZWFkZXIgZmlsZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTE1IDAxOjA5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEVuc3VyZSBwYXJ0aWFsIGluc3RhbGwgdGFyZ2V0cyByZWN1cnNlIHByb3Blcmx5LgogICAKMjAwMi0wMi0xNCAwODoxOCAgZHRzMTIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTG9vayBmb3IgbWliX21vZHVsZV9jb25maWcuaCBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbgogICAKMjAwMi0wMi0xNCAwODowNiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IG1hbjggaW5zdGFsbCBkZWZpbml0aW9ucwogICAKMjAwMi0wMi0xNCAwNzo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1YnN0aXR1dGUgdmFsdWVzIGludG8gJ25ldC1zbm1wLWNvbmZpZycgcHJvcGVybHksIGFuZCBkb24ndCAnbWFrZSBjbGVhbicgaXQgYXdheS4KICAgCjIwMDItMDItMTQgMDc6MjIgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcwogICAKMjAwMi0wMi0xNCAwNzoxNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjEwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIGFnZW50L2FnZW50X3RyYXAuYwosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyBzcGFjZSBmcm9tIENQUEZMQUdTCiAgIAoyMDAyLTAyLTE0IDA2OjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oLCBkZWZpbml0aW9ucy5oLAogICBtaWJfYXBpLmgsIG5ldC1zbm1wLWluY2x1ZGVzLmgsIG91dHB1dF9hcGkuaCwKICAgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oLCBzbm1wdjNfYXBpLmgsIHR5cGVzLmgKLCB1dGlsaXRpZXMuaCwgdmFyYmluZF9hcGkuaDoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNjoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgKLCBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaCwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaAosIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgKLCBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC92YWNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi92YWNtLmM6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDQ6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBtb3ZlcyB0b3dhcmRzIHVzaW5nIHRoZSAicHVibGljIiBBUEkgaGVhZGVyIGZpbGVzIGluIHRoZSBsaWJyYXJ5CiAgIGNvZGUgYXMgd2VsbCAoY29uY2VudHJhdGluZyBvbiBvdXRwdXQvY29uZmlnL3V0aWxpdHkgaGVhZGVyIGZpbGVzKS4KICAgCjIwMDItMDItMTQgMDM6MTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2xvc2UgYSBkYW5nbGluZyAiaWYiIGJsb2NrLiAgIChvb3BzISkKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jIChWNC0yLXBhdGNoZXMuNCksIGlmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIExhdGVzdCBSZWRIYXQgcnBtLXJlbGF0ZWQgcGF0Y2gKICAgCjIwMDItMDItMTQgMDE6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIFJQTSBsaWJyYXJpZXMKICAgCjIwMDItMDItMTMgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTWFrZSBKb2huIHRydXN0IGhpcyBjb2RlCiAgIAoyMDAyLTAyLTEzIDA4OjM0ICBqYnBuCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgICAtIHRyYW5zcG9ydCBmaXhlcyAodW50ZXN0ZWQsIHN0aWxsICNpZiAwKQogICAKMjAwMi0wMi0xMyAwODowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtYXJrIHNvbWUgSm9obi10by1kby1zZWN0aW9ucwogICAKMjAwMi0wMi0xMyAwNzo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmLAogICBzbm1wbGliL21pYi5jOgoKICAgU3dpdGNoIHRvIHVzaW5nIC1PUyBzdHlsZSBvdXRwdXQgYnkgZGVmYXVsdCwgYW5kIGRyb3AgdGhlIHJlcXVpcmVtZW50CiAgIGZvciBmdWxsIE9JRHMgdG8gc3RhcnQgd2l0aCAnLicsIHBsdXMgY29tbWFuZC1saW5lIG9wdGlvbnMgdG8gcmVzdG9yZQogICB0aGUgb3JpZ2luYWwgVUNELXN0eWxlIGJlaGF2aW91ci4KICAgCjIwMDItMDItMTMgMDc6MzYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBcHBseSBKb2huJ3MgZml4IGZvciBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZAogICBjb2x1bW5zIGluIHdyb25nIG9yZGVyKSB0byB0aGUgbWFpbiBicmFuY2ggYXMgd2VsbC4KICAgCjIwMDItMDItMTIgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbnN0IGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogLmN2c2lnbm9yZSwgQVNOLy5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUKLCBkZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmU6CgogICBhZGQgLmN2c2lnbm9yZSBmaWxlLgogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgYWRkIGFnZW50L2FnZW50X2hhbmRsZXIuaAogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oOgoKICAgY29uc3QgYWRkaXRpb25zLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQWRkIHN0cmluZy5oCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgaGVhZGVyLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4ZXMgdG8gcmVlbmFibGUgZGlzbWFuIGV2ZW50IHN0dWZmIGZvciA1LjAgY29kZS4gIE5vdCBkb25lIHRoZQogICAicmlnaHQiIHdheSwgYnV0IGl0IHdvcmtzLgogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIC1XYWxsIGZpeGVzCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGFkZCBzdGRsaWIuaAogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgbm8gbG9uZ2VyIHVzZWQgImR1bXBfdmFyIiByb3V0aW5lLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGNvbnN0IHNwZWNpZmljIGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbmV3IHBlcmwgc3BlY2lmaWMgZmVhdHVyZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC5QSE5PWSBtb2RzCiAgIAoyMDAyLTAyLTEyIDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9sb2dnaW5nX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAo6CgogICBSZW5hbWUgdGhlIGxvZ2dpbmcgJiByZWxhdGVkIG91dHB1dCBBUEkgaGVhZGVyIGZpbGUsIHRvIGJldHRlcgogICByZWZsZWN0IHRoZSBzY29wZSBvZiB0aGlzIEFQSS4gIChBcyBzdWdnZXN0ZWQgYnkgV2VzICYgSm9obikKICAgCjIwMDItMDItMTIgMDc6MjEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjM5ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBsaWIgZGVwZW5kZW5jeSBmaXggZm9yIHNubXBkIHRhcmdldAogICAKMjAwMi0wMi0xMSAwODoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvbWliLmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCwgc25tcGxpYi9jbXVfY29tcGF0LmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBFeHRyYWN0IENNVV9DT01QQVRBQklMSVRZIGNvZGUsIGFuZCBleHBsaWNpdGx5IGRlcHJlY2F0ZWQgVUNEIGNvZGUgaW50byBzZXBhcmF0ZSBmaWxlcy4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA0OjQ1ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgbWlub3Igc3BlbGxpbmcgdHdlYWtzCiAgIAoyMDAyLTAyLTExIDA0OjI3ICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMKLCBtaWJfYXBpLjMuZGVmLCBzbm1wX2FnZW50X2FwaS4zLAogICBzbm1wX2FnZW50X2FwaS4zLmRlZiwgc25tcF9hbGFybS4zLCBzbm1wX2FsYXJtLjMuZGVmCiwgc25tcF9hcGkuMywgc25tcF9hcGkuMy5kZWYsIHNubXBfc2Vzc19hcGkuMwosIHNubXBfc2Vzc19hcGkuMy5kZWYsIHNubXBfdHJhcF9hcGkuMywKICAgc25tcF90cmFwX2FwaS4zLmRlZiwgdmFyaWFibGVzLjUsIHZhcmlhYmxlcy41LmRlZgo6CgogICAgIC0gZ2VuZXJhdGUgdGhlIHJlc3Qgb2YgdGhlIG1hbnVhbCBwYWdlcyAodG8gZ2V0IHZlcnNpb24gaW4gZm9vdGVyKQogICAKMjAwMi0wMi0wOCAxNTo1NiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgbWliX21vZHVsZV9jb25maWcuaCwKICAgbWliX21vZHVsZV9pbml0cy5oLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBzbm1wZC9zbm1wZC5kc3A6CgogICB3aW4zMiBzcGVjaWZpYyBwb3J0aW9ucyBvZiBwYXRjaCA1MDMyNTYKICAgCjIwMDItMDItMDggMTU6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBwYXRjaCM1MDMyNTY6IGhlbHBlcnMgbGlicmFyeSBkZWZpbml0aW9uIGZvciB3aW4zMgogICAKMjAwMi0wMi0wOCAwOTowOCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXQgdHdlYWthZ2UKICAgCjIwMDItMDItMDggMDg6MjIgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMywgc25tcF9hZ2VudF9hcGkuMywgc25tcF9hbGFybS4zCiwgc25tcF9hcGkuMywgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMKOgoKICAgUmVmZXJlbmNlIHRoZSBuZXcgaGVhZGVyLWZpbGVzIGluIHNlY3Rpb24gMyBtYW4gcGFnZSBzeW5vcHNlcy4KICAgCjIwMDItMDItMDggMDc6NTAgIGpicG4KCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wX3RyYXBfYXBpLjMsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBjb25mLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICB2YXJpYWJsZXMuNToKCiAgICAgLSBtb3JlIG1pbm9yIHR3ZWFrcyAodWNkLXNubXAgLT4gTmV0LVNOTVAgZXRjLikKICAgCjIwMDItMDItMDggMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBsb2NhbCBtb2R1bGVzIGZyb20gZGVwZW5kZW5jeSBsaXN0CiAgIAoyMDAyLTAyLTA4IDA3OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaW5kZXguYywKICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jCiwgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywgbWliX21vZHVsZXMuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgaGVscGVycy9idWxrX3RvX25leHQuYywgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBoZWxwZXJzL251bGwuYywgaGVscGVycy9vbGRfYXBpLmMsIGhlbHBlcnMvcmVhZF9vbmx5LmMKLCBoZWxwZXJzL3NlcmlhbGl6ZS5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYywgaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIG1pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9SbW9uL2FndXRpbC5jLAogICBtaWJncm91cC9SbW9uL2FsYXJtLmMsIG1pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIG1pYmdyb3VwL1Jtb24vcm93cy5jLAogICBtaWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYwosIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwosIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMKLCBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBtaWJncm91cC9taWJJSS9pcHY2LmMsIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBtaWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwosIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKLCBtaWJncm91cC9taXNjL2RsbW9kLmMsIG1pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwosIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jCiwgbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMKLCBtaWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFVzZSB0aGUgbmV3ICduZXQtc25tcC1pbmNsdWRlcycgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzLAogICBpbiBwbGFjZSBvZiB0aGUgKHVuaW5zdGFsbGVkKSAnbWliaW5jbC5oJy4KICAgICBXaGVlZWVlLi4uLi4uCiAgIAoyMDAyLTAyLTA4IDA3OjE3ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMywKICAgc25tcF9hbGFybS4zLCBzbm1wX2FwaS4zLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgc25tcF9zZXNzX2FwaS4zLCBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAgIC0gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gZ2VuZXJhdGUgbWFuIHBhZ2VzIGF0IGNvbXBpbGUgdGltZQogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwKICAgc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwgc25tcGNtZC4xCiwgc25tcGNtZC4xLmRlZiwgc25tcGNvbmYuMSwgc25tcGNvbmYuMS5kZWYKLCBzbm1wZ2V0LjEsIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEsCiAgIHNubXBnZXRuZXh0LjEuZGVmLCBzbm1wc2V0LjEsIHNubXBzZXQuMS5kZWYsCiAgIHNubXBzdGF0dXMuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEsCiAgIHNubXB0YWJsZS4xLmRlZiwgc25tcHRlc3QuMSwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYW5zbGF0ZS4xLmRlZiwgc25tcHRyYXAuMQosIHNubXB0cmFwLjEuZGVmLCBzbm1wdXNtLjEsIHNubXB1c20uMS5kZWYsCiAgIHNubXB3YWxrLjEsIHNubXB3YWxrLjEuZGVmLCBzbm1wdHJhcGQuOCwKICAgc25tcHRyYXBkLjguZGVmOgoKICAgICAtIHJlbmFtZSBtYW4gcGFnZXMgd2hpY2ggYXJlIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0aW1lIGluIG9yZGVyCiAgICAgICB0byBwaWNrIHVwIHRoZSB2ZXJzaW9uICh3aGljaCBnZXRzIHB1dCBpbiB0aGUgZm9vdGVyKS4KICAgCiAgICAgLSBhbHNvIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICBSZW1vdmUgdGhlIGF0dGVtcHRlZCAnbWliSUknIHJlLXdyaXRlLgogICBJZiB3ZSB3YW50IHRvIHRpZHkgdXAgbWliSUksIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gdXNlIHRoZSBuZXcgYWdlbnQgQVBJcy4KICAgCjIwMDItMDItMDggMDY6NDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBuZXQtc25tcC1pbmNsdWRlcy5oLAogICBhZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQnJpbmcgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzIGNsb3NlciBpbiBsaW5lIHdpdGggdGhlIGV4aXN0aW5nICJtaWJpbmNsLmgiIGZpbGUKICAgCjIwMDItMDItMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiAgIChWNC0yLXBhdGNoZXMuWzYsM10pLCBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQ29uc29saWRhdGUgaWRlbnRpY2FsIE1JQiBvYmplY3QgZW50cmllcyAoV0lOMzIvbm9uLVdJTjMyKQogICAKMjAwMi0wMi0wOCAwMDo1MCAgamJwbgoKICAgKiBtYW4vUkVBRE1FOgoKICAgICAtIHJlbW92ZSBjaHJvbmljYWxseSBkYXRlZCB1bmhlbHBmdWwgUkVBRE1FCiAgIAoyMDAyLTAyLTA3IDEzOjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBtYWtlZmlsZWluZGVwZW5kLnBsLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtYWtlIG1ha2UncyBNYWtlZmlsZSdzIHRvIG1ha2UgYmV0dGVyIG1ha2luZwogICAKMjAwMi0wMi0wNyAxMzozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgbG9jYWwgcGF0aGVzCiAgIAoyMDAyLTAyLTA3IDEyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbnN1cmUgYWdlbnQgcmV0dXJucyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBmb3IgVU5ETyBhbmQgQ09NTUlUIGZhaWx1cmVzLgogICAKMjAwMi0wMi0wNyAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAueHMsIHQvc3RhcnRhZ2VudC5wbAo6CgogICBhdHRlbXB0IGF0IHBvcnRpbmcgSm9lJ3MgU05NUCBtb2R1bGUgdG8gbmV0LXNubXAuCiAgIEl0IGNvbXBpbGVzLCBidXQgb25seSBzb21lIG9mIHRoZSB0ZXN0cyBzdWNjZWVkLgogICAKMjAwMi0wMi0wNyAxMDowOSAgamJwbgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMsCiAgIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfYWdlbnRfYXBpLjMKLCBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmCiwgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMsIHNubXBidWxrZ2V0LjEKLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNvbmYuMSwgc25tcGQuY29uZi41LmRlZgosIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcGdldC4xLAogICBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEsCiAgIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0ZXN0LjEsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYKLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEsIHZhcmlhYmxlcy41OgoKICAgICAtIGFkZCBOZXQtU05NUCBpbiBoZWFkZXIgb2YgYWxsIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwOTo1MiAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHVwZGF0ZSBzdHlsZSB0byBtYXRjaCBzbm1wZCBhbmQgc25tcHRyYXBkIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwODoxNSAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gZml4IHNwZWVsaW5nIG1pc3Rha2UKICAgCjIwMDItMDItMDcgMDg6MDAgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGJyaW5nIHVwIHRvIGRhdGUgd2l0aCBzbm1wdHJhcGQKICAgCjIwMDItMDItMDcgMDc6MjggIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFjY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDcgMDY6MzAgIGpicG4KCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgICAtIGFscGhhYmV0aXNlIG9wdGlvbnMKICAgCiAgICAgLSBicmluZyBtYW4gcGFnZSBpbiBsaW5lIHdpdGggbmV3IHBvc2l0aW9uYWwgYXJndW1lbnRzIGxpc3RlbmluZwogICAgICAgYWRkcmVzcyBzcGVjaWZpY2F0aW9uIGFuZCBhZGQgc2VjdGlvbiBkZXNjcmliaW5nIHRoYXQKICAgCiAgICAgLSBwdXQgTmV0LVNOTVAgaW4gaGVhZGVyCiAgIAoyMDAyLTAyLTA2IDEwOjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaDoKCiAgICAgLSBmaXggYnVnIG5vdGVkIGJ5IE5pZWxzCiAgIAoyMDAyLTAyLTA2IDA5OjI1ICBqYnBuCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYzoKCiAgICAgLSBtaW5vciB0d2Vha3MgZHVlIHRvIGNoYW5nZSBpbiBkZWZpbml0aW9uIG9mIFVTTSBPSURzLgogICAKMjAwMi0wMi0wNiAwOToxNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gbW92ZSBVU00gT0lEIGRlZmluaXRpb25zIGludG8gc25tcHVzbS5jLCBtYWtlIHRoZW0gY29uc3QKICAgCiAgICAgLSBjb25zZXF1ZW50IGluY3JlYXNlIGluIGNvbnN0LW5lc3MgaW4gc29tZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICByZW1vdmUgaW50ZXJuYWwgbm90ZSBhYm91dCB2MyBhcGksIHdoaWNoIHNob3VsZCBiZSBwdWJsaWMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0Lmg6CgogICByZW1vdmVkIHVubmVlZGVkIGZpbGUKICAgCjIwMDItMDItMDYgMDk6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgY29uc3QtbmVzcyBmb3IgdHJhbnNmb3JtIHR5cGUgYXJncwogICAKMjAwMi0wMi0wNiAwOTowMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGFkZCBzb21lIGNvbnN0LW5lc3MgZm9yIE9JRCBhcmdzIChtYWlubHkgc28gdGhhdCBkZWJ1Z21zZ19vaWQgdGFrZXMKICAgICAgIGNvbnN0KS4KICAgCjIwMDItMDItMDYgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBTdXBwb3J0IGZvciBEeW5peC9QVFggNC40LCBjb3VydGVzeSBvZiBQYXRyaWNrIEhlc3MuCiAgIAoyMDAyLTAyLTA2IDA3OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgZmlyc3QgYXJndW1lbnQgb2Ygc25tcF9kdXBfb2JqaWQoKSBjb25zdC4KICAgCiAgICAgLSBiZXR0ZXIgaGFuZGxlIE5VTEwgdmFsdWVzIGluIHNubXBfZHVwX29iamlkKCkuCiAgIAoyMDAyLTAyLTA2IDA3OjA5ICBkdHMxMgoKICAgKiBGQVEsIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICBDbGFyaWZ5IHRoZSBhcHBsaWNhYmlsaXR5IG9mICdzbm1wX3RyYXBfYXBpKDMpJyByb3V0aW5lcyB0byBBZ2VudFggc3ViYWdlbnRzLgogICAKMjAwMi0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgbm90aWZpY2F0aW9uX2xvZy5jLAogICBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYwosIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYwosIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L2lmLmMKLCBzbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBuZXRzdGF0L21haW4uYywgc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEFwcGxpY2F0aW9ucyBhbWVuZGVkIHRvIHVzZSB0aGUgbmV3LXN0eWxlIGxpYnJhcnkgaGVhZGVyIHN0cnVjdHVyZS4KICAgKEluIG1vc3QgY2FzZXMsIHNpbXBseSBpbmNsdWRpbmcgdGhlIHNpbmdsZSAiZnVsbCBBUEkiIGhlYWRlciBmaWxlKQogICAKMjAwMi0wMi0wNiAwNTo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFzbjEuaCwgY29uZmlnX2FwaS5oLAogICBkZWZpbml0aW9ucy5oLCBsb2dnaW5nX2FwaS5oLCBtaWJfYXBpLmgsCiAgIG5ldC1zbm1wLWluY2x1ZGVzLmgsIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaCwKICAgc25tcHYzX2FwaS5oLCB0eXBlcy5oLCB1dGlsaXRpZXMuaCwgdmFyYmluZF9hcGkuaAo6CgogICBGcmFtZXdvcmsgZm9yIG5ldyBsaWJyYXJ5IGhlYWRlciBmaWxlIG9yZ2FuaXNhdGlvbiwgd2l0aCBlaWdodCBtYWluIGdyb3VwcwogICBvZiBBUEkgcm91dGluZXMuICBDdXJyZW50bHkgdGhlc2Ugc3RpbGwgcmVmZXIgdG8gdGhlIFVDRC1zdHlsZSBzdHlsZSBoZWFkZXIKICAgZmlsZXMgZm9yIHRoZSBhY3R1YWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgogICAKMjAwMi0wMi0wNiAwNTozMSAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gcmVwbGFjZSB1c2Ugb2YgJDwgd2l0aCBleHBsaWNpdCBmaWxlbmFtZSwgc2luY2Ugbm9uLUdOVSBtYWtlcyBzZWVtCiAgICAgICB0byBiYXJmIG9uIGl0CiAgIAoyMDAyLTAyLTA2IDAzOjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeCBpbmNvcnJlY3QgZGlyZWN0b3J5IHNwZWNpZmljYXRpb24gaW4gJ21ha2UgY2xlYW4nCiAgIAoyMDAyLTAyLTA2IDAzOjE4ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdGVjdCB0aGUgcHJvamVjdCBjb25maWcgZmlsZSBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4KICAgCjIwMDItMDItMDYgMDM6MDcgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cyBhbmQKICAgICAgIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi8uLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzCiAgICAgICBhbmQgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuNyksIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGVybCBmaXhlcwogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtb3ZlIHRoZSBvaWR0cmVlX2NvbXBhcmUgZnVuY3Rpb24gdG8KICAgdGhlIG1haW4gbGlicmFyeS4KICAgCjIwMDItMDItMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBwZXJsIGJ1aWxkIGZpeGVzLgogICAKMjAwMi0wMi0wNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBvcHBzLiAgUmVtb3ZlZCBmb3JjZWQgcGVybCBlbWJlZGRpbmcKICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB0aGlzIGZpbGUgc2hvdWxkbid0IGJlIGNoZWNrZWQgaW4KICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfcGVybC5jCiwgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gU3VwcG9ydCBmb3IgZW1iZWRkaW5nIHBlcmwgc3Vicm91dGluZXMgaW50byB0aGUgYWdlbnQgdG8gYmUgY2FsbGVkCiAgICAgYXMgaGFuZGxlcnMuCiAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0td2l0aC1wZXJsLW1vZHVsZXMgYXR0ZW1wdHMgdG8gYnVpbGQgY29udGFpbmVkIG1vZHVsZXMgKHBvb3JseSBjdXJyZW50bHkpLgogICAgIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWN0dWFsbHkgc3BlY2lmaWVzIHRvIGRvIHBlcmwgZW1iZWRkaW5nCiAgICAgd2l0aGluIHRoZSBhZ2VudC4KICAgCjIwMDItMDItMDQgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBBU04vQVNOLnhzLCBBU04vQ2hhbmdlcywKICAgQVNOL01BTklGRVNULCBBU04vTWFrZWZpbGUuUEwsIEFTTi90ZXN0LnBsLAogICBhZ2VudC9DaGFuZ2VzLCBhZ2VudC9NQU5JRkVTVCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbCwKICAgYWdlbnQvdHlwZW1hcCwgZGVmYXVsdF9zdG9yZS9DaGFuZ2VzLAogICBkZWZhdWx0X3N0b3JlL01BTklGRVNULCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgZGVmYXVsdF9zdG9yZS90ZXN0LnBsLAogICBkZWZhdWx0X3N0b3JlL3R5cGVtYXA6CgogICBCZWdpbm5pbmdzIG9mIG5ldyBwZXJsIG1vZHVsZXMgbmVlZGVkIHRvIGltcGxlbWVudCBhbiBTTk1QIGFnZW50IChvcgogICBhZ2VudHggc3ViYWdlbnQpIGluc2lkZSBwZXJsLgogICAgIC0gbm90IGNvbXBsZXRlIHlldC4KICAgICAtIG1heSBjaGFuZ2UuCiAgICAgLSBidXQgd29ya3MuCiAgIAoyMDAyLTAyLTA0IDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAyLTAxIDAxOjUwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBwcm9jZWR1cmUgZm9yIGNvbXBpbGluZyB3aXRoICdjYycgcmF0aGVyIHRoYW4gJ2djYycKICAgCjIwMDItMDEtMzEgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHMvc25tcGxpYlwvLy87CiAgIAoyMDAyLTAxLTMxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlIGNsZWFuIGFzIHJlcG9ydGVkIGJ5IEJyYWRsZXkgQm96YXJ0aC4KICAgCjIwMDItMDEtMzAgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBCcmluZyBNSUIgdmFyaWFibGUgdmVyc2lvblRhZyBpbnRvIGxpbmUgd2l0aCB0aGUgbmV3IDxuZXQtc25tcC92ZXJzaW9uLmg+IHVzYWdlCiAgIAoyMDAyLTAxLTI5IDE3OjUzICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTW92ZWQgdmVyc2lvbmluZyBpbmZvcm1hdGlvbiBmcm9tIHZlcnNpb24uaCB0bzoKICAgICAtIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgICAtIGRlZmluZSBuZXRzbm1wX2dldF92ZXJzaW9uKCk7CiAgICAgICAtIGNyZWF0ZSBhIGNvbnN0IGNoYXIgKk5ldFNubXBWZXJzaW9uSW5mbwogICAgIC0gaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGV4dGVybiB0aGUgYWJvdmUgY2hhciAqCiAgICAgICAtIHByb3RvdHlwZSB0aGUgZnVuY3Rpb24KICAgICAtIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBjcmVhdGUgYSBzdGF0aWMgdmFyaWFibGUgKHRoZSBvbGQgd2F5KSBhbmQgc2V0IGl0IHRvIE5ldFNubXBWZXJzaW9uSW5mbwogICAKMjAwMi0wMS0yOSAxNjowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sCiAgIHRlc3RzL1QwNTBzbm1wdjN0cmFwLCB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsCiAgIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsCiAgIHRlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgdHJhcCB0ZXN0IGZpeGVzIHNvIHRoZSBtYWpvcml0eSBvZiB0aGUgdGVzdHMgbm93IHdvcmsuCiAgIAoyMDAyLTAxLTI5IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGdlbmVyYXRlIHVjZC1zbm1wLWNvbmZpZy5oIGFueSBsb25nZXIuCiAgIAoyMDAyLTAxLTI5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0Lmg6CgogICBtb3ZlZCBzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS8qLmgKICAgbW92ZWQgbS9nZW5lcmljLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAogICAKMjAwMi0wMS0yOSAwOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtYyBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMi0wMS0yOSAwOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVmZXJlbmNlIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaW5zdGVhZCBvZiBqdXN0IGNvbmZpZy5oCiAgIAoyMDAyLTAxLTI5IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSB1bmtub3duIGVuZ2luZWlkL3Vua25vd24gdXNlciBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMi0wMS0yOCAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB3aG9vcHMuICBNaXNzZWQgc29tZSAuaCBmaWxlIGNoZWNrcyBpbiBjb25maWd1cmUuICBUaGFua3MgUm9iZXJ0LgogICAKMjAwMi0wMS0yOCAyMTowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBtaW5vciBmaXguCiAgIAoyMDAyLTAxLTI4IDIxOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIGFkZGVkIGNvZGUgY29udmVydCBzY3JpcHQgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGhlYWRlciBjb252ZXJzaW9uCiAgIAoyMDAyLTAxLTI4IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oCiwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaAosIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCwgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmgsIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgKLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKLCBtYW4vTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RhdGFfbGlzdC5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvZ2V0b3B0LmgsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL2tleXRvb2xzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWQ1LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvb2lkX2FycmF5LmMsIHNubXBsaWIvb2lkX2FycmF5LmgsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvb2lkX3N0YXNoLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5jCiwgc25tcGxpYi9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5oLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUERvbWFpbi5oLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmgsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uaCwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oLCBzbm1wbGliL3NubXBfYWxhcm0uYwosIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2VudW0uaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmgsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaCwgdGVzdGluZy9SVU5URVNUUywKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaAosIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMjA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMKLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLCBtaWJfbW9kdWxlcy5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGhlbHBlcnMvbnVsbC5jLCBoZWxwZXJzL29sZF9hcGkuYywgaGVscGVycy9yZWFkX29ubHkuYwosIGhlbHBlcnMvc2VyaWFsaXplLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jLCBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBtaWJncm91cC9ob3N0X3Jlcy5oLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9SbW9uL2FsYXJtLmMsCiAgIG1pYmdyb3VwL1Jtb24vZXZlbnQuYywgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIG1pYmdyb3VwL1Jtb24vcm93cy5jLCBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYwosIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwosIG1pYmdyb3VwL21pYklJL2F0LmMsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYywgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwosIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgKLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDE5OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgREVGSU5FIElUIGluc3RlYWQKICAgCjIwMDItMDEtMjggMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBkZWZpbmUgaXQgaW5zdGVhZAogICAKMjAwMi0wMS0yNSAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2Vfb25lX29pZF9pbmRleDoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBpbnQgZm9yIGxlbmd0aCdzIHB1bGxlZCBmcm9tIHRoZSBvaWQuCiAgICAgLSBNYWtlIHN1cmUgdGhleSdyZSBhbHdheXMgPCAxMjgKICAgCjIwMDItMDEtMjUgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjbG9zZXIgYWRoZXJlbmNlIHRvIHN0YXRlIG1hY2hpbmVzIGRlc2NyaWJlZCBpbiBSRkMgMjU3NAogICAKMjAwMi0wMS0yNSAwOToxMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSB1c21EZWNyeXB0aW9uRXJyb3IgcmVwb3J0cyB0byBiZSBzZW50IGluIGEgY291cGxlIG9mIGV4dHJhCiAgICAgICBjYXNlczogYmFkIHNhbHQgKGxlbmd0aCAhPSA4KSBhbmQgbGVuZ3RoIG9mIGVuY3J5cHRlZCBkYXRhIG5vdCBhCiAgICAgICBtdWx0aXBsZSBvZiA4IG9jdGV0cyAocGVyIFJGQyAyNTc0KS4KICAgCjIwMDItMDEtMjUgMDk6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZvciB1bmtub3duIG1lc3NhZ2UgdHlwZXMsIGluY3JlbWVudCBzbm1wSW5BU05QYXJzZUVycnMgYW5kIGZhaWwKICAgICAgIGF0IHRoZSBwb3N0LXBhcnNlIHN0YWdlLgogICAKICAgICAtIGZvciBub3RpZmljYXRpb24gdHlwZXMsIGluY3JlbWVudCBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGFuZCBiYWlsCiAgICAgICBvdXQgZWFybHkuCiAgIAoyMDAyLTAxLTI1IDA5OjAxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmb3IgdW5oYW5kbGVkIG1lc3NhZ2VzIChlLmcuIFJFU1BPTlNFIG1lc3NhZ2VzIHNlbnQgdG8gYWdlbnRzKSwKICAgICAgIGluY3JlbWVudCB0aGUgc25tcFVua25vd25QRFVIYW5kbGVycyBjb3VudGVyLgogICAKICAgICAtIHRyeSB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWZzIHdoZW4gcG9zdC1wYXJzZSBmYWlscy4KICAgCjIwMDItMDEtMjUgMDY6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjYpLCB2YWNtX3ZhcnMuYwo6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCBwcmludCBvdXQgZGVidWdnaW5nIGluZm8gaW4gYSBmdXJ0aGVyIGNhc2Ugd2hlcmUgaXQgaGFzIGJlZW4KICAgICAgIGZyZWUoKWQuCiAgIAogICAgIC0gc2V0IHRoZSBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gZXJyb3Igbm9TdWNoTmFtZSB3aGVuCiAgICAgICB3ZSBoYXZlIHRoZSBpbmNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMuCiAgIAoyMDAyLTAxLTI1IDA0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL1JFQURNRS5uZXdsaWI6CgogICBmaWxlIFJFQURNRS5uZXdsaWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMi0wMS0yNSAwNDo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGJlZm9yZSB3aGVyZSAocG90ZW50aWFsbHkpIHRoZSBkYXRhIGl0IGlzCiAgICAgICB0cnlpbmcgdG8gcHJpbnQgZ2V0cyBmcmVlKClkLgogICAKMjAwMi0wMS0yNSAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0ga2VlcCBhc3AtPnZiY291bnQgY29ycmVjdCBpbiBjcmVhdGVfc3VidHJlZV9jYWNoZSgpIGlmIHdlIGR1bXAKICAgICAgIHZhcmJpbmRzIGluIHRoZSBHRVRORVhUIGNhc2UgYmVjYXVzZSBudW12YXJiaW5kcyA+IG5vbi1yZXBlYXRlcnMuCiAgICAgICBGYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCBjYXVzZSBwcm9ibGVtcyBsYXRlciB3aGVuIHlvdSBpdGVyYXRlIG92ZXIKICAgICAgIDAgLi4gYXNwLT52YmNvdW50IC0gMSBpbiByZWFzc2lnbl9yZXF1ZXN0cygpLgogICAKMjAwMi0wMS0yNCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHVwZGF0ZSBtYWNyb3MgdG8gcHV0IHBhcmVucyBhcm91bmQgcGFyYW1ldGVycyB3aGVuIHVzZWQsIGluIGNhc2UgYSBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzc2lvbiwgd2hpY2ggbWlnaHQgbXVjayBhYm91dCB3aXRoIG9wZXJhdG9yIHByZWNlZGVuY2UgcnVsZXMgYW5kIGNhdXNlIHVuZXhwZWN0ZWQgYW5kIHVuZGVzaXJhYmxlIGJlaGF2aW9yLgogICAKMjAwMi0wMS0yNCAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHRyeSB0byBmaW5kICYgaGFuZGxlIGV4dGVybmFsIGluZGV4ZXM7IHVzZSBuZXcgc3R5bGUgbmV0LXNubXAgaW5jbHVkZXM7IGFkZAogICByb3dfY29weTsgdXNlIGNvbnRleHQgdHlwZXMgJiBjYXN0cyBpbiBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgZ2VuZXJpYyB0eXBlcwogICByZWNhc3QgaW5zaWRlIG1ldGhvZAogICAKMjAwMi0wMS0yNCAwNjowMyAgamJwbgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjMpLCByZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGRvbid0IGF1dG9tYXRpY2FsbHkgYWNjZXB0IGEgbXNnVXNlck5hbWUgb2YgIiIgd2hlbiBwcm9jZXNzaW5nCiAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4KICAgCjIwMDItMDEtMjQgMDQ6MzAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJpZ2dlciBidWZmZXIgZm9yIG1zZ0F1dGhvcml0YXRpdmVFbmdpbmVJRCBmaWVsZCBzaW5jZSBpdCBpcyBub3QKICAgICAgIGxpbWl0ZWQgdG8gMzIgYnl0ZXMgbGlrZSBTbm1wRW5naW5lVEMuICBSZWFsbHkgdGhpcyBuZWVkcyB0byBiZQogICAgICAgYWxsb2NhdGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGUgYnV0IGZvciBub3cgd2UnbGwganVzdCBtYWtlIGl0CiAgICAgICB0d2ljZSBhcyBiaWcuCiAgIAoyMDAyLTAxLTI0IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQUlYIHN1cHBvcnQgZm9yIHRoZSBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNlY01vZGVsIG9mIDAgaXMgYSBwYXJzZSBlcnJvciBpbiBIZWFkZXJEYXRhCiAgIAoyMDAyLTAxLTIzIDA3OjIzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiZSBjYXJlZnVsIHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZiBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlcyBpbgogICAgICAgc25tcHYzX3BhcnNlIC0tIGZpeGVzIG1lbW9yeSBsZWFrcyB3aGVuIG1hbGZvcm1lZCBQRFVzIGFyZQogICAgICAgcmVjZWl2ZWQuCiAgIAoyMDAyLTAxLTIyIDE5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBjaGcgYXBpIGZvciBzbm1wX29pZF9uY29tcGFyZSwgZG9uJ3QgaW1wbGVtZW50IGl0IHZpIHNubXBfb2lkX2NvbXBhcmUKICAgCjIwMDItMDEtMjIgMTk6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9hcnJheS5oOgoKICAgYWRkIEdldF9vaWRfZGF0YV9jb3VudCgpOyBhZGQgc3Vic2V0IHN1cHBvcnQKICAgCjIwMDItMDEtMjIgMTk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgYWRkIG5ldHNubXBfc3RyMm9pZCgpCiAgIAoyMDAyLTAxLTIyIDE5OjQxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbgogICAKMjAwMi0wMS0yMiAxOTo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb247IGFkZCBwcmVsaW1pbmFyeSBsb2NraW5nIGNvZGU7IGFkZCB0YV9jaGVja19yb3dfc3RhdHVzCiAgIAoyMDAyLTAxLTIyIDA2OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbV92YXJzLmMKOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSBhIHBhcnNlIGVycm9yIGlmIHdlIHJlY2VpdmUgVXNtU2VjdXJpdHlQYXJhbWV0ZXJzIHdpdGggYQogICAgICAgbXNnVXNlck5hbWUgdGhhdCBpcyBpbGxlZ2FsbHkgbG9uZy4KICAgCjIwMDItMDEtMjIgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgICAtIG9vcHMsIGxlZnQgb2xkIGNvZGUgaW4gI2lmIDAgYnJhbmNoIEFHQUlOLiAgSSBhbSBnZXR0aW5nIGludG8gYmFkCiAgICAgICBoYWJpdHMhCiAgIAoyMDAyLTAxLTIyIDAzOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWtzIGluIHJvdyBjcmVhdGlvbi9kZXN0cnVjdGlvbgogICAKICAgICAtIG1vcmUgYWdncmVzc2l2ZSB2YWxpZGl0eSBjaGVja2luZyBvZiBzbm1wTm90aWZ5VGFnLCBzbm1wTm90aWZ5VHlwZQogICAgICAgYW5kIHNubXBOb3RpZnlTdG9yYWdlVHlwZS4KICAgCiAgICAgLSBwYXNzZXMgNi41LjEuMCAtLSA2LjUuOC4zCiAgIAoyMDAyLTAxLTIyIDAxOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMi0wMS0yMSAyMzo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHRpZHkgdGhpbmdzIHVwIGEgYml0IChoYWQgbGVmdCBzb21lIG9sZCBjb2RlIHNpdHRpbmcgaWYgI2lmIDAKICAgICAgIGJyYW5jaCkuCiAgIAogICAgIC0gcmVtZW1iZXIgdG8gY2xvc2UgKHRhcmdldC0+c2Vzcykgd2hlbiB3ZSBtb3ZlIGEgdGFyZ2V0IHRvCiAgICAgICBub3RJblNlcnZpY2UoMikuCiAgIAoyMDAyLTAxLTIxIDExOjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldEFkZHJUYWJsZQogICAKMjAwMi0wMS0yMSAwNjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgICAgLSBpbXBsZW1lbnQgc25tcFRhcmdldFNwaW5Mb2NrIG9iamVjdAogICAKMjAwMi0wMS0xOCAwOToxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlLiAgUGFzc2VzIGFsbCB0aGUKICAgICAgIHJlbGV2YW50IFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA4OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiB2YWNtLmMsIHZhY20uaDoKCiAgICAgLSBhZGQgYSBzd2l0Y2ggdG8gdmFjbV9nZXRWaWV3RW50cnkoKSB0byBhbGxvdyB0aGUgbWFzayBlbnRyaWVzCiAgICAgICB0byBiZSBpZ25vcmUgKHdoaWNoIGlzIHdoYXQgeW91IHdhbnQgd2hlbiB5b3UgYXJlIGp1c3QgdXNpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gdG8gbG9vayB1cCBhbiBlbnRyeSBpbiB0aGUgdGFibGUgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBuZXcKICAgICAgIHZhbHVlIHRvIG9uZSBvZiB0aGUgY29sdW1uYXIgb2JqZWN0cykuCiAgIAoyMDAyLTAxLTE4IDA2OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbUFjY2Vzc1RhYmxlLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlIChpLmUuIGRvbid0CiAgICAgICBqdXN0IGRvIGV2ZXJ5dGhpbmcgaW4gdGhlIENPTU1JVCBwaGFzZSkuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDQ6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBlcnJvciBzdGF0dXMgYWZ0ZXIgQ09NTUlUIG9yIFVORE8KICAgICAgIHBoYXNlcyB3aXRoIGNvbW1pdEZhaWxlZCBvciB1bmRvRmFpbGVkIChidXQgZG8gdHJhbnNsYXRlIGVycm9yCiAgICAgICByZXR1cm5zIGZyb20gdGhvc2UgcGhhc2VzIGludG8gdGhvc2UgZXJyb3JzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbgogICAgICAgZXhpc3RpbmcgZXJyb3Igc3RhdHVzKS4KICAgCjIwMDItMDEtMTcgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dJRCBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZSBwYWNrZXQKICAgICAgIGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNyAwNjozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ01heFNpemUgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUKICAgICAgIHBhY2tldCBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTUgMDg6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICB0b3AgbGV2ZWwgaW5jbHVkZSB3aGljaCBpbmNsdWRlcyB1c2VmdWwgc25tcGxpYiBoZWFkZXJzCiAgIAoyMDAyLTAxLTE1IDA4OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC86IGFnZW50X2luZGV4LmgsIGFnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudF9yZWdpc3RyeS5oLCBhZ2VudF90cmFwLmgsIGFzbjEuaCwKICAgYXV0b19ubGlzdC5oLCBjYWxsYmFjay5oLCBkZWZhdWx0X3N0b3JlLmgsCiAgIGRzX2FnZW50LmgsIGhlYWRlcl9jb21wbGV4LmgsIGludDY0LmgsIGtleXRvb2xzLmgKLCBtaWIuaCwgbWliX21vZHVsZV9jb25maWcuaCwgbWliaW5jbC5oLAogICBwYXJzZS5oLCByZWFkX2NvbmZpZy5oLCBzY2FwaS5oLCBzbm1wLXRjLmgsCiAgIHNubXAuaCwgc25tcF9hZ2VudC5oLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmgKLCBzbm1wX2NsaWVudC5oLCBzbm1wX2RlYnVnLmgsIHNubXBfaW1wbC5oLAogICBzbm1wX2xvZ2dpbmcuaCwgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBfdmFycy5oLAogICBzbm1wdXNtLmgsIHNubXB2My5oLCBzdHJ1Y3QuaCwgc3lzdGVtLmgsCiAgIHRvb2xzLmgsIHRyYW5zZm9ybV9vaWRzLmgsIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKLCB1Y2Qtc25tcC1jb25maWcuaCwgdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgdXRpbF9mdW5jcy5oLCB2YXJfc3RydWN0LmgsIHZlcnNpb24uaDoKCiAgIGNyZWF0ZSA0LnggaGVhZGVycyB0aGF0IGFyZSB3cmFwcGVycyBwb2ludGluZyB0byBuZXcgaGVhZGVycwogICAKMjAwMi0wMS0xNCAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBVc2VyUm93QWN0aW9uIGFuZCB2b2lkIHBvaW50ZXIKICAgCjIwMDItMDEtMTQgMTM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsIE1ha2VmaWxlLmluOgoKICAgLT4gbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAKMjAwMi0wMS0xNCAxMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlZAogICAKMjAwMi0wMS0xNCAxMzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGNvcHkgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCBhbmQgdXBkYXRlIHRvIG5ldC1zbm1wIHVzZSBuZXcgYWdlbnQgZGlyCiAgIAoyMDAyLTAxLTE0IDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9pbmRleC5oLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIG1vdmVkIHRoZSAvYWdlbnQgaW5zdGFsbGVkIGhlYWRlcnMgdG8gLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudAogICAKMjAwMi0wMS0xMyAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgYSBjb3VwbGUgbW9yZSBpbnN0YWxsIGhlYWRlcnMuCiAgIAoyMDAyLTAxLTExIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIG5vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmgsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5oLAogICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmgKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaAosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmgsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSBBZGQgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgdG8gaW5jbHVkZSBwYXRoLgogICAtIFJlbmFtZSAzIGFnZW50IGxpYnJhcmllcyBmcm9tIGxpYnVjZCogLT4gbGlibmV0c25tcCoKICAgCjIwMDItMDEtMTEgMDc6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZG9uJ3QgdXNlIHdoaWxlKHgtLSA+PSAwKSBsb29wcyBmb3IgbmV3IHVuc2lnbmVkIGluZGV4IGNvbXBvbmVudHMKICAgCjIwMDItMDEtMTEgMDU6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYmUgY2FyZWZ1bCBhYm91dCBzaWduZWRlc3Mgb2YgaW5kZXggY29tcG9uZW50cyBpbiB0YWJsZXMKICAgCjIwMDItMDEtMTAgMTM6MTIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENyZWF0ZSB0aGUgaW5jbHVkZSBkaXJlY3Rvcnkgd2hlbiBidWlsZGluZyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDEtMTAgMDg6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBsb25nIGxvb3AgdmFyaWFibGUgaW4gdmFyX3N5c09SVGFibGUoKSB0byBhdm9pZAogICAgICAgaW5jb3JyZWN0IGxleGktb3JkZXJpbmcgd2hlbiBkb2luZyByZXF1ZXN0cyBsaWtlIEdFVE5FWFQKICAgICAgIHN5c09SRGVzY3IuNDI5NDk2NzI5NS4KICAgCiAgICAgLSBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGNoYW5nZXMKICAgCjIwMDItMDEtMTAgMDc6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhayBpbiByZWFzc2lnbl9yZXF1ZXN0cygpCiAgIAoyMDAyLTAxLTEwIDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzZXQgdHlwZSBmb3IgdW5oYW5kbGVkIEdFVCByZXF1ZXN0cyBpbiBoYW5kbGVfcGR1KCkgdG8gYmUKICAgICAgIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIG5vU3VjaE9iamVjdCAobm9TdWNoT2JqZWN0IGV4Y2VwdGlvbnMKICAgICAgIGFyZSBkZXRlY3RlZCBhbmQgZXhwbGljaXRseSBzZXQgZWFybGllcikuCiAgIAoyMDAyLTAxLTEwIDA1OjUyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGNvcnJlY3QgdHlwbyB0aGF0IG1lYW50IGVycm9yIHJldHVybnMgZnJvbSBvbGQtYXBpIHdyaXRlIG1ldGhvZHMKICAgICAgIHdlcmUgaWdub3JlZC4KICAgCjIwMDItMDEtMTAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIGNoYW5nZSB2YWx1ZSBvZiBTVEFUX1RBUkdFVF9TVEFUU19FTkQgc28gdGhhdCBtaWJJSS9zbm1wX21pYi5jIGNhbgogICAgICAgcmV0dXJuIHZhbHVlcyBvZiBtYW5kYXRvcnkgb2JqZWN0cyBzbm1wU2lsZW50RHJvcHMgYW5kCiAgICAgICBzbm1wUHJveHlEcm9wcy4KICAgCjIwMDItMDEtMDkgMDg6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdW5rbm93bi9pbGxlZ2FsIHZhcmJpbmQgdHlwZXMgaW4gdjEvdjJjIFBEVXMgY2F1c2UKICAgICAgIHNubXBJbkFTTlBhcnNlRXJycyB0byBiZSBpbmNyZW1lbnRlZC4KICAgCjIwMDItMDEtMDkgMDc6NTUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA5IDA3OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgICAgLSBicmluZyBhcHAtc3BlY2lmaWMgb3B0aW9ucyBpbiBsaW5lIHdpdGggc25tcGJ1bGt3YWxrICgtQyByYXRoZXIKICAgICAgIHRoYW4gLUIpCiAgIAoyMDAyLTAxLTA5IDA3OjMxICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gZm9ybWF0dGluZyBjaGFuZ2UgdG8gdXNhZ2UgbWVzc2FnZQogICAKMjAwMi0wMS0wOSAwNjozNSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA4IDA4OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gYWRkIG9wdGlvbnMgZnJvbSBzbm1wd2FsawogICAKICAgICAtIGFsbG93IG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMgdG8gYmUgc2V0CiAgIAogICAgIC0gY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2YgbWF4LXJlcGVhdGVycyB0byBhIGxvd2VyIHZhbHVlIHRvIGF2b2lkCiAgICAgICB0aW1lb3V0cyB3aXRoIHNsb3dlciBhZ2VudHMKICAgCjIwMDItMDEtMDggMDg6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHRyeSB0byBtYWxsb2MoKSBhIHplcm8tbGVuZ3RoIGJ1ZmZlciwgaW4gY2FzZSBzb21lIG1hbGxvYygpcwogICAgICAgY29tcGxhaW4uCiAgIAoyMDAyLTAxLTA4IDA4OjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBob3BlZnVsbHkgZmluYWwgR0VUQlVMSyBmaXggLS0gcGFzc2VzIGFsbCBTaWx2ZXJDcmVlaydzIEdFVEJVTEsKICAgICAgIHRlc3RzIChpbmNsLiBuZWdhdGl2ZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzKQogICAKMjAwMi0wMS0wOCAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgICAtIEdFVEJVTEsgZml4IHRvIGlnbm9yZSB2YXJiaW5kcyBmb3Igd2hpY2ggemVybyByZXBldGl0aW9ucyBhcmUKICAgICAgIGNhbGxlZCBmb3IKICAgCiAgICAgLSBkcm9wIGFzcC0+c3RhcnQgYW5kIGFzcC0+ZW5kIHdoaWNoIGFyZSBoYXJkbHkgdXNlZCBhbmQgd2hpY2ggZ2V0CiAgICAgICBpbiB0aGUgd2F5IG9mIHRoaXMgdHlwZSBvZiBwcm9jZXNzaW5nCiAgIAogICAgIC0gaWdub3JlIG5lZ2F0aXZlIHJlcGV0aXRpb25zIGluIGJ1bGtfdG9fbmV4dCBoYW5kbGVyCiAgIAoyMDAyLTAxLTA3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTAxLTA3IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvSU5TVEFMTDoKCiAgIFBOR0dyYXBoIC0+IEdEOjpHcmFwaAogICAKMjAwMi0wMS0wNCAxMzo0OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTAxLTA0IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmg6CgogICBtb3ZlIGFjY29uZmlnLmggYmFjayB0byB0aGUgdG9wIGRpciB3aGVyZSBpdHMgYXBwYXJlbnRseSBzdXBwb3NlZCB0byBsaXZlLgogICAKMjAwMi0wMS0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtb3JlIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHRyYW5zbGF0aW9ucy4gIHdhcm5pbmc6IGluY2x1ZGVzIHRoZSBkZWZhdWx0IHBlcnNpc3RlbnQgc3RvcmUuCiAgIAoyMDAyLTAxLTA0IDEzOjA0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlLzogbmV0LXNubXAvLmN2c2lnbm9yZSwgdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMS0wNCAxMzowMiAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBidWlsdCBuZXQtc25tcC1jb25maWcKICAgCjIwMDItMDEtMDQgMTM6MDAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLAogICBub3RpZmljYXRpb25fbG9nLmMsIHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jCiwgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwosIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHNubXBsaWIvdmFjbS5jLCB0ZXN0aW5nL1QuYywKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYwosIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgcmVtb3ZlZCB1bmVlZGVkIG9sZGVyIGZpbGVzCiAgIAoyMDAyLTAxLTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoICM0OTIwNzIgdG8gbWFpbiBicmFuY2gKICAgCjIwMDItMDEtMDMgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGNoZWNrIHJlc3VsdHMgb2Ygc2V0bW50ZW50IGJlZm9yZSB1c2luZyB0aGVtLgogICAKMjAwMi0wMS0wMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAyLTAxLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtOgoKICAgUE5HR3JhcGggLT4gR0RHcmFwaAogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoYW5nZSBleHBvcnQgbmFtZSB0byAibmV0LXNubXAiIGZyb20gInVjZC1zbm1wIgogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIG1ha2UgdXNlIG9mIHRoZSBuZXcgbXVsdGktYWRkIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGFkZCBtdWx0aXBsZSBkZWZhdWx0IHJvdyBjb2x1bW4gZGVmaW5pdGlvbnMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlLmg6CgogICBhZGQgbXVsdGlwbGUgaW5kZXhlcyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zIChnZXRTdGF0UHRyIG5vIGxlc3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIG9pZF9zdGFzaC5jLCBvaWRfc3Rhc2guaAo6CgogICBkYXRhIHN0YXNoaW5nIGJhc2VkIG9uIGFuIG9pZCBjYWNoaW5nIHRyZWUuCiAgIAoyMDAxLTEyLTI2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgbWFuYWdlci5wbQo6CgogICB1cGRhdGUgdG8gbWFrZSBpdCBhIGJpdCBlYXNpZXIgdG8gaW5zdGFsbCAoaW5jbHVkaW5nIGEgTWFrZWZpbGUgZm9yCiAgIGF1dG9tYXRlZCBpbnN0YWxsYXRpb24pLgogICAKMjAwMS0xMi0yNiAxMzoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCwgZGlzcGxheXRhYmxlLnBtLCBnZXRWYWx1ZXMucG0KLCBncmVlbi5naWYsIG1hbmFnZXIucG0sIHJlZC5naWYsIHNldHVwYXV0aAosIHNldHVwZGIsIHNldHVwdXNlciwgc25tcHRvc3FsOgoKICAgbW92aW5nIG1hbmFnZXIgdG8gcGVybC9tYW5hZ2VyCiAgIAoyMDAxLTEyLTI0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUxICkKICAgCjIwMDEtMTItMjQgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLCBtaWIyYy5jb25mOgoKICAgVXBkYXRlIHRvIG1ha2UgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBpdCdzIG5vdCBmaW5pc2hlZCBhbmQgeW91IG11c3QKICAgcmVmZXJlbmNlIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGZpbGUgYXQgdGhpcyBwb2ludC4KICAgCjIwMDEtMTItMjQgMTU6NTEgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLm5vdC5ldmVuLmNsb3NlICkKICAgCjIwMDEtMTItMjQgMTU6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1vcmUgY29tbWVudHMuCiAgIAoyMDAxLTEyLTI0IDE1OjQxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICA1LjAgY29tbWVudCB1cGRhdGVzLgogICAKMjAwMS0xMi0yNCAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG94eWdlbiBjb21tZW50cyBvbiBhIGZldyBmdW5jdGlvbnMuCiAgIAoyMDAxLTEyLTI0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTEyLTI0IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIG5vbi1leGlzdGVudCBtb2R1bGVzCiAgIAoyMDAxLTEyLTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWc6CgogICBvcHBzLiAgRG9uJ3QgY2hlY2sgaW4gZ2VuZXJhdGVkIGZpbGVzLgogICAKMjAwMS0xMi0yMyAxNTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IHJwbSB1c2FnZSAoSSBob3BlKS4KICAgCjIwMDEtMTItMjMgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGRlZCAuY3ZzaWdub3JlIGZpbGUKICAgCjIwMDEtMTItMjMgMTQ6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuCiAgIAoyMDAxLTEyLTIzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbmV0LXNubXAtY29uZmlnLCBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gY3JlYXRlZCBhIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgdG8gcmVwb3J0IGNvbXBpbGVkIGxpYnMuCiAgIC0gc2VwYXJhdGVkIGxpYnMgbmVlZGVkIGJ5IGFnZW50IGZyb20gdGhvc2UgbmVlZGVkIGJ5IHRoZSByZXN0IG9mIHRoZQogICAgIGFwcGxpY2F0aW9ucy4KICAgCjIwMDEtMTItMjEgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGhvdyB0byBpbnN0YWxsIERCSQogICAKMjAwMS0xMi0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICByZW1vdmUgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgQW55RGF0YQogICAKMjAwMS0xMi0yMSAxNjozNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1ha2UgaW5zdGFsbCBhcyByb290LgogICAKMjAwMS0xMi0yMSAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBJTlNUQUxMLCBJTlNUQUxMLAogICBJTlNUQUxMOgoKICAgYmV0dGVyIGRlc2NyCiAgIAoyMDAxLTEyLTIxIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjIwMDEtMTItMjEgMTY6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGl0J3MgdmVyeSBhbHBoYSBjb2RlLgogICAKMjAwMS0xMi0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG5ldyBpbnN0cnVjdGlvbnMKICAgCjIwMDEtMTItMjEgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGRveHlnZW4uCiAgIAoyMDAxLTEyLTIxIDEwOjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgY29tcGlsZSBpbiBhZ2VudCBzcGVjaWZpYyBzdXBwb3J0IG1pYnMuCiAgIAoyMDAxLTEyLTIxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKHN0aWxsIGluY29tcGxldGUpIDJuZCB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0yMSAwOTo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChpbmNvbXBsZXRlKSB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0xOSAxNzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggcmVhbGxvYyBmbG9hdCBhbmQgZG91YmxlIGJ1aWxkcy4KICAgCjIwMDEtMTItMTkgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc2MgZml4ZXMuCiAgIAoyMDAxLTEyLTE5IDE2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRlZmluZSBhIEMgZGF0YXR5cGUgYXMgJHZhci5kZWNsIChwZXIgUm9iZXJ0J3Mgc3VnZ2VzdGlvbi4gIFJvYmVydDogd2UKICAgcHJvYmFibHkgd2FudCBwb2ludGVycyBmb3IgdGhpbmdzIGxpa2Ugc3RyaW5ncywgbm8/ICBtYXliZSBvbmUgdHlwZQogICB0aGF0IGlzIGFsd2F5cyBhIHBvaW50ZXIgYW5kIGFub3RoZXIgdGhhdCBpcyBzb21ldGltZXMgZGVwZW5kaW5nIG9uCiAgIHRoZSB0eXBlPykKICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICBjaGFuZ2UgZGVmYXVsdCBidWxrIG51bWJlciB0byAxMDAgZnJvbSB0aGUgcmlkaWN1bG91cyAxMDAwLgogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDEtMTItMTkgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgZ2V0YnVsayB1cGRhdGVzIHRvIG1ha2UgaXQgdGhlIG1vZHVsZXMgcmVzcG9uc2liaWxpdHkgdG8gdXBkYXRlIHRoZQogICB2YXJiaW5kIGNoYWluIGFuIHRoZSByZXBlYXQgY291bnRlci4KICAgCjIwMDEtMTItMTkgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAosIGhlbHBlcnMvTWFrZWZpbGUuaW4sIGhlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgaGVscGVycy9hbGxfaGVscGVycy5oLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5oOgoKICAgR0VUQlVMSyBzdXBwb3J0IGZvciB0aGUgbmV3IEFQSS4KICAgICAtIG1heSBuZWVkIHRvIG1ha2Ugc29tZSBzbGlnaHQgbW9kaWZpY2F0aW9ucy4KICAgICAtIGRlZmF1bHRzIHRvIEdFVE5FWFQgZm9yIGFueSBoYW5kbGVyIHRoYXQgZG9lc24ndCBzZXQgSEFORExFUl9DQU5fR0VUQlVMSy4KICAgICAtIGRvZXNuJ3QgZGVhbCBwcm9wZXJseSB5ZXQgd2l0aCBlbmQtb2YtbWliIGNvbmRpdGlvbiByZW1vdmFsLgogICAKMjAwMS0xMi0xOSAwNjowNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgLXAgb3B0aW9uLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcyBvcHRpb25hbAogICAgICAgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSBkcm9wIChsb25nLWRlcHJlY2F0ZWQpIC1xIG9wdGlvbi4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIGFuZAogICAgICAgY2hhbmdlZCBkZXNjcmlwdGlvbiBvZiBzb21lIG9wdGlvbnMgdG8gYmUgbW9yZSBzaW1pbGFyIHRvIHNubXBkCiAgICAgICBvcHRpb25zICh3aGVyZSBhcHByb3ByaWF0ZSkuCiAgIAoyMDAxLTEyLTE5IDA0OjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucy4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMKICAgICAgIG9wdGlvbmFsIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBwbHVzCiAgICAgICBtaW5vciBmb3JtYXR0aW5nIHR3ZWFrcy4KICAgCiAgICAgLSByZS13cml0dGVuIG9wdGlvbnMgcHJvY2Vzc2luZyBsb29wIHRvIHVzZSBvcHRhcmcoKS4KICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy41KSwgVUNELVNOTVAtTUlCLnR4dAo6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICB3YXJuaW5nIC0+IGRlYnVnLgogICAKMjAwMS0xMi0xNyAxMDoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIGdldE5leHQgcXVlcmllcyB3aGVyZSB0aGUgaW5pdGlhbCB2YXJiaW5kLT50eXBlIGlzCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFICh0aGVzZSBjdXJyZW50bHkgYXJpc2Ugb25seSBpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cyBidXQgdGhlIGhhbmRsaW5nIGlzIG5vdCBzcGVjaWZpYyB0byBBZ2VudFgpLgogICAKICAgICAgIEJhc2ljYWxseSB0aGlzIGlzIGRvbmUgYnkgcGVyZm9ybWluZyBhIEdFVCBmaXJzdCBvbiBhbGwgdGhlCiAgICAgICB2YXJpYWJsZXMgaW4gYSByZXF1ZXN0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGhhZCBhbiBpbml0aWFsIHR5cGUgb2YKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIHdlcmUgc2F0aXNmaWVkIGJ5IHRoaXMgaW5pdGlhbCBHRVQsIHdlIHVzZQogICAgICAgdGhpcyB2YWx1ZSBhcyB0aGUgcmVzdWx0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGRpZCBub3QgaGF2ZSBhbgogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UsIG9yIHZhcmlhYmxlIHRoYXQgaGFkIGFuZAogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UgYnV0IHdlcmUgbm90IHNhdGlzZmllZCBieSB0aGlzCiAgICAgICBHRVQgcmVxdWVzdCwgd2UgcHJvY2VlZCB0byBwZXJmb3JtIGEgR0VULU5FWFQgdHlwZSByZXF1ZXN0IGFzCiAgICAgICBub3JtYWwuCiAgIAoyMDAxLTEyLTE3IDEwOjA0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2ggZW11bGF0ZXMgb2xkCiAgICAgICBmdW5jdGlvbmFsaXR5LgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiByZWdpc3Rlcl9vbGRfYXBpKCkuCiAgIAoyMDAxLTEyLTE3IDA5OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGJvZ3VzIGluZGVudAogICAKMjAwMS0xMi0xNyAwOTozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcmlnaHQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVnaXN0ZXJfbWliX2NvbnRleHQyKCkgaW4KICAgICAgIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIGRpdHRvLgogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIGhhbmRsZXIgaW5qZWN0aW9uIG9yZGVyIChzZXJpYWxpemUgbmVlZHMgdG8gYmUgY2FsbGVkIGZpcnN0KQogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNoZWNrIGZvciBhbHJlYWR5IGFuc3dlcmVkIEFTTl9OVUxMcyBpbiBmaXJzdCBwYXNzLgogICAKMjAwMS0xMi0xMiAwOTozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiAuY3ZzaWdub3JlLCBJTlNUQUxMLCBNQU5JRkVTVAosIFJFQURNRSwgc25tcHNoOgoKICAgLSBkb2MgdXBkYXRlLgogICAtIHNubXBzaCBub3cgc3VwcG9ydHMgYWxpYXNlcyBzbyB5b3UgY2FuIGRlZmluZSBjb21tYW5kIHNldHMuCiAgIC0gc25tcHNoIG5vdyByZWFkcyBhIH4vLnNubXBzaHJjIGZpbGUgZm9yIHN0b3JpbmcgdGhlc2UgZGVmaW5lZCBhbGlhc2VzLgogICAKMjAwMS0xMi0xMiAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIG5ldyBmdW5jdGlvbiBqb2luX3N1YnRyZWUoKSB3aGljaCByZXBhaXJzICJwdW5jdHVyZWQiIHN1YnRyZWVzCiAgICAgICAodGhlc2UgYXJpc2UgaW4gcGFydGljdWxhciB3aGVuIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucyBhcmUKICAgICAgIHdpdGhkcmF3bikuCiAgIAogICAgIC0gY29weSByZWdpbmZvIHdoZW4gZG9pbmcgYSByYW5nZSByZWdpc3RyYXRpb24gKGFzIHdlIHVzZWQgdG8gZG8KICAgICAgIHdpdGggdGhlIHZhcmlhYmxlIHN0cnVjdHVyZSksIHNpbmNlIGVhY2ggbm9kZSBtdXN0IHN0YW5kIGFsb25lLgogICAKICAgICAtIGFkZCBwYXJhbWV0ZXIgdG8gcmVnaXN0ZXJfbWliX2NvbnRleHQyIHRvIGFsbG93IFJFR0lTVEVSX09JRAogICAgICAgY2FsbGJhY2tzIHRvIGJlIHdpdGhoZWxkIChmb3IgaW5zdGFuY2UsIHlvdSBuZWVkIHRoaXMgdG8gYXZvaWQKICAgICAgIGV4Y2VzcyBBZ2VudFggdHJhZmZpYyBmb3Igcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHJlbW92ZSByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgLS0gdGhpcyBoYXMgbW92ZWQgdG8gb2xkX2FwaS5jCiAgIAogICAgIC0gY2FsbCBqb2luX3N1YnRyZWUoKSBpbiB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpLgogICAKMjAwMS0xMi0xMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaGFuZGxlci5oOgoKICAgICAtIGFkZCBmdW5jdGlvbnMgc25tcF9oYW5kbGVyX2ZyZWUoKSwgc25tcF9oYW5kbGVyX2R1cCgpLAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9kdXAoKSBhbmQKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpLgogICAKMjAwMS0xMi0xMSAxODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggYnVnIHdoZXJlIHBkdS0+Y29udGV4dE5hbWUgaXMgTlVMTC4KICAgCjIwMDEtMTItMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQklUUzogaXBhZGRyIC0+IG9jdGV0X3N0cgogICAKMjAwMS0xMi0xMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc2VuZCBJTkNMVVNJVkUgc2VhcmNoIHJhbmdlcyBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0xMCAyMDo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIG5vYWNjZXNzIGZsYWcgZm9yIG5vdC1hY2Nlc3NpYmxlIG5vZGVzCiAgIAoyMDAxLTEyLTEwIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IENoYW5nZXMsIERCRF9BbnlEYXRhLnBhdGNoLAogICBGb3JtYXQucG0sIElOU1RBTEwsIE1BTklGRVNULCBNYWtlZmlsZS5QTCwKICAgU3RvcmFnZS5wbSwgc25tcHNoOgoKICAgRmlyc3QgdmVyc2lvbgogICAKMjAwMS0xMi0xMCAwMzoyMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCBhcmcgdG8gZHNfc2V0X3N0cmluZwogICAKMjAwMS0xMi0xMCAwMzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZGl0dG8gaW4gc2V0X3BlcnNpc3RlbnRfZGlyZWN0b3J5KCkKICAgCjIwMDEtMTItMTAgMDM6MTggIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGluIHNldF9jb25maWd1cmF0aW9uX2RpcmVjdG9yeSgpIGJlY2F1c2UKICAgICAgIGRzX3NldF9zdHJpbmcoKSBhbHJlYWR5IGRvZXMgdGhhdCBmb3IgeW91LgogICAKMjAwMS0xMi0wNyAwOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuaAosIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIC0gSW1wbGVtZW50IG5ldyBtYW50cmE6ICJhbHdheXMgcGFzcyBtb3JlIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiBsZXNzIi4KICAgLSBmaXggdGFibGUgaXRlcmF0ZXIgR0VUTkVYVHMgZm9yIG1pc3NpbmcgZGF0YSBwb2ludHMuCiAgIC0gYWRkIGEgbmV3IGhvb2sgdG8gZnJlZSBsb29wIGNvbnRleHRzIGF0IHRoZSBlbmQgb2YgdGhlIGVudGlyZSBpdGVyYXRpb24uCiAgIAoyMDAxLTEyLTA2IDA2OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jIChKQlBOLUNCTC00LjEpLCBjbGllbnQuYzoKCiAgICAgLSBpZiByZXF1ZXN0IElEcyBkb24ndCBtYXRjaCwgdGhlbiBjYWxsIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkgLS0KICAgICAgIGNvcGVzIGJldHRlciB3aXRoIHVuZXhwZWN0ZWQgcGFja2V0cywgaW4gcGFydGljdWxhciBmaXhlcwogICAgICAgaW50ZXJtaXR0ZW50IGR1cGxpY2F0ZSB0cmFwIGlzc3VlIChkdWUgdG8gcmVzZW50CiAgIGFnZW50eC1Ob3RpZnktUERVKS4KICAgCjIwMDEtMTItMDUgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQWhlbS4gIE9wcHMuICBNaXNzaW5nIGluY2x1ZGVzLgogICAgIC0gbm90ZSB0byBzZWxmOiBjb21waWxlIGZpcnN0LCAqdGhlbiogY2hlY2sgaW4gY2hhbmdlcy4KICAgCjIwMDEtMTItMDUgMTM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgYWRkIGluIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBORVctQUdFTlQtQVBJIGJyYW5jaC4KICAgICAoYW5kIHRvIGFuc3dlciBSb2JlcnQncyBwZW5kaW5nIHF1ZXN0aW9uIG9mIHdoYXQgaGFwcGVuZWQsIGl0IHdhcwogICAgICBsaWtlbHkgb25lIG9mIHRoZSBmaWxlcyB0aGF0IGZhaWxlZCB0byBjb21taXQgb24gbXkgc2lkZSB0aGF0IHlvdQogICAgICB0cmllZCB0byBmaXggYW5kIHNvbWV3aGVyZSBiZXR3ZWVuIHRoZSB0d28gb2YgdXMgdGhlIGNoYW5nZXMgd2VyZSBsb3N0KS4KICAgCjIwMDEtMTItMDUgMTA6MDMgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtaW5vciB0d2Vha3MKICAgCjIwMDEtMTItMDUgMDk6MTQgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBhZGQgVENQL0lQdjYgZG9tYWluIHRvIEFHRU5UIFNQRUMgc2VjdGlvbgogICAKICAgICAtIGluY29ycG9yYXRlIHN1Z2dlc3Rpb25zIGZyb20gcnN0b3J5CiAgIAoyMDAxLTEyLTA1IDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgICAgLSB1c2UgU09DS19TVFJFQU0gbm90IFNPQ0tfREdSQU0gKGR1aCEpLiAgWW91IHdvdWxkbid0IGJlbGlldmUgaG93CiAgICAgICBjb25mdXNpbmcgdGhpcyB3YXMgLS0gZS5nLiBob3cgb24gKmVhcnRoKiBjYW4gdGhhdCBjb25uZWN0KCkgYmUKICAgICAgIHN1Y2NlZWRpbmchCiAgIAoyMDAxLTEyLTA1IDA4OjM2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2Ugc3VyZSB0byBjbG9zZSBzb2NrZXQgaWYgeW91IGNhbid0IG1hbGxvYyB0aGUgZW5jb2RlZCBmYXItZW5kCiAgICAgICBhZGRyZXNzIGluIHNubXBfdGNwX3RyYW5zcG9ydCgpCiAgIAoyMDAxLTEyLTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA4OjIzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUkVBRE1FLAogICBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBsb2NhbC9taWIyYywgbG9jYWwvdGttaWIKLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBwZXJsL1NOTVAvU05NUC5wbSwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyL3dpbjMyLmRzdywKICAgd2luMzIvd2luMzIub3B0LCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwCiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCjoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA3OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBmaXggYnVnIGluIGFkZHJlc3MgcGFyc2VyCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8sIGFoZW0sIG1ha2UgaXQgY29tcGlsZQogICAKMjAwMS0xMi0wNSAwNzo0MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBjb25kaXRpb25hbGlzZSAjaW5jbHVkZSA8ZmNudGwuaD4KICAgCjIwMDEtMTItMDUgMDc6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTEyLTA1IDA3OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBtZW50aW9uIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgaW4gY29uZmlnLCBhbmQgYWRkIGEgI2RlZmluZSBmb3IgaXQKICAgICAgIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBjYWxsIHNubXBfdGNwNl9jdG9yKCkgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmg6CgogICAgIC0gVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIFVudGVzdGVkLgogICAKMjAwMS0xMi0wNSAwNzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWFrZSBlbmNvZGVkIGFkZHJlc3NlcyBhdCB0cmFuc3BvcnQgb3BlbiB0aW1lCiAgIAoyMDAxLTEyLTA1IDA3OjE3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gbW92ZSAjZGVmaW5pdGlvbiBvZiBTTk1QX1NUUkVBTV9RVUVVRV9MRU4gZnJvbSBzbm1wVENQRG9tYWluLmMKICAgICAgIHRvIHNubXBfdHJhbnNwb3J0LmgKICAgCjIwMDEtMTItMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucyBsaWtlLCBvaCwgSSBkb24ndCBrbm93LCBnZXRTdGF0UHRyKCkuCiAgIAoyMDAxLTEyLTA1IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0xMi0wNSAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gY2hhbmdlZCB0ZXh0dWFsIGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMi0wNCAyMjo1MiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeCBiaW5kIHBhcmFtZXRlcnMsIHNvIHRoYXQgdGhlIGFnZW50IHdvcmtzCiAgIAoyMDAxLTEyLTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgLSBtb3ZlIGZvcmdvdHRlbiBmdW5jdGlvbiB0eXBlZGVmcyB0byBpdGVyYXRvciBzcGVjaWZpYyBoZWFkZXIgZmlsZS4KICAgLSBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIGNhbGxiYWNrcyB0byBtYWtlIGZ1bmN0aW9ucyBtb3JlIHJldXNhYmxlLgogICAKMjAwMS0xMi0wNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIG1vdmUgaXRlcmF0b3Igc3BlY2lmaWMgdGFibGUgaW5mb3JtYXRpb24gaW50byBpdHMgb3duIHN0cnVjdHVyZS4KICAgCjIwMDEtMTItMDQgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIEZpeCBwcm90b3R5cGUgYXMgcG9pbnRlZCBvdXQgYnkgSmVyb21lIFBlZHVjYXNzZQogICAKMjAwMS0xMi0wNCAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1lbnRpb24gdGhhdCBub3QgYWxsIHRyYW5zcG9ydCBkb21haW5zIGFyZSBhbHdheXMgYXZhaWxhYmxlLgogICAKMjAwMS0xMi0wNCAwOTo1NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHJlbW92ZSAtcCBhbmQgLVQgb3B0aW9ucyBmcm9tIGRvY3VtZW50YXRpb24uCiAgIAogICAgIC0gYWRkIGxlbmd0aHkgbmV3IHNlY3Rpb24gZGVzY3JpYmluZyBuZXcgdHJhbnNwb3J0IGFkZHJlc3MKICAgICAgIHNwZWNpZmljYXRpb24gZm9ybWF0LCB3aXRoIGV4YW1wbGVzIGFuZCBldmVyeXRoaW5nIQogICAKMjAwMS0xMi0wNCAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMgZm9yIGFwcHMuCiAgIAoyMDAxLTEyLTA0IDAzOjEwICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIGFkZCBjcmVhdGVfb3N0cmluZyBtZXRob2QsIGV4cG9ydCB1Y2RTbm1wVURQSVB2NkRvbWFpbltdCiAgIAoyMDAxLTEyLTA0IDAyOjE5ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBtZW50aW9uIElQdjYgdHJhbnNwb3J0IGRvbWFpbiBPSURzIGluIHJlbGV2YW50IGNvbW1lbnQuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBRdWVsbCBhIGNvbnN0IGNhc3Qgd2FybmluZy4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZGVidWcgb3V0cHV0IGZyb20gcmV0cmllcy4KICAgCjIwMDEtMTItMDMgMTU6MDYgIG5iYQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEhBVkVfU1lTX1RZUEVTX0ggaXMgbm90IGNvbmRpdGlvbmFsLgogICAKMjAwMS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYWxsb3cgY29tcGlsYXRpb25zIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeS4KICAgCjIwMDEtMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4ZXMgdG8gbWFrZSBVRFBJUHY2IHRyYW5zcG9ydCB3b3JrIGZvciBTb2xhcmlzLCBMaW51eCBhbmQgRnJlZUJTRC4KICAgSXQgY29tcGlsZXMsIGFuZCB0aGUgYXBwcyBzZW5kIHY2IHBhY2tldHMuIEFnZW50IG5vdCB5ZXQgdGVzdGVkLgogICAKMjAwMS0xMi0wMyAwOTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYKOgoKICAgY29weSByb2JlcnRzIHNwaWZmeSBoZWFkZXIgdGV4dAogICAKMjAwMS0xMi0wMyAwODozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBkYXRlbnRpbWUgY29sdW1uLgogICAKMjAwMS0xMi0wMyAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHByb2JsZW0gd2l0aCBkb3VibGUgZGVsZWdhdGVkIHJlcXVlc3RzIGFmdGVyIGdldG5leHQgbG9vcC4KICAgCjIwMDEtMTItMDMgMDg6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dDoKCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliIGFkZGVkIHRvIGRlZmF1bHQgbGlzdC4KICAgCjIwMDEtMTItMDMgMDU6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGRlYnVnZ2luZyBvdXRwdXQgKCJibGFoIikKICAgCjIwMDEtMTEtMzAgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAo6CgogICBDaGFuZ2UgaG93IHJlcXVlc3QgcHJvY2Vzc2luZyBnZXRzIGRvbmUgc3VjaCB0aGF0IHJlcXVlc3Qgb2JqZWN0cyBhcmUKICAgYWxsIGNhbGxvY2VkIGF0IG9uY2UgYW5kIGdldCByZXVzZWQgaW5zdGVhZCBvZiByZWFsbG9jYXRlZC4gIEJpZyBzcGVlZAogICBpbXByb3ZlbWVudHMuCiAgIAoyMDAxLTExLTMwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgIm1ha2UgZG9jIiB0byBydW4gZG94eWdlbi4KICAgCjIwMDEtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMsIG11bHRpcGxleGVyLmg6CgogICBkb3h5Z2VuIGZpeGVzCiAgIAoyMDAxLTExLTMwIDA5OjI2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSBpbiByZWdpc3Rlcl9oYW5kbGVyKCkgaWYgYXBwcm9wcmlhdGUuCiAgIAoyMDAxLTExLTMwIDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKSB3aGVuIHN1YmFnZW50IHRyaWVzIHRvCiAgICAgICByZWdpc3RlciBhIE1JQiByZWdpb24gdGhhdCBmYWlscyBlaXRoZXIgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZQogICAgICAgb3IgYmVjYXVzZSBvZiBzb21lIG90aGVyIHJlYXNvbi4KICAgCjIwMDEtMTEtMzAgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIG9mIG9sZF9pbmZvICh0aGF0IG5ldmVyIHNlZW1zIHRvIGdldCB1c2VkIGZvcgogICAgICAgYW55dGhpbmcgYW55d2F5PykKICAgCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgdGhhdCBhcmlzZXMgZHVyaW5nIHJvdyByZWdpc3RyYXRpb24gKGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzKSBiZWNhdXNlIHN1Y2Nlc3NpdmUgdmFycyBjYXVzZSBhcHBhcmVudCBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMgKHRoaXMgaXMgYSBkZWZpY2llbmN5KSAtLSBidXQgaXQgd291bGQgYXBwZWFyIHRoaXMKICAgICAgIGNvdWxkIGFyaXNlIGluIG90aGVyIHNpdHVhdGlvbnMgdG9vIChnZW51aW5lIGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucykuCiAgIAoyMDAxLTExLTMwIDA2OjMzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBmaXggYnJva2VuIHBhcnNpbmcgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzKCkgLS0gbG9vcCB3YXMKICAgICAgIGNvcHlpbmcgdGhlIHNhbWUgKGZpcnN0KSB0b2tlbiBNQVhfQVJHUyB0aW1lcy4KICAgCiAgICAgLSBlbGltaW5hdGUgbWVtb3J5IGxlYWsgaW4gZGl0dG8uCiAgIAogICAgIC0gZml4IHR5cG8gKCJQYXVzaWJsZSBjYXVzZSIgLT4gIlBvc3NpYmxlIGNhdXNlKSBpbiBkaXR0by4KICAgCjIwMDEtMTEtMzAgMDY6MjkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHByaW50IGZkIGluIHNlc3NfcHJvY2Vzc19wYWNrZXQoKSAtLSB1c2VmdWwgZm9yIGRlYnVnZ2luZwogICAKMjAwMS0xMS0zMCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgICAtIHJlbW92ZSBhIGNvdXBsZSBvZiB1bm5lY2Vzc2FyeSAjaW5jbHVkZXMgZnJvbSBzbm1wQ2FsbGJhY2tEb21haW4uaAogICAKICAgICAtIHNldCAqb3BhcXVlIHRvIE5VTEwgYWZ0ZXIgd2UgZnJlZSBpdCAtLSBpdCBtaWdodCBtYXR0ZXIuCiAgIAoyMDAxLTExLTMwIDAzOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGNsb25lIFBEVSBpbiBoYW5kbGVfYWdlbnR4X3N1YmFnZW50KCkgYmVmb3JlIHNlbmRpbmcgaXQgb24gY2FsbGJhY2sKICAgICAgIHNlc3Npb24gdG8gYXZvaWQgZG91YmxlIGZyZWUoKSBhbmQgZnJlZSgpZCBtZW1vcnkgcmVhZHMuCiAgIAogICAgIC0gbW9yZSBjb25jaXNlIChhaGVtKSBkZWNsYXJhdGlvbiBvZiBteWNhbGxiYWNrIGluIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkuCiAgIAoyMDAxLTExLTI5IDA1OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBwdXQgc2Vzc2lvbiBhbmQgc3Vic2Vzc2lvbiBpbiBzdWJhZ2VudCBkZXNjcmlwdGlvbiAoaGVscGZ1bCBmb3IKICAgICAgIGRlYnVnZ2luZykKICAgCjIwMDEtMTEtMjkgMDU6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggSU5TVEFMTEhFQURFUlMKICAgCjIwMDEtMTEtMjkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIHNvbWUgZGVidWdnaW5nIHRvIGluaXRfc3ViYWdlbnQoKSAod2hpY2ggc2hvd2VkIHRoYXQgaXQgd2Fzbid0CiAgICAgICBiZWluZyBjYWxsZWQsIHNvLi4uKS4KICAgCiAgICAgLSBmaXggY2FzdCBpbiBoYW5kbGVfc3ViYWdlbnRfc2V0X3Jlc3BvbnNlKCkKICAgCjIwMDEtMTEtMjkgMDU6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWFrZSBzdXJlIGluaXRfc3ViYWdlbnQoKSBnZXRzIGNhbGxlZAogICAKMjAwMS0xMS0yOCAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNoZWNrIGZvciBzZXNzaW9uIHJlZ2lzdHJhdGlvbnMgaW4gYWxsIGNvbnRleHRzLgogICAKMjAwMS0xMS0yOCAwNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBBZGQgc3lzL3R5cGVzLmggZm9yIGJ1ZyAjNDg2Mjc3LgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgICAgLSAjaW5jbHVkZSA8bmV0ZGIuaD4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGluc3RhbGwgc25tcF90cmFuc3BvcnQuaCBhbmQgc25tcCpEb21haW4uaCAoZm9yIHRoZSBjb25maWd1cmVkCiAgICAgICB0cmFuc3BvcnQgZG9tYWlucykKICAgCjIwMDEtMTEtMjggMDM6MjkgIGpicG4KCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgICAtIHJldmVyc2UgbXlzdGVyeSByZW1vdmFsIG9mICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGFuZCAjaW5jbHVkZQogICA8c3lzL3RpbWUuaD4KICAgCjIwMDEtMTEtMjcgMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBtb3JlIGludGVsbGlnZW50bHkgYWxsb2NhdGUgdHJlZSBzcGFjZSBiYXNlZCBvbiBudW1iZXIgb2YgdmFyYmluZHMgaW4gcmVxdWVzdC4KICAgCjIwMDEtMTEtMjcgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBtYWxsb2Mgb25lIGxhcmdlIHRyZWVfY2FjaGUgYXJyYXkgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb2YgdHJlZV9jYWNoZSBwb2ludGVycy4KICAgCjIwMDEtMTEtMjcgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGluY2x1ZGUgZmlsZSBuYW1lIGNoYW5nZS4KICAgCjIwMDEtMTEtMjcgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvbW1lbnQgY2hhbmdlcy4KICAgCjIwMDEtMTEtMjcgMDc6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXhlZCBNYWtlZmlsZSBmb3Igc25tcHRyYXBkLgogICAKMjAwMS0xMS0yNyAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluLCBhbGxfaGVscGVycy5jLAogICBhbGxfaGVscGVycy5oLCBkZWJ1Z19oYW5kbGVyLmMsIGRlYnVnX2hhbmRsZXIuaDoKCiAgIGRlYnVnIGhhbmRsZXIgY3JlYXRlZCBmb3IgaW5zZXJ0aW5nIGRlYnVnZ2luZyBvdXRwdXQgaW50byB0aGUgY2FsbGluZyBjaGFpbi4KICAgCjIwMDEtMTEtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGVudW0gZGVmaW5pdGlvbnMgZm9yIG1vZGVzIGFuZCBjYW5fbW9kZXMuCiAgIAoyMDAxLTExLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgUERVIHZhcmlhYmxlIHRvIE5VTEwgdG8gYXZvaWQgZnJlZWluZyBpdCB0d2ljZS4KICAgCjIwMDEtMTEtMjYgMTE6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBwbHVnIGFub3RoZXIgbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsCiAgIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMsCiAgIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTLAogICBUMDI4c25tcHYzZ2V0ZmFpbCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAKLCBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMTEwYWdlbnR4Z2V0LAogICBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXAsCiAgIFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsOgoKICAgZG9uJ3QgdXNlIGNvbnRleHRzIGluIHRlc3RzLgogICAKMjAwMS0xMS0yNiAwODo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpeCBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYywgYWdlbnR4L21hc3Rlci5jLAogICB1Y2Qtc25tcC9wcm94eS5jOgoKICAgdXNlIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgdG8gcGx1ZyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTExLTI2IDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaGFuZGxlci5oOgoKICAgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSByb3V0aW5lCiAgIAoyMDAxLTExLTI2IDA4OjE5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIHRoZSBhYmlsaXR5IHRvIGxpc3RlbiBmb3IgdHJhcHMgb24gbXVsdGlwbGUgdHJhbnNwb3J0cyB2aWEgdGhlCiAgICAgICAtcCBvcHRpb24gKGNvbnNpc3RlbnQgd2l0aCBzbm1wZCkuCiAgIAoyMDAxLTExLTI2IDA1OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3RyYW5zcG9ydF9vaWQoKSB0byBkbyBzZXNzaW9uIGNyZWF0aW9uIGZyb20KICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLCB0byBhbGxvdyBjcmVhdGlvbiBvZgogICAgICAgbm9uLUlQdjQgc2Vzc2lvbnMgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4KICAgCjIwMDEtMTEtMjYgMDQ6NDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGluZyBhIHRyYW5zcG9ydCBmcm9tIGEKICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLgogICAKMjAwMS0xMS0yNiAwMzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB0cmFuc3BvcnQgZG9tYWluCiAgICAgICBpcyBzdXBwb3J0ZWQuCiAgIAoyMDAxLTExLTIzIDEwOjI0ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIG11bHRpcGxlIHRyYW5zcG9ydCBkb21haW4gc3VwcG9ydCBmb3IgdHJhcGQgLS0gdGhpcyB3YXMgcmVhbGx5CiAgICAgICBSRUFMTFkgZWFzeSEKICAgCjIwMDEtMTEtMjMgMDk6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGZ1bmN0aW9uIHNubXBfdHJhbnNwb3J0X3N1cHBvcnQoKSAocmVwbGFjZWQgd2l0aAogICAgICAgc25tcF90ZG9tYWluX3N1cHBvcnQoKSkuCiAgIAoyMDAxLTExLTIzIDA4OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYzoKCiAgICAgLSB1c2UgbmV0d29yayBvcmRlciBmb3IgQUFMNVBWQyB0cmFuc3BvcnQgYWRkcmVzcyBlbmNvZGluZwogICAKMjAwMS0xMS0yMyAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIHNldCBsb2NhbF9sZW5ndGgsIHJlbW90ZV9sZW5ndGggYXMgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTEtMjMgMDg6MzkgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMS0yMyAwODozNCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIG1ha2UgdHJhcHMgd29yayB3aXRoIG5ldy1zdHlsZSBhZGRyZXNzZXMsIHVzZSBkb21haW4tYmFzZWQgYWRkcmVzcwogICAgICAgZW5jb2RpbmdzIGluIHNubXBUYXJnZXRBZGRyVGFibGUuICBOb3RlIHlvdSBjYW4gbm93IHNlbmQgdHJhcHMvaW5mb3JtcwogICAgICAgb3ZlciBhbnkgc3VwcG9ydGVkIHRyYW5zcG9ydCB0eXBlIGJ5IHVzaW5nIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUgYW5kCiAgICAgICBhIHRyYW5zcG9ydDphZGRyZXNzIHR5cGUgc3BlY2lmaWNhdGlvbi4KICAgCjIwMDEtMTEtMjMgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgICAtIGNyZWF0ZSBhcHByb3ByaWF0ZWx5LWVuY29kZWQgbG9jYWwgb3IgcmVtb3RlIGVuZHBvaW50IGFkZHJlc3NlcyBhdAogICAgICAgdHJhbnNwb3J0IG9wZW4gdGltZS4KICAgCjIwMDEtMTEtMjMgMDY6NTAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSB1cGRhdGUgZGVwZW5kZW5jaWVzIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTIyIDA5OjA4ICBqYnBuCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0cy9UMTAwYWdlbnRodXAsCiAgIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0cy9UMTIxcHJveHlzZXQsCiAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICAgIC0gdXNlIHVkcDo8aG9zdG5hbWU+Ojxwb3J0PiBpbnN0ZWFkIG9mIC1wIHRvIG1ha2UgdGVzdHMgd29yayBhZ2FpbgogICAKMjAwMS0xMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgbW9yayB3b3JlIG9uIHRoZSBub3RpZmljYXRpb24gbG9nIG1pYi4gIEl0IG5vdyBzdXBwb3J0cyB2YXJpYWJsZQogICBzdG9yYWdlLCBidXQgc2VnZmF1bHRzIG9uIGFjY2VzcyBkdWUgdG8gcGR1IGNsb25pbmcgcHJvYmxlbXMgSSdtIG5vdAogICBnb2luZyB0byB3b3JrIG91dCByaWdodCBub3cuCiAgIAoyMDAxLTExLTIxIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHNubXB0cmFwZCBsaW5raW5nLgogICAKMjAwMS0xMS0yMSAyMjo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBPSURfTEVOR1RIOyB1c2UgYWN0dWFsIG9pZCB0eXBlIGluIGNhbGN1bGF0aW9uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYWRkIE5VTEwgcG9pbnRlciBmb3IgcmJ1aWxkIGluIHNlc3Npb24gY3JlYXRpb24uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwo6CgogICBuZXRpbmV0L2luLmggbmVlZGVkLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB2YXJpYWJsZSBjbGVhbiB1cHMuCiAgIAoyMDAxLTExLTIxIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBsb2NhbC9taWIyYywKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBwZXJsL1NOTVAvU05NUC54cywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIyOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi86IHZhY20uaCwgYXNuMS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQzICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfYXJyYXkuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgZGF0YV9saXN0Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMTg6NTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHZlcnNpb24uaCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmgsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmgsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgKLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDA2OjQzICBqYnBuCgogICAqIGNvbmZpZy5oLmluOgoKICAgICAtIElQdjYgY29uZmlnIGRlZnMKICAgCjIwMDEtMTEtMjEgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1leHRyYW5lb3VzICNpbmNsdWRlICJzbm1wQmxhaERvbWFpbi5oIiBsaW5lcwogICAKMjAwMS0xMS0yMSAwMzozOSAgamJwbgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTExLTIwIDA5OjM4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMsIHNubXBJUFhEb21haW4uaDoKCiAgICAgLSBkdWguICBGb3Jnb3QgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIGRvIHdpdGggZG9tYWluLWJhc2VkIHRyYW5zcG9ydAogICAgICAgYWRkcmVzcyBwYXJzaW5nLgogICAKMjAwMS0xMS0yMCAwOToyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIG5ldyBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZyBmb3IgYWdlbnQgTlNBUHMKICAgCjIwMDEtMTEtMjAgMDk6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmgKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBEb21haW4uaCwKICAgc25tcFVuaXhEb21haW4uYywgc25tcFVuaXhEb21haW4uaCwgc25tcF9hcGkuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMS0yMCAwOToxNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgTm90ZTogaW5jb21wbGV0ZSEKICAgCjIwMDEtMTEtMjAgMDg6MjkgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIHVucmVnaXN0ZXJfe3N0cmluZyxpbnQsb2lkfV9pbmRleCgpIHV0aWxpdHkgZnVuY3Rpb25zIGNvbnRyaWJ1dGVkCiAgICAgICBieSBEYW1pYW4gR2lsbXVycmF5LgogICAKMjAwMS0xMS0yMCAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMTY6NTkgIGRyaWVodWlzCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IHR5cG8gaW4gY29tbWVudCBba2FybGhlZ0BtaWNyb3NoYXJwLmNvbV0KICAgCjIwMDEtMTEtMTYgMDg6MzQgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjQtMi1wYXRjaGVzLjUpLCBwcm90b2NvbC5jCjoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDY6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gbGV0IFZBQ00gY2hlY2tzIHN1Y2NlZWQgZm9yIG5vbi1JUHY0IHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMTUgMDU6MTkgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE1IDA0OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgInNubXBkLmgiIChmb3IgI2RlZmluaXRpb24gb2YgTUFTVEVSX0FHRU5UKQogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgYWdlbnR4c29ja2V0IHZhbHVlIC0tIGRzX3NldF9zdHJpbmcgZG9lcyBpdCBmb3IgeW91CiAgICAgLSBjaGFuZ2UgZGVidWdnaW5nIHRvIGZpdCBpbiBiZXR0ZXIgd2l0aCByZXN0IG9mIG1vZHVsZQogICAKMjAwMS0xMS0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bNyw3XSksIGNvbmZpZy5oLmluCiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmMsIGFnZW50eF9jb25maWcuaAosIG1hc3Rlci5jLCBtYXN0ZXIuaCwgc3ViYWdlbnQuaDoKCiAgIHNsaWdodGx5IG1vZGlmaWVkIHBhdGNoIGZyb20gSGFycmllIHRvIG1vdmUgYWdlbnR4IGNvbmZpZ3VyYXRpb24gaW50bwogICBhIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaWxlIE5FVC1TTk1QLUFHRU5ULU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmg6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDA1OjI5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEzIDA0OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSB1c2UgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hlbiBhcHByb3ByaWF0ZSBpbgogICAgICAgdW5yZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKMjAwMS0xMS0xMyAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHJlc2V0IHZyLT5uYW1lbGVuIHdoZW4gd2UndmUgZmluaXNoZWQgd2l0aCBpdAogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgZmlsZSBhbGxfaGVscGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBmaWxlIGFsbF9oZWxwZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMDggMDg6MDkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gb2YgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCksIHdoaWNoIHVzZXMKICAgICAgIHJhbmdlcyBwcm9wZXJseSBpbiB0aGUgY2FsbGJhY2sgKGhlbmNlIG11Y2ggbW9yZSBlZmZpY2llbnQgZm9yCiAgICAgICBBZ2VudFgpLgogICAKMjAwMS0xMS0wNyAwOTo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgbm93LXJlZHVuZGFudCBhZ2VudHhfYnVpbGQgZnVuY3Rpb25zCiAgIAoyMDAxLTExLTA3IDA2OjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXJfYWRtaW4uYywKICAgcHJvdG9jb2wuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSgpIGluIGEgY291cGxlIG9mIHBsYWNlcyBmb3IgbW9yZSBjb21wcmVoZW5zaXZlCiAgICAgICBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKICAgICAtIHBhcnNlIHVucmVnaXN0ZXIgcmFuZ2VzIHByb3Blcmx5LCBhbmQgdXNlIHRoZSByYW5nZSBwcm9wZXJseSBmb3IKICAgICAgIHBhc3NpbmcgdG8gdW5yZWdpc3Rlcl9taWJfY29udGV4dCgpLgogICAKMjAwMS0xMS0wNyAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHU01TR09JRFJBTkdFKCkgbWFjcm8gZm9yIGRlYnVnZ2luZyBPSUQgcmFuZ2VzCiAgIAoyMDAxLTExLTA2IDA2OjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZyBpbiBhIGNvdXBsZSBvZiBjYXNlcywgdG8gcHJldmVudCBzcHVyaW91cwogICAgICAgSU5DTFVTSVZFIGdldE5leHQgYmVoYXZpb3VyCiAgIAoyMDAxLTExLTA1IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGNvcnJlY3QgYnVnIGluIHJhbmdlX3N1YmlkIHR3ZWFrIGNvZGUKICAgCjIwMDEtMTEtMDUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjYWxjdWxhdGUgdXBwZXIgYm91bmQgZm9yIHRhYmxlIHJvdyByZWdpc3RyYXRpb25zIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgIAoyMDAxLTExLTAxIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBwcm90b2NvbC5jLAogICBwcm90b2NvbC5oLCBzdWJhZ2VudC5jOgoKICAgICAtIGltcGxlbWVudCByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIGFnZW50eF9idWlsZCgpIHJvdXRpbmVzLAogICAgICAgYW5kIHVzZSB0aGVtLgogICAKMjAwMS0xMS0wMSAwOTozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgICAgLSBzdXBwb3J0IGZvciByZWxvY2F0YWJsZSBidWZmZXIgYnVpbGQgY2FsbGJhY2tzIHZpYSBvcGVuX2V4IGNhbGxzCiAgIAoyMDAxLTEwLTMwIDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTMwIDAzOjI0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHRoZSBpbml0aWFsIGJ1ZmZlciBzaXplIDIwNDggaW4gc25tcF9yZXNlbmRfcmVxdWVzdCAoYXMgaW4KICAgICAgIF9zZXNzX2FzeW5jX3NlbmQpIHRvIG1ha2Ugc3VjY2Vzcy9mYWlsIGJlaGF2aW91ciBmb3IgQWdlbnRYIG1vcmUKICAgICAgIHByZWRpY3RhYmxlIChzaW5jZSBBZ2VudFggU1RJTEwgZG9lc24ndCB1c2UgcmVsb2NhdGluZyBidWZmZXJzLAogICAgICAgYm9vIGhpc3MpLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktdXNlci5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS1hdXRvLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBmaWxlIHRhYmxlX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5Lmg6CgogICBmaWxlIHRhYmxlX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5oOgoKICAgZmlsZSBvaWRfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaWxlIG9pZF9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI2IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZnVuY3Rpb24gbmFtZSBpbiBlcnJvciBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDA2OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAgICAtIGFkZCBzdXBwb3J0IGZvciByeCBhbmQgdHggZHJvcCBjb3VudHMgKGlmSW5EaXNjYXJkcyBhbmQKICAgICAgICBpZk91dERpc2NhcmRzKSBmb3IgTGludXggKDIuMispCiAgIAoyMDAxLTEwLTI2IDA1OjU3ICBqYnBuCgogICAqIGFjbG9jYWwubTQ6CgogICAgIC0gYWRkIGlmX2lxZHJvcHMgbWVtYmVyIHRvIHN0cnVjdCBpZm5ldAogICAKMjAwMS0xMC0yNiAwNDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gYWRkIHRyYW5zbGF0aW9uIGZvciBhdG0oMzcpIHR5cGUgaW50ZXJmYWNlcyBmb3IgTGludXgKICAgCjIwMDEtMTAtMjYgMDM6NDMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjQpLAogICBzeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA4OjQzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaHJfc3dpbnN0LmMKOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMjQgMDM6MzggIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yMSAwNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZmlsZSBtaWIyYy5pdGVyYXRlLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBmaWxlIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTE1IDA2OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgICAgLSB6ZXJvIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZXMuICBIb3BlZnVsbHkgZml4ZXMgcHJvYmxlbXMgb24gTmV0QlNECiAgICAgICBub3RlZCBieSBKb2FraW0gQWx0aGluaSAocmVsYXRlZCB0byBzYV9sZW4gbWVtYmVyIHByb2JhYmx5Pz8pLgogICAKMjAwMS0xMC0xMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPcHBzZXMuCiAgIAoyMDAxLTEwLTExIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcF9lcnJvci4zLAogICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywKICAgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1hbi9zbm1wc2V0LjEsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIG1hbi9zbm1wdHJhcGQuOCwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLAogICBtYW4vc25tcHdhbGsuMSwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLm1pYiwKICAgbWlicy9SRUFETUUubWlicywgbWlicy9TTVVYLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgbWlicy9taWJmZXRjaCwgbWlicy9yZmNsaXN0CiwgbWlicy9zbWlzdHJpcCwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9pbnQ2NC5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL210X3N1cHBvcnQuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCiwgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTExIDE0OjAxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBDaGFuZ2VMb2csIEZBUSwgTWFrZWZpbGUuaW4sCiAgIE5FV1MsIFJFQURNRSwgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gKLCBtYWtlZmlsZWluZGVwZW5kLnBsLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL21pYjJjLmNvbmYsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsCiAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QsIGxvY2FsL3RrbWliOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0wOSAwNzoxNCAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBTb21ldGltZXMgd2UgZmVlbCBsaWtlIGEgLW51dAogICAKMjAwMS0xMC0wOSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHByb3Blcmx5IGFjY291bnQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHN1ZmZpeCBpbiB0aGUgdmFyaWFibGUKICAgICAgIHRhYmxlIGluIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKMjAwMS0xMC0wOCAwODo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gZGVjbGFyZSB2ZXJzaW9uX3N5c29pZF9sZW4gYXMgZXh0ZXJuIElOVCBub3QgZXh0ZXJuIG9pZCwgc28gYXMgdG8KICAgICAgIG1hdGNoIGl0cyBhY3R1YWwgZGVmaW5pdGlvbiBpbiBzeXRlbV9taWIuYy4gIFRoaXMgY2F1c2VkIGFsbCBraW5kcyBvZgogICAgICAgZnVuICYgZ2FtZXMgb24gTGludXggb24gYSBBbHBoYS4KICAgCjIwMDEtMTAtMDQgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHNubXBfY2FsbGJhY2tfbGlzdCgpIHRvIHJldHVybiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgYQogICAgICAgZ2l2ZW4gPG1ham9yLCBtaW5vcj4gcGFpci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBmaWxlIHBhc3NfcGVyc2lzdHRlc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0xMC0wMyAwNTo0MiAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDMgMDM6MTEgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBkbyBTTk1QRF9DQUxMQkFDS19VTlJFR0lTVEVSX09JRCBjYWxsYmFja3MgaW4KICAgICAgIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkgLS0gY2FsbGVkIHdoZW4gQWdlbnRYIHN1YmFnZW50cwogICAgICAgZGlzYXBwZWFyLgogICAKMjAwMS0xMC0wMiAwNjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkb24ndCBzZW5kIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIEFTTl9QUklWX0VYQ0xfUkFOR0Ugb24tdGhlLXdpcmUKICAgCjIwMDEtMDktMjYgMDg6MDMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBhbGxvdyBzcGxpdF9zdWJ0cmVlKCkgdG8gZG8gYSBzcGxpdCBpbiB0aGUgbWlkZGxlIG9mIGEgY29sdW1uLAogICAgICAga2VlcGluZyB0aGUgcmVsZXZhbnQgdmFyaWFibGUgaW4gYm90aCB0aGUgb2xkIHRyZWUgYW5kIHRoZSBuZXcKICAgICAgIHRyZWUgKGFyaXNlcyBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHBhdGNoIGZyb20gRGFtaWFuIEdpbG11cnJheSBmb3IgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoCiAgICAgICBhbGxvd3MgaXQgdG8gY29wZSB3aXRoIG5vbi16ZXJvIGxlbmd0aCB2YXJpYWJsZXMgYW5kIGFsc28KICAgICAgIG5vbi1jb250aWd1b3VzIE9JRHMgZm9yIGFkamFjZW50IGNvbHVtbnMuCiAgIAogICAgIC0gcmV3cml0dGVuIGR1bXBfcmVnaXN0cnkoKSB0aGF0IHVzZXMgcmVhbGxvY2F0aW5nIHByaW50IGZ1bmN0aW9ucwogICAgICAgYW5kIGFsc28gcHJpbnRzIG91dCB2YXJpYWJsZSBsaXN0cy4KICAgCjIwMDEtMDktMjYgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWJ0cmVlIG5hbWUgYmVpbmcgbG9uZ2VyIHRoYW4KICAgICAgIHJlcXVlc3RlZCBuYW1lIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHN1ZmZpeCBmb3IgdmFyaWFibGUgbWF0Y2hpbmcuCiAgIAogICAgIC0gYmUgc3RyaWN0IGFib3V0IHN1YnRyZWUgY2h1bmtzIGJlaW5nIGluY2x1c2l2ZSBvZiB0aGUgc3RhcnQgT0lECiAgICAgICBhbmQgZXhjbHVzaXZlIG9mIHRoZSBlbmQgT0lEIChzaG93cyB1cCBiaWcgdGltZSBpbiBBZ2VudFgpLgogICAKMjAwMS0wOS0yNiAwNzoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBkb24ndCBkbyBnZXROZXh0IHJlcXVlc3RzIG9uIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZXMgdGhhdCBiZWdpbiBpbgogICAgICAgYSB0cmVlIG1hcmtlZCBhcyBhIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSAodGhleSBhcmUgZG9vbWVkIHRvCiAgICAgICBmYWlsKS4gIFNraXAgdG8gdGhlIG5leHQgcGFydCBvZiB0aGUgdHJlZSBzdHJhaWdodCBhd2F5LgogICAKMjAwMS0wOS0yNiAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gYnJpbmcgZGVidWdnaW5nIHRva2VucyBpbnRvIGxpbmUgd2l0aCByZXN0IG9mIEFnZW50WCBjb2RlCiAgIAoyMDAxLTA5LTI1IDA4OjE1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UgY2hhcmFjdGVyCiAgIAoyMDAxLTA5LTI1IDAzOjU4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBjYXN0CiAgIAoyMDAxLTA5LTI1IDAzOjQ1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIGluZmVsaWNpdHkgd2hlbiBwcmludGluZyBhbmQgc3lzbG9nZ2luZyAobm90IHN1cmUgdGhpcyBpcwogICAgICAgYWN0dWFsbHkgcG9zc2libGUgYnV0KQogICAKMjAwMS0wOS0yNSAwMzowOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGludGVncmF0ZSBzb21lIGNoYW5nZXMgZnJvbSB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaDogSGFycmllJ3MKICAgICAgIHByb3RvdHlwZXMgYW5kIFdlcydzIGZpeCBmb3IgYnVnICAjNDYzMjI2LgogICAKMjAwMS0wOS0yNSAwMzowMSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBmaXggc2lnbmVkbmVzcyBvZiB0aW1lIHN0dWZmCiAgIAoyMDAxLTA5LTI1IDAyOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAgIC0gbWFrZSBhcmd1bWVudCBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQgY29uc3QKICAgCiAgICAgLSBkb24ndCBzdHJkdXAgREVGQVVMVF9MT0dfSUQgaWYgYSBOVUxMIGFyZyBpcyBnaXZlbgogICAKMjAwMS0wOS0yNCAwOTozOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGluIHNubXB0cmFwZF9sb2cuYyB3aGljaAogICAgICAgYXZvaWQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAogICAgIC0gZml4IGJ1ZyBub3RlZCBpbiBzdXBwb3J0IHJlcXVlc3QgIzQ1NjY0NiAoY3VzdG9tIHRyYXAgZm9ybWF0IHdhcwogICAgICAgYmVpbmcgaWdub3JlZCBmb3IgdjIgdHJhcHMgYW5kIGluZm9ybXMpLiAgVGhhbmtzIHRvCiAgICAgICBHLlByaW5jaXBhdG9AbW90b3JvbGEuY29tIGZvciBzcG90dGluZyB0aGlzIG9uZS4KICAgCiAgICAgLSBjb3JyZWN0IHVzYWdlIGZvciAtUCBvcHRpb24gdG8gcmVmbGVjdCB0aGF0IGl0IGNhdXNlcyBvdXRwdXQgb24KICAgICAgIHN0ZGVyciBub3Qgc3Rkb3V0LgogICAKMjAwMS0wOS0yNCAwOTozNiAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gcmV3cml0ZSBvZiBvdXRwdXQgZnVuY3Rpb25zIHRvIGF2b2lkIHVzZSBvZiBmaXhlZC1sZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yMCAxMzowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgbmV3IGxvZ21hdGNoIG1pYiBmcm9tIFN0ZXBoYW4gV2VuemVsLgogICAKMjAwMS0wOS0xNSAwODo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBvdmVycmlkZSBleGNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dCBvcGVyYXRpb25zIHdoZW4gcmV0cnlpbmcKICAgICAgIG9wZXJhdGlvbnMKICAgCjIwMDEtMDktMTUgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgICAgLSBpbXByb3ZlZCBzdXBwb3J0IGZvciBBZ2VudFgtc3R5bGUgaW5jbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQKICAgCjIwMDEtMDktMTQgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggIzQ0MzExNSBmcm9tIFlpbWluIEdlOiBkaXNraW8gc3VwcG9ydCBmb3IgZnJlZWJzZDQKICAgCjIwMDEtMDktMTQgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICBQYXRjaCAjNDQwMzIwIGZyb20gTWFyayBGZXJsYXR0ZToKICAgCiAgIDEpIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gdGhlIHNubXBfbG9nZ2luZyBBUEkKICAgICAgKHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChjaGFyICppZGVudCkpCiAgIAogICAyKSBQb3J0cyBzbm1wdHJhcGQgdG8gdXNlIHRoZSBleGlzdGluZyBzbm1wX2xvZ2dpbmcgQVBJIGluc3RlYWQgb2YKICAgICAgdXNpbmcgc3lzbG9nIGRpcmVjdGx5LgogICAKICAgMykgUG9ydHMgc25tcF9sb2dnaW5nLltjaF0gdG8gdXNlIHRoZSBXaW4zMiBFdmVudCBMb2cgd2hlbiBjb21waWxlZCBvbgogICAgICBXaW4zMi4gSSBkaWRuJ3QgdXBkYXRlIHRoZSBWaXN1YWwgQyBwcm9qZWN0IGZpbGVzLCBiZWNhdXNlIEkgb25seQogICAgICBoYXZlIGFjY2VzcyB0byBhIG5ld2VyIHZlcnNpb24gb2YgVkMsIGFuZCBJIGRpZG4ndCBrbm93IGlmIHlvdQogICAgICB3YW50ZWQgdGhlbSB1cGRhdGVkLiBUaGUgYWR2YXBpMzIgbGlicmFyeSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUKICAgICAgcHJvamVjdCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIG9uIFdpbjMyICh0aGF0J3Mgd2hlcmUgdGhlIGV2ZW50CiAgICAgIGxvZyBBUEkgaXMpLgogICAKMjAwMS0wOS0xNCAxNDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIEksIHVoLCBjb3VnaCwgdWggZm9yZ290IHRvIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyLiAgRGF2ZTogZG9uJ3Qga2lsbCBtZS4KICAgCjIwMDEtMDktMTQgMTQ6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQYXRjaCAjNDI4ODg0OiBBZGQgLVBSIGxpa2Ugb3B0aW9uIHRvIHBlcmwgbW9kdWxlIChmcm9tIEpvZSBDbGFya2UpLgogICAKMjAwMS0wOS0xNCAxNDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgKLCBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvYXNuMS5oOgoKICAgQXBwbGllZCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzQyNzM0MyBmcm9tIEhhcnJpZToKICAgICBtYWtlIGVudGVycHJpc2UgSUQgcmVsb2NhdGFibGUgd2hlcmUgbGVnYWwgdG8gZG8gc28KICAgCjIwMDEtMDktMTQgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMTI6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl91dGlscy5jLCBocl91dGlscy5oOgoKICAgcmVtb3ZlZC4gIEZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gc25tcGxpYi9zbm1wLXRjLltjaF0KICAgCjIwMDEtMDktMTQgMTI6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAtdGMuaDoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgZmlsZSBjb25maWcuaC5ib3JsYW5kIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDktMTQgMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsCiAgIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICAgIC0gdXNlIGluY2x1c2l2ZSBzZWFyY2ggcmFuZ2Ugb25seSB3aGVuIGFwcHJvcHJpYXRlIGZvciBnZXROZXh0CiAgICAgICBxdWVyaWVzCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMDYgMDc6NDAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgICAtIGlmIGluY2x1ZGUgYml0IGlzIHNldCBpbiBhbiBBZ2VudFggU2VhcmNoUmFuZ2UgKGhlbmNlIHR5cGUgb2YgdmFyYmluZAogICAgICAgaXMgQVNOX1BSSVZfSU5DTF9SQU5HRSksIHRyeSBhbiBleGFjdCBxdWVyeSBmaXJzdCBiZWNhdXNlIGFuIG9iamVjdAogICAgICAgd2hvc2UgbmFtZSBpcyBsZXhpLWVxdWFsIGlzIGEgdmFsaWQgcmVzcG9uc2U7IGlmIGV4YWN0IHF1ZXJ5IGZhaWxzCiAgICAgICB0aGVuIGZhbGwgYmFjayB0byBhbiBpbmV4YWN0IHF1ZXJ5LgogICAKMjAwMS0wOS0wNiAwNzozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywKICAgcHJvdG9jb2wuYywgc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCB1c2VkIElOQ0wvRVhDTCB3cm9uZyB3YXkgcm91bmQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCiAgIAogICAgIC0gYmV0dGVyIHRlc3QgZm9yIHNjb3BpbmcgcmVxdWlyZW1lbnRzIGluIHN1YmFnZW50CiAgIAoyMDAxLTA5LTA0IDA3OjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTI4IDAzOjA0ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5oOgoKICAgZmlsZSBkYXRhX2xpc3QuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBmaWxlIGRhdGFfbGlzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTIyIDA4OjQ1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIGNoZWNraW5nIHRoYXQgcmVzdWx0cyB0byBiZSByZXR1cm5lZCB0byBtYXN0ZXIgYWdlbnQgYXJlIGluCiAgICAgICByZXF1ZXN0ZWQgc2NvcGUgKGlmIGFueSkgKGdldEJ1bGsgbm90IHlldCBkb25lKQogICAKMjAwMS0wOC0xNSAwOTozMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgaW4gZGVidWdtc2dfb2lkIHRvIHByaW50IGxvbmcgT0lEcy4KICAgCjIwMDEtMDgtMTUgMDg6MzcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHRoZSB2YWx1ZSBvZiBzbm1wSW5CYWRDb21tdW5pdHlVc2VzIHdoZW4gYXR0ZW1wdGluZyBhbgogICAgICAgb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIGdpdmVuIGNvbW11bml0eSwgcGVyIFJGQyAxOTA3LgogICAKMjAwMS0wOC0xNSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gd2hlbiB0cmFuc2xhdGluZyB0aGUgdjIrIGVycm9yLXN0YXR1cyB2YWx1ZSBhdXRob3JpemF0aW9uRXJyb3IKICAgICAgIGludG8gbm9TdWNoTmFtZSBmb3IgYSB2MSBzZXNzaW9uLCBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mCiAgICAgICBzbm1wSW5CYWRDb21tdW5pdHlVc2VzLCBwZXIgUkZDIDI1NzYuCiAgIAoyMDAxLTA4LTE0IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBpbiBzbm1wX3NldF92YXJfb2JqaWQoKSwgdHJ5IHRvIGRldGVjdCBhIHByZXZpb3VzbHktbWFsbG9jKCllZAogICAgICAgYnVmZmVyIGZvciB0aGUgdmFyaWFibGUgbmFtZSwgYW5kIGZyZWUoKSBpdCwgdG8gYXZvaWQgbWVtb3J5CiAgIGxlYWtzLgogICAKMjAwMS0wOC0xMyAwMzo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB1c2UgV2luMzIgY2FsbHMgdG8gY2hhbmdlIGJsb2NraW5nIHN0YXRlIG9mIHNvY2tldHMgaWYKICAgICAgIGFwcHJvcHJpYXRlLiAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMTMgMDM6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYW4gU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbiBpZgogICAgICAgd2UgZ2V0IGFuIGVycm9yIG9uIGEgc3RyZWFtIHJlY2VpdmUsIGFzIHdlbGwgYXMgaWYgaXQgaXMgY2xvc2VkIGluCiAgICAgICBhbiBvcmRlcmx5IGZhc2hpb24uICBUaGlzIG1ha2VzIGxpZmUgZWFzaWVyIG9uIFdpbjMyIGlucGFydGljdWxhci4KICAgICAgIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZmlsZSB0YWJsZV9kYXRhLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oOgoKICAgZmlsZSB0YWJsZV9kYXRhLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjM6CgogICBmaWxlIHNubXBfYXBpX2VycnN0cmluZy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9lcnJvci4zOgoKICAgZmlsZSBzbm1wX2Vycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXNzX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNiAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTMwIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbW92ZSBzbm1wX3NvY2tldF9sZW5ndGggZnVuY3Rpb24gdG8gYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICAgIGZyb20gc25tcF9hcGkuYyAtLSB0aGlzIGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwbGFjZSB0aGF0IHVzZXMgdGhpcwogICAgICAgZnVuY3Rpb24sIHdoaWNoIGNlcnRhaW5seSBkb2Vzbid0IGJlbG9uZyBpbiBzbm1wX2FwaS5jIGFmdGVyIHRoZQogICAgICAgdHJhbnNwb3J0IGFic3RyYWN0aW9uIG1hbGFya2V5LgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHRyeSB0byByZXR1cm4gaW52YWxpZCgyKSBmb3IgdGhlIGlwUm91dGVUeXBlIGNvbHVtbiBpZiB0aGUgcm91dGUKICAgICAgIGlzIG5vdCB1cC4gIFNlZSBidWcgIzQyNjcxMCwgcmVwb3J0ZWQgYnkgcGp3ZWJlci4KICAgCjIwMDEtMDctMjcgMDc6MzIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBzZXQgZGVmYXVsdEF1dGhUeXBlIHRvIHVzbUhNQUNTSEExQXV0aFByb3RvY29sIGlmIFNIQSBzcGVjaWZpZWQKICAgICAgICh3YXMgc2V0IHRvIHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wgaW4gdGhpcyBjYXNlKS4gIFNwb3R0ZWQgYnkKICAgICAgIFdpbGxpYW0gS2VubmVtZXIgKGJ1ZyAjNDQ0ODYwKQogICAKMjAwMS0wNy0yNyAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBjaGFuZ2UgdG8gaGFuZGxlX2FnZW50eF9yZXNwb25zZSBPTkxZIHRvIHNlbmQgTkVXTFkgZGVsZWdhdGVkCiAgICAgICByZXF1ZXN0cyBhZnRlciBwcm9jZXNzaW5nIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS4gIFRoaXMgaXMgYWNoaWV2ZWQKICAgICAgIGJ5IHNhdmluZyB0aGUgdmFsdWUgb2YgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBhbmQgdGVtcG9yYXJpbHkKICAgICAgIHNldHRpbmcgaXQgdG8gTlVMTC4gIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHZhcmJpbmRzIGluIHRoZQogICAgICAgcmVzcG9uc2UsIHRoZXJlZm9yZSwgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBjb250YWlucyBvbmx5IG5ld2x5CiAgICAgICBkZWxlZ2F0ZWQgcmVxdWVzdHMsIGlmIGFueS4gIEFmdGVyIHNlbmRpbmcgdGhlc2UsIHRoZSBuZXcgcmVxdWVzdHMKICAgICAgIGFyZSBtZXJnZWQgd2l0aCB0aGUgc2F2ZWQgcXVldWUuCiAgIAogICAgICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IGFyaXNlcyBpZiB5b3UgcmVxdWVzdCB2YXJpYWJsZXMgZnJvbSB0d28gb3IKICAgICAgIG1vcmUgc2VwYXJhdGUgc3ViYWdlbnRzIHNpbXVsdGFuZW91c2x5LiAgV2hhdCB1c2VkIHRvIGhhcHBlbiBpcwogICAgICAgdGhhdCwgdXBvbiByZWNlaXZpbmcgdGhlIGZpcnN0IHJlc3BvbnNlLCB0aGUgbWFzdGVyIGFnZW50IHdvdWxkCiAgICAgICBub3RpY2UgdGhhdCBpdCBoYWQgYW4gb3V0c3RhbmRpbmcgcmVxdWVzdCwgYW5kIHJldHJhbnNtaXQgaXQuCiAgICAgICBUaGVuIHRoZSBzZWNvbmQgcmVzcG9uc2UgYXJyaXZlcywgYW5kIHRoZSBtYXN0ZXIgYWdlbnQgc2VuZHMgdGhlCiAgICAgICByZXBseSB0byB0aGUgKFNOTVApIHJlcXVlc3RlciBhbmQgZnJlZXMgdGhlIHJlcXVlc3RzIChpbmNsdWRpbmcKICAgICAgIGNhbGxiYWNrIGRhdGEpLiAgRmluYWxseSwgYW5vdGhlciBBZ2VudFggcmVzcG9uc2UgKHRvIHRoZQogICAgICAgZXJyb25lb3VzbHkgdHJhbnNtaXR0ZWQgcmVxdWVzdCkgYXJyaXZlcyBhbmQgdGhlIGNhbGxiYWNrIGlzCiAgICAgICBjYWxsZWQgcmVmZXJlbmNpbmcgZGVhbGxvY2F0ZWQgbWVtb3J5LCB3aGljaCBjYXVzZXMgYSBzZWdmYXVsdC4KICAgCjIwMDEtMDctMjYgMDc6MjggIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChORVctTElCUkFSWS1BUEkuNCksIHNubXBfYXBpLmM6CgogICBBZGRpbmcgYSAnZG91YmxlJy12YWx1ZWQgdmFyYmluZCBpc24ndCBpbmhlcmVudGx5IGFuIGludGVybmFsIGVycm9yIQogICAKMjAwMS0wNy0yNSAwNTo0NyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCjIwMDEtMDctMjUgMDI6MTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAogICAgIC0gYWRkIGNsb3NpbmcgcGFyZW50aGVzaXMgYWZ0ZXIgKHZpYSA8YWRkcmVzcz4gaW4gZm9ybWF0X3BsYWluX3RyYXAKICAgCjIwMDEtMDctMjMgMDc6NTMgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIHJlbW92ZSBleGNlc3NpdmUgZGVidWdnaW5nIGZyb20gc25tcF8ocmUpYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAxLTA3LTIzIDA0OjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZGVidWdnaW5nIG91dHB1dCB0byBwcmludCBsb3NpbmcgcGF0aCBjb3JyZWN0bHkgd2hlbgogICAgICAgYSByZW1vdGUgY29ubmVjdCBmYWlscy4KICAgCjIwMDEtMDctMTcgMDk6NTYgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdXBkYXRlIGZvciBuYW1pbmcgY29udmVudGlvbnMgYW5kIGZvciBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAxLTA3LTE3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGluaXRpYWwgY29kaW5nIHN0eWxlIGd1aWRlbGluZSBkb2N1bWVudC4KICAgCjIwMDEtMDctMTcgMDk6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVtZW1iZXIgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbihvdXItc2Vzc2lvbi13aXRoLW1hc3Rlci1hZ2VudCkKICAgICAgIGlmIHRoZSBtYXN0ZXIgYWdlbnQgc2Vzc2lvbiBnb2VzIGF3YXksIGJlY2F1c2Ugb3RoZXJ3aXNlIHlvdQogICAgICAgbWF5IHN1YnNlcXVlbnRseSB0cnkgdG8gdXNlIGl0LCB3aGljaCB3aWxsIHByb2JhYmx5IGR1bXAgY29yZSwKICAgICAgIGFuZCBpcyBjZXJ0YWlubHkgYW4gZXJyb3IuCiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugd2hlbiB0cmFwIHNlc3Npb24gaXMgcmVnaXN0ZXJlZCB0byBiZWluZyBpbW1lZGlhdGVseQogICAgICAgdGhlIHNlc3Npb24gaXMgb3BlbmVkIHNvIHRyYXBzIGNhbiBiZSBzZW50LCBlLmcuIGZyb20gdGhlCiAgICAgICBJTkRFWF9TVEFSVCBjYWxsYmFjayAoZm9yIGV4YW1wbGUgbGlua1VwIHRyYXBzIGluIHN1YmFnZW50cyB0aGF0CiAgICAgICByZWdpc3RlciBhIHJvdyBvZiBpZlRhYmxlKS4KICAgCjIwMDEtMDctMTcgMDg6NDggIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGNoYW5nZSB0byByZW1vdmVfdHJhcF9zZXNzaW9uKCksIHNvIGFzIG5vdCB0byBjbG9zZSBhbiBTTk1QCiAgICAgICBzZXNzaW9uIHNpbXBseSBiZWNhdXNlIHdlIGFyZSByZW1vdmluZyBpdCBmcm9tIHRoZSB0cmFwX3NpbmsKICAgICAgIGxpc3QuICBUaGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIHNlc3Npb24gbWF5IHN0aWxsIGJlIGluIHVzZSBmb3IKICAgICAgIG90aGVyIHB1cnBvc2VzLCBvciAobW9yZSB0byB0aGUgcG9pbnQpIHlvdSBtYXkgYmUgY2FsbGluZyB0aGlzCiAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBzZXNzaW9uJ3MgY2FsbGJhY2sgKGZyb20gd2hlcmUgY2xvc2luZyB0aGUKICAgICAgIHNlc3Npb24gaXNuJ3QgYSBnb29kIGlkZWEpLgogICAKMjAwMS0wNy0xMyAwNjowMiAgZHRzMTIKCiAgICogc25tcGxpYi9uZXRzbm1wLmg6CgogICBmaWxlIG5ldHNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaDoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBmaXggZm9yIGJ1ZyAjNDM5MDk0LCByZXBvcnRlZCBieSBFdmVydC1KYW4gdmFuIFR1aWpsLCB3aGVyZWJ5CiAgICAgICB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBleHBlY3RzIGEgcmVzcG9uc2UgdG8gYW4gYWdlbnR4LUNsZWFudXBTZXQtUERVCiAgICAgICBtZXNzYWdlIChpbmNvcnJlY3RseSkuICBUaGlzIG9ubHkgc2hvd3MgdXAgd2hlbiB0ZXN0aW5nIGFnYWluc3Qgb3RoZXIKICAgICAgIHN1YmFnZW50cyAoZS5nLiBqYXgpIGJlY2F1c2UgdGhlIG5ldC1zbm1wIHN1YmFnZW50IHNlbmRzIGEgcmVzcG9uc2UKICAgICAgIHRvIHRoZSBhZ2VudHgtQ2xlYW51cFNldC1QRFUgKGluY29ycmVjdGx5KS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0Lmg6CgogICBmaWxlIHZhY21fY29udGV4dC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmg6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTA1IDA2OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAgIC0gbWFrZSBJbnRlcmZhY2VfU2Nhbl9HZXRfQ291bnQgbm9uLXN0YXRpYyBhcyBpdCdzIHZlcnkgdXNlZnVsCiAgIAoyMDAxLTA3LTA1IDAzOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGZyZWUgdGhlIGNhY2hlZCBzZWN1cml0eSBwYXJhbWV0ZXJzIHdoZW4gd2UgaGF2ZSBhIHBhcnNlIGVycm9yCiAgICAgICBvbiBpbnB1dCwgb3RoZXJ3aXNlIHdlIGxlYWsgbWVtb3J5ICh0cmlnZ2VyZWQgYnkgU0MgMy4wLjEzLnsyLDN9KS4KICAgCjIwMDEtMDctMDQgMDk6NTEgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjYXRjaCBzb21lIG1hbGZvcm1lZCBTTk1QdjMgcGFja2V0cwogICAKMjAwMS0wNy0wNCAwNzo0MiAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBiYWQgbWlzdGFrZSBpbiBzbm1wdjNfc2NvcGVkUERVX2hlYWRlcl9yZWFsbG9jX3JidWlsZCB3aGljaAogICAgICAgd2FzIGVuY29kaW5nIHRoZSB3cm9uZyBsZW5ndGggaW50byB0aGUgU2NvcGVkUERVIFNFUVVFTkNFIGhlYWRlcgogICAgICAgKHdhc24ndCBpbmNsdWRpbmcgbGVuZ3RoIG9mIGFjdHVhbCBkYXRhLCBpLmUuIFBEVSEpLiAgVG90YWxseSBteQogICAgICAgZmF1bHQgLS0gaW50cm9kdWNlZCB3aGVuIGNoYW5naW5nIG92ZXIgdG8gcmVhbGxvY2F0aW5nIGJ1ZmZlcgogICAgICAgdHlwZSBmdW5jdGlvbnMuICBBbWF6aW5nIHRoaXMgaGFzbid0IGNhdXNlZCBhbGwgc29ydHMgb2YgdHJvdWJsZQogICAgICAgZm9yIHBlb3BsZSEKICAgCjIwMDEtMDctMDIgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGZpbGUgc25tcC10Yy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTAyIDA5OjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAxLTA3LTAyIDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgICAgLSBmaXggYmFkIGJlaGF2aW91ciBpbiBoZWFkZXJfc2ltcGxlX3RhYmxlIHdoZW4gdGhlIGluZGV4IGlzCiAgICAgICBlcXVhbCB0byBVTE9OR19NQVgKICAgCjIwMDEtMDYtMjggMTA6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjaGFuZ2Ugc2Vuc2Ugb2Ygc25tcF9vaWRfY29tcGFyZSgpIHJlc3VsdCBjaGVjayBpbiB2YXJfdXNtVXNlcgogICAgICAgdG8gZG8gbGV4aS1vcmRlcmluZyBjb3JyZWN0bHkKICAgCjIwMDEtMDYtMjggMDc6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNvdW50IG1vcmUgdjEvdjJjIHBhcnNlIGVycm9ycyAoU0MgMS4xLjEyLjEwKQogICAKMjAwMS0wNi0yOCAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hlY2sgdGhhdCB2ZXJzaW9uIGZpZWxkIG9mIFBEVSBpcyBvZiBpbnRlZ2VyIHR5cGUgcmF0aGVyIHRoYW4ganVzdAogICAgICAgYXNzdW1pbmcgaXQgaXMgKFNDIDEuMS4xMi4yLjEpCiAgIAoyMDAxLTA2LTI4IDA0OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCBzbm1wSW5CYWRDb21tdW5pdHlOYW1lcyB3aGVuIHdlIHNlZSB1bmtub3duIGNvbW11bml0eQogICAgICAgbmFtZXMsIHBlciBSRkMxOTA3CiAgIAoyMDAxLTA2LTI3IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIG5ldyBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgdG8gbWFyayBhbGwgb3VyCiAgICAgICBub2RlcyBhcyBkZXRhY2hlZCB3aGVuIHdlIGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0IGluZGljYXRpb24uCiAgIAoyMDAxLTA2LTI3IDA4OjA3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIGFkZCBhZGRpdGlvbmFsIGZsYWcgdG8gc3VidHJlZSBzdHJ1Y3R1cmUgdGhhdCBzdWJhZ2VudHMgY2FuIHVzZQogICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHJlZ2lzdGVyIGFuZCBPSUQKICAgICAgIHdpdGggYSBtYXN0ZXIgYWdlbnQgZHVyaW5nIGEgc2Vzc2lvbidzIGxpZmV0aW1lLiAgVGhpcyBhbGxvd3MKICAgICAgIG1hbnVhbCByZS1yZWdpc3RyYXRpb24gYW5kIGF1dG9tYXRpYyByZS1yZWdpc3RyYXRpb24gdG8gYmUgbWl4ZWQKICAgICAgIHdpdGhpbiBhIHN1YmFnZW50IChwZXJoYXBzIGJlY2F1c2UgeW91IGFyZSBkb2luZyBpbmRleCBzdHVmZikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB3aGljaCB1bnNldHMgdGhpcyBmbGFnIGZvcgogICAgICAgYWxsIGtub3duIG5vZGVzIChzdWJhZ2VudCB3b3VsZCB0eXBpY2FsbHkgY2FsbCB0aGlzIG9uIGRpc2Nvbm5lY3QKICAgICAgIGluZGljYXRpb24pLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKICAgICAtIGNvcnJlY3QgYmFkIHJlY3Vyc2l2ZSBiZWhhdmlvdXIgaW4gcmVnaXN0ZXJfbWliX3JlYXR0YWNoKCkgd2hpY2gKICAgICAgIHVzZWQgdG8gdHJ5IHRvIHJlLXJlZ2lzdGVyIE4gbm9kZXMgTiEgdGltZXMuICBPbmNlIHdpbGwgbm9ybWFsbHkKICAgICAgIGJlIGVub3VnaC4KICAgCiAgICAgLSBjaGFuZ2UgdG8gZHVtcF9yZWdpc3RyeSgpIGZvcm1hdCB0byBpbmNsdWRlIGhleCBkaXNwbGF5IG9mCiAgICAgICBmbGFncyBmaWVsZC4KICAgCjIwMDEtMDYtMjYgMDk6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCBlcnJvciBpbiBTTk1QdjIgdHJhcCBleGFtcGxlcyAgKElkZW50aWZpZWQgYnkgRGl3YWthciBTaGV0dHkpLgogICAKMjAwMS0wNi0yNiAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3RlZCBzZW5zZSBvZiBkdW1wX3JlYWxsb2Nfb2lkX3RvX3N0cmluZygpIHJldHVybiB2YWx1ZQogICAgICAgY2hlY2tzLCBhcyBzcG90dGVkIGJ5IFJvYmVydCBTdG9yeS4KICAgCjIwMDEtMDYtMjUgMDY6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gc21hbGwgdHdlYWsgaW4gaGFuZGxlX2FnZW50eF9yZXNwb25zZSgpIHdoZW4gcmV0cnlpbmcgdW5mdWxmaWxsZWQKICAgICAgIHJlcXVlc3RzOiBjb250aW51ZSBmcm9tIHRoZSAic3RhcnQiIE9JRCBvZiB0aGUgbmV4dCBub2RlIG9mIHRoZQogICAgICAgdHJlZSwgbm90IGZyb20gdGhlICJuYW1lIiBPSUQsIHdoaWNoIGNhdXNlcyBsb29waW5nLgogICAKMjAwMS0wNi0yMSAwOTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBoYW5kbGUgImhvbGVzIiBpbiByb3dzIG9mIHRhYmxlcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHN1YmFnZW50cwogICAKICAgICAgIFNpbmNlIHRoZSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgaXMgcmVnaXN0ZXJlZCwgd2UgaW50ZXJwcmV0CiAgICAgICBhIHJldHVybiBvZiBub1N1Y2hJbnN0YW5jZSB3aGVuIGRvaW5nIGFuIGluZXhhY3QgcXVlcnkgYXMgbWVhbmluZwogICAgICAgd2Ugc2hvdWxkIHJldHJ5IHRoZSBxdWVyeS4KICAgCjIwMDEtMDYtMjEgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBmb3Jnb3QgdG8gY29tbWl0IGF0IHRoZSBzYW1lIHRpbWUgYXMgbGFzdCBtaWIuYyBjb21taXQ7IHVwZGF0ZWQKICAgICAgIHByb3RvdHlwZSBmb3Igc3ByaW50X3JlYWxsb2NfaGludGVkX2ludGVnZXIKICAgCjIwMDEtMDYtMjAgMDY6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBjb3VudF9pbmRleGVzIHdoaWNoIHJldHVybnMgdGhlIG51bWJlciBvZiBpbmRleGVzCiAgICAgICBhbGxvY2F0ZWQgZm9yIGEgZ2l2ZW4gT0lELiAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcKICAgICAgICJyb3cgY291bnQiIG9iamVjdHMsIGUuZy4gaWZOdW1iZXIuCiAgIAoyMDAxLTA2LTIwIDA1OjM3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jCjoKCiAgICAgLSBhZGQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RBUlQgYW5kIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUT1AKICAgICAgIGNhbGxiYWNrcyB3aGljaCBtYXkgYmUgdXNlZCB0byBtYW5hZ2UgaW5kZXggYWxsb2NhdGlvbnMuCiAgIAogICAgICAgTWFzdGVyIGFnZW50IHNob3VsZCBwcm9iYWJseSBjYWxsIHRoZXNlIGNhbGxiYWNrcyB0b28sIGFsdGhvdWdoCiAgICAgICBpdCdzIGEgYml0IG9mIGEgZGVnZW5lcmF0ZSBjYXNlLgogICAKMjAwMS0wNi0xOSAwOTo0NCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIHVzZSBhbiBleHBsaWNpdCBmaWVsZWQgImFsbG9jYXRlZCIgaW4gc25tcF9pbmRleCBzdHJ1Y3R1cmUgdG8KICAgICAgIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgY3VycmVudGx5IGFsbG9jYXRlZCwgcmF0aGVyCiAgICAgICB0aGFuIG92ZXJsb2FkaW5nIGEgTlVMTCBzZXNzaW9uIHRvIG1lYW4gdGhhdCBpdCBpcyBub3QuCiAgIAogICAgICAgVGhpcyBhbGxvd3Mgc3RhcnR1cCBjb2RlIGluIGEgbWFzdGVyIGFnZW50IHRvIHByZS1yZWdpc3RlciBpbmRpY2VzCiAgICAgICB3aGVuIHRoZXJlIGFyZSBubyBzZXNzaW9ucyBvcGVuLgogICAKMjAwMS0wNi0xOSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAgIC0gIGtlZXAgdGhlIHZhbHVlIG9mIE5FVFdPUktfQllURV9PUkRFUiBmcm9tIGguZmxhZ3MgaW4gdGhlCiAgICAgICAgYWdlbnR4LU9wZW4tUERVIGFuZCB1c2UgaXQgZm9yIHN1YnNlcXVlbnQgbWFzdGVyLWluaXRpYXRlZAogICAgICAgIEFnZW50WCBwcm90b2NvbCBvcGVyYXRpb25zLCBwZXIgUkZDIDI3NDEgKHNlY3Rpb24gNy4xLjEsCiAgICAgICAgcGFyYWdyYXBoIDQpLgogICAKICAgICAgICBGb3Igbm93LCB3ZSBhcmUgc3RvcmluZyB0aGlzIGluIHRoZSBmbGFncyBmaWVsZCBvZiBhCiAgICAgICAgc3Vic2Vzc2lvbi4gIFRoaXMgaXMgbGlrZWx5IHRvIHN0b3Agd29ya2luZyBpZiB0aGUgZmxhZ3MKICAgICAgICBkZWZpbml0aW9ucyBjaGFuZ2UgKGkuZS4gaXQncyBub3QgYSBncmVhdCBzb2x1dGlvbikKICAgCiAgICAgLSAgVGhhbmtzIHRvIFBldGVyIEtvcnN0ZW4gKHNldmVyaXR5b25lIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldCkKICAgICAgICBmb3IgaWRlbnRpZnlpbmcgdGhpcyBidWcsIGFuZCBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcyBmaXguCiAgIAoyMDAxLTA2LTE5IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcmVpbnN0YXRlIHNwYWNlIGJldHdlZW4gbnVtYmVycyBhbmQgdW5pdHMuCiAgIAogICAgIC0gcmVzcGVjdCBESVNQTEFZLUhJTlRzIGZvciBVbnNpZ25lZDMyLCBHYXVnZSwgR2F1Z2UzMiB0eXBlcy4KICAgCjIwMDEtMDYtMTMgMDM6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGRlYnVnZ2luZyB0byByZWR1Y2UgIm5vaXNlIGxldmVsIiBmcm9tIFB1cmlmeQogICAKMjAwMS0wNi0xMiAxMDozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBldGl0aW9ucyBmaWVsZCB2YWx1ZXMgb2YgPCAwIChieQogICAgICAgc2V0dGluZyB0aGVtIHRvIDAsIHBlciBSRkMgMTkwNSkKICAgCjIwMDEtMDYtMTIgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBidWcgdGhhdCBjYXVzZWQgYSBudWxsIHBvaW50ZXIgdG8gYmUgZm9sbG93ZWQgd2hlbiBwcm9jZXNzaW5nIGEKICAgICAgIEdFVEJVTEsgcmVxdWVzdCB3aXRoIG5vbi1yZXBlYXRlcnMgPiAwLCBtYXgtcmVwZXRpdGlvbnMgPT0gMCBhbmQgbm8KICAgICAgIHZhcmJpbmRzIGluIHRoZSByZXF1ZXN0LgogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4xKSwgcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMDYgMDc6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUoKSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpIGNhbGxzCiAgIAoyMDAxLTA2LTA2IDA3OjM3ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gbW9yZSB1bmlmb3JtIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCk6IG1ha2UgaXQgYWx3YXlzIGEKICAgICAgIHZhcmJpbmQgd2hpY2ggdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZSgpaW5nLCBvciBlbHNlIE5VTEwuCiAgIAoyMDAxLTA2LTA1IDAzOjEwICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZml4IGZvciBpbmRleCBhbGxvY2F0aW9uLCBzdWNoIHRoYXQgcmVxdWVzdHMgZm9yIHNwZWNpZmljIGluZGljZXMgd2hpY2gKICAgICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGFsbG9jYXRlZCwgYnV0IGFyZSBub3QgY3VycmVudGx5IGluIHVzZSwgc3VjY2VlZC4KICAgCiAgICAgLSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmg6CgogICBmaWxlIG11bHRpcGxleGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGZpbGUgaW5zdGFuY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmg6CgogICBmaWxlIG51bGwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaDoKCiAgIGZpbGUgcmVhZF9vbmx5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgZmlsZSBtdWx0aXBsZXhlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZmlsZSBzZXJpYWxpemUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oOgoKICAgZmlsZSB0YWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmg6CgogICBmaWxlIGluc3RhbmNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpbGUgdGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaDoKCiAgIGZpbGUgc2VyaWFsaXplLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oOgoKICAgZmlsZSBzZXRfaGVscGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZmlsZSBudWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaDoKCiAgIGZpbGUgb2xkX2FwaS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jOgoKICAgZmlsZSByZWFkX29ubHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBmaWxlIG9sZF9hcGkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwNzozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtaXNjIGZpeGVzIGZvciBvaWQgZm9ybWF0dGluZyBwcm9ibGVtcy4KICAgCjIwMDEtMDYtMDEgMDc6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBNYXJ0aW4gT2xkZmllbGQuCiAgIAoyMDAxLTA2LTAxIDAyOjUwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGZpeCBmb3IgYWJzb2x1dGVseSBtaW5kLWJlbmRpbmcgbWVtb3J5IGxlYWsgd2hlbiBBZ2VudFggc2Vzc2lvbnMKICAgICAgIHRpbWVvdXQuICBhZ2VudF9zZXNzaW9uX2xpc3QgaG9sZHMgYSBxdWV1ZSBvZiBzZXNzaW9ucyB3aXRoIG91dHN0YW5kaW5nCiAgICAgICByZXF1ZXN0cy4gIFdoZW4gYSBzZXNzaW9uIHRpbWVzIG91dCwgdGhpcyBtdXN0IGJlIHNjYXZlbmdlZCB0byBtYWtlCiAgICAgICBzdXJlIHRoZSBzZXNzaW9ucyB0aGF0IGhhdmUgdGltZWQgb3V0LCBhbmQgdGhlaXIgYXNzb2NpYXRlZCByZXF1ZXN0cwogICAgICAgYXJlIGZyZWUoKWQuCiAgIAoyMDAxLTA1LTMwIDAzOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJldHJ5IGluaXRpYWwgb3BlbiBvZiBBZ2VudFggbWFzdGVyIHNvY2tldCBpZiBBZ2VudFggcGluZ3MgYXJlCiAgICAgICBlbmFibGVkIChzaG91bGQgcmVhbGx5IGJlIGEgc2VwYXJhdGUgZGVmYXVsdF9zdG9yZSBvcHRpb24gYnV0CiAgICAgICBuZXZlciBtaW5kKQogICAKMjAwMS0wNS0zMCAwMzoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgaGFuZGxpbmcgb2YgdGltZW91dCBjb25kaXRpb25zIChhbHNvIGZpeCBtZW1vcnkKICAgICAgIGxlYWspCiAgIAoyMDAxLTA1LTMwIDAzOjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBtb3JlIGluZm9ybWF0aXZlIGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgICAgLSByZW1vdmUgbm9pc3kgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb3JlIGNvbXBhY3QgZGVidWdnaW5nIGluIF9zZXNzX3NlbGVjdF9pbmZvCiAgIAoyMDAxLTA1LTMwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY29weSBmbGFncyBpbiByZWF0dGFjaF9zdWJ0cmVlIChuZWVkZWQgZm9yIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKQogICAKMjAwMS0wNS0yOCAwODo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBzdWJhZ2VudC5jOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSB0d2VhayB0byBnZXRTdGF0UHRyIHRvIGhhbmRsZSBnZXROZXh0IG9wZXJhdGlvbnMgaW4gY29tYmluYXRpb24gd2l0aAogICAgICAgRlVMTFlfUVVBTElGSUVEX0lOU1RBTkNFIG5vZGVzICh3aGljaCBhcmlzZSBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikuCiAgIAoyMDAxLTA1LTI4IDA4OjQ2ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc21hbGwgdHdlYWsgdG8gZGVidWdnaW5nIG91dHB1dAogICAKMjAwMS0wNS0yOCAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzICpwcm9wZXJseSouCiAgIAoyMDAxLTA1LTI4IDA0OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggcG9zc2libGUgbWVtb3J5IGxlYWsgaW4gX3Nlc3NfYXN5bmNfc2VuZCBlcnJvciBjYXNlcwogICAKMjAwMS0wNS0yOCAwNDoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBhZGQgcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcy4KICAgCjIwMDEtMDUtMjMgMDk6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlc3BlY3QgbXNnTWF4U2l6ZSBpbiByZWNlaXZlZCB2MyBQRFVzIChpbiB0aGUgd2VhayBzZW5zZSB0aGF0IGlmCiAgICAgICB0aGUgc2VyaWFsaXplZCByZXNwb25zZSBQRFUgaXMgbW9yZSB0aGFuIGl0LCB3ZSBkb24ndCBzZW5kIGl0KQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeS4gIFVzaW5nIHRoZXNlCiAgICAgICBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleSB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4KICAgICAgIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlCiAgICAgICBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDk6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVzcElwCiAgIAoyMDAxLTA1LTIzIDA4OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBlYXJseSBiYWlsIG91dCBvZiBoYW5kbGVfc25tcF9wYWNrZXQoKSBpZiB0aGUgY2FsbGJhY2sgb3BlcmF0aW9uCiAgICAgICB0eXBlIGlzIG5vdCBTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UuICBJbiBwcmFjdGljZSwgdGhlCiAgICAgICBvbmx5IHdheSB0aGlzIGFyaXNlcyBjdXJyZW50bHkgaXMgd2hlbiBhIHN0cmVhbSB0cmFuc3BvcnQgYmFzZWQKICAgICAgIGNvbm5lY3Rpb24gZ29lcyBhd2F5IGFuZCBhIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBvY2N1cnMuCiAgIAoyMDAxLTA1LTIzIDA4OjQ0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBuZXcgZmllbGRzIHJjdk1zZ01heFNpemUgYW5kIHNuZE1zZ01heFNpemUgaW4gc25tcF9zZXNzaW9uCiAgICAgICBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB2MyBtc2dNYXhTaXplCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5IGZyb20gcHVibGljCiAgICAgICBpbnRlcmZhY2UuICBVc2luZyB0aGVzZSBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleQogICAgICAgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLAogICAgICAgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA4OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgbXNnTWF4U2l6ZSBmaWVsZCB0byBzbm1wX3RyYW5zcG9ydCBzdHJ1Y3R1cmUgdG8gc3VwcG9ydAogICAgICAgbXNnTWF4U2l6ZSBuZWdvdGlhdGlvbiBmb3IgdjMKICAgCjIwMDEtMDUtMjMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcgaW5zdGVhZCBvZiBzcHJpbnRfaGV4c3RyaW5nIGZvcgogICAgICAgU05NUF9URVNUSU5HX0NPREUgZGVidWdnaW5nIG91dHB1dCBvZiBJViwga2V5IGFuZCBwbGFpbnRleHQKICAgCjIwMDEtMDUtMjMgMDU6MjUgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgb3B0aW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDQ6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIGFuZCAtRSBvcHRpb25zLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDM6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIHVzZSBuZXcgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkgZnVuY3Rpb25zIGZvciBpbnB1dCBzdHJpbmcKICAgICAgIHRvIE9DVEVUIFNUUklORyBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGFzY2lpX3RvX2JpbmFyeQogICAgICAgYW5kIGhleF90b19iaW5hcnkKICAgCiAgICAgLSBvbWl0IHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBzdHJpbmcgKGhlbHBmdWwgZm9yIG9iamVjdHMgdGhhdCBkb24ndAogICAgICAgYWxsb3cgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMsIGUuZy4gc3lzTG9jYXRpb24uMCkKICAgCjIwMDEtMDUtMjAgMDg6MTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJld3JpdHRlbiBfc2Vzc19yZWFkKCkgZnVuY3Rpb246CiAgIAogICAgICAgLSBiZXR0ZXIgaGFuZGxpbmcgb2YgbG9uZyBwYWNrZXRzCiAgICAgICAtIHplcm8tY29weSByZWNlcHRpb24gb2YgcGFja2V0cyBvbiBzdHJlYW0gdHJhbnNwb3J0cwogICAgICAgLSBsb3dlciBtZW1vcnkgb3ZlcmhlYWRzIGZvciBwYWNrZXQgZnJhZ21lbnQgaGFuZGxpbmcgZm9yIHN0cmVhbQogICAgICAgICB0cmFuc3BvcnRzCiAgIAogICAgIC0gYWxsb3cgcGFyc2luZyBvZiBsYXJnZSBvYmplY3RzICg+ODE5MiBvY3RldHMpCiAgIAoyMDAxLTA1LTIwIDA1OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgY29udGV4dE5hbWUsIHNlY3VyaXR5TmFtZSAtLSBjYXVzZXMgbWlub3IgbWVtb3J5CiAgICAgICBsZWFrLgogICAKMjAwMS0wNS0yMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB0ZXN0IHJldHVybiBvZiBmY250bChGX0dFVEZMKSwgc28gYXMgbm90IHRvIHNldCBmbGFncyB0byBnYXJiYWdlCiAgIAogICAgIC0gY29ycmVjdGlvbiB0byBjb21tZW50IC0tIHNldCBzb2NrZXQgdG8gKmJsb2NraW5nKiEKICAgCiAgICAgLSBjaGVjayBvcGFxdWUgYmVmb3JlIHdyaXRpbmcgdG8gaXQgaW4gcmVjdgogICAKMjAwMS0wNS0yMCAwNTowMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcHJvcGVyIGhhbmRsaW5nIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBpbiBzbm1wX3N5bmNoX2lucHV0OgogICAgICAgc2V0IGFuIGVycm9yIGNvbmRpdGlvbiwgd2l0aCBlcnJubyBTTk1QRVJSX0FCT1JUICgiU2Vzc2lvbiBhYm9ydAogICAgICAgZmFpbHVyZSIpLCB3aGljaCBzZWVtcyBsaWtlIGEgZ29vZCBlbm91Z2ggbWF0Y2guCiAgIAoyMDAxLTA1LTE4IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2UgbmV3bHktYWNjZXB0KCllZCBzb2NrZXRzIGJsb2NraW5nOyBvdGhlcndpc2UgcHJvYmxlbXMgYXJpc2UKICAgICAgIGxhdGVyIHdoZW4gc2VuZCgpaW5nIGxhcmdlIFBEVXMgKHNpbmNlIG9ubHkgYSBzaW5nbGUgc29ja2V0IGJ1ZmZlcidzCiAgICAgICB3b3J0aCBvZiBkYXRhIGF0IG1vc3QgY2FuIGJlIHNlbnQgd2l0aG91dCBibG9ja2luZykuCiAgIAoyMDAxLTA1LTE4IDA3OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGluc3RlYWQgb2YKICAgICAgIHNwcmludF9vYmppZCBhbmQgc3ByaW50X3ZhcmlhYmxlIHJlc3BlY3RpdmVseSwgdG8gYWxsb3cgbGFyZ2UgUERVcwogICAgICAgdG8gYmUgcHJpbnRlZCB3aGVuIGRlYnVnZ2luZwogICAKMjAwMS0wNS0xOCAwNzoxNiAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIHNubXBfcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE4IDA3OjE1ICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICAgIC0gcmVtb3ZlIGRlYnVnZ2luZyBmcm9tIG91dHB1dCByb3V0aW5lcwogICAKICAgICAtIG5ldyBmdW5jdGlvbiBzcHJpbnRfcmVhbGxvY19vYmppZAogICAKICAgICAtIG1ha2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGV4dGVybmFsbHkKICAgICAgIHZpc2libGUKICAgCjIwMDEtMDUtMTggMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIGFzbl9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTUgMDQ6MTAgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPSURzIGZvciBVRFAvSVB2NiBhbmQgVENQL0lQdjYKICAgCjIwMDEtMDUtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gYWRkZWQgXG4gdG8gdGV4dCBvZiBzbm1wX2xvZygpIG1lc3NhZ2VzIChidWcgIzQyMjk3OCkKICAgCjIwMDEtMDUtMTEgMDc6MzAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgICAgLSBhZGRlZCBzcHJpbnRfcmVhbGxvY188dHlwZT4gZmFtaWx5IG9mIGZ1bmN0aW9ucyB3aGljaCB0YWtlIGV4dHJhCiAgICAgICBwYXJhbWV0ZXJzIGFuZCB1c2UgcmVsb2NhdGluZyBidWZmZXJzIHRvIHJlbW92ZSBsaW1pdGF0aW9ucyBkdWUgdG8KICAgICAgIGZpeGVkLXNpemUgYnVmZmVycyAoZS5nLiBzZWUgYnVnICM0MDkxODEpLgogICAKICAgICAtIGFsc28gZml4ZXMgcG90ZW50aWFsIHByb2JsZW0gbm90ZWQgYXMgYnVnICM0MTQ4MDMKICAgCiAgICAgLSBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBhbmQgZnByaW50X3ZhbHVlIHVzZSBuZXcgZnVuY3Rpb25zCiAgICAgICBzdWNoIHRoYXQgc25tcGdldCBldGMuIGFyZSBpbXByb3ZlZCBpbW1lZGlhdGVseQogICAKICAgICAtIG9sZCBmdW5jdGlvbnMgcmVtYWluICpGT1IgTk9XKiAtLSBidXQgcmVhbGx5IHRoZXkgc2hvdWxkIGJlCiAgICAgICBjb25zaWRlcmVkIHRvIGJlIGRlcHJlY2F0ZWQgKG5ldyBmdW5jdGlvbnMgcHJvdmlkZSBhIHN1cGVyc2V0IG9mCiAgICAgICB0aGVpciBmdW5jdGlvbmFsaXR5KS4KICAgCjIwMDEtMDUtMTEgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgICAtIGFkZGVkIGFkZGl0aW9uYWwgZnVuY3Rpb24gcG9pbnRlciB0byBzdHJ1Y3QgdHJlZSB0byBwb2ludCBhdAogICAgICAgcmVsb2NhdGluZyBidWZmZXIgY29tcGF0aWJsZSBvdXRwdXQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMTEgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gYWRkZWQgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3N0cmNhdCwgd2hpY2ggYXBwZW5kcyBhIHN0cmluZyB0byBhCiAgICAgICByZWxvY2F0YWJsZSBidWZmZXIKICAgCjIwMDEtMDUtMTAgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjNDIzMTA5IGluY29ycmVjdCBpbmRleCBwYXJzaW5nCiAgIAoyMDAxLTA1LTA5IDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IHNubXBfY2xpZW50LmM6NTY5OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTA5IDEyOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi5oLCBSbW9uL1JFQURNRSwgUm1vbi9hZ3V0aWwuYwosIFJtb24vYWd1dGlsLmgsIFJtb24vYWd1dGlsX2FwaS5oLCBSbW9uL2FsYXJtLmMKLCBSbW9uL2FsYXJtLmgsIFJtb24vZXZlbnQuYywgUm1vbi9ldmVudC5oLAogICBSbW9uL2hpc3RvcnkuYywgUm1vbi9oaXN0b3J5LmgsIFJtb24vcm93X2FwaS5oLAogICBSbW9uL3Jvd3MuYywgUm1vbi9yb3dzLmgsIFJtb24vc3RhdGlzdGljcy5jLAogICBSbW9uL3N0YXRpc3RpY3MuaCwgUm1vbi90ZXN0X2FsYXJtLnNoLAogICBSbW9uL3Rlc3RfaGlzdC5zaDoKCiAgIEluY2x1ZGUgQWxleCBSb3ppbidzIFJtb24uCiAgIAoyMDAxLTA1LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIEFkZGVkIGEgY291cGxlIG9mIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgbWFuaXB1bGF0aW5nIHZhcmJpbmRsaXN0czoKICAgICBpbnQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHN0cnVjdCB2YXJpYWJsZV9saXN0ICpuZXd2YXIsIHVfY2hhciB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICp2YWxfc3RyLCBzaXplX3QgdmFsX2xlbik7CiAgICAgdm9pZCBzbm1wX3JlcGxhY2VfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBvbGRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld190eXBlKTsKICAgICB2b2lkIHNubXBfcmVzZXRfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBuZXdfdHlwZSk7CiAgIAoyMDAxLTA1LTA3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBkZWZpbmUgU05NUF9NQUxMT0NfVFlQRURFRigpCiAgIAoyMDAxLTA1LTA1IDA3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgZml4IHN0b3JlXyBuYW1lOyBkb24ndCBjYXN0IHRvIGFzbnkgdHlwZSBpZiBwYXJtIGV4cGVjdGluZyB1X2NoYXIqOyBmaXggX3ZhcmlhYmxlX29pZAogICBuYW1pbmc7IGNhc3QgcGFybSAyIG9mIG1lbWR1cCB0byB1X2NoYXIqCiAgIAoyMDAxLTA1LTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgICAgLS0gbW9yZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgcHJvYmxlbSBmb3VuZC4KICAgCjIwMDEtMDUtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgCjIwMDEtMDUtMDMgMTA6MDggIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICB1cGRhdGVkIHRvIGxpYnRvb2wgMS40CiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIHVzZSByZWFsbG9jIHJvdXRpbmVzLgogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHZhcmlhYmxlIGRlY2xhcmF0aW9uLgogICAKMjAwMS0wNS0wMSAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IHByaW50IGhleCBmb3Igc3RyaW5nIGxlbmd0aHMgbGVzcyB0aGFuIDQuICBTaG91bGQgaGF2ZSBkaWVkIGFnZXMgYWdvLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICBGaXggcHJvdG90eXBlIHNvIGl0cyBub3Qgc3RhdGljIChpdCBzaG91bGRuJ3QgYmUpLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIG1ha2UgUk9OTFkgdmFyaWFibGVzIHdyaXRhYmxlICh3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrLiAgSSdtIGJldHRpbmcgbm90LikKICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGFuIHJwbSBzdWJkaXJlY3RvcnkuCiAgIAoyMDAxLTA0LTIzIDIwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGJpZyBjbGVhbnVwIGFuZCBvdGhlciBmaXhlcyBJJ3ZlIGFscmVhZHkgZm9yZ290dGVuIGluIHRoZSBsYXN0IGZldyBtaW51dGVzLgogICAKMjAwMS0wNC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCB3YWxrIG9mZiBlbmQgb2YgbWliIHRyZWUgKHNpZ2gpLgogICAKMjAwMS0wNC0yMyAyMDoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGhlIG1pYiBpbmZvIGRpc3BsYXkgb3B0aW9ucy4KICAgc2F2ZSB0aGVtIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAxLTA0LTIzIDE4OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1vcmUgc2F2YWJsZSBvcHRpb24gaXRlbXMuCiAgIHVzZSBEYXRhOjpEdW1wZXIgdG8gc2F2ZSBtb3N0IHN0dWZmLgogICAKMjAwMS0wNC0yMyAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCBzYXZlIHNlc3Npb24gb3B0aW9ucyB0d2ljZS4KICAgTWFrZSBjb2xvciBvZiB3cml0YWJsZSBvYmplY3RzIGEgdmFyaWFibGUuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRrbWliIChWNC0yLXBhdGNoZXMuMiksIHRrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0yMyAxNjozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICByZWR1Y2Ugc2NyZWVuIHJlYWxlc3RhdGUgYWxsIG92ZXIgdGhlIHBsYWNlCiAgIAoyMDAxLTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHRlc3QgYWdhaW5zdCB2ZXJzaW9uIDUKICAgCjIwMDEtMDQtMTggMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQKLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGRlZCBMTS1TRU5TT1JTLU1JQiBzdXBwb3J0IChkaXNraW8gZXh0ZW5zaW9uKSBmcm9tIE1hcnRpbiBPbGRmaWVsZAogICAKMjAwMS0wNC0xOCAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFja2luZyBvbiBzbm1wX2FkZF92YXIgdG8gaGFuZGxlIGxvbmcgdmFsdWVzCiAgIAogICAgICAgLSB1c2Ugc25tcF97aGV4LGRlY2ltYWx9X3RvX2JpbmFyeSBpbnN0ZWFkIG9mIGhleF90b19iaW5hcnkKICAgICAgICAgYW5kIGFzY2lpX3RvX2JpbmFyeTsgdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQKICAgCiAgICAgICAtIGRvbid0IHVzZSBzdHJ0b2sgaW4gcHJvY2Vzc2luZyBiaXRzdHJpbmdzCiAgIAoyMDAxLTA0LTE4IDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHVzZSB0aGUgZ2VuZXJpYyBzbm1wX3JlYWxsb2MgZnVuY3Rpb24gaW4gYXNuX3JlYWxsb2MKICAgCjIwMDEtMDQtMTggMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gbmV3LCByZWFsbG9jYXRpbmcgdXRpbGl0eSBmdW5jdGlvbnMgc25tcF9oZXhfdG9fYmluYXJ5IGFuZAogICAgICAgc25tcF9kZWNpbWFsX3RvX2JpbmFyeSB0byBjb252ZXJ0IGhleCBhbmQgZGVjaW1hbCBzdHJpbmdzIHRvIG9jdGV0CiAgICAgICBzdHJpbmdzIHJlc3BlY3RpdmVseS4KICAgCiAgICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3JlYWxsb2MgdG8gcGVyZm9ybSBidWZmZXIgKHJlLSlhbGxvY2F0aW9uCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDEwOjA2ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGV4dGVuZGVkIChhbmQgY29ycmVjdGVkISkgY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIG5ldyBBUEkuCiAgIAoyMDAxLTA0LTExIDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wLmMsIHNubXAuaDoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGRfdmFyX29wIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLgogICAKMjAwMS0wNC0xMSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowMiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBhc25fcmVhbGxvYygpIGZ1bmN0aW9uIGNoZWNrcyB3aGV0aGVyIGl0IGhhcyBiZWVuIHBhc3NlZCBhIE5VTEwKICAgICAgIHBvaW50ZXIgYW5kIHVzZXMgbWFsbG9jKCkgaW4gdGhhdCBjYXNlICh0aGFua3MgdG8gTWljaGFlbCBTbGlmY2FrCiAgICAgICBmb3IgcG9pbnRpbmcgb3V0IHRoZSBkYW5nZXIgaGVyZSkuCiAgIAoyMDAxLTA0LTExIDA2OjEzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDQ6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gc2V0IFNPX1NOREJVRiBhbmQgU09fUkNWQlVGIHRvIDEyOEtiIGZvciBuZXdseS1vcGVuZWQgVURQIHNvY2tldHMsCiAgICAgICB0byBlbmFibGUgbGFyZ2UgUERVcyB0byBiZSBzZW50IGFuZCByZWNlaXZlZC4gIFNvbWUKICAgICAgIGltcGxlbWVudGF0aW9ucyBkZWZhdWx0IHZlcnkgbG93IChTb2xhcmlzIDIuNyA4S2IsIExpbnV4IDIuNAogICAgICAgNjRLYikuCiAgIAoyMDAxLTA0LTA5IDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIG1vZGlmaWVkIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIG1ha2UgdXNlIG9mIHJlYWxsb2NhdGluZwogICAgICAgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgICAgLSBhZGRpdGlvbmFsIHBhcmFtZXRlciB0byB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmg6CgogICAgIC0gYWxsb3cgYWRkaXRpb25hbCBwYXJhbWV0ZXIgZm9yIG91dGdvaW5nIHBhcmFtcyB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcHJvdG90eXBlcyBmb3IgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucwogICAKMjAwMS0wNC0wOSAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgdG8gdXNlIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIGlmCiAgICAgICB1c2luZyByZXZlcnNlIGVuY29kaW5nIGF0IGFsbC4KICAgCjIwMDEtMDQtMDkgMDk6NDkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAgIC0gYWRkIG5ldyBmdW5jdGlvbiBzbm1wX3JlYWxsb2NfcmJ1aWxkX3Zhcl9vcCgpIHdoaWNoIHVzZXMKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIHRvIGVuY29kZSB2YXJiaW5kcy4KICAgCjIwMDEtMDQtMDkgMDk6NDcgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gcHJvdG90eXBlIGZvciBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LAogICAgICAgd2hpY2ggcGVyZm9ybSByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUKICAgICAgIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCiAgICAgLSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgYWJvdmUuCiAgIAoyMDAxLTA0LTA5IDA5OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sIHdoaWNoIHBlcmZvcm0KICAgICAgIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCiAgICAgICBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKMjAwMS0wNC0wNiAxMjoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBDT1BZSU5HLCBDaGFuZ2VMb2csCiAgIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgTkVXUywgUE9SVElORywKICAgUkVBRE1FLCBSRUFETUUuYWdlbnR4LCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4LAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMsIGxvY2FsL3NubXBjb25mCiwgbG9jYWwvdGttaWIsIGxvY2FsL3dlc3Jlc3RhcnQsIG1hbi9zbm1wY21kLjEKLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkZWx0YS4xLAogICBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgbWVyZ2UzIC0+IG1lcmdlNC4gIEkgZG9uJ3QgKnRoaW5rKiBJIGJyb2tlIGFueXRoaW5nLgogICAgIC0gVGhlIG1haW4gbGluZSBzaG91bGQgbm93IGNvbnRhaW4gYWxsIHRoZSA0LjIuMSBwYXRjaGVzLgogICAgIC0gSSBtYXkgZG91YmxlIGNoZWNrIHRoaXMgYXQgYSBsYXRlciBkYXRlLgogICAKMjAwMS0wNC0wNSAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgQWxzbyBhcHBsaWVkIHRvICdwYXNzX3BlcnNpc3QnLgogICAKMjAwMS0wNC0wNSAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGtlcm5lbC5jCiwgbWliX21vZHVsZXMuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgKLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDUgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDUgMDY6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAoQSBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gdGhlIHByZXZpb3VzIHBhdGNoKQogICAKMjAwMS0wNC0wNSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDUgMDQ6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gc2F2ZSBhIHN0cmNweSgpIGFuZCBhbGxvdyBsb25nIG9jdGV0IHN0cmluZyB2YWx1ZXMgd2l0aG91dCBjcmFzaGluZwogICAgICAodGhvdWdoIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBkdWUgdG8gdGhlIGxpYmVyYWwgdXNlIG9mIGZpeGVkCiAgICAgIHNpemUgYnVmZmVycyB3aXRoIG5vIGJvdW5kcyBjaGVja2luZyBhbGwgb3ZlciB0aGUgcGxhY2UuICBTaWdoKS4KICAgCjIwMDEtMDQtMDQgMDY6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDMgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAnZXh0bXAnIGNvbW1hbmQgdmFyaWFibGUgaXMgYWNjZXNzaWJsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgRVhFQ1YuCiAgIAoyMDAxLTA0LTAzIDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MjIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBUQ1BEb21haW4uaAosIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0LmgsIHN5c3RlbS5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAxMDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBjaGVjayBmb3IgbGltaXRzLmggcHJvcGVybHkKICAgCjIwMDEtMDQtMDIgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSBtaW5vciB0eXBlZmFjZSBjaGFuZ2VzCiAgIAoyMDAxLTAzLTMxIDA2OjI3ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MjUgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMzoKCiAgICAtIGRvY3VtZW50IHRoZSBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyIGZ1bmN0aW9uCiAgIAogICAgLSBleHBhbmQgdGhlIE5PVEVTIHNlY3Rpb24gZGlzY3Vzc2luZyB1c2Ugb2YgU0lHQUxSTSAob3Igbm90KQogICAKMjAwMS0wMy0zMSAwNjoxNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seSBhbmQgY2FuY2VsIGFsbAogICAgICBjYWxsYmFja3Mgd2hpY2ggbWFrZSByZWZlcm5jZSB0byB0aGUgQWdlbnRYIHNlc3Npb24uCiAgIAoyMDAxLTAzLTMxIDA2OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAtIEZpeCBtdWx0aXBsZSBmcmVlKCkgb2YgcGFydHMgb2YgdGhlIHN1YnNlc3Npb24gYnkgemVyb2luZyBvdXQKICAgICAgZmllbGRzIHRoYXQgd2UgZG9uJ3QgdXNlLgogICAKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIENoYW5nZWQgcGFja2V0IGhhbmRsaW5nIG9uIHN0cmVhbS1saWtlIHRyYW5zcG9ydHMgc28gdGhhdCBhbGwKICAgICAgY29tcGxldGUgcmVjZWl2ZWQgcGFja2V0cyBhcmUgcHJvY2Vzc2VkOgogICAKICAgICAgX3Nlc3NfcmVhZCBpcyByZWZhY3RvcmVkIGludG8gdHdvIGZ1bmN0aW9uczogX3Nlc3NfcmVhZCByZW1haW5zCiAgICAgIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSB0aGUgdHJhbnNwb3J0IGxheWVyLCBidXQgdGhlbgogICAgICBjYWxscyAocGVyaGFwcyBtb3JlIHRoYW4gb25jZSkgX3Nlc3NfcHJvY2Vzc19wYWNrZXQgdG8gZGlzcGF0Y2gKICAgICAgZWFjaCBwYWNrZXQgcmVhZC4KICAgCiAgICAtIFRoZSBwcmVzZW5jZSBvZiBhIHNlc3Npb24gd2l0aCBhIGJ1ZmZlcmVkIHBhcnRpYWwgcGFja2V0IG5vIGxvbmdlcgogICAgICBjYXVzZXMgc25tcF9zZWxlY3RfaW5mbyB0byByZXR1cm4gd2l0aCBhIHRpbWVvdXQgb2YgemVyby4KICAgCiAgICAtIEZyZWUgdGhlIHN1YnNlc3Npb25zIG9mIGEgc2Vzc2lvbiB3aGVuIGRvaW5nIGFuIHNubXBfc2Vzc19jbG9zZTsKICAgICAgdGhpcyBmaXhlcyBhbiBBZ2VudFggbWVtb3J5IGxlYWsgd2hlbiBzdWJhZ2VudHMgY29tZSBhbmQgZ28uCiAgIAogICAgLSBQZXJmb3JtIGNhbGxiYWNrcyB3aXRoIGFuIG9wZXJhdGlvbiBhcmd1bWVudCBvZgogICAgICBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgd2hlbiB5b3UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDMtMzEgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgTWFkZSB0cmFuc3BvcnQgZG9tYWluIGNvbnN0CiAgIAoyMDAxLTAzLTMxIDA1OjU1ICBqYnBuCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB0aGF0IGNhbiBvY2N1ciB3aGVuIGRlcmVnaXN0ZXJpbmcgY2FsbGJhY2tzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZmlsZSBSRUFETUUuYWdlbnR4IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUyAoVjQtMi1wYXRjaGVzLjEpLCBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBsaWJzbm1wLmRlZgo6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDY6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MzYgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgY2hhbmdlIGZwcmludGYgLT4gc25tcF9sb2cuCiAgIERvbid0IGFsbG93IG1vZGlmaWNhdGlvbnMgb2YgcmVhZC1vbmx5IHJvd3MgaW4gbXRlT2JqZWN0c1RhYmxlLgogICAKMjAwMS0wMy0yNyAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBTdXBwb3J0IGZvciBuZXcgZmVhdHVyZXMgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIgY29kZToKICAgICBOZXcgc25tcGQuY29uZiB0b2tlbnM6CiAgICAgIC0gbW9uaXRvciBbLW8gb2lkLi4uXSBbLXUgdXNlcl0gb2lkIFsoPXwhPXw8PXwuLi4pIFZBTFVFXS4KICAgICAgLSBkZWZhdWx0TW9uaXRvcnMgeWVzCiAgIAoyMDAxLTAzLTI3IDEwOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTW92ZWQgKiBmcm9tIGJlZ2lubmluZyBvZiByb3V0aW5lIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHJldHVybgogICB2YXJpYWJsZSBkZWNsYXJhdGlvbi4gIFdhcyBjYXVzaW5nIGV0YWdzIGdyaWVmIHRoZSBvdGhlciB3YXkuCiAgIAoyMDAxLTAzLTI3IDEwOjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbjogdXNlICVzIGluc3RlYWQgb2YgQHMgZm9yIHNlYXJjaC9yZXBsYWNlIGRlbGltaXRlcnMuCiAgIAoyMDAxLTAzLTI3IDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgdHJhcF9mbXRfZnJlZSBuZWVkcyAoKXMuCiAgIAoyMDAxLTAzLTI3IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBdm9pZCBkb3VibGUtZnJlZWluZyBvZiBjYWNoZWQgYWRkcmVzcyBzdHJpbmdzLgogICAgICAoSm9obidzIGltcHJvdmVtZW50IHRvIG15IHN1Z2dlc3RlZCBmaXgpLgogICAKMjAwMS0wMy0yNyAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGlwZi1tb2QucGwgKFY0LTItcGF0Y2hlcy4xKSwgaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAwNzo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIEFTTl9PQ1RFVF9TVFIgcmF0aGVyIHRoYW4gdGhlIGhpc3RvcmljIEFTTl9CSVRfU1RSIGZvciAnYicgb2JqZWN0IHZhbHVlcwogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAoVjQtMi1wYXRjaGVzLjMpLCBhZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MzAgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBdm9pZCBjcmFzaCBpbiBzbm1wX3NodXRkb3duIG9uIHBsYXRmb3JtcyB0aGF0IGNoZWNrIHBvaW50ZXIgdmFsaWRpdHkKICAgaW4gZnJlZSgzKSwgZS5nLiBGcmVlQlNELgogICAKMjAwMS0wMy0yMSAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGNvcHlfbndvcmQgY3JlYXRlZCB0aGF0IGNoZWNrcyBidWZmZXIgbGVuZ3Rocy4KICAgTWFkZSBldmVyeXRoaW5nIHVzZSBpdC4KICAgCjIwMDEtMDMtMjEgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0yMCAwOToxMyAgamJwbgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIFB1cmlmeSBhbmQgTkZTIHN0dWZmCiAgIAoyMDAxLTAzLTE2IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGFkZGVkIE1JVF9ORVdfQ1JZUFRPIChmb3Iga3NtKSBkZWZpbml0aW9uIHdoaWNoIHdhcyBtaXNzaW5nCiAgIAoyMDAxLTAzLTE2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCByaWRpY3Vsb3VzIG1lbW9yeSBsZWFrIGluIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgd2hvb3BzLiAgTWlzc2VkIGEgbWVyZ2UgY29uZmxpY3QgbGluZQogICAKMjAwMS0wMy0xNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBSRUFETUUud2luMzIsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcGQuOAosIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9SRUFETUUubWlicywKICAgbWlicy9UVU5ORUwtTUlCLnR4dCwgbWlicy9pYW5hbGlzdCwgbWlicy9taWJmZXRjaAosIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYsIG1pYnMvc21pc3RyaXAKLCBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5oLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaAosIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBxdWlldCBzb21lIHdhcm5pbmdzLgogICAKMjAwMS0wMy0xNCAxMDoxOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmMKOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRuRuZ2VyKQogICAKMjAwMS0wMy0xNCAwNToyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMDMtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3Qgd2hldGhlciBhbiBPSUQgY29ycmVzcG9uZHMgdG8gYSBzdXBwb3J0ZWQgdHJhbnNwb3J0CiAgIGRvbWFpbi4KICAgCjIwMDEtMDMtMTEgMDc6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmg6CgogICBBZGQgI2luY2x1ZGVzIHRvIG1ha2Ugc3RydWN0IHNvY2thZGRyX2luIGNvbXBsZXRlCiAgIAoyMDAxLTAzLTExIDA3OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaDoKCiAgIFJlbW92ZSBzcHVyaW91cyAjaW5jbHVkZQogICAKMjAwMS0wMy0wOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcnd1c2VyIC1zIG1vZGVsIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAxLTAzLTA5IDA1OjUyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU2V0IGEgUERVJ3Mgb3BhcXVlIGRhdGEgb24gYSB0Y3BfcmVjdjsgdGhpcyBpc24ndCBuZWNlc3NhcnkgdG8gc2VuZAogICByZXBsaWVzIChiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBzdHJvbmdseSBjb25uZWN0ZWQpIGJ1dCBpZgogICB5b3UgZG9uJ3QgZG8gdGhpcyB0aGVuIHlvdSBjYW4ndCBkbyAiY29tMnNlYyIgdHlwZSBwcm9jZXNzaW5nIGZvciBQRFVzCiAgIHJlY2VpdmVkIG9uIFRDUCBzZXNzaW9ucy4uLiBpbnRlcmVzdGluZy4KICAgCjIwMDEtMDMtMDkgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggYmFkIGFzc3VtcHRpb24gdGhhdCBjb21tdW5pdHkgc3RyaW5nIGlzIHplcm8tdGVybWluYXRlZAogICAKMjAwMS0wMy0wOCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29ycmVjdCB2ZXJzaW9uIHN0YXRlbWVudHMgdG8gaW5kaWNhdGUgbmV0LXNubXAuCiAgIC0gcmVtb3ZlIG15IG5hbWUgYXMgYXV0aG9yIChJJ20gY2VydGFpbmx5IG5vdCB0aGUgb25seSBvbmUpCiAgIC0gYWRkIHdlYiBhZGRyZXNzLgogICAKMjAwMS0wMy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBLZW4gSG9ybnN0ZWluJ3MgbmFtZSB0byBjb250cmlidXRlcnMgbGlzdC4KICAgLSBSZW1vdmVkIG1pbmUgZnJvbSBiZWluZyBsaXN0ZWQgc2VwYXJhdGVseS4KICAgCjIwMDEtMDMtMDggMTQ6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgQWRkZWQgYSBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2R1bGUgKGtzbSkuCiAgICAgSG93ZXZlciwgTmVlZHMgbGlicmFyaWVzICgtbGtyYjUgLWxjb21fZXJyKSBub3QgYmVpbmcgY2hlY2tlZCBmb3IgY3VycmVudGx5LgogICAKMjAwMS0wMy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgV2hvb3BzLiAgU2hvdWxkbnQgaGF2ZSBhIG5lZ2F0aW9uIHNpZ24gb24gdGhlIG1vc3QgcmVjZW50IGNoZWNraW4uCiAgIAoyMDAxLTAzLTA4IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJZiBOT19QUk9CRSBpcyBzZXQsIGRvbid0IGRvIGFueSBwb3N0IHByb2JpbmcgYWN0aXZpdGllcyBlaXRoZXIgbGlrZQogICB0aW1lIHVwZGF0aW5nIGFuZCB1c2VyIGNyZWF0aW9uLgogICAKMjAwMS0wMy0wOCAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBSZW1vdmUgc3RyZHVwKClzIG9uIHNvbWUgc2Vzc2lvbiBwYXJhbWV0ZXJzIHdoaWNoIGNhdXNlIG1lbW9yeSBsZWFrcwogICAoc2luY2Ugc25tcF9vcGVuIGRlZXAgY29waWVzIHRoZSBpbnB1dCBzZXNzaW9uIGFueXdheSkKICAgCjIwMDEtMDMtMDggMDg6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIE1ha2Ugc3VyZSBzZXNzIGZpZWxkIG9mIG5ldyBlbnRyaWVzIGlzIGluaXRpYWxpc2VkIHRvIE5VTEwuCiAgIAoyMDAxLTAzLTA4IDA3OjQ5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIE1ha2UgY29uZmlnIHRva2VuIHBhcnNlciB1cGRhdGUgdGltZXN0YW1wIG9uIGVudHJ5IGl0IGNyZWF0ZXM7CiAgIG1vdmUgdXBkYXRlX3RpbWVzdGFtcCBmdW5jdGlvbi4KICAgCjIwMDEtMDMtMDcgMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIHJlbW92ZSB1bm5lZWRlZCB0aW1lc3RhbXAgc3VwcG9ydAogICAKMjAwMS0wMy0wNiAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfc2VjbW9kLmMKLCBzbm1wX3NlY21vZC5oLCBzbm1wdXNtLmM6CgogICBzZWNtb2Qgc3RydWN0IHN5bWJvbCBuYW1lIGNoYW5nZXMgdG8gc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlLgogICAKMjAwMS0wMy0wNiAxNjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIHNldCB0aGUgZGVmYXVsdCBwZHUgc2VjdXJpdHkgbW9kZWwgdG8gU05NUF9ERUZBVUxUX1NFQ01PREVMIChub3QgMCkuCiAgIC0gZG9uJ3QgZm9yY2UgdGhlIHNlY3VyaXR5IG1vZGVsIG9mIHRoZSBzZXNzaW9uIG9uIHRoZSBwZHUgaWYgYWxyZWFkeSBzZXQuCiAgIAoyMDAxLTAzLTA2IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGhvcGVmdWxseSBmaXggdG8gYWxsb3cgb3RoZXIgKHJlZ2lzdGVyZWQpIHNlY3VyaXR5IG1vZGVscyB0byBiZSB1c2VkLgogICAKMjAwMS0wMy0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMjAwMS0wMy0wNiAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcHJvcGVybHkgaW5zdGFsbCBzZWNtb2QgaGVhZGVyIGxpc3QuCiAgIAoyMDAxLTAzLTA2IDA4OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gYnVnIGZpeGVzIGZvciBzZWNtb2QgcmVsYXRlZCBzdHVmZiAoaXQgY29tcGlsZXMgbm93IChvcHBzKSkuCiAgIAoyMDAxLTAzLTA2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgUGFzcyBpbiBwZHUgdG8gc2VjbW9kIGVuY29kZS9kZWNvZGUgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA2IDAzOjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vZGlmaWVkIGZ1bmN0aW9uIEludGVyZmFjZV9JbmRleF9CeV9OYW1lIChTb2xhcmlzIHNwZWNpZmljKSB0byBjb3BlIG1vcmUKICAgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMKICAgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZCBtZW1vcnkgcmVhZHMuCiAgIAoyMDAxLTAzLTA1IDE2OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXZlcnNlIGNhbGxiYWNrIG9yZGVyaW5nIG9mIG5vcm1hbCBjYWxsYmFjay9zZWNtb2QgY2FsbGJhY2sKICAgcHJvY2Vzc2luZyBpbiBzZXNzX2NvcHkoKS4KICAgCjIwMDEtMDMtMDUgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIHJlbW92ZSB1bnVzZWQgZnJlZSBmdW5jdGlvbiBjYWxscyBmb3Igc2VjdXJpdHkgbW9kdWxlIHVucmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDMtMDUgMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgbWlub3IgQVBJIGNoYW5nZXMgdG8gdGhlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbCBoYW5kbGluZy4KICAgCjIwMDEtMDMtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3Blcmx5IHJlc3BlY3QgdGhlIERPTlRfUFJPQkVfRkxBRy4KICAgCjIwMDEtMDMtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX3NlY21vZC5oCjoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIEFkZCBhIGtyYjUgc3BlY2lmaWMgZXJyb3IgY29kZS4KICAgCjIwMDEtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcHJvcGVybHkgaGFuZGxlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2R1bGVzCiAgIAoyMDAxLTAzLTA1IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSByZXNwZWN0IG5vbi1sb2NhbCBzcmNkaXJzIGZvciB0cmFuc3BvcnQvc2VjbW9kcwogICAKMjAwMS0wMy0wNSAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBzdXBwb3J0IGZvciBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWxzLiAgQ3VycmVudGx5IG9ubHkgdGhlIFVTTSBpcwogICBhdmFpbGFibGUsIGJ1dCBhIG5ldyBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2RlbCB3aWxsIGJlIGF2YWlsYWJsZQogICBzaG9ydGx5LiAgVGhlc2UgY2hhbmdlcyBzaW1wbHkgbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW9yZSB0aGFuIG9uZQogICBzZWN1cml0eSBzZXJ2aWNlLgogICAKMjAwMS0wMy0wNSAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfc2VjbW9kLmMsIHNubXBfc2VjbW9kLmg6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgYXV0aG9ycyBsaXN0LgogICAKMjAwMS0wMy0wNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uaDoKCiAgIENvbW1lbnQgcmUtYXJyYW5naW5nIHRvIGFjdHVhbGx5IGJlIG5lYXIgdGhlIGZ1bmN0aW9ucyB0aGV5J3JlIGRlc2NyaWJpbmcuCiAgIAoyMDAxLTAzLTA1IDA2OjEwICBqYnBuCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCBnZXRfbXlhZGRyKCkgZnVuY3Rpb24gdG8gY29wZSBtb3JlIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzCiAgIG9mIGludGVyZmFjZXMsIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBub24tSVB2NCBhZGRyZXNzZXMgb24gc29tZQogICBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcyBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkCiAgIG1lbW9yeSByZWFkcy4gIFVzZSAib2ZmaWNpYWwiIGRlZmluaXRpb24gb2YgSU5BRERSX0xPT1BCQUNLLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvUkVBRE1FLm1pYnM6CgogICBmaWxlIFJFQURNRS5taWJzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgZmlsZSBpYW5hbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgZmlsZSByZmNsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIGZpbGUgcmZjbWlicy5kaWZmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDEgMTk6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZyhjaGFyICpsaW5lKSB0byBwYXJzZSBhIC5jb25mIGNvbmZpZ3VyYXRpb24KICAgICBsaW5lIGF0IGFueSB0aW1lIGluIHRoZSBjb2RlIChoYW5kbGVycyBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhbmQpLgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnX3JlbWVtYmVyKGNoYXIgKmxpbmUpIHRvIG1lbW9yaXplIGl0IGZvcgogICAgIGxhdGVyIHVzZS4KICAgLSByZWFkX2NvbmZpZ3MsIGV0IGFsLCB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGVtIGFmdGVyIHJlYWRpbmcKICAgICBldmVyeXRoaW5nIGVsc2UuCiAgIC0gQWRkZWQgYSAtWSBmbGFnIHRvIHNubXBfcGFyc2VfYXJncyB0byBzdG9yZSByZWFkIGNvbmZpZyBkaXJlY3RpdmVzCiAgICAgZm9yIGxhdGVyIHVzZSwgdGh1cyBhbGxvd2luZyB5b3UgdG8gc3BlY2lmeSAuY29uZiBkaXJlY3RpdmVzIG9uIHRoZQogICAgIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDItMjcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgYW5kIFZBQ00gY2hlY2tpbmcgaW50ZXJhY3Rpb24uCiAgIChGaXggcHJvdmlkZWQgYnkgRnJhbmsgU3RyYXVzcykKICAgCjIwMDEtMDItMjEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB1Y2Qtc25tcC1pbmNsdWRlcy5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHVjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYyAoVjQtMi1wYXRjaGVzLjIpLCBpbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2YXJfc3RydWN0LmggKFY0LTItcGF0Y2hlcy4xKSwgdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNiAwNDoxNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBDaGFuZ2UgYmVoYXZpb3VyIG9uIGN5Z3dpbiB0byBleGNsdWRlIFVuaXggZG9tYWluIHRyYW5zcG9ydHMgYnkgZGVmYXVsdAogICBvbiBjeWd3aW4sIGFuZCBhbHNvIGZpeCBhIG1pbm9yIGJ1ZywgdGhhbmtzIHRvIHN1Z2dlc3Rpb25zIGJ5IFBldGVyIEZvbGsuCiAgIAoyMDAxLTAyLTE0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMiAxNDoxMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZGVkIEthcmwncyBwYXRjaCBmb3IgdXNlbnVtZXJpYwogICAKMjAwMS0wMi0xMiAxMzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgU05NUC5wbSwgU05NUC54cywKICAgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgYWRkZWQgdHJhcCByZWNlcHRpb24gQVBJIGZyb20gUGhpbGlwIFByaW5kZXZpbGxlIDxwaGlsaXBwQGNpc2NvLmNvbT4KICAgCjIwMDEtMDItMTEgMDg6MjMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2FkZCBub3Qgc25tcF9zZXNzX2FkZCAodGhlIGxhdHRlciBkb2Vzbid0IGFkZCBhIHNlc3Npb24gdG8KICAgdGhlIFNlc3Npb24gbGlzdCwgYW5kIGl0IHRoZXJlZm9yZSB3b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdCgpCiAgIGZkc2V0LCBoZW5jZSBzbm1wdHJhcGQgd2lsbCBuZXZlciByZWNlaXZlIHZlcnkgbXVjaCkuCiAgIAoyMDAxLTAyLTExIDA4OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGltcHJvcGVybHktdGVybWluYXRlZCBsaXN0IGluIGNvbTJzZWMgaGFuZGxpbmcuCiAgIAoyMDAxLTAyLTExIDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDbGVhbiB1cCBtZXJnZSAoPj4+Pj4+LCA9PT09PT0gZXRjLiBsZWZ0IGJlaGluZCkuCiAgIAoyMDAxLTAyLTEwIDA5OjI2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvLgogICAKMjAwMS0wMi0xMCAwOToxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmMsCiAgIHN1YmFnZW50LmM6CgogICBNZW1vcnkgbGVhayBwYXRjaGVzIChzb3VyY2Vmb3JnZSBwYXRjaCAjMTAzNjA1KS4KICAgUmVtb3ZlIGEgZmV3IHN0cmR1cCgpcywgYW5kIGNhbGwgZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24oKSByYXRoZXIgdGhhbgogICBmcmVlKCkgaW4gc3ViYWdlbnQuYzpoYW5kbGVfYWdlbnR4X3BhY2tldCgpIGZvciBBR0VOVFhfTVNHX1JFU1BPTlNFCiAgIGFuZCBkZWZhdWx0IGNhc2VzLCB0byBlbnN1cmUgZnJlZSgpaW5nIG9mIGNsb25lZCBQRFUgYWxsb2NhdGVkIGJ5CiAgIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAKMjAwMS0wMi0xMCAwNzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcElQWERvbWFpbi5oLCBzbm1wVENQRG9tYWluLmMKLCBzbm1wVENQRG9tYWluLmgsIHNubXBVRFBEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5oLCBzbm1wVW5peERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5oCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIFdob29wcy4gIEZvcmdvdCB0aGUgbmV3IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGx1Z2dhYmxlIHRyYW5zcG9ydCBzdHVmZi4KICAgCjIwMDEtMDItMDkgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLCBtdGVPYmplY3RzVGFibGUuYwosIG10ZU9iamVjdHNUYWJsZS5oLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmgsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgSW1wbGVtZW50ZWQgYW5kIG1hZGUgdXNlIG9mIG10ZU9iamVjdHNUYWJsZSB0byBzZW5kIGFkZGl0aW9uYWwgb2JqZWN0cyBvdXQgd2l0aCB0cmFwcyBnZW5lcmF0ZWQuICBBbHNvLCBkb24ndCByZXR1cm4gZGF0YSBmb3IgbWlzYyB0YWJsZXMgd2hlbiB0aGF0IHRyaWdnZXIgaXNuJ3QgZGVmaW5lZCB0byB1c2UgdGhhdCB0ZXN0IHR5cGUuCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jIChWNC0yLXBhdGNoZXMuMiksIG1pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuMSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQwMjBzbm1wdjNnZXQsCiAgIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LAogICBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUywgVDAyOHNubXB2M2dldGZhaWwsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQwNTNhZ2VudHYxdHJhcCwKICAgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwgVDEwMGFnZW50aHVwCiwgVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwKLCBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQKLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC90cmFwdG9lbWFpbCwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgdHJhcHRvZW1haWwgcGVybCBzY3JpcHQgY3JlYXRlZCBhcyBhbiBleGFtcGxlIHRyYXBoYW5kbGUgc2NyaXB0CiAgIAoyMDAxLTAyLTA4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgYXBwcy9zbm1wZGVsdGEuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvbWliMmMsIG1hbi9zbm1wY21kLjEsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIE1lcmdlIGZyb20gVjQtMi1wYXRjaGVzOiBtZXJnZSAxLT4yCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYyAoVjQtMi1wYXRjaGVzLjEpLCBkaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHVzZSBzbm1wX2VudW0ncyBwcm9wZXJseSAoc3RyZHVwKCkgdGhlIHN0cmluZ3MgZmlyc3QpCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIG10ZVRyaWdnZXJUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuaCwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgSW5pdGlhbCAobm90LWNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRElTTUFOLUVWRU5ULU1JQjoKICAgICAtIEltcGxlbWVudHMgYWxsIDMgdGVzdHMgKGJvb2xlYW4sIHRocmVzaG9sZCBhbmQgZXhpc3RlbmNlKS4KICAgICAtIG5vdCByaWdvcm91c2x5IHRlc3RlZC4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHF1ZXJ5aW5nIHRoZSBsb2NhbCBhZ2VudAogICAgICAgKG10ZVRyaWdnZXJUYXJnZXRUYWcgbXVzdCBiZSAnJykuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzZW5kaW5nIHRyYXBzIGFuZCB0aGUgbXRlT2JqZWN0c1RhYmxlIGlzCiAgICAgICBub3QgaW1wbGVtZW50ZWQgKG15IG5leHQgdG9kbyBpdGVtKQogICAgIC0gT25seSB0aGUgZGVmYXVsdCB0cmFwcyBhcmUgc2VudC4gIFRoZSBtdGVFdmVudCogb2JqZWN0cyBoYXZlbid0CiAgICAgICBiZWVuIGltcGxlbWVudGVkIChubyBzZWxmLWRlZmluZWQgdHJhcHMvc2V0cykuCiAgICAgLSBubyBlYXN5IHRvIHVzZSBjb25maWd1cmF0aW9uIHlldCAoc29vbikuCiAgICAgLSBjb25maWd1cmUgd2l0aCAtLXdpdGgtbWliLW1vZHVsZXM9ZGlzbWFuL2V2ZW50LW1pYgogICAKMjAwMS0wMS0zMCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHNwcmludGYgZm9yIHN0cmluZ3MgdGhhdCBtYXkgbm90IGJlIG51bGwgdGVybWluYXRlZC4KICAgCjIwMDEtMDEtMzAgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBJbXBsZW1lbnRlZCBnZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCkgYW5kIHNldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKToKICAgICAtIFRoZXNlIGFsbG93IGEgbWliIG1vZHVsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudAogICAgICAgYWdlbnRfc25tcF9zZXNzaW9uIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgIC0gVGhpcyBzaG91bGQgcHJvYmFibHkgZG9uZSBkaWZmZXJlbnRseSBsYXRlciB3aGVuIHdlIGNoYW5nZSB0aGUgbWliCiAgICAgICBtb2R1bGUgYXBpLgogICAgIC0gVGhpcyB3aWxsIGNvbXBsZXRlbHkgZmFpbCB0byB3b3JrIHByb3Blcmx5IGluIGEgbXVsdGktdGhyZWFkZWQKICAgICAgIGFnZW50ICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbnl3YXkpLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgZGVidWdnaW5nIHN0YXRlbWVudCBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcHJvcGVybHkgbWFsbG9jIGEgMSBieXRlLCBOVUxMIGNoYXJhY3RlciBzdHJpbmcgZm9yICIiIHJlYWQgc3RyaW5ncy4KICAgCjIwMDEtMDEtMjkgMTE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiwKICAgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0wOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBkc19hZ2VudC5oLCB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oCjoKCiAgIFN1YkFnZW50IHBpbmcgc3VwcG9ydDoKICAgICAtIGFnZW50eFBpbmdJbnRlcnZhbCBzcGVjaWZpZXMgU0VDT05EUyBiZXR3ZWVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICAgICB0cmllcyB0byBwaW5nIHRoZSBtYXN0ZXIgYWdlbnQuCiAgICAgLSBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCwgaXQgdHJpZXMgdG8gcmVjb25uZWN0LgogICAgIC0gZmFpbGluZyB0aGF0IGl0IHRyaWVzIGV2ZXJ5IFNFQ09ORFMgYWdhaW4gdGlsbCBpdCBzdWNjZWVkcy4KICAgICAtIHJlLXJlZ2lzdGVycyBpdHMgb2lkJ3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3VidHJlZSBsaXN0LgogICAgICAgLSBtYXkgbmVlZCBzb21lIHRob3VnaHQuICBBc3N1bWVzICphbGwqIG5lZWQgdG8gYmUgcmUtcmVnaXN0ZXJlZC4KICAgICAgIC0gbmVlZHMgdG8gcmUtcmVnaXN0ZXIgc3lzb3J0YWJsZSBlbnRyaWVzIHRvbywgYnV0IGRvZXNuJ3QuCiAgICAgLSBjdXJyZW50bHkgc2VnLWZhdWx0cyBvbiBhYm91dCB0aGUgMi00dGggdGltZSBvciBzby4gIE5vdCBzdXJlIHdoeS4KICAgICAtIFNob3VsZCBtYWtlIERhdmUgc21pbGUgb3IgY3JpbmdlIG9yIGdpZ2dsZSwgbm90IHN1cmUgd2hpY2guCiAgIAoyMDAxLTAxLTA5IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgLSBnZW5lcmljIHNubXAgZW51bSBsaXN0IHN1cHBvcnQuICBOb3QgdXNlZCBhbnl3aGVyZSAoeWV0KS4KICAgCjIwMDEtMDEtMDQgMTY6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAosIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYwo6CgogICAtIGFkZGVkIG5ldyBwcmludEhleFRleHQgc25tcC5jb25mIHRva2VuLgogICAtIGRvY3VtZW50ZWQgLU9ULCBhbmQgdGhlIHRva2VuLgogICAKMjAwMS0wMS0wNCAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICBQYXRjaCAjMTAzMDkxIGFwcGxpZWQ6CiAgICAgLSBBZGRlZCAtT1Qgb3B0aW9uIHRvIHZpZXcgaGV4IHN0cmluZ3Mgd2l0aCB0ZXh0IGluIHRoZW0uCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTIyIDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0xOSAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2UgaW5pdF9zbm1wdjMoKSBkZWFsIHdpdGggYSBOVUxMIGFyZ3VtZW50IHByb3Blcmx5LgogICAKMjAwMC0xMi0xOCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiByZW1vdmUgcGFzc3Rlc3QgZnJvbSB0aGUgLmN2c2lnbm9yZSBmaWxlIChidWcgIzEyNjk0KQogICAKMjAwMC0xMi0xOCAxMDo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gdmFjbV92YXJzLmMsIHZhY20uYzogaW5kZXhpbmcgb2YgdmFjbVZpZXdUcmVlRmFtaWx5RW50cnkgd2FzIGhvc2VkLCBhc3N1bWluZwogICAJdGhhdCB0aGUgU3VidHJlZSBpbmRleCBoYWQgYW4gSU1QTElFRCBhdHRyaWJ1dGUuCiAgIAoyMDAwLTEyLTA4IDE0OjQ2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6CgogICAtIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6IGZpeCBzb21lIHplcm8gaW5kZXggdmFsdWVzLgogICAKMjAwMC0xMi0wOCAxNDo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogZml4IHJldHVybnMgb2YgemVyb0RvdFplcm8gKHN1Y2ggYXMgaWZTcGVjaWZpYykKICAgCjIwMDAtMTItMDggMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXBkLmM6IHNlY3VyaXR5IG1vZGVsIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGlzIHNubXAgdmVyc2lvbiB2YWx1ZXMKICAgCjIwMDAtMTItMDYgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogTGludXgga2VybmVsIDIuMC54IGhhcyBubyBBUlBIUkRfSElQUEkKICAgCjIwMDAtMTItMDUgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggcnNubXAncyAvdXNyL2xvY2FsIGhhcmRjb2RlZCBwYXRoLgogICAKMjAwMC0xMi0wNCAxNzowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogZml4CiAgIAoyMDAwLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yICkKICAgCjIwMDAtMTItMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIC0gKE5FV1MsIFJFQURNRSk6IHVwZGF0ZXMuCiAgIAoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnhzLCB0L21pYmxvYWQudAosIHQvc3RhcnRhZ2VudC5wbDoKCiAgIGVuc3VyZSBtaWJsb2FkLnQgdXNlcyBjb3JyZWN0IE1JQkRJUiBmb3IgdGVzdGluZwogICAKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBGQVEsIFJFQURNRToKCiAgIC0gKEFHRU5ULnR4dCwgRkFRLCBSRUFETUUpOiBjb252ZXJ0IHVybCdzIHRvIHd3dy5uZXRzbm1wLm9yZy4KICAgCjIwMDAtMTItMDQgMDg6NDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KICAgCjIwMDAtMTItMDMgMDc6MjkgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSBzbm1wdHJhcGRfbG9nLmM6IGZveCBtaXNzaW5nIGxlYWRpbmcgemVyb2VzIGZvciAlLjJkIGxpa2UgZm9ybWF0cy4KICAgCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgogICAKMjAwMC0xMi0wMiAxODoyMiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzLCB0L2J1bGt3YWxrLnQsCiAgIHQvbm90aWZ5LnQsIHQvc2Vzc2lvbi50OgoKICAgZm91bmQgdGhlIHVuaW5pdGlhbGl6ZWQgZGF0YSBidWcuLi5tdXN0IGhhdmUgYmVlbiBpbiB0aGVyZSBkb3JtYW50IGZvciBhIHdoaWxlLCBvdGhlciB0ZXN0IGZpeGVzIC0gZ29vZCB0byBnbyEKICAgCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiByZW1vdmUgdGhlIGJ1ZyByZXBvcnQgc2NyaXB0LgogICAKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCiAgICogUE9SVElORzoKCiAgIC0gKFBPUlRJTkcpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBtZW50aW9uIHRoZSBmYWN0IHRoYXQgc25tcHYzIHRyYXBzIGFyZQogICAgIHRoZSBzYW1lIGFzIHNubXB2MiB0cmFwcy4KICAgCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNToxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIGZvciBwcm94eSBzdXBwb3J0LgogICAKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGEgZmV3IHRoaW5ncy4KICAgCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZGlhZ25vc2Ugd3JvbmcgcXVvdGluZyBpbiBpbmRpY2VzCiAgIAoyMDAwLTEyLTAxIDE0OjIzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBhZGQgUkZDLTEyMTMgYXMgYW4gYWxpYXNlIGZvciBSRkMxMjEzLU1JQiAodXNlZCBpbiBtYW55IG1pYnMpCiAgIAoyMDAwLTEyLTAxIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogcmVmb3JtYXQgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgcmVhZGFiaWxpdHkKICAgCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGlmVHlwZSB2YWx1ZXMgZm9yIExpbnV4CiAgIAoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCiAgIAoyMDAwLTEyLTAxIDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcXVvdGUgdGhpbmdzIHdpdGggc3BhY2VzIGluIHRoZW0uCiAgIAoyMDAwLTEyLTAxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNvbmYuMToKCiAgIC0gKHNubXBjb25mLjEpOiBxdWljayBtYW4gcGFnZSBmb3Igc25tcGNvbmYuCiAgIAoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiBjaGFuZ2Ugbm8tcGFyZW50IGxvZyBtZXNzYWdlIGludG8gYSB3YXJuaW5nLgogICAKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTEyLTAxIDA5OjEwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMi0wMSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgdjItPnYxIHRyYXAgY29udmVyc2lvbi4KICAgCjIwMDAtMTItMDEgMDc6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0eXBvLgogICAKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9ub3RpZnkudCwgc25tcGxpYi9taWIuYzoKCiAgIGFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQogICAKMjAwMC0xMS0zMCAxNDowNiAgbmJhCgogICAqIHNubXBsaWIvOiBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDogZXh0ZXJuICJDIiBicmFja2V0aW5nCiAgIAoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCiAgIAoyMDAwLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMS0zMCAxMDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggYmFkIHNldHMgZm9yIGFnZW50eC4KICAgCjIwMDAtMTEtMzAgMDk6MTkgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKG92L1JFQURNRSk6IG1pbm9yIGNvcnJlY3Rpb25zLCBwcm9iYWJseSBzdGlsbCBpbmNvcnJlY3QuCiAgIAoyMDAwLTExLTMwIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluLCBzbm1wY29uZiwgYWNsLCBiYXNpY19zZXR1cCwgbW9uaXRvciwgb3BlcmF0aW9uLAogICAgIHN5c3RlbSwgdHJhcHNpbmtzKToKICAgICAtIGdyb3VwaW5nIHN1cHBvcnQuCiAgICAgLSBzb3J0LW9mLXF1aWV0IG91dHB1dCBzdXBwb3J0LgogICAgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCiAgIAoyMDAwLTExLTMwIDA5OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKICAgICBwZXJzaXN0ZW50IGRhdGEgZmlsZS4KICAgCjIwMDAtMTEtMzAgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyk6IENsZWFudXAgcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMC0xMS0zMCAwOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCiAgIAoyMDAwLTExLTMwIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWVudGlvbiB0aGUgVFVOTkVMLU1JQiBzdXBwb3J0LgogICAKMjAwMC0xMS0yOSAxODoyMSAgc2xpZgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZS1tYWlsIGFkZHJlc3MgZm9yIFNsaWZjYWsKICAgCjIwMDAtMTEtMjkgMTE6MzQgIG1hcnoKCiAgICogY29uZmlndXJlOgoKICAgZml4ZWQgb3JkZXIgb2YgZnVuY3Rpb24gY2hlY2tpbmcgc28gdGhhdCB2c25wcmludGYgaXMgbm90IGZvdW5kIGluIGxpYmRiIChCU0QgZGIpIGJ5IG1pc3Rha2UKICAgCjIwMDAtMTEtMjkgMDU6MTggIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRToKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI4IDE4OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL1JFQURNRSwKICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50LAogICBwZXJsL1NOTVAvdC9taWIudCwgcGVybC9TTk1QL3Qvbm90aWZ5LnQsCiAgIHBlcmwvU05NUC90L3Nlc3Npb24udCwgcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKGxvY2FsL3NubXBjb25mKToKICAgICAtIGFkZCBzdXBwb3J0IGZvciAiZ3JvdXBzIiBvZiBpdGVtcy4KICAgICAtIGRvbid0IHVzZSBJTzo6RGlyLCBhcyBpdHMgbm90IGluIHRoZSBzdGFuZGFyZCBwZXJsIG1vZHVsZSBkaXN0cmlidXRpb25zLgogICAKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgpOiByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUgcmVmZXJlbmNlLgogICAKMjAwMC0xMS0yNyAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBhdXRvLXNldCBzdXBwb3J0IGZvciB0aGUgYWdlbnQgKGFuZCBwbHVnIGEgbWVtb3J5IGxlYWspLgogICAKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIHNubXAuY29uZi41LmRlZjogZG9jdW1lbnQgdG9rZW5zIGV4dGVuZGVkSW5kZXggYW5kIG5vUmFuZ2VDaGVjawogICAKMjAwMC0xMS0yNyAxMzo0MSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC2gcGFyc2UuYzogZml4IGEgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDAtMTEtMjQgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLAogICB2bXN0YXRfbmV0YnNkMS5jOgoKICAgLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CiAgIAoyMDAwLTExLTIyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSAobWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyk6IFBhdGNoIGZyb20gU2VhbiBIYXJkaW5nOgogICAgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgogICAKMjAwMC0xMS0yMSAxNToxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcGFyc2luZyBvZiBvaWQgbGlrZSA5OS4xMy5cImd1ZlwiOAogICAKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgogICAqIHBlcmwvU05NUC9TTk1QLnhzLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCiAgIAl0eXBlcyBpbiB0aGUgcGFyc2VyIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHRoZSBwZXJsIG1vZHVsZSBhbmQgaW4gdHVybgogICAJZm9yIG1pYjJjLiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoaXMgYmVmb3JlIHByZTI6LSgKICAgCjIwMDAtMTEtMTkgMTI6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSBmaXhlcyB0byAuL2NvbmZpZ3VyZSAtLXdpdGgtZGVmYXVsdHMgLS1lbmFibGUtbWluaS1hZ2VudDsgbWFrZSBpbnN0YWxsCiAgIAlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldDotKQogICAKMjAwMC0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQogICAKMjAwMC0xMS0xOCAwNzoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgogICAKMjAwMC0xMS0xNyAxMTowMSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAogICAJaW5kaWNlcy4gQWxzbyBmaXggYSBidWcgd2l0aCBxdW90ZWQgaW5kaWNlcy4KICAgCjIwMDAtMTEtMTcgMTA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICAtICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KICAgCjIwMDAtMTEtMTcgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCBjYXNlcyB3aGVyZSB0aGUgZm9ybWF0IHN0cmluZ3MgYXJlIHNwZWNpZmllZC4KICAgCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCiAgIAoyMDAwLTExLTE3IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IG1lbW9yeSBsZWFrcy4KICAgICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KICAgCjIwMDAtMTEtMTYgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wbGliL3NubXB2My5jKTogYWRkZWQgYSBzcGFjZSBpbiBhIGRlYnVnZ2luZyBvdXRwdXQgc3RhdGVtZW50LgogICAKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2ltcGxlIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYWRkZWQuCiAgIAoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzZXQgRFNfTElCX0FQUFRZUEUgaWYgaXQgaGFzbid0IGJlZW4gc2V0IHlldC4KICAgCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGFkZCBDT05GSUdUUkFQRC4KICAgCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKICAgICAtIHN1cHBvcnQgLUlyIGZvciAiZG9udCBjaGVjayByYW5nZS90eXBlIHZhbHVlcyIgKGxldHRlciByIHN1YmplY3QgdG8gZGViYXRlKS4KICAgCjIwMDAtMTEtMTYgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gKGNhbGxiYWNrLmMpOiBiZXR0ZXIgZGVidWdnaW5nIG91dHB1dCB0byBkaXNwbGF5IGEgY2FsbGJhY2sgY291bnQgd2hlbiBkb25lLgogICAKMjAwMC0xMS0xNiAxNjo1MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCiAgIAoyMDAwLTExLTE2IDE2OjUwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1OGFnZW50YXV0aHRyYXApOiBzbGVlcCBzb21lIGFuZCBvbmx5IHBlcmZvcm0gb25lIGdldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwOgoKICAgLSAoVDA1NGFnZW50djJjdHJhcCk6IHNsZWVwIGEgYml0IGFuZCBvbmx5IHNlbmQgb25lIHNubXAgc2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCiAgICogc25tcGxpYi9nZXRvcHQuYzoKCiAgIC0gZ2V0b3B0LmM6IHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAwLTExLTE2IDE1OjMxICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIG1pYi5jLCBwYXJzZS5oLAogICBzbm1wX2FwaS5jOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYywgc25tcF9hcGkuYzogcmVuYW1lIFRZUEVfVUlOVEVHRVIzMiBiYWNrIHRvIFRZUEVfVUlOVEVHRVIKICAgCjIwMDAtMTEtMTYgMTU6MTYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGQuY29uZjogbmV3IGNvbmZpZyBkaXJlY3RpdmVzIGZvcm1hdDEgYW5kIGZvcm1hdDIgdG8KICAgCXNldCBsb2cgZm9ybWF0cyBmb3IgVFJBUDEgYW5kIFRSQVAyIHBkdXMuCiAgIAoyMDAwLTExLTE2IDEzOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBhZGQgZnVuY3Rpb25hbGl0eSB0byBjaGVjayB2YWx1ZSB0eXBlcyBpbiBhZGRpdGlvbiB0byByYW5nZXMKICAgCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KICAgCjIwMDAtMTEtMTYgMTM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCiAgIAkoaS5lLiBERUZWQUwgeyB7IDAgMCB9IH0gZXRjKQogICAKMjAwMC0xMS0xNiAxMTozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6CiAgICAgLSBzZW5kIGEgdjJjIHRyYXAgdXNpbmcgaXRzIG93biBkYXRhLCBub3QgdGhlIHN5c3RlbV9taWIncy4KICAgICAtIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgogICAgIC0gbmV3IHRlc3RzIGZvciB0cmFwcyBzZW50IGJ5IHRoZSBhZ2VudC4KICAgCjIwMDAtMTEtMTYgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogRG9uJ3QgZGVsZXRlIFJFQURPTkxZIHRyYXAgc2Vzc2lvbnMuCiAgIAoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtOgoKICAgLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgogICAKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMToKCiAgIC0gKGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjEpOiBzdXBwb3J0IC1DaSBmb3Igc2VuZGluZyBpbmZvcm1zLgogICAKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgogICAKMjAwMC0xMS0xNSAxNDoxOCAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IG1ha2UnaW5nIGluIHJlbW90ZSBkaXJlY3RvcnkKICAgCjIwMDAtMTEtMTUgMTQ6MTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiB1cGRhdGUgdG8gdXNlIGdldG9wdCBmb3IgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogZml4IGEgY29uZnVzaW5nIGluZGVudGF0aW9uLgogICAKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcC5jOiBtYWtlIHN1cmUgY29tbXVuaXR5IGlzIFwwLXRlcm1pbmF0ZWQgaW4gdGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCiAgIAlzaW5nbGUgcGFyYW1ldGVyLiBGaXggYSBiYWQgbGltaXQgdGVzdCBpbiBzdHJfYXBwZW5kLgogICAKMjAwMC0xMS0xNSAxNDowMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IGZpeCBhIHN0dXBpZCBwZXJyb3IgZm9yIHNubXBfcGVycm9yCiAgIAoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYzogZW5oYW5jZSB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIElOVEVHRVIsIEludGVnZXIzMiwKICAgCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCiAgIAoyMDAwLTExLTE1IDEzOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQogICAKMjAwMC0xMS0xNSAwNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaAo6CgogICAtIChzbm1wX3ZhcnMuYywgc3ViYWdlbnQuYyk6IFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZDoKICAgICAtIERvbid0IG1ha2UgaW5pdF9hZ2VudCgpL3N1YmFnZW50X3ByZV9pbml0KCkgZXhpdCBidXQgcmV0dXJuIGFuCiAgICAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KICAgCjIwMDAtMTEtMTIgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgogICAKMjAwMC0xMS0xMiAwNDo0NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgogICAKMjAwMC0xMS0xMiAwNDo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBnaXZlIHRoZSB0cmVlLXRvcCBhIG5hbWUgdG8gcHJvdGVjdCBlcnJvciBtZXNzYWdlIHdoZW4gbG9va2luZyB1cCAuZm9vCiAgIAoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDAtMTEtMTIgMDQ6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC1hZ2VudF90cmFwcy5jOiBNb3ZlIGEgY29uZGl0aW9uYWxseSB1c2VkIHZhcmlhYmxlCiAgIAoyMDAwLTExLTEyIDA0OjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIEZpeCBhIGJvZ3VzICNpZmRlZgogICAKMjAwMC0xMS0xMCAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFwcGx5IHBhdGNoICMxMDIyMjQgZnJvbSBqYnBuIGZvciBjcm9zcy1jb21waWxpbmcuCiAgIAoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcDoKCiAgIC0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgogICAgLSBmaXJzdCBwYXNzIGF0IGEgdGVzdGluZyBzY3JpcHQgdG8gdGVzdCB0cmFwIGZ1bmN0aW9uYWxpdHkuCiAgICAgIC0gd2hpY2ggZXZlbiB1bmNvdmVyZWQgYSBidWcuCiAgIAoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAgLSBmb3JrIGlmIGZpbGUgbG9nZ2luZyBvciBzeXNsb2dnaW5nLCBidXQgbm90IHByaW50aW5nLgogICAgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KICAgCjIwMDAtMTEtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGRfbG9nLmMpOiBwcm9wZXJseSBudWxsIHRlcm1pbmF0ZSBsb2cgc3RyaW5ncy4KICAgCjIwMDAtMTEtMDkgMTY6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGF0dGVtcHQgdG8gaW1wbGVtZW50IGEgLS13aXRoLXJzYXJlZiBmbGFnLgogICAKMjAwMC0xMS0wOSAxNTozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgogICAKMjAwMC0xMS0wOSAxNTozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgcGVybC9TTk1QL1JFQURNRToKCiAgIC0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCiAgIAoyMDAwLTExLTA5IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50OgoKICAgLSAoZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudCk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgogICAKMjAwMC0xMS0wOSAxNDo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwKICAgU05NUC54czoKCiAgIC0gKE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KICAgCjIwMDAtMTEtMDggMjM6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgogICAKMjAwMC0xMS0wOCAyMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgogICAKMjAwMC0xMS0wOCAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IGZpeCBPSUQuCiAgIAoyMDAwLTExLTA4IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KICAgCjIwMDAtMTEtMDggMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgogICAKMjAwMC0xMS0wOCAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgbGlicnNhcmVmLCBldGMsIGlmIG5lZWRlZC4KICAgCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9zbm1wZC5jKToKICAgICAtIHVpZC9naWQgY2hhbmdlcy4KICAgCjIwMDAtMTEtMDcgMTU6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC54cyk6IGZpeCBUWVBFX05PVElGIC0+IFRZUEVfTk9USUZUWVBFLgogICAKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzKTogUGF0Y2ggZnJvbSBKb2UgQ2xhcmtlOgogICAgIC0gaW1wbGVtZW50IGJlc3QtZ3Vlc3MgKC1JYikgcGFyc2luZy4KICAgICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgogICAgIC0gcmFuZ2UgYWNjZXNzLgogICAKMjAwMC0xMS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIGJ1aWxkIGNyZWF0ZWQgZmlsZXMuCiAgIAoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHM6CgogICAtIChSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCiAgIAoyMDAwLTExLTA3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gbXVsdGlwbGUgY2FsbGJhY2sgcGF0Y2ggZm9yIHBlcmwvU05NUC9TTk1QLnhzLgogICAKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBvcHRpb25hbCBjb25maWcgZmlsZSBETkUuCiAgIAoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KICAgCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKICAgICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGltcGxlbWVudCB1aWQvZ2lkIGNoYW5nZXMgYWZ0ZXIgc3RhcnR1cCBmb3IgdGhlIGFnZW50LgogICAKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBhIGJldHRlciBzYW5pdHkgY2hlY2sgZm9yIHNlc3Npb24gZGVsZXRpb24uCiAgIAoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IFBhdGNoIGZyb20gRGF2ZSB0byBzYW5pdHkgY2hlY2sgcGFyYW0tPnVwZGF0ZVRpbWUuCiAgIAoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBjaGVjayB0byBzZWUgdGhhdCBNRHNpZ24oKSBkYXRhIGxpZXMgb24gYSAzMiBieXRlIGJvdW5kcnkuCiAgICAgLSBpdHMgcG9zc2libGUgc29tZSBjb21waWxlcnMgd2lsbCBjaG9rZSBvbiB0aGlzIGhhY2suCiAgICAgLSBmaXhlcyBidWcgIzEyMTc1LgogICAKMjAwMC0xMS0wMyAxNzo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHNvcnQgT0lEcyBwcm9wZXJseS4KICAgCjIwMDAtMTEtMDMgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBmaXggbWliIHJlZ2lzdHJhdGlvbnMgZm9yIGR1cGxpY2F0ZSBPSURzIGJlaW5nIHVzZWQgZm9yIHRoZSB0cmFwIGV4YW1wbGVzLgogICAKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KICAgICAtIFVtLCBhcHBsaWVkIGNvcnJlY3RseSB0aGlzIHRpbWUgKEkgaG9wZSkuCiAgIAoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgogICAKMjAwMC0xMS0wMiAyMjoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpcC5jLCBpcEFkZHIuYwosIHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgogICAKMjAwMC0xMS0wMiAyMjoxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IHNvbWUgJChzcmNkaXIpIHJlZmVyZW5jZXMgd2hlbiBydW5uaW5nIG91dHNpZGUgc291cmNlCiAgIAoyMDAwLTExLTAyIDIyOjE1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKICAgCjIwMDAtMTEtMDIgMjI6MTQgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwogICAKMjAwMC0xMS0wMiAyMjoxMiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICBEb2N1bWVudCB0aGUgLU9YIG91dHB1dCBvcHRpb24KICAgCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgogICAKMjAwMC0xMS0wMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgpOiBhZGQgdWNkLXNubXAvcHJveHkuCiAgIAoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IGNoYW5nZSBjdnMgYXJjaGl2ZSBzaXRlIGFuZCBwYWNrYWdlIG5hbWUuCiAgIAoyMDAwLTExLTAyIDEzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIDEwMjIzOSBmcm9tIGRvdWd3YXJ6IHRvIGZpeCBhIHByZXZpb3VzbHkgYmFkIHNtdXguYyBwYXRjaC4KICAgCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUxICkKICAgCjIwMDAtMTEtMDEgMTY6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsKTogcHJveHkgdGVzdCBzdWl0ZS4KICAgCjIwMDAtMTEtMDEgMTY6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgpOgogICAgIC0gbWluaW1hbCBTRVQgc3VwcG9ydCBmb3IgdGhlIHByb3h5IGNvZGUuCiAgIAoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiB0ZXN0IGZvciBhZ2VudHggc2V0cyB0aGF0IHNob3VsZCBmYWlsIHByb3Blcmx5LgogICAKMjAwMC0xMC0zMSAxNDozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICAtIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKICAgCjIwMDAtMTAtMzEgMTQ6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiBmaXggd3JvbmcgdmFyaWFibGUgbGVuZ3RoCiAgIAoyMDAwLTEwLTMxIDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGZpeCBzb21lIHN1c3BpY2lvdXMgbG9va2luZyBjb2RlCiAgIAoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCiAgIAoyMDAwLTEwLTMxIDEyOjQxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIG1pYi5jOiBhZGQgLU9YIG91dHB1dCBmb3JtYXQsIGZvciBqdXN0IGFub3RoZXIgd2F5IG9mIHByaW50aW5nIGluZGljZXMKICAgCjIwMDAtMTAtMzEgMTI6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKICAgCjIwMDAtMTAtMzEgMTI6MjUgIG5iYQoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMKOgoKICAgLSBhcHBzLyo6IG1ha2Ugc3VyZSB3ZSByZXBvcnQgYW55IGVycmluZGV4L2VycmNvZGUgaW4gdGhlIHJlc3BvbnNlCiAgIAoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTMxIDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IHBhdGNoICMxIGZyb20gYnVnICMxMTcyNzMgYXBwbGllZCB0byBmaXggc211eCBzb2NrZXQgcHJvYmxlbXMuCiAgIAoyMDAwLTEwLTMxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAueHMpOiBwcmludCBjb3VudGVyNjQncyBhcyB1bnNpZ25lZC4KICAgCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzdWJhZ2VudC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKICAgICAtIGZpeCBub3RpZmljYXRpb25zIGZyb20gYWdlbnR4IHN1YmFnZW50cy4KICAgCjIwMDAtMTAtMzAgMjI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZml4IGJ1ZyAjMTE5Nzg2OiBtYWtlIHNtdXggcmV1c2Ugc29ja2V0IGFkZHJlc3MuCiAgIAoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwKICAgdGVzdHMvVDExMWFnZW50eHNldDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgogICAgIC0gZml4IGJ1ZyAjMzgyCiAgICAgLSBmaXggYWdlbnR4IG5vbi1yb290IHRlc3RzIHRvIHVzZSAteCAvdG1wL2JsYWgvYWdlbnR4X3NvY2tldC4KICAgCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZml4IGEgdHlwbyBwb2ludGVkIG91dCBieSBDaHJpcyBQZXBwZXIuCiAgIAoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQ6CgogICAtICh0ZXN0cy9UMTExYWdlbnR4c2V0KTogdGVzdCBzY3JpcHQgZm9yIEFnZW50WCBzZXQgc3VwcG9ydC4KICAgCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldDoKCiAgIC0gKHRlc3RzL1QxMTBhZ2VudHhnZXQpOiBoZWFkZXIgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSB3b3JkIEdFVC4KICAgCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIHVjZC1zbm1wL3Ztc3RhdF8qLCBtZW1vcnlfZnJlZWJzZDIuYywgZGxtb2QuYzogTWFrZSBzc1Jhd0NwdSBvYmplY3RzIENvdW50ZXJzLAogICAJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKICAgCjIwMDAtMTAtMzAgMTE6MDcgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSBDbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMDFhZ2VudHgsIFQxMTBhZ2VudHhnZXQ6CgogICAtICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CiAgICAgLSByZW5hbWVkIHRoZSBhZ2VudHggdGVzdCBzY3JpcHQuCiAgIAoyMDAwLTEwLTMwIDExOjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBkb24ndCBhZGQgLWMgQ09ORklHRklMRSBpZiBpdCBkb2Vzbid0IGV4aXN0LgogICAKMjAwMC0xMC0zMCAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgogICAKMjAwMC0xMC0yNyAxMToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXBkLmMpOiBhZGQgLW8gZmxhZyB0byBsb2cgdG8gYSBwYXJ0aWN1bGFyIGZpbGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiB1c2UgbWtzdGVtcCBpZiBhdmFpbGFibGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTZWFyY2ggZm9yIG1rc3RlbXAoKS4KICAgCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBsaW51eCBrZXJuZWwgbGlzdCB0byBpbmNsdWRlIDIuMi4KICAgCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBtYWtlIFNLSVBJRk5PVCBjaGVjayB0aGUgbWliIG1vZHVsZSBsaXN0IHRvby4KICAgCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eDoKCiAgIC0gKHRlc3RzL1QxMDFhZ2VudHgpOiBBZ2VudFggc3ViYWdlbnQgdGVzdCBmb3Igc2ltcGxlIGdldCByZXRyaWV2YWwuCiAgIAoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IEFkZCAtWCBvcHRpb24gdG8gc25tcGQgdG8gcnVuIGFzIGEgc3ViYWdlbnQuCiAgIAoyMDAwLTEwLTI1IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZml4IGZvciBjYXNlcyB3aGVuZSBkZWJ1Z2dpbmcgaXMgYWx3YXlzIG9mZi4KICAgCjIwMDAtMTAtMTcgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bgogICAKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYWdlbnR4L21hc3Rlci5jKTogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSAocHNldWRvLSlhbnN3ZXIgdG8gYSByZXF1ZXN0LgogICAJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTEwLTE2IDAzOjExICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIG1vZGUgaW5mb3JtYXRpb24KICAgCVRoaXMgc2hvdWxkIGhlbHAgd2l0aCAoc29tZSBvZikgdGhlIFNFVCBoYW5kbGluZyBwcm9ibGVtcy4KICAgCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgogICAJVGhpcyBob2xkcyBpbmZvcm1hdGlvbiB0aGF0IG5lZWRzIHRvIHBlcnNpc3QgYWNyb3NzIG11bHRpLXBhc3MgcmVxdWVzdHMuCiAgIAlJIHJlYWxpc2UgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBtZW1vcnkgbGVhaywgYnV0IHRoaXMgaXNuJ3QgdGhlCiAgIAljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgogICAKMjAwMC0xMC0xMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBhZGQgLUkgdG8gdGhlIGhlbHAgb3V0cHV0LgogICAKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzLzogTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaAosIGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzLyopOiByZW1vdmUgb2Jzb2xldGUgdmVyc2lvbnMKICAgCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KICAgCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBNYXR0IEJyYWl0aHdhaXRlOgogICAgIC0gdWRwIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byBjaGVjayBmb3IgbWlzYyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgLSAoVFVOTkVMLU1JQi50eHQpOiBUVU5ORUwtTUlCIGRlZmluaXRpb24uCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oKTogY29uZmlnX2FkZF9taWIoVFVOTkVMLU1JQikuCiAgIAoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHR1bm5lbC5oLCB0dW5uZWwvdHVubmVsLmMsCiAgIHR1bm5lbC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBpbXBsZW1lbnQgdGhlIFRVTk5FTC1NSUIuCiAgIAoyMDAwLTEwLTEwIDE0OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdW5saW5rX3RyZWUgZm9yICJ0b3AgbGV2ZWwiIHRyZWUgbm9kZXMuCiAgIAoyMDAwLTEwLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmV2ZXJzZSBsaWJyYXJ5IGxpbmsgb3JkZXJpbmcgYWdhaW4uLi4KICAgCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KICAgCjIwMDAtMTAtMTAgMDY6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICBSZW1vdmUgdW5uZWVkZWQgZGVjbCBvZiB2c25wcmludGYgd2l0aG91dCBzdGRhcmcvdmFyYXJncyBkZWNsIG9mIHZhX2xpc3QuCiAgIAoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgQXBwbHkgcGF0Y2ggZm9yIERFQyBBbHBoYSBFVjYsIHN1cHBsaWVkIGJ5IFNodW1vbiBIdXF1ZTxzaHVxdWVAaXNjLnVwZW5uLmVkdT4KICAgCjIwMDAtMTAtMDkgMTc6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgogICAKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGFkZGl0aW9ucy4KICAgCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KICAgCjIwMDAtMTAtMDkgMTE6NDMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGQgbmV3IG1pcnJvci4KICAgCjIwMDAtMTAtMDkgMTA6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIE1vdmUgY29uZmlnLSBhbmQgc3RvcmUtcmVsYXRlZCBjbGVhbnVwIGZyb20gc2h1dGRvd25fbWliIHRvIHNubXBfc2h1dGRvd24uCiAgIAoyMDAwLTEwLTA5IDAyOjM2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBRdWFsaWZ5IGFuIGluZGl2aWR1YWwgaW50ZXJmYWNlIHR5cGUgdGVzdCBzeW1ib2wKICAgCShRbjogc2hvdWxkIGFueS9hbGwgb2YgdGhlIG90aGVycyBiZSBxdWFsaWZpZWQgYXMgd2VsbD8pCiAgIAoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LAogICBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NodXRkb3duX21pYi4zLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBTdXBwb3J0IGZvciBzaHV0ZG93bl9taWIgLSBjbGVhcmluZyB0aGUgTUlCIHRyZWVzIGFuZCBjb25maWd1cmVkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGx1ZyBtZW1vcnkgbGVhayBmb3IgdWNkLXN1cHBsaWVkIHNldGVudiBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDAtMTAtMDYgMDQ6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0wNSAyMzo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCiAgIAlpbnRvIHN1Yi1pZHMgd2Uga25vdyBub3RoaW5nIGFib3V0CiAgIAoyMDAwLTEwLTA1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCiAgIAoyMDAwLTEwLTA0IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCAiZXh0ZW5kaW5nIiBzbm1wY29uZiBmaWxlLgogICAKMjAwMC0xMC0wNCAxNDo1MCAgbmJhCgogICAqIEZBUToKCiAgIC0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgogICAKMjAwMC0xMC0wNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIChwYXNzX3BlcnNpc3QuYyk6IG9wYXF1ZXMgaW4gcGFzc19wZXJzaXN0LgogICAKMjAwMC0xMC0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogc3VwcG9ydCBvcGFxdWUgcmV0dXJuIHR5cGVzLgogICAKMjAwMC0xMC0wNCAwNzoxNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgRml4IHBhcnNpbmcgcHJvYmxlbSBmb3IgLVBjIG9wdGlvbjsgcmVwb3J0ZWQgYnkgQ2hyaXN0aWFuIE1hdXRuZXIuCiAgIAoyMDAwLTEwLTA0IDA2OjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBxdWFsaWZ5IHN5bWJvbHMgZm9yIG5ldyBpL2YgdHlwZXMuCiAgIAoyMDAwLTEwLTA0IDA2OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBUZXJtaW5hdGUgbGlzdCB0byBjb21waWxlIChhZGQgYSBjb21tYSkuCiAgIAoyMDAwLTEwLTA0IDAwOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKICAgCUdFVEJVTEsKICAgCjIwMDAtMTAtMDMgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGFkZCBhIHBhc3NiYWNrIGFyZ3VtZW50IHRvIHJlZ2lzdGVyX3JlYWRmZCgpIGNhbGxiYWNrcy4KICAgCjIwMDAtMTAtMDMgMTg6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgogICAKMjAwMC0xMC0wMyAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBGcmllZHJpY2g6CiAgICAgLSBmaXggZ2V0bmV4dCByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoyMDAwLTEwLTAzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgogICAKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CiAgICAgLSBmaXggb2lkIHBhcnNpbmcgaW4gdHJhcHMuCiAgIAoyMDAwLTEwLTAzIDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwogICAgIEkgaGF2ZSB2ZXJ5IHNhZGx5IGZvcmdvdHRlbi4gIEkndmUgYmVlbiBsb29raW5nIGZvciB0aGF0IG1lc3NhZ2UgZm9yCiAgICAgYSB3aGlsZSB0byBwcm9wZXJseSBhdHRyaWJ1dGUgdGhpcyBwYXRjaC4gIFNpZ2guCiAgIAoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERvdWdsYXMgV2FyemVjaGE6CiAgICAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KICAgCjIwMDAtMTAtMDMgMDk6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCiAgIAoyMDAwLTEwLTAzIDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdmFjbS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENhc3RpbmcgdG8gZml4IHByb2JsZW1zIGJ1aWxkaW5nIHdpdGggYUNDCiAgIFRoYW5rcyB0byBNYXJra3UgTGF1a2thbmVuIDxwa3lAbW9yZW1hZ2ljLmNvbT4KICAgCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgY2hkaXIgdG8gdW5kbyBmaXggZm9yIChCVUcjMjk4KQogICAKMjAwMC0xMC0wMiAyMTo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCiAgIAoyMDAwLTEwLTAyIDIxOjM5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gc25tcF9sb2dnaW5nLmM6ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAgIAoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCiAgIAljb25maWd1cmF0aW9uIGZpbGVzCiAgIAoyMDAwLTEwLTAyIDIxOjM3ICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBzZXQuYzogRG8gYSBleGl0KDIpIGZvciBmYWlsdXJlIGluIHNldHRpbmcgdGhlIHZhcmlhYmxlLgogICAKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogYWRkIGEgc2FmZWd1YXJkIGZvciB2ZXJ5IGxvbmcgYXJndW1lbnQgbGlzdHMuCiAgIAoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgogICAKMjAwMC0xMC0wMiAyMTozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCiAgIAoyMDAwLTEwLTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXB1c20uaC4KICAgCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOgogICAgIC0gbmV3IG9wdGlvbnMgZm9yIGluc3RhbGxpbmcgY3JlYXRlZCBmaWxlcy4KICAgICAtIG1vcmUgY29tbWVudHMgaW4gdGhlIGNvZGUuCiAgICAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgogICAgIC0gbWlzYy4KICAgCjIwMDAtMTAtMDIgMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQtbGVzcy4KICAgCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGJ5dGUgc3RhdFAgbWFsbG9jcy4KICAgCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KICAgCjIwMDAtMTAtMDEgMTY6NDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQZXIgTmllbHMgcmVjb21tZW5kYXRpb24sIGNoZGlyIHRvIFBFUlNJU1RFTlRfRElSRUNUT1JZIChyZTogYnVnICMyOTgpCiAgIAoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgRml4IERFQlVHTVNHVEwgbm90IGZvdW5kIGVycm9yIGZvciBidWlsZHMgd2l0aG91dCBkbG1vZCBzdXBwb3J0LgogICBUaGFua3MgdG8gc2ltb25AemlkLnR1d2Vpbi5hYy5hdAogICAKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kICsgLm8gLT4gLmxvIGZpeGVzLgogICAKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwpOiBza2lwIGVtcHR5IGRlcGVuZCBsaW5lcy4KICAgCjIwMDAtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBkcm9wIGR1cGxpY2F0ZSBsaW5lcyBmcm9tIHJlYWQgaW4gc25tcGQuY29uZiBmaWxlcy4KICAgCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KICAgCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCiAgIAoyMDAwLTA5LTI5IDExOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCiAgIAoyMDAwLTA5LTI5IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgogICAKMjAwMC0wOS0yOSAxMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KICAgICAtIGRvbid0IGludGVycHJldGUgdGhlbSBhcyBhbiBpcC1wb3J0LgogICAKMjAwMC0wOS0yOSAxMDozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbToKICAgICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgogICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMgd2hpY2ggY2FuIGNhdXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAoQnVnICMzNjcpCiAgIAoyMDAwLTA5LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBmaXggdXNlIG9mIE5VTEwgdGltZXN0YW1wIHBvaW50ZXIgaW4gbmV3IHJvdyBjcmVhdGlvbiAoQnVnICMzNDYpCiAgIAoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gbWliX2FwaS4zOiBhZGQgYSBmZXcgZnVuY3Rpb25zIHRvIHRoZSBoZWFkZXIKICAgCjIwMDAtMDktMjggMTQ6MTQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXB0cmFwLmM6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHNubXBfZnJlZV9wZHUKICAgCjIwMDAtMDktMjggMTQ6MTMgIG5iYQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgYWRkX21pYmRpci4zLAogICBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsIGdldF9tb2R1bGVfbm9kZS4zLCBpbml0X21pYi4zCiwgaW5pdF9taWJfaW50ZXJuYWxzLjMsIHByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIHByaW50X21pYi4zLCBwcmludF9vYmppZC4zLCBwcmludF92YWx1ZS4zLAogICBwcmludF92YXJpYWJsZS4zLCByZWFkX2FsbF9taWJzLjMsIHJlYWRfbWliLjMsCiAgIHJlYWRfbW9kdWxlLjMsIHJlYWRfbW9kdWxlX25vZGUuMywgcmVhZF9vYmppZC4zLAogICBzbm1wX3NldF9taWJfd2FybmluZ3MuMywgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMzoKCiAgIC0gbWFuLzogYWRkIG1hbiBlbnRyaWVzIGZvciBtYW55IGxpYnJhcnkgZnVuY3Rpb25zIChwb2ludGluZyB0byBzbm1wX2FwaS4zKQogICAKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIHJlbW92ZSBzZWNvbmQgY29weSBvZiBzeXMvc29ja2V0LmgKICAgCjIwMDAtMDktMjcgMTI6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICAtIChkbG1vZC5oKTogYWRkIHRoZSBVQ0QtRExNT0QtTUlCIHRvIHRoZSBkZWZhdWx0IGxvYWQgbGlzdC4KICAgCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVjZF9zbm1wLmgsIGRsbW9kLmMpOgogICAgIC0gaW5jbHVkZSB1Y2Qtc25tcC9kbG1vZCBieSBkZWZhdWx0LgogICAgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KICAgCjIwMDAtMDktMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBkb24ndCBwcmludCBrZXJuZWwgYmFzZWQgd2FybmluZyBtZXNzYWdlcyB3aGVuIC1yLCBldGMsIGlzIHNwZWNpZmllZC4KICAgCjIwMDAtMDktMjYgMTM6MTcgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgRm9yIFdpbjMyIEFQSTogRGVjbGFyZSBzdHJ0b3VsLCB2c25wcmludGY7IEVuYWJsZSByZXZlcnNlIEJFUiBlbmNvZGluZy4KICAgCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJbmNsdWRlIHN5c3RlbS5oICh2c25wcmludGYgZGVjbCkKICAgCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29uLgogICAKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDAtMDktMjYgMTM6MTMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggc2lnbmVkIGNvbXBhcmlzb247IFJlbW92ZSB1bnVzZWQgdmFyLgogICAKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEluY2x1ZGUgZ2V0b3B0LmggKG9wdGFyZyBkZWNsKTsgUmVtb3ZlIHVudXNlZCB2YXIuCiAgIAoyMDAwLTA5LTI2IDEzOjExICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBNYXRjaCBJbml0aWFsaXNlX1RhYmxlIGFyZ3MgMyw0IGRlY2xhcmF0aW9ucyB3aXRoIGRlZmluaXRpb25zLgogICAKMjAwMC0wOS0yNiAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSB0aGUgYWRtaW5zdGF0dXMgUk9OTFkuCiAgIAoyMDAwLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogY2hvbXAoJDEpIGlzIGlsbGVnYWwuCiAgIAoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgogICAKMjAwMC0wOS0yNSAxNjo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQogICByZXNvbHZlZC4KICAgCjIwMDAtMDktMjUgMDk6MzUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBjYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgogICAKMjAwMC0wOS0yMiAwNjowMyAgbmJhCgogICAqIG1pYnMvOiBIQ05VTS1UQy50eHQsIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsCiAgIElORVQtQUREUkVTUy1NSUIudHh0LCBJUC1GT1JXQVJELU1JQi50eHQsIHNtaXN0cmlwCjoKCiAgICAtbWlicy86IE1JQiB1cGRhdGVzCiAgIAoyMDAwLTA5LTIyIDA1OjU1ICBuYmEKCiAgICogbWlicy86IElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBJQU5BaWZUeXBlLU1JQi50eHQsIE1UQS1NSUIudHh0LCBNYWtlZmlsZS5pbiwKICAgTWFrZWZpbGUubWliLCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQsIFJGQy0xMjE1LnR4dAosIFJGQzExNTUtU01JLnR4dCwgUkZDMTIxMy1NSUIudHh0OgoKICAgLSBtaWJzLzogTUlCIHVwZGF0ZXMKICAgCjIwMDAtMDktMjIgMDU6NTIgIG5iYQoKICAgKiBtYW4vc25tcHNldC4xLCBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jCiwgYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwogICAKMjAwMC0wOS0yMiAwNTo1MCAgbmJhCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSBzbm1wc3RhdHVzLmM6IHNob3cgZXJyb3Igb2JqZWN0CiAgIAoyMDAwLTA5LTIyIDA0OjI5ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIHNubXB1c20uYzogaXNzdWUgZXJyb3IgbWVzc2FnZSB3aXRoIG9iamVjdAogICAKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBwcm92aWRlIHByb3RvdHlwZXMgZm9yIHN0cnRvbCwgc3RydG91bCwgc25wcmludGYsIHZzbnByaW50ZgogICAKMjAwMC0wOS0yMiAwNDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzogcHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2Ygc3RyaW5ncwogICAKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gYXBwcy86IGRpc3BsYXkgZmFpbGVkIG9iamVjdCB3aGVuIG9uZSBpcyBpZGVudGlmaWVkIGJ5IHBkdS0+ZXJyaW5kZXgKICAgCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZGYuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuMSk6IGRvY3VtZW50IHRoZSBzbm1wZGYgY29tbWFuZC4KICAgCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKICAgKiBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZTogdXNlIEdFVEJVTEsgdG8gY29sbGVjdCBkYXRhIHdoZW4gcHJvdG9jb2wgYWxsb3dzIGl0LiBBZGQKICAgCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgogICAKMjAwMC0wOS0yMSAxNTozOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xOgoKICAgLSBtaWIuYzogcmV3cml0ZSBpbmRleCBoYW5kbGluZyBpbiBvYmplY3QgaWRzLCB0byBhbGxvdyBzeW1ib2xpYyBlbnVtcy4KICAgCUFkZCBEYXZlcyBzdWdnZXN0ZWQgLU92IG91dHB1dC4gQWxzbyBlbmhhY2UgLVRkIG91dHB1dCB0bwogICAJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCiAgIAoyMDAwLTA5LTIxIDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgLSAoc25tcGRmLmMpOiB1c2UgdGhlIFVDRC1TTk1QLU1JQidzIGRza1RhYmxlIGlmIHRoZQogICAgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA5LTIxIDE1OjI4ICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIHBhcnNlLmM6IGFkZCBhYmlsaXR5IHRvIGNvbGxlY3QgVkFSSUFCTEVTL09CSkVDVFMgZm9yIFRSQVAtVFlQRQogICAJYW5kIE5PVElGSUNBVElPTi1UWVBFLiBJZ25vcmUgZmlsZXMgdGhhdCBkb2VzIG5vdCBoYXZlIERFRklOSVRJT05TCiAgIAlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KICAgCjIwMDAtMDktMjEgMTU6MjIgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMsCiAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4KLCBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSBzbm1wbGliOiBhZGQgc25wcmludGYsIHN0cnRvbCwgc3RydG91bCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgdGhlbQogICAKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogYWRkIGZha2Ugc3RydWN0IGRlZmluaXRpb24gZm9yIGVudW1zCiAgIAoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCiAgICogc25tcGxpYi9zdHJ0b3VsLmM6CgogICBmaWxlIHN0cnRvdWwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3N0cnRvbC5jOgoKICAgZmlsZSBzdHJ0b2wuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmM6CgogICBmaWxlIHNucHJpbnRmLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA5LTIxIDA2OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KICAgCjIwMDAtMDktMjEgMDA6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBidWcgIzM2MCB3aGVyZSBhIGNsaWVudCBtaWdodCByZW1vdmUgYSBhbGFybSByZWdpc3RyYXRpb24KICAgICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCiAgICAgICBiZWluZyB1c2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgogICAKMjAwMC0wOS0yMSAwMDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0tZGlzYWJsZS1zaGFyZWQgYnkgZGVmYXVsdCBpbiBjdnMgY2hlY2tvdXRzLgogICAKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCiAgIAoyMDAwLTA5LTIwIDE3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IG51bGwgaW50ZXJuYWwgaGVscCBsaW5lcy4KICAgCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCiAgIAoyMDAwLTA5LTIwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMsIHNubXB2My5jKTogTlVMTCBvdXQgaGVscCBtZXNzYWdlcyBmb3IgLmNvbmYKICAgICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCiAgICAgZG9pbmcgdGhpbmdzLgogICAKMjAwMC0wOS0yMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGV4cG9ydCBTTk1QQ09ORlBBVEggdG8gTWFrZWZpbGVzCiAgIAoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGNvcnJlY3Rpb24gb2YgdGFibGUgbmFtZS4gIE1vcmUgZXJyb3JzIGV4aXN0LgogICAKMjAwMC0wOS0yMCAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgZGVidWdnaW5nLCBtaWJzLCBvdXRwdXQpOiBtb3JlIHNubXAuY29uZiBzbm1wY29uZiBjb25maWcgZmlsZXMuCiAgIAoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgogICAKMjAwMC0wOS0yMCAxNDo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6CiAgICAtIGRvbid0IGZvcmNlIHJlYWRpbmcgb2YgL3Vzci9sb2NhbC9zaGFyZS9zbm1wZC5jb25mLgogICAgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KICAgCjIwMDAtMDktMjAgMTQ6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzcGFjZSB0aGluZ3Mgb3V0IG9uIHRoZSBzY3JlZW4gYSBiaXQgYmV0dGVyLgogICAKMjAwMC0wOS0yMCAxNDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGNvbmYpOiBpbnN0YWxsIHNubXBjb25mIGFuZCBpdHMgdmFyaW91cyBzdXBwb3J0IGZpbGVzLgogICAKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCiAgIAoyMDAwLTA5LTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogbWlzYyB1cGRhdGVzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA5LTIwIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IGR5bmFtaWMgYXJyYXkgIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgSm9jaGVuIEttaWV0c2NoLgogICAKMjAwMC0wOS0yMCAwMjowNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IERvbid0IGluY2x1ZGUgY29udGV4dCBzdHJpbmdzIG9uIFBEVXMgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0aGVtCiAgIAkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCiAgIAoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgogICAKMjAwMC0wOS0xOSAxNDo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXAuYzoKCiAgIC0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKICAgICBkYXRhdHlwZXMgKGZsb2F0LCBkb3VibGUsIGV0YykuCiAgIAoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQogICAgIGF1dG9jb25mIG1hY3JvIGxpYnJhcnkuCiAgIAoyMDAwLTA5LTE5IDA4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCiAgIAoyMDAwLTA5LTE4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBzbm1wZC5oOgoKICAgLSAoc25tcF92YXJzLmgsIHNubXBkLmgpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCiAgIAoyMDAwLTA5LTE4IDE0OjU1ICBtc2xpZmNhawoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjMzQ3IHJlcG9ydGVkIGJ5IGRhc19kZW5pekB5YWhvby5jb206IG1ha2Ugc2JpbiBpbnN0YWxsIGRpcgogICAKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGFkZCBhIHBvcnQgc3BlY2lmaWNhdGlvbiBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMC0wOS0xNCAwODo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogaWdub3JlIG91dHB1dCBvZiBnZXRob3N0YnluYW1lIGZvciB0cmFwIHNlc3Npb24gYWRkaW5nLgogICAKMjAwMC0wOS0xMyAxNTowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IG5ldyB1dGlsaXR5IHRvIGdlbmVyYXRlIC5jb25mIGZpbGVzIGJ5IHByb21wdGluZyB0aGUKICAgICB1c2VyIHdpdGggcXVlc3Rpb25zLgogICAKMjAwMC0wOS0wOCAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjoKICAgICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgogICAKMjAwMC0wOS0wNyAxMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgIC0gZml4IG9wZW5zc2wgY2hlY2tzLgogICAgLSBydW4gYXV0b2hlYWRlci4KICAgCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIE1pbm9yIHRvdWNodXBzIHRvIGJ1aWxkIG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wZGYvLmN2c2lnbm9yZSwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXB2YWNtLy5jdnNpZ25vcmUsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIFdlbGNvbWUgdGhlIG5ld2VzdCB1Y2Qtc25tcCBhcHBsaWNhdGlvbnMgdG8gdGhlIFdpbjMyIGJ1aWxkcy4KICAgCjIwMDAtMDktMDQgMTU6MTkgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IHJlc3RhcnQgZXJyb3Jjb3VudCB3aGVuIHJlbG9hZGluZyBjb25maWcKICAgCjIwMDAtMDktMDQgMTU6MTIgIG5iYQoKICAgKiBtYW4vc25tcG5ldHN0YXQuMToKCiAgIC0gc25tcG5ldHN0YXQuMTogYWxpZ24gbWFuIHBhZ2Ugd2l0aCBwcm9ncmFtCiAgIAoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICAtIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKICAgCjIwMDAtMDktMDQgMTU6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgbWliSUkvdGNwLmMsCiAgIG1pYklJL3RjcFRhYmxlLmMsIG1pYklJL3VkcC5jLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgLSBtaWJpbmNsLmgsIHt0Yyx1ZH1weyxUYWJsZX0uYzogZW5zdXJlIGp1c3Qgb25lIGluY2x1ZGUgb2Ygc29ja2V0LmgKICAgCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQogICAKMjAwMC0wOS0wNCAxNTowNSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IG1ha2UgLS13aXRob3V0LWxpYndyYXAgd29yawogICAKMjAwMC0wOS0wMSAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHVwZGF0ZWQgY29kZS4KICAgCjIwMDAtMDktMDEgMTE6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFNjb3R0IExpcGNvbiBub3RlZCB0aGF0IHNubXB0cmFwZCBkb2Vzbid0IHN1cHBvcnQgLVQuCiAgIAoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggbG9vcCBpbiBzeW50YXggZXJyb3IgaW4gREVGVkFMIGNsYXVzZS4gQWxzbyBmaXggcmVhZGluZwogICAJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCiAgIAoyMDAwLTA4LTI4IDEzOjQzICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWlub3Igc3ludGF4IGdsaXRjaCBpbiBQT0QgZG9jcwogICAKMjAwMC0wOC0yNCAwMTo1NSAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwogICAJKFRoYW5rcyB0byBFcm5pZSBNaWxsZXIpCiAgIAoyMDAwLTA4LTE5IDExOjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gPENocmlzdG9waC5NYW1taXR6c2NoQHR1LWNsYXVzdGhhbC5kZT4KICAgdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgogICAKMjAwMC0wOC0xOCAwNDoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KICAgCjIwMDAtMDgtMTggMDM6NDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KICAgCjIwMDAtMDgtMTggMDM6MjAgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgogICAKMjAwMC0wOC0xOCAwMjo1MiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCiAgIAoyMDAwLTA4LTE3IDEzOjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgogICAKMjAwMC0wOC0xNiAxNTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IGZpeCB2YXJpb3VzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9ibGVtcy4KICAgCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggcGFkZGluZyBzaXplIGluIGVuY3J5cHRpb24uCiAgIAoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogc2V0IHBsYWludGV4dCBsZW5ndGggYXQgdGhlIGVuZCBvZiBzY19kZWNyeXB0LgogICAKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCiAgICogRkFROgoKICAgRml4IGJ1ZyAyODQgd2l0aCBhIHNob3J0IGV4cGxhbmF0aW9uIGFib3V0IHNubXAuY29uZi4KICAgCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgogICAqIElOU1RBTEw6CgogICBGaXggYnVnIDI4MyAtIHVtYXNrIDAyMiwgbWFrZSBpbnN0YWxsLiBUaGFua3MgdG8gY3NhYmEudG90aEBzemsuYmtlLmh1CiAgIAoyMDAwLTA4LTE1IDAwOjA4ICBuYmEKCiAgICogYXBwcy86IHNubXB0ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wdGVzdC5jOgoKICAgLSBzbm1wdGVzdC5jOiBvdmVyaGF1bCBpbnB1dF92YXJpYWJsZSwga2lsbCBuZXdsaW5lCiAgIAoyMDAwLTA4LTE0IDIyOjA1ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLlsxLDAsMF0pLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CiAgIAoyMDAwLTA4LTE0IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgogICAKMjAwMC0wOC0xNCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBhIG5ldyAoZGVmYXVsdCkgZW5naW5lSUQgdHlwZSBiYXNlZAogICAgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgogICAgIC0gSSB0aGluayBpdCB3b24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMgKGhlaCkuCiAgIAoyMDAwLTA4LTE0IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGlmIC1EcmVhZF9jb25maWcsIHRoZW4gcHJpbnQgZXZlbiBuby1oZWxwIHRva2VucyBhbmQgYSAqIGZvciBQUkVNSUIgb25lcy4KICAgCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBhcHBzL3NubXBidWxrZ2V0LmMKLCBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAobWFueSk6IHBvcnRhYmlsaXR5IGZpeGVzIGZvciBPcGVuQlNEIDIuNiwgRnJlZUJTRCA0LjEsIFVsdHJpeCA0LjUKICAgCjIwMDAtMDgtMTQgMTE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIHVudXNlZCBjb250ZXh0IHZhcmlhYmxlcy4KICAgCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCiAgIAoyMDAwLTA4LTExIDEzOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCiAgIAoyMDAwLTA4LTExIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKICAgICAtIHR5cG9zLgogICAKMjAwMC0wOC0xMSAwNjowNSAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICAtIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgogICAKMjAwMC0wOC0xMSAwMDo0MyAgbmJhCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcHRyYXBkLjg6CgogICAtIHNubXB0cmFwZC44OiBmaXggdHlwby4gVGhhbmtzIHRvIEcuIEFsbGVuIE1vcnJpcyBJSUkgPGdhbTNAYWNtLm9yZz4KICAgCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHByZWRlZmluZSBPYmplY3RTeW50YXgsIEFwcGxpY2F0aW9uU3ludGF4LCBTaW1wbGVTeW50YXggYW5kCiAgIAlPYmplY3ROYW1lCiAgIAoyMDAwLTA4LTEwIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWIyYyk6CiAgICAgLSBtYWtlIG1pYjJjIGxvb2sgaW4gJChzbm1wbGliZGlyKSBmb3IgLmNvbmYgZmlsZXMuCiAgICAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KICAgCjIwMDAtMDgtMTAgMTQ6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBkeW5hbWljYWxseSBkZWNpZGUgdG8gcmV2ZXJzZS9mb3J3YXJkIGVuY29kZS4KICAgCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYyk6IGZpeCBDUiB0ZXJtaW5hdGlvbi4KICAgCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgogICAKMjAwMC0wOC0xMCAxMzowMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnIDI1MiBmb3IgY29uZmlndXJlIGFuZCBzeXMvc29ja2V0Lmggb24gQlNEL09TIDQuMgogICAKMjAwMC0wOC0xMCAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKICAgc25tcHVzbS5oLCBzbm1wdjMuYzoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gaW1wbGVtZW50IHJldmVyc2UgZW5jb2RlZCBtZXNzYWdlcy4KICAgICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgogICAKMjAwMC0wOC0wOSAxNTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA5IDE1OjI3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdmFjbS5jOgoKICAgbm8gLy8gY29tbWVudCwgaW4gZGVmZXJlbmNlIHRvIG5vbi1BTlNJLUMgY29tcGlsZXJzLgogICAKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHRoZSBSdW5QYXRoIGZvciBzd2FwcGVkIG91dCBMaW51eCBwcm9jZXNzCiAgIAoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3ByaW50LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9wcmludC5jCjoKCiAgIC0gaHJfcHJpbnQuYzogZml4IGEgZGVidWcgdG9rZW4KICAgCjIwMDAtMDgtMDkgMDQ6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBmaXggcGFyc2luZyBvZiAtdgogICAKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKTogc3RyaXAgbmV3bGluZXMuCiAgIAoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjogc3RhcnQgb3B0aW5kIGF0IDEgbm90IDAuCiAgICAgLQogICAKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KICAgCjIwMDAtMDgtMDggMDY6MDUgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmM6CgogICBmaXggYnVnICMyOTggcmVwb3J0ZWQgYW5kIHBhdGNoIHN1cHBsaWVkIGJ5IENvbnJhZCBMaW5rIDxjbGlua0BtbC5jb20+CiAgIAoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBmaXggYSBidXN5IGxvb3Agd2hlbiBhbGFybSBxdWV1ZSBpcyBhY3RpdmUgd2l0aG91dCBhbnkKICAgCW91dHN0YW5kaW5nIHJlcXVlc3RzCiAgIAoyMDAwLTA4LTA4IDA0OjQ3ICBuYmEKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIC0gc25tcHNldC4xOiBjYW5ub3Qgc2V0IGNvdW50ZXJzCiAgIAoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCAoQlVHIzMzMikgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIEFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KICAgCjIwMDAtMDgtMDcgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCiAgICogbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMzoKCiAgIGZpbGUgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgogICAqIG1hbi9yZWFkX29iamlkLjM6CgogICBmaWxlIHJlYWRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjM6CgogICBmaWxlIHNubXBfc2V0X21pYl93YXJuaW5ncy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zOgoKICAgZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21vZHVsZV9ub2RlLjM6CgogICBmaWxlIHJlYWRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9tb2R1bGUuMzoKCiAgIGZpbGUgcmVhZF9tb2R1bGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9taWIuMzoKCiAgIGZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9hbGxfbWlicy4zOgoKICAgZmlsZSByZWFkX2FsbF9taWJzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhcmlhYmxlLjM6CgogICBmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhbHVlLjM6CgogICBmaWxlIHByaW50X3ZhbHVlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X29iamlkLjM6CgogICBmaWxlIHByaW50X29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X21pYi4zOgoKICAgZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMzoKCiAgIGZpbGUgcHJpbnRfZGVzY3JpcHRpb24uMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWIuMzoKCiAgIGZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjM6CgogICBmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9nZXRfbW9kdWxlX25vZGUuMzoKCiAgIGZpbGUgZ2V0X21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2FkZF9taWJkaXIuMzoKCiAgIGZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFkZCBpbiB0aGUgbm90aWZpY2F0aW9uIGdyb3VwIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTA4LTA0IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIC0gKG5vdGlmaWNhdGlvbi5oKTogbm90aWZpY2F0aW9uIG1pYiB3cmFwcGVyLgogICAKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKToKICAgIC0gaW5pdGlhbGl6ZSBvcHRpbmQgYmVmb3JlIGNhbGxpbmcgZ2V0b3B0LgogICAgLSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMC0wOC0wNCAxNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBwcm9wZXJseSBzZXQgdGhlIGZpcnN0ICh1bnVzZWQpIGFyZ3VtZW50IHRvIHNubXBfcGFyc2VfYXJncygpLgogICAKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X3RyYXAuYywgc25tcE5vdGlmeVRhYmxlLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBpZiB1c2luZyB0aGUgc25tcE5vdGlmaWNhdGlvblRhYmxlLCBpbnNlcnQgbm9uLXYxIHRyYXAgc2lua3MgaW50byBpdC4KICAgCjIwMDAtMDgtMDQgMDU6MjYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICAtIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKICAgCjIwMDAtMDgtMDQgMDU6MjEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChtaWJncm91cC91dGlsX2Z1bmNzLltjaF0pOiBOZXcgJ2NhY2hlZCB0YWJsZScgcm91dGluZXMKICAgCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBidWcgIzMyNSBpZGVudGlmaWVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JUC1GT1JXQVJELU1JQi50eHQ6CgogICBmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0OgoKICAgZmlsZSBJTkVULUFERFJFU1MtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQ6CgogICBmaWxlIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9IQ05VTS1UQy50eHQ6CgogICBmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDIgMDc6MDYgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KICAgCjIwMDAtMDgtMDIgMDY6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBCVUcgIzI5MTogYWxsb3cgIjI1NS4yNTUuMjU1LjI1NSIgZm9yIHRleHQgaW5wdXQgdG8gQVNOX0lQQUREUkVTUwogICAKMjAwMC0wOC0wMiAwNToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdGVzdC5jCjoKCiAgIEZpeCAoQlVHIzMyMyk6IGZyZWUgUERVIHdoZW4gc25tcF9zZW5kIGZhaWxzLgogICAKMjAwMC0wOC0wMiAwNTowNiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgogICBGaW5kIE1JQkRJUlMgaW4gc291cmNlIHRyZWUuCiAgIEZpeCBjb25kaXRpb24gdG8gc2V0IFBBVEguCiAgIAoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gaXAuYzogT25lIG1vcmUgI2lmIHNvbGFyaXMKICAgCjIwMDAtMDgtMDEgMjM6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKICAgCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSB1bnVzZWQgdXNhZ2UoKSB0eXBlZGVmLgogICAKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAocHJveHkuYywgcHJveHkuaCk6IC1XYWxsIHdhcm5pbmcgZml4ZXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIG5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL1RFU1RDT05GLnNoLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCiAgIAoyMDAwLTA4LTAxIDE2OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgogICAKMjAwMC0wOC0wMSAxMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICAtIChzbm1wLXVjZC5zaCk6IGZpeCBidWcgIzI5NyAoZG9uJ3Qga2lsbCBncmVwIGFuZCBpbml0IHNjcmlwdCBpbnZvY2F0aW9ucykuCiAgIAoyMDAwLTA4LTAxIDA0OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBidWcgZm91bmQgYnkgWWlnYWwgSG9jaGJlcmcgPGhvY2hiZXJnQGRtaHNvZnR3YXJlLmNvbT4KICAgCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECiAgIAkod29yayB3aXRoIHRoZSBuYW1lIG9yaWdpbmFsbHkgcmVnaXN0ZXJlZCwKICAgCSBub3QgYW55IHN1YnNlcXVlbnQgZGl2aXNpb24gYm91bmRhcmllcykKICAgCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZm9wZW4gZnJvbSBzaGVsbF9jb21tYW5kLgogICAKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaC5pbjoKCiAgIChURVNUQ09ORi5zaC5pbikgLSBzZXQgTUlCRElSUyB0byBzaWJsaW5nIG9mIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KICAgKFJVTlRFU1RTKSAtIGFsbG93IGJpbmFyaWVzIHRvIGJlIGluIHRoZSAiLUQgYmluZGlyIiBkaXJlY3RvcnkuCiAgIAoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLmluOgoKICAgRG9udCBhZGp1c3QgUEFUSCBpZiBTTk1QX1BBVEggaXMgc2V0LgogICBEb250IGFkZCBwb3J0IHNwZWMgdG8gU05NUF9GTEFHUyBpZiBvbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQuCiAgIAoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBSZW1vdmUgdGVzdCBkaXJlY3RvcmllcyBmb3Igc2tpcHBlZCB0ZXN0cy4KICAgS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCiAgIEtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgcGFzc2VkIHRlc3RzIHdoZW4gIlJVTlRFU1RTIC1zIiBpcyBzcGVjaWZpZWQuCiAgIFNlYXJjaCBjb25maWcuaCBhdCB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgdHJlZS4KICAgCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcCwgQ3JheS1UMywgU1gtNCwgU1gtNQogICAKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcAogICAKMjAwMC0wNy0zMCAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6CiAgICAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCiAgICAgLSBkZWxldGUgdW51c2VkIGZ1bmN0aW9uLgogICAgIC0gbWlzYyB3YXJuaW5nIGZpeGVzLgogICAKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmg6CgogICAtIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgpOgogICAgIC0gbW9yZSBub3RpZmljYXRpb24gdGFibGUgaW1wbGVtZW50YXRpb25zIGZvciBmaWx0ZXJpbmcuCiAgICAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCiAgIAoyMDAwLTA3LTMwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhhbmRsZSBpbXBsaWVkIG9iamVjdHMuCiAgICAgLSBpbXBsZW1lbnQgaGVhZGVyX2NvbXBsZXhfZ2V0KCkgZm9yIHNpbXBsZSBkYXRhIHJldHJpZXZhbHMuCiAgIAoyMDAwLTA3LTI4IDA2OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmFyX3JvdXRlLmM6CgogICBDbGVhbnVwIGluY2x1ZGUgaGVhZGVycyB0byBmaXggYnVnICMzMDcuIFRoYW5rcyB0byBzYW5kdmVuQHJlc2VhcmNoLmF0dC5jb20uCiAgIAoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKICAgICAtIGFjY2Vzc19ob3N0cygpIHJlcXVpcmVzIGFuIGFyZ3VtZW50IHNvIGZha2Ugb25lLgogICAKMjAwMC0wNy0yNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXR0aWFzIEJhcnRoZWw6CiAgICAgLSBmaXggZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBhdHRhY2hlZCBJUCBhZGRyZXNzLgogICAKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHN1cHBvcnQgcmF3IHZhbHVlcy4KICAgCjIwMDAtMDctMjcgMDg6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogcHJpbnQgZXJyb3JzIHRvIHN0ZGVyci4KICAgCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGl6YXRpb24gd2hlbiBvbmUgTUlCIGhvbGRzIE1PRFVMRS1DT01QTElBTkNFCiAgIAlmb3IgYW5vdGhlcgogICAKMjAwMC0wNy0yNyAwMTozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CiAgIAlUaGFua3MgdG8gRGFuYSBQLiBDb29rIDxkY29va0BjYWJsZXRyb24uY29tPgogICAKMjAwMC0wNy0yNiAyMjoyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBVcGRhdGUgZm9yIHdpbjMyIGJ1aWxkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgdW5wdWJsaXNoZWQgbWV0aG9kLgogICAKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdHJhbnNsYXRlT2JqIGhhY2suCiAgIAoyMDAwLTA3LTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCiAgIAoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KICAgCjIwMDAtMDctMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNvcHkga2V5IGxlbmd0aCBhcyB3ZWxsIGFzIHRoZSBrZXkgd2hlbiB1c2luZyB0aGUgc2FtZQogICAgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KICAgCjIwMDAtMDctMTEgMTM6MzQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzLCB0L21pYi50CjoKCiAgIGFkZGVkIHJhbmdlcyBmaWVsZCB0byBTTk1QOjpNSUIgaGFzaAogICAKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBtYWtlIG51bGwgUFJFRklYIHZhcmlhYmxlIHBvc3NpYmxlIHNvIG5vbi1kb3QtbGVhZGluZyBvaWRzIGFyZSBhY2NlcHRlZC4KICAgCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKICAgICAgICJhdXRob3JpdGF0aXZlIiwgbWVhbmluZyB3ZWF0aGVyIHRoZXkgc2hvdWxkIGJlIGxlYXJuaW5nIGVuZ2luZUlEcwogICAgICAgb3IgcmVwb3J0aW5nIG9uIHRoZW0uCiAgICAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAogICAgICAgdXNtX3Byb2NjZXNzX2luX21zZygpIHRvIHVzZSB0aGlzIGZsYWcuCiAgICAgLSBzZXQgaXNBdXRob3JhdGF0aXZlID0gdHJ1ZSBpbiB0aGUgYWdlbnQsIGFuZCB1bmtub3duIGluIHRoZSBzbm1wdHJhcGQuCiAgIAoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtYWtlIHRoZSBjcmVhdGVVc2VyIHRva2VuIGFjY2VwdCBhbiBlbmdpbmVpZCAoLWUgQVJHKSB0byB1c2UuCiAgIAoyMDAwLTA3LTA3IDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBSZWNvZ25pc2UgVG9rZW4gUmluZyBpbnRlcmZhY2VzIHVuZGVyIExpbnV4CiAgIAoyMDAwLTA3LTA2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcHJpbnQgZ2VuZXJpYyBzdHJpbmdzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQogICAgIHdoZXJlIHBvc3NpYmxlLiAgKElFLCBjaGVjayBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMgYmVmb3JlIHByaW50aW5nIGhleCkuCiAgIAoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluOgoKICAgLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogbW92ZWQgVEVTVENPTkYuc2ggdG8gVEVTVENPTkYuc2guaW4KICAgICBhbmQgaGF2ZSB0aGUgTUlCUyBwYXRoIHZhcmlhYmxlIGJ1aWx0IGJ5IGNvbmZpZ3VyZSBzaW5jZSBpdCBrbm93cwogICAgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCiAgIAoyMDAwLTA3LTA2IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBoZWFkZXJfY29tcGxleC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBhc24xLmgsIHNubXBfYXBpLmMpOgogICAgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCiAgICAgLSBtYWtlIHRoZSBjcmVhdGVkIFVTTSBlbnRyaWVzIHNldCB0aGUgc3RvcmFnZVR5cGUgYW5kIFJvd1N0YXR1cwogICAgICAgYXBwcm9wcmlhdGVseS4KICAgCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBiZXR0ZXIgY29tbWVudHMgb24gYSBjb3VwbGUgb2YgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggKEJVRyMyOTApIGdyYWNlZnVsbHkgaGFuZGxlIHNvbWUgUERVcyB0aGF0IGhhdmUgbm8gdmFyaWFibGVzLgogICAKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCiAgICAgLSBtYWtlIGVuZ2luZWlkIHJlcG9ydHMgZnJvbSB0aGUgdXNtIGhhcHBlbiBiYXNlZCBvbiB0aGUgcmVwb3J0IGZsYWcKICAgICAgIGluIHRoZSBtZXNzYWdlIGZsYWcuCiAgICAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCiAgICAgICAgIHNwZWNpZmljYXRpb25zIG5vdGUgdGhhdCB5b3Ugc2VuZCBhIHJlcG9ydCBpZiB5b3UgYXJlCiAgICAgICAgICJhdXRob3JpdGF0aXZlIiwgYnV0IGRvbid0IGRlc2NyaWJlIGhvdyB0byBrbm93IGlmIHlvdSBhcmUKICAgICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCiAgICAgICAgIG5vdGlmaWNhdGlvbiByZWNlaXZlcnMsIHdoZXJlIHlvdSBhcmUgc29tZXRpbWVzIGF1dGhvcml0YXRpdmUKICAgICAgICAgYW5kIG90aGVyIHRpbWVzIHlvdSdyZSBub3QsIHRoaXMgaXMgcHJvYmxlbWF0aWMuICBUaGUgU05NUHYzCiAgICAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKICAgICAgICAgV0cgaGFzIHByb2NsYWltZWQgdGhhdCB0aGUgQVNJcyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgYXMgYW4KICAgICAgICAgQVBJLCBidXQgdGhlIGluaXRpYWwgd29yayBkb25lIGJ5IE5BSSBhbmQgVElTTGFicyBhdHRlbXB0ZWQgdG8KICAgICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQogICAgICAgICBhbmQgaGVuY2Ugd2UgZm9sbG93ZWQgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIgYW5kIHVzZWQKICAgICAgICAgdGhlIEFTSXMgYXMgQVBJcyBqdXN0IHRvIHNlZSBpZiB3ZSBjb3VsZC4gIFdlIGNvdWxkIHByZXZpb3VzbHkKICAgICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCiAgICAgICAgIG5vbi1hdXRob3JpdGF0aXZlLiAgU2luY2UgYmVnaW5uaW5nIHRvIHdvcmsgb24gcHJveHkgYW5kIHRoZQogICAgICAgICBub3RpZmljYXRpb24gbWliLCB0aGlzIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gIEZvciB0aGUgcmVjb3JkLCBJCiAgICAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKICAgICAgICAgbWFubmVyIGFzIGl0IG5vIGxvbmdlciBjb25mb3JtcyBleGFjdGx5IHRvIHRoZSBTTk1QdjMgQVNJcy4gIFNvCiAgICAgICAgIGFzIG5vdCB0byBjb25mdXNlIGFueW9uZSwgdGhpcyBpcyBhbiBlbnRpcmVseSB0aGVvcmV0aWNhbCBpc3N1ZQogICAgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKICAgICAgICAgdG8gZG8uICBUaG91Z2ggSSBjb3VsZCBlYXNpbHkgZ28gb24sIEknbGwgc3RlcCBvZmYgbXkgc29hcCBib3ggbm93LgogICAKMjAwMC0wNy0wMyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmgsIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCiAgICAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgdXNlIGl0LgogICAgIC0gbWFrZSB0aGUgdGFyZ2V0IG1pYiBnZW5lcmF0ZSBtb3JlIHBlcnNpc3RlbnQgc2Vzc2lvbnMuCiAgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgogICAgICAgbGlzdCwgd2hpY2ggaXMgbm93IGNhY2hlZCBkaXJlY3RseSBieSB0aGUgdGFyZ2V0IG1pYi4KICAgCjIwMDAtMDctMDMgMDg6MzggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYwosIHN5c3RlbS5jOgoKICAgZml4IChCVUcjMjYyKSAtIChzb21lKSBzdGF0ZW1lbnRzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQuCiAgIAoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBmaXggKEJVRyMyODcpCiAgIAoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGZpeCBidWcgIyAyODkKICAgCjIwMDAtMDYtMzAgMDQ6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CiAgIAoyMDAwLTA2LTMwIDAwOjQ3ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKICAgCjIwMDAtMDYtMjggMjM6MzcgIG5iYQoKICAgKiBtaWJzLzogSUYtTUlCLnR4dCwgTWFrZWZpbGUubWliOgoKICAgLSBJRi1NSUIudHh0OiB1cGdyYWRlIHRvIFJGQyAyODYzCiAgIAoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQogICAKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGJldHRlciBvcHRpb24gcGFyc2luZy4KICAgCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgogICAKMjAwMC0wNi0yNyAwMDozMyAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIHNubXB0cmFuc2xhdGUuMTogZG9jdW1lbnQgdGhhdCAtdyBpcyBhbHNvIGZvciAtVGQKICAgCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xCiwgc25tcGdldC4xLCBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRlc3QuMSwgc25tcHRyYXAuMQosIHNubXB0cmFwZC44LCBzbm1wd2Fsay4xLCB2YXJpYWJsZXMuNToKCiAgIC0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwogICAKMjAwMC0wNi0yNyAwMDoyOCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBmaXhlcyBhbmQgdXNhZ2UgbWVzc2FnZSBmb3IgLUNoIGFuZCAtQ0gKICAgCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKICAgKiBtaWJzLzogQUdFTlRYLU1JQi50eHQsIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0LAogICBESVNNQU4tU0NSSVBULU1JQi50eHQsIEV0aGVyTGlrZS1NSUIudHh0LAogICBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCBJQU5BLUxBTkdVQUdFLU1JQi50eHQKLCBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQKLCBJUFY2LUlDTVAtTUlCLnR4dCwgSVBWNi1NSUIudHh0LCBJUFY2LVRDLnR4dAosIElQVjYtVENQLU1JQi50eHQsIE1ha2VmaWxlLmluLCBSTU9OLU1JQi50eHQKLCBTTVVYLU1JQi50eHQsIFNOTVAtQ09NTVVOSVRZLU1JQi50eHQsCiAgIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsIFNOTVAtTVBELU1JQi50eHQsCiAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1UQVJHRVQtTUlCLnR4dCwgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgU05NUHYyLUNPTkYudHh0LAogICBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVNNSS50eHQsIFNOTVB2Mi1UQy50eHQsCiAgIFNOTVB2Mi1UTS50eHQsIFRDUC1NSUIudHh0LCBVRFAtTUlCLnR4dDoKCiAgIC0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgogICAKMjAwMC0wNi0yNiAyMzo0MiAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIC0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwogICAJZG9jdW1lbnRzLgogICAKMjAwMC0wNi0yNiAyMzo0MCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBwYXJzZS5jLCBtaWIuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhZGQgcGFyc2luZyBvZiBDSE9JQ0UgYW5kIGNoZWNrcyBmb3IKICAgCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQogICAJY29tcGxldGUgTUlCIGV4dHJhY3RzIGZyb20gUkZDIGRvY3VtZW50cy4KICAgCjIwMDAtMDYtMjYgMjM6MzggIG5iYQoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIE1ha2VmaWxlLnRvcDogbWFrZSBsaWJ0b29sIHNpbGVudCwgc28gd2UgY2FuIHNlZSB0aG9zZSB3YXJuaW5ncwogICAKMjAwMC0wNi0yNiAyMzozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAtIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCiAgIAoyMDAwLTA2LTI2IDIzOjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAogICAJaXMgc2VudC4KICAgCjIwMDAtMDYtMjYgMTE6NTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCAoQlVHIzIzMykKICAgCjIwMDAtMDYtMjMgMDY6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlcGxhY2UgbWFsbG9jL21lbXNldCAwIHdpdGggY2FsbG9jLgogICAKMjAwMC0wNi0yMyAwMTowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpcC5jOgoKICAgLSAobWliSUkva2VybmVsX2xpbnV4LltjaF0sIG1pYklJL2lwLmMpOiBBZGRlZCBzdXBwb3J0IGZvciBpcFJvdXRpbmdEaXNjYXJkcwogICAJKFRoYW5rcyB0byBCcnlhbiBCbGFja21hbikKICAgCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlbW92ZSBleHRyYSBpbmNsdWRlIGVycm9ybWliLmgKICAgCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeCBidWcgIzI3NiAtIGNsb3NlIG1vc3QgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgZXhlYydpbmcgY29tbWFuZC4KICAgCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKOgoKICAgZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KICAgCjIwMDAtMDYtMjIgMTU6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIFVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KICAgCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jKTogVWgsIG9ubHkgaWYgbm90IGRlbGV0ZWQuCiAgIAoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYyk6IGNoYW5nZSBjcmVhdGVBbmRHby9jcmVhdGVBbmRXYWl0IHN0YXRlcyB0byBhY3RpdmUvTklTLgogICAKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICBEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KICAgCjIwMDAtMDYtMjAgMTc6MzAgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgRG9udCBhc3N1bWUgQU5TSSBDLXByZXByb2Nlc3NvciAocmVwbGFjZSAiIyMiIGNvbmNhdGVuYXRpb24gd2l0aCBzcHJpbnRmKS4KICAgCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZGVmLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFdpbjMyIE1TLVZDKysgYnVpbGQgZml4dXBzLgogICAKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgogICAKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCiAgIAoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFVzZSBpbnQgdnMgdWxvbmcgZm9yIGFycmF5IGluZGV4aW5nIHZhcmlhYmxlcyB0byBhdm9pZCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2guCiAgIAoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgogICAKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyICJpbml0bGlzdCIuCiAgIAoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEZWNsYXJlIHN0cm5jYXNlY21wIGluIHN5c3RlbS5oIDsgUmVtb3ZlIHVudXNlZCB2YXIgInN0YXR1cyIuCiAgIAoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFycy4KICAgCjIwMDAtMDYtMjAgMTU6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIERlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgogICAKMjAwMC0wNi0yMCAxNDowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgogICAKMjAwMC0wNi0yMCAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMKLCBzbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCk6CiAgICAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CiAgICAgICAtIHVzZXMgdGhlIFNOTVAtVEFSR0VULU1JQiB0byBnZXQgaXRzIGFkZHJlc3NlcyBmcm9tLgogICAgICAgLSB1c2VzIGhlYWRlcl9jb21wbGV4IHRvIGhhbmRsZSB0aGUgZGF0YS4KICAgICAgIC0gbXVjaCB0b2RvOgogICAgICAgICAtIGR5bmFtaWMgdGFyZ2V0L25vdGlmaWNhdGlvbiBtaWIgdXBkYXRpbmcgd2l0aG91dCBraWxsIC1IVVAgbmVlZGVkLgogICAgICAgICAgIC0gdGhpcyB3aWxsIGJlIGEgcmVhbCBwYWluLgogICAgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KICAgICAgICAgLSB0aGUgcmVzdCBvZiB0aGUgU05NUC1OT1RJRklDQVRJT04tTUlCIHRhYmxlcy4KICAgCjIwMDAtMDYtMjAgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KICAgLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgogICAKMjAwMC0wNi0yMCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKTogZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgogICAgIGJhc2VkIG9uIGVudHJpZXMgaW4gdGhlIFNOTVAtVEFSR0VULU1JQiB0YWJsZS4KICAgCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcmVtb3ZlIE1pY2hhZWwncyBob3JyaWJsZWx5IHdyb25nICJmaXhlcyIuCiAgIAoyMDAwLTA2LTIwIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgogICAKMjAwMC0wNi0yMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgogICAKMjAwMC0wNi0xOSAxMjozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KICAgCjIwMDAtMDYtMTkgMTI6MTUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBwcm90b2NvbC5jOgoKICAgKHByb3RvY29sLmMpIFVzZSBzaXplb2Yob2lkKSwgbm90IDQhCiAgIChjbGllbnQuYykgQWRkIF9hbGxfIG9mIE9JRCB2YWx1ZSBmb3IgYWdlbnR4X3JlZ2lzdGVyIGFuZCBhZ2VudHhfdW5yZWdpc3Rlci4KICAgCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgUmVtb3ZlZCBzaXplb2YodV9jaGFyKSBhbmQgdW5uZWNlc3NhcnkgKHVuc2lnbmVkKSBjYXN0cyB0byBtYWxsb2MgcGFyYW1zLgogICAKMjAwMC0wNi0xOSAwMzowNCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgUHJvdG90eXBlIGZpeHVwLgogICAKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICBzL2NvbmlmZy9jb25maWcvIC4uLi4gSHJycm1tbXBmCiAgIAoyMDAwLTA2LTE5IDAyOjU4ICBuYmEKCiAgICogbWFrZW5vc3lzZGVwZW5kLnBsLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIG1ha2Vub3N5c2RlcGVuZC5wbCBNYWtlZmlsZS5pbjogb2JqZWN0IGZpbGVzIGFyZSBub3cgbmFtZWQgLmxvIC4uLgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCk6IGFkZCB0aGUgU05NUHYyLVRNIG1pYiB0byB0aGUgZGVmYXVsdCBsaXN0LgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCiAgIAoyMDAwLTA2LTE1IDA2OjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZhdCBmaW5nZXJzCiAgIAoyMDAwLTA2LTE1IDA2OjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5QTDoKCiAgIGFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KICAgCjIwMDAtMDYtMTIgMTY6NDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRyYXBzZXNzLgogICAKMjAwMC0wNi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKICAgICAtIG5ldyBzbm1wZC5jb25mIHRva2VuIGZvciB0cmFwIHNlc3Npb25zOiAidHJhcHNlc3MiLgogICAgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncyBzbyBhbnkgdHlwZSBvZiB0cmFwIGNhbiBiZSBzZW50IHdpdGggaXQKICAgICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KICAgICAgIC0gdjMgdHJhcHMgZG9uJ3Qgd29yayBkdWUgdG8gdGhlIHNhbWUgVVNNIHByb2JsZW1zIGZvdW5kIGluIHRoZQogICAgICAgICByZWNlbnQgcHJveHkgc3VibWlzc2lvbnMgKG15IG5leHQgdGFyZ2V0KS4KICAgICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KICAgCjIwMDAtMDYtMTIgMTY6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlLWVuYWJsZSBmcmVlaW5nIG9mIG1hc3RlciByZXF1ZXN0LgogICAKMjAwMC0wNi0xMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNhdmUgZXhlYyBkYXRhIHRvIC92YXIvdWNkLXNubXAuCiAgICAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgogICAKMjAwMC0wNi0xMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSByZW1vdmUgZW5kaW5nIGNvbW1hcyBpbiBlbnVtIGxpc3QuCiAgIAoyMDAwLTA2LTA3IDEzOjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKICAgICAgIGZpbGUgVFlQRSBpZiBhIHNwZWNpYWwgIltUWVBFXSIga2V5d29yZCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICAgICAgLmNvbmYgZmlsZS4gIFNlZSBzbm1wX2NvbmZpZyg1KSBmb3IgYSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCiAgIAoyMDAwLTA2LTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCiAgIAoyMDAwLTA2LTAyIDExOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLAogICBtaWIyYywgdGttaWI6CgogICAtIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKICAgICAtIG1ha2UgKGFuZCBpbnN0YWxsKSBwZXJsIHNjcmlwdHMgZGlmZmVyZW50bHksIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBvcmlnLgogICAKMjAwMC0wNi0wMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KICAgICBlbnN1cmUgd2UgdXBkYXRlIGNvdW50ZXJzIGFuZCBzdHVmZiB0aGF0IG11c3QgY2hhbmdlIChlZywgZW5naW5lQm9vdHMpLgogICAKMjAwMC0wNS0zMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkZXNjcmliZSAtSS4KICAgCjIwMDAtMDUtMzEgMTU6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wZC5jKToKICAgICAtIG5ldyAtSSBzd2l0Y2ggdG8gc25tcGQgdG8gZG8gZHluYW1pYyBkZXRlcm1pbmF0b24gb2Ygd2hpY2ggbWliCiAgICAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KICAgCjIwMDAtMDUtMzEgMTU6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KICAgIC0gd2hpY2ggSSBpbW1lZGlhdGVseSBkZWNpZGVkIHRvIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yIHdoYXQgSQogICAgICBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGl0IGZvciwgc28gaXRzIG5vdCBiZWluZyB1c2VkIHlldC4KICAgCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXAuaDoKCiAgIC0gKG1pYklJL2lwLltjaF0pOiBBbGxvdyBJUCBzdXBwb3J0IHdpdGhvdXQgdGhlIEF0L2lwTmV0VG9NZWRpYSBtb2R1bGUKICAgCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKHByb3h5LmMsIHByb3h5LmgpOiBzaW1wbGUgcHJveHkgc3VwcG9ydC4KICAgICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KICAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzKCkgc28gaXQgdGFrZXMgc3RhbmRhcmQgY29tbWFuZCBsaW5lIGNvbmZpZyBvcHRpb25zLgogICAgIC0gbm8gc2V0IHN1cHBvcnQuCiAgICAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KICAgICAtIG5vIFNOTVB2MyBzdXBwb3J0IChzaWdoKS4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dDoKCiAgIGZpbGUgSUFOQS1MQU5HVUFHRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQ6CgogICBmaWxlIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvQUdFTlRYLU1JQi50eHQ6CgogICBmaWxlIEFHRU5UWC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IHByb2JsZW0gaWRlbnRpZmllZCBieSBWLiBHcmVuZXQ6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL21pYmZldGNoOgoKICAgZmlsZSBtaWJmZXRjaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL3NtaXN0cmlwOgoKICAgZmlsZSBzbWlzdHJpcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpbGUgTWFrZWZpbGUubWliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3N5c09SVGFibGUuYyBtaWJJSS9zeXN0ZW1fbWliLmMpOgogICAgIC0gVXNlIG5ldyB0aW1lIHV0aWxpdHkgcm91dGluZXMgdG8gc2ltcGxpZnkgcHJvY2Vzc2luZwogICAgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCiAgIAoyMDAwLTA1LTI2IDA5OjIzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5bY2hdKTogTmV3IHRpbWUtZGlmZiB1dGlsaXR5IHJvdXRpbmVzCiAgIAoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIChzbm1wZC5jIHNubXBfYWdlbnQuYyBtaWJJSS92YXJfcm91dGUuYyk6IFVzZSAnbWliaW5jbC5oJyBoZWFkZXIKICAgCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXQogICAgICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwogICAKMjAwMC0wNS0yNiAwNzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogU3VwcG9ydCBmb3IgcGVyLXJlcXVlc3QgdGltZW91dCBoYW5kbGluZwogICAKMjAwMC0wNS0yNiAwNzo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IE1pbm9yIGVycm9yIGluIEFnZW50WCBwYWNrZXQgZHVtcAogICAKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgogICAgIC0gZml4ZWQgbGludXggcHJvYmxlbTogd3JvbmcgcGFyYW1zIGdldHRpbmcgcmV0dXJuZWQuCiAgIAoyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggdXNlIG9mIGJpbjJhc2MgdG8gbm90IGFsd2F5cyBzaG93ICJzdHJpbmciOyB1c2Ugc25tcF9vaWRfY29tcGFyZSwgdG9vLgogICBTZWUgYnVnICMyMzQgZm9yIGRldGFpbHMuCiAgIAoyMDAwLTA1LTI1IDAzOjM5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb25zb2xpZGF0ZSBoZWFkZXIgaGFuZGxpbmcuCiAgIAoyMDAwLTA1LTI1IDAzOjMxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb3JyZWN0IGNvbmZ1c2luZyBjb21tZW50CiAgIAoyMDAwLTA1LTI1IDAxOjUzICBkYXZlcwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBSZXBsYWNlIHVzZSBvZiAnY3V0JyB3aXRoIGVxdWl2YWxlbnQgJ3NlZCcgY2FsbHMKICAgCjIwMDAtMDUtMjUgMDE6MzAgIGRhdmVzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluIGFjbG9jYWwubTQgY29uZmlndXJlKToKICAgICAtIERpcmVjdCBjZXJ0YWluIGNoZWNrcyB0byB0aGUgYXBwcm9wcmlhdGUgZmlsZSBkZXNjcmlwdG9yIChzZWUgQlVHIzI0NykKICAgCjIwMDAtMDUtMjIgMTY6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZCBtb3JlIHN0dWZmIHRvIGlnbm9yZS4KICAgCjIwMDAtMDUtMjIgMTY6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMKLCBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrZ2V0LmMsCiAgICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuaCk6CiAgICAgLSBtb3ZlZCBzbm1wX3BhcnNlX2FyZ3MgdG8gdGhlIGxpYnJhcnksIGFzIEkgcHJvbWlzZWQgdG8gZG8gYWdlcyBhZ28uCiAgICAgICAtIG5vIGxvbmdlciBjYWxscyB1c2FnZSgpIGRpcmVjdGx5LCBidXQgcmV0dXJucyAtMSBpZiB5b3Ugc2hvdWxkLgogICAKMjAwMC0wNS0yMiAwNTo0NyAgZGF2ZXMKCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAtIChzbm1wbGliL3Rvb2xzLltjaF0pOiBSb3V0aW5lIGZvciBjb21wYXJpbmcgdHdvIG1hcmtlcnMuCiAgIAoyMDAwLTA1LTIyIDA1OjQyICBkYXZlcwoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKGxvY2FsL21pYjJjKTogR2VuZXJhdGUgbXVsdGlwbGUgdGFibGVzIGluIG9uZSBjb2RlIGZpbGUKICAgCjIwMDAtMDUtMTcgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIHdyaXRhYmxlIHZhY20gbWliIHN1cHBvcnQuCiAgICAgLSBvdGhlciBtaXNjIHZhY20gZml4ZXMuCiAgIAoyMDAwLTA1LTE3IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIERvbid0IHNlZ2ZhdWx0IG9uIGFuIHVua25vd24gY29tbWFuZCwgaW5zdGVhZCBwcmludCBhIHdhcm5pbmcuLgogICAKMjAwMC0wNS0xNyAxMDoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgLSAoc25tcHZhY20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIGFkZGVkIGEgbmV3IGNvbW1hbmQ6IHNubXB2YWNtLgogICAKMjAwMC0wNS0xNyAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBtZW50aW9uIHRoZSBwb3J0IG51bWJlciBvbiB0aGUgdHJhcHNpbmsgaGVscCBsaW5lLgogICAKMjAwMC0wNS0xNyAwOToyMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogdXNlIHN0YW5kYXJkaXplZCBidWZmZXIgc2l6ZXMKICAgCjIwMDAtMDUtMTcgMDk6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBtYW4vc25tcHRyYXBkLjg6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tCiAgICAgSmVmZiBDb3VyczoKICAgICAtIGN1c3RvbWl6ZWQgZm9ybWF0dGluZyBvZiB0cmFwIG91dHB1dC4KICAgCjIwMDAtMDUtMTcgMDk6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZCBKZWZmIGFuZCBBcm5lLgogICAKMjAwMC0wNS0xNyAwODoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogKmNvcnJlY3RseSogYXNzb2NpYXRlIGVzY2FwZVF1b3RlcyB3aXRoIHRoZSByaWdodCBkZWZhdWx0X3N0b3JlIGJvb2wuCiAgIAoyMDAwLTA1LTE3IDA4OjExICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZXNjYXBlUXVvdGVzLgogICAKMjAwMC0wNS0xNyAwODowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wY21kLjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBuZXcgb3B0aW9uIC1PRToKICAgICAtIHNoZWxsIGJhY2tzbGFzaCBlc2NhcGUgcXVvdGF0aW9ucyBtYXJrcyBmb3IgY3V0dGluZyBhbmQgcGFzdGluZwogICAgICAgb250byBhbm90aGVyIHNubXAgY29tbWFuZCBsaW5lLgogICAKMjAwMC0wNS0xNSAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpY21wLmMsIGlwLmMsIGlwLmgsIGljbXAuaCwgdGNwLmMKLCB0Y3AuaCwgdWRwLmMsIHVkcC5oOgoKICAgLSAobWliSUkve2lwLGljbXAsdGNwLHVkcCxrZXJuZWxfbGludXh9LltjaF0pOgogICAgIC0gIFB1bGwgTGludXggTUlCLUlJIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGludG8gYSBzaW5nbGUgcm91dGluZS4KICAgICAtICBDYWNoZSBNSUItSUkgc3RhdGlzdGljcyBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KICAgCjIwMDAtMDUtMTUgMDg6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMKLCB1Y2Qtc25tcC92bXN0YXRfYnNkaTQuaDoKCiAgIC0gKHVjZF9zbm1wLmgsIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIHZtc3RhdCBzdXBwb3J0IGZvciBic2RpNC4KICAgCjIwMDAtMDUtMTUgMDM6MDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlLXJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCiAgIAkoSXQgcmVhcHBlYXJlZCBkdXJpbmcgYSByZWNlbnQgY2hhbmdlKQogICAKMjAwMC0wNS0xNSAwMzowMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWdpc3RyeS5oLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogSW1wbGVtZW50IG1pc3Npbmcgcm91dGluZSAndW5yZWdpc3Rlcl9taWJfY29udGV4dCcKICAgCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnRfaW5kZXguW2NoXSk6IE1vdmUgJ2ZkJyByZWdpc3RyeSBoYW5kbGluZyBiYWNrIHRvIGFnZW50X3JlZ2lzdHJ5CiAgIAogICAtIChhZ2VudHgvY2xpZW50LmMpOiBSZWNvZ25pc2UgbmV3IGNvZGUgZmlsZSBmb3IgaW5kZXggaGFuZGxpbmcKICAgCjIwMDAtMDUtMTIgMTA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFVtLCBkZWZhdWx0IHRvIHBvcnQgMTYxLiAgT3Bwcy4KICAgCjIwMDAtMDUtMTIgMDk6MDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHZhcl9zdHJ1Y3QuaCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gUHJlcGFyYXRpb24gZm9yIHBlci1NSUIgcmVnaW9uIHRpbWVvdXQsIGFuZCBjb250ZXh0IHN1cHBvcnQKICAgCjIwMDAtMDUtMTIgMDg6NDUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFJlY29nbmlzZSBTb2xhcmlzIEFUTSBMQU4gRW11bGF0aW9uIGludGVyZmFjZXMKICAgCVRoYW5rcyB0byBKYXkgWW91bmcKICAgCjIwMDAtMDUtMTIgMDg6MTMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfaW5kZXguaCwgTWFrZWZpbGUuaW4KLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9pbmRleC5bY2hdIGFnZW50X3JlZ2lzdHJ5LltjaF0gTWFrZWZpbGUuaW4gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAtIFNwbGl0IGluZGV4IGhhbmRsaW5nIG91dCBmcm9tIHRoZSBNSUIgcmVnaXN0cnkuCiAgIAoyMDAwLTA1LTEyIDA3OjAyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBZGQgc3VwcG9ydCBmb3IgcmVjb2duaXNpbmcgUXVhZEZhc3RFdGhlciBpbnRlcmZhY2UKICAgCjIwMDAtMDUtMTIgMDY6NTcgIGRhdmVzCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChhcHBzL3NubXB0YWJsZS5jKTogRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nIHNlcGFyYXRvciAod2l0aCAtQ2kgLUNmKQogICAJVGhhbmtzIHRvIFhhdmllciBGT1VSTkVUCiAgIAoyMDAwLTA1LTEyIDA0OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQogICAJSSdtIHN1cmUgdGhpcyB3YXMgcHV0IGluIGZvciBhIHJlYXNvbiwgYnV0IEkgY2FuJ3QgcmVtZW1iZXIgd2hhdC4KICAgCUl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgbm93LCBhbmQganVzdCBsZWFrcyBtZW1vcnkuCiAgIAlIZXJlJ3MgaG9waW5nLi4uLi4KICAgCjIwMDAtMDUtMTIgMDM6MTEgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogQ2F0Y2ggKGFuZCBpZ25vcmUpIFNJR1BJUEUgc2lnbmFscy4KICAgCURpc2FwcGVhcmluZyBzdWJhZ2VudHMgdGhlcmVmb3IgYXBwZWFyIGFzIG5vcm1hbCBJL08gZmFpbHVyZXMKICAgCjIwMDAtMDUtMTIgMDI6MjQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOgogICAgIC0gSW1wbGVtZW50IG9wYXF1ZS1lbmNvZGVkIGZsb2F0ICYgZG91YmxlIHR5cGVzCiAgICAgLSBCcmluZyBwYWNrZXQgZHVtcCBpbiBsaW5lIHdpdGggdGhlIG1haW4gbGlicmFyeSBzdHlsZQogICAgIC0gQWRkIHBhY2tldCBkdW1wIGNhcGFiaWxpdHkgZm9yIG91dGdvaW5nIFBEVXMKICAgCjIwMDAtMDUtMTAgMTY6NTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLXAuCiAgIAoyMDAwLTA1LTEwIDE2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBhbHdheXMgdXNlIHRoZSBkZWZhdWx0IHRyYW5zcG9ydCBtYXBwaW5nLCBub3QgdGhlIGxhc3Qgb25lLgogICAKMjAwMC0wNS0xMCAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbXBsZW1lbnQgbXVsdGlwbGUgdHJhbnNwb3J0CiAgICAgbWFwcGluZ3MgdmlhIC1wIFt0cmFuc3BvcnQ6XXBvcnRbQGFkZHJlc3NdLgogICAKMjAwMC0wNS0xMCAxMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBmaXggdWRwc3RhdCAtLT4gdGNwc3RhdAogICAKMjAwMC0wNS0xMCAwNzo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gSGFuZGxlIHN1YmFnZW50IGRpc2FwcGVhcmluZyB3aXRob3V0IHdhcm5pbmcKICAgCjIwMDAtMDUtMTAgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgLSBQcm92aWRlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSBhc3luY2hyb25vdXMgc2VuZCBmYWlsdXJlcy4KICAgCjIwMDAtMDUtMTAgMDY6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBMb2dpY2FsIE5PVD8gQml0d2lzZSBOT1Q/IFdobydsbCBub3RpY2UgdGhlIGRpZmZlcmVuY2UgYW55d2F5IQogICAKMjAwMC0wNS0xMCAwNTozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEhhbmRsZSBub24tcmVzcG9uc2l2ZSBzdWJhZ2VudHMKICAgCjIwMDAtMDUtMTAgMDU6MzMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgbWliSUkvc3lzT1JUYWJsZS5jKTogRG9uJ3QgYXNzdW1lIHN1YnNlc3Npb24gbGluayBpcyB2YWxpZAogICAKMjAwMC0wNS0xMCAwNToyOSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IERlZmluaXRpb25zIGZvciBzZXNzaW9uIGNsb3NlZG93biBoYW5kbGluZwogICAKMjAwMC0wNS0wOSAxNDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBhbHNvIGNsZWFuIFdpbjMyIGJpbmFyeSBvYmplY3RzLCBhbmQgY29yZSBmaWxlcy4KICAgCjIwMDAtMDUtMDkgMTQ6MzQgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICB0b3VjaCB1cCB0aGUgImNsZWFuIiBydWxlLgogICAKMjAwMC0wNS0wOSAxMTozMiAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICB1bnRpbCBEYXZlJ3MgdmVyc2lvbiB3aW5zLCBuZWVkIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gYnVpbGQgV2luMzIgYWdlbnQuCiAgIAoyMDAwLTA1LTA5IDExOjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNvbWUgV2luMzIgYnVpbGRzIChzaWduYWxzPyB3ZSBkb24ndCBuZWVkIG5vIHN0ZWVua2luZyBzaWduYWxzISkKICAgCjIwMDAtMDUtMDkgMTE6MzAgIG1zbGlmY2FrCgogICAqIGx0bWFpbi5zaDoKCiAgIFJlbW92ZSB0cmFpbGluZyBDUiBbMHgwZF0gZnJvbSBvbmUgbGluZS4KICAgCjIwMDAtMDUtMDkgMDg6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKICAgICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgogICAKMjAwMC0wNS0wOSAwODo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgo6CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKICAgICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgogICAKMjAwMC0wNS0wOSAwNzo0MyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IFNlbmQgb3V0IHJlLWRlbGVnYXRlZCByZXF1ZXN0cwogICAJKGFuZCBmaXggYSBwcm9ibGVtIHdpdGggc3BlY2lmeWluZyB0aGUgZW5kLW9mLXJhbmdlIHZhbHVlKQogICAKMjAwMC0wNS0wOSAwNzo0MCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBlcnJvciByZXNwb25zZSBnZW5lcmF0aW9uCiAgIAkoYnkgYW5hbG9neSB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIHNubXBfYWdlbnQuYykKICAgCjIwMDAtMDUtMDkgMDc6MzQgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IEhhbmRsZSBBZ2VudFggImVuZC1vZi1yYW5nZSIgaW5kaWNhdGlvbi4KICAgCShUaGlzIGlzIG5vdCB0aGUgY2xlYW5lc3Qgd2F5IG9mIGRvaW5nIHRoaW5ncywKICAgCSBidXQgd29ya3MgZm9yIG5vdy4gIFdlIGNhbiB0aWR5IHVwIGxhdGVyKS4KICAgCjIwMDAtMDUtMDkgMDc6MTYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBVc2UgTUlCIHJlZ2lzdHJ5ICdzdGFydCcgdmFsdWVzCiAgIAkocmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIG5hbWUgcmVnaXN0ZXJlZCkKICAgCVRoaXMgaGFuZGxlcyBzdWJzZXF1ZW50IHBhcnQgb2YgJ3NwbGl0JyByYW5nZXMgcHJvcGVybHkuCiAgIAoyMDAwLTA1LTA4IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogSSBjYW4ndCBiZWxpZXZlIHRoZSBsYXN0IGNoZWNraW4gZXZlbiBjb21waWxlZCAobHVjaykuCiAgIAoyMDAwLTA1LTA4IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IGxpYnJhcnkgbGlzdC4KICAgCjIwMDAtMDUtMDUgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBkaXNrIGlvIHN1cHBvcnQgZm9yIEJTRC9PUy4KICAgCjIwMDAtMDUtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMS0xLXBhdGNoZXMuMSksIGF0LmM6CgogICAtIChhdC5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gZml4IGEgemVybyBieXRlIG1hbGxvYyBidWcgKG1vc3RseSBub3RpY2VkIHdpdGggLWxlZmVuY2UpLgogICAKMjAwMC0wNS0wNSAwOTo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlIChWNC0xLTEtcGF0Y2hlcy41KSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CiAgICAgLSAtLXdpdGgtbGlid3JhcCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA1LTA1IDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBzdWJhZ2VudC5jLCBtYXN0ZXJfcmVxdWVzdC5jCjoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKToKICAgICAtIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBBZ2VudFggcHJvY2Vzc2luZwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDUgMDg6NTggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdIHNubXBsaWIvc25tcF9jbGllbnQuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0pOgogICAgIC0gTWlub3IgY2hhbmdlcyB0byBhc3Npc3Qgd2l0aCBBZ2VudFggZGV2ZWxvcG1lbnQKICAgCShUaGVzZSBtYXkgbm90IGJlIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBnZXQgdGhpbmdzIHdvcmtpbmcgYWdhaW4hKQogICAKMjAwMC0wNS0wNCAxNjoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1pbm9yIHVuaW1wb3J0YW50IC0td2l0aG91dC1vcGVuc3NsIGZpeC4KICAgCjIwMDAtMDUtMDQgMTY6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKICAgICAtIGFsbG93IC0td2l0aG91dC1vcGVuc3NsIHRvIHdvcmsuCiAgIAoyMDAwLTA1LTA0IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4gKFY0LTEtMS1wYXRjaGVzLjIpLCBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHRoZSBESVNNQU4tU0NSSVBULU1JQi50eHQKICAgCjIwMDAtMDUtMDQgMTY6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKICAgICAtIGluc3RhbGwgVUNELURJU0tJTy1NSUIudHh0LgogICAKMjAwMC0wNS0wNCAwODoyNiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50Lmg6CgogICAtIChzbm1wbGliL3NubXBfY2xpZW50LltjaF0pOiBOZXcgcm91dGluZSAnc25tcF9jbG9uZV92YXJiaW5kKCknCiAgIAkJKEZyb20gYSBzdWdnZXN0aW9uIGJ5IFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwODoyNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVmFyaW91cyBtaW5vciBmaXhlcwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDE6MjkgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LltjaF0pOiBIYW5kbGUgaW5kZXgvc3RhdHVzIGluZm9ybWF0aW9uIHNlcGFyYXRlbHkgZnJvbSBQRFUuCiAgIAlBbHNvIG1lYW5zIHRoYXQgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgYWNjZXNzIHRvIHZhcmlhYmxlIGluZGV4ZXMKICAgCQkoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGZyb20gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDAxOjAwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtICh1Y2Qtc25tcC9wcm9jLmMpOiBJbml0aWFsaXplIG5ld2x5IG1hbGxvY2VkIHN0cnVjdHVyZQogICAJKFRoYW5rcyB0byBKZWZmIFdpbHNvbiAtIHNlZSBCVUcgIzIzMSkKICAgCjIwMDAtMDUtMDMgMDk6MDYgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gQ2xvbmUgUERVIHdpdGhpbiBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgICAgIE5ldyByb3V0aW5lICdmcmVlX2FnZW50X3NubXBfc2Vzc2lvbicKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTAzIDA4OjE3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBXaGVuIHJldHVybmluZyBhbiBlcnJvciByZXNwb25zZSwKICAgCXVzZSBhIGNsZWFuIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgUERVLgogICAKMjAwMC0wNS0wMyAwODoxNCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSk6IFJvdXRpbmUgdG8gaGFuZGxlIHZhcmlhYmxlcyBpbmRpdmlkdWFsbHkKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTAzIDA0OjM3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBDaGVjayBhY2Nlc3NpYmlsaXR5IG9mIGV4YWN0IHJlcXVlc3RzIGJlZm9yZSBwcm9jZXNzaW5nCiAgIAkoYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2dlbmVyaWMnIFNFVCBoYW5kbGluZykKICAgCjIwMDAtMDUtMDEgMTE6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IHByaW50aW5nIG9mIEJJVFMgdmFyaWFibGVzCiAgIAoyMDAwLTA1LTAxIDA2OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgIGFwcGxpZWQgcGF0Y2ggZnJvbSBTdGV2ZSBQaGVyYW4gU25vZGdyYXNzIHRvIGZpeCBpbmNvbXBhdGliaWxpdHkgd2l0aCBwZXJsNS42IHJlZiBzdHJpbmdpZmljYXRpb24KICAgCjIwMDAtMDQtMjkgMDc6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnRfcmVnaXN0cnkuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIHVzZSBzaWdhY3Rpb24gd2hlbiBhdmFpbGFibGUuCiAgIAoyMDAwLTA0LTI4IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IHNpZ25hbCBoYW5kbGluZy4KICAgCjIwMDAtMDQtMjcgMTQ6NTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcGRmLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGRmLmMpOiBpbXBsZW1lbnQgYSByZW1vdGUgZGYgY29tbWFuZCB2aWEgc25tcAogICAgIC0gKG5lZWRzIHRoZSBob3N0IHJlc291cmNlcyBtaWIgd29ya2luZyBvbiB0aGUgcmVtb3RlIHN5c3RlbSkuCiAgIAoyMDAwLTA0LTI3IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcnBtIGlzIG5vdwogICAgIHJlcXVpcmluZyB5ZXQgYW5vdGhlciBsaWJyYXJ5OiBsaWJwb3B0LgogICAKMjAwMC0wNC0yNiAxNToyMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogcnVuIGxpYnRvb2wgLS1maW5pc2ggd2l0aG91dCAtbiAoZ28gYWhlYWQgYW5kIGRvIHRoZSBjbWRzKQogICAKMjAwMC0wNC0yNiAxNToxOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6CiAgICAgLSBtb3JlIGxpYnRvb2wgZml4ZXMgKC5zbyB2ZXJzaW9uaW5nLCBwcm9wZXJseSBpbnN0YWxsLi4uKQogICAKMjAwMC0wNC0yNiAxNDoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBtaWJzL01ha2VmaWxlLmluLCBzbm1wbGliLy5jdnNpZ25vcmUsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CiAgICAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCiAgICAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQogICAKMjAwMC0wNC0yNiAxNDoxNSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwKICAgYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGx0Y29uZmlnLCBsdG1haW4uc2gsIGFnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUKLCBhZ2VudC9taWJncm91cC9kdW1teS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0Ly5jdnNpZ25vcmU6CgogICAtICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CiAgICAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCiAgICAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQogICAKMjAwMC0wNC0yNiAwODoxMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbmV3IHNlY29uZGFyeSBzbG9nYW4uCiAgIAoyMDAwLTA0LTI2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogQXR0ZW1wdCB0byBwYXJzZSB0aGUgUERVIHdoZW4gYSByZXBvcnQgaXMKICAgICBiZWluZyBzZW50IHNvIHRoYXQgdGhlIHJlcXVlc3RpZCBjYW4gYmUgdXNlZCBpbiB0aGUgb3V0Z29pbmcgcmVwb3J0LgogICAgIFRoaXMgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgU05NUCBSZXNlYXJjaCdzIEVtYW50ZSBhZ2VudCBpcwogICAgIGRvaW5nIGVuZ2luZUlEIGRpc2NvdmVyeSBwcm9iZXMgYmFzZWQgb24gdGhlIHJlcXVlc3RfaWQgKHdoaWNoIGlzIGEKICAgICBmYWlybHkgcG9vciBjaG9pY2UgYXMgdGhlIG1lc3NhZ2VfaWQgd291bGQgYmUgYSBiZXR0ZXIgb25lIHRvIG1hdGNoCiAgICAgb24gaW4gZ2VuZXJhbCBhbmQgaXMgdGhlIG9ubHkgcG9zc2libGUgdGhpbmcgdG8gdXNlIGluIGNhc2VzIHdoZXJlCiAgICAgdGhlIHJlcG9ydCBpcyBlbmNyeXB0ZWQpLgogICAKMjAwMC0wNC0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiB0aGF0IHRoZSBwZXJsIG1vZHVsZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBzb3VyY2UuCiAgIAoyMDAwLTA0LTI1IDA4OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogbWlzYyAtRGR1bXAgZml4ZXMuCiAgIAoyMDAwLTA0LTI1IDA4OjAyICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRhYmxlLmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogY2hlY2sgZm9yIGVuZCBvZiBtaWIgdmlldyBleGNlcHRpb25zICh2MmMsIHYzKS4KICAgCjIwMDAtMDQtMjQgMTE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiAtRCBzdXBwb3J0IGZvciB0aG9zZSAib2xkZXIiIHByb3RvY29scyB0aGF0IHNob3VsZG4ndAogICAgIGJlIHVzZWQgYW55bW9yZSAodjEsIHYyYykuCiAgIAoyMDAwLTA0LTI0IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLAogICBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMKLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYzoKCiAgIC0gKGFzbjEuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAtIHRpbWVzdGFtcHMgY2FuIGJlIHByaW50ZWQgYXMgYSBudW1lcmljIG51bWJlciBvbmx5ICgtT3QpLgogICAgIC0gbW9yZSBjb25maWd1cmFibGUgcGFja2V0IGR1bXBpbmcgY29kZSBmb3IgYm90aCBzZW5kIGFuZCByZWNlaXZlLgogICAgICAgLSB1c2VzIG5ldyAtRCB0b2tlbnM6IGR1bXBoIChoZWFkZXJzKSwgZHVtcHggKGhleCksIGR1bXB2CiAgICAgICAgICh2YWx1ZXMpLiAgZHVtcHhfIGFuZCBkdW1wdl8gKG5vdGUgdGhlIF9zKSBtYWtlIGl0IGVhdCBzcGFjZQogICAgICAgICAoYW5kIG5ld2xpbmUpIGJlZm9yZSB0aGUgc2VnbWVudCBpbiBxdWVzdGlvbi4gIFRyeSAtRGR1bXAgdGhlbgogICAgICAgICAtRGR1bXBoLGR1bXB2XyB0byBzZWUgZXhhbXBsZXMuCiAgICAgICAtIHRvZG86CiAgICAgICAgIC0gYmV0dGVyIGhvcml6b250YWxseSBmb3JtYXRlZCBpbmZvcm1hdGlvbiAocHJvYmFibHkgdXNpbmcgIiVOVU1zIikuCiAgICAgICAgIC0gVVNNIGlzIGNhbGxlZCBhZnRlciBwZHUgYnVpbGRpbmcgKG1ha2VzIHNlbnNlIGJ1dCBpcyBiYWNrd2FyZHMKICAgICAgICAgICB2aXN1YWxseSBpbiB0aGUgZHVtcGVkIHBhY2tldCkuCiAgICAgICAgIC0gb3B0aW9uIHRvIHN0cmlwIGRhdGF0eXBlIHRva2VuIChpZSBJbnRlZ2VyOikuCiAgIAoyMDAwLTA0LTI0IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUwICkKICAgCjIwMDAtMDQtMjQgMDk6MTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4KLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEVYVC40LjIucHJlMCApCiAgIAoyMDAwLTA0LTIxIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHdhbGsuYyAoVjQtMS0xLXBhdGNoZXMuMSksIHNubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogZml4IEdFVCBjYWxsIGZvciBhbiBzbm1wd2Fsay4gKHdhcyB1c2luZyBhIEdFVE5FWFQgUERVLCBhY2spLgogICAKMjAwMC0wNC0yMSAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogbW9yZSB1X2xvbmcgLT4gc2l6ZV90IGZvciBlbmdpbmVJRCBsZW4uCiAgIAoyMDAwLTA0LTIxIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMgKFY0LTEtMS1wYXRjaGVzLjUpLCBtaWIuYzoKCiAgIC0gKG1pYi5jKTogZml4IGZwcmludF9kZXNjcmlwdGlvbiB0byBjaGVjayBmb3IgbnVsbCBzdWJ0cmVlcy4KICAgCjIwMDAtMDQtMjEgMDg6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiB1c2Ugc2l6ZV90IGZvciBlbmdpbmVpZCBsZW5ndGhzLgogICAKMjAwMC0wNC0xOSAxMTowMiAgbWFyegoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGNoYW5nZWQgbW9kZV90IHR5cGVkZWYgdG8gYWdyZWUgd2l0aCB3aGF0IEFjdGl2ZVN0YXRlIHBlcmwgdXNlcyAoYW55b25lIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhpcz8pCiAgIAoyMDAwLTA0LTE5IDEwOjU5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkZWQgTWFyYyBMZWhtYW4gcGF0Y2ggdG8gZW5zdXJlIGFsbG9jL2RlYWxsb2MgdXNlIHNhbWUgbWVjaGFuaXNtIChwZXJsIHZzLiBzeXN0ZW0gZGVmYXVsdCkKICAgCjIwMDAtMDQtMTkgMDg6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgYWx3YXlzIGJsb2NrIGlmIGNhbGxlciByZXF1ZXN0ZWQgaXQuCiAgIAoyMDAwLTA0LTE5IDA0OjM0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgbW92ZSBzdGF0aWMgZGVjbCB0byAuYzttaW5vciBjYXN0aW5nIGFib3V0IHRvIHN1cHBvcnQgYUNDCiAgIAoyMDAwLTA0LTE4IDExOjExICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgU3luY2ggZGV2ZWwgYnJhbmNoIHdpdGggcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAwLTA0LTE4IDExOjA3ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiAgIChWNC0xLTEtcGF0Y2hlcy5bMywzLDMsMiwzLDJdKSwgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgRGVmaW5lIG9wdGFyZyBmb3IgYXBwcyB1c2U7IERlZmluZSB2YWNtX2lzX2NvbmZpZ3VyZWQgZm9yIGFnZW50IHVzZS4KICAgCjIwMDAtMDQtMTggMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKHZtc3RhdC5jLCB2bXN0YXQuaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWl6dWtpIEhvbmRhOgogICAgIC0gaW1wbGVtZW50IHJhdyBjcHUgdXNhZ2UgbnVtYmVycy4KICAgCjIwMDAtMDQtMTggMDM6MTggIGRhdmVzCgogICAqIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYyAoVjQtMS0xLXBhdGNoZXMuWzEsM10pLAogICBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChtYW4vc25tcHRhYmxlLjEgYXBwcy9zbm1wdGFibGUuYyk6CiAgICAgLSBDb21tYW5kLXNwZWNpZmljICctQycgb3B0aW9ucyBmb3Igc25tcHRhYmxlCiAgIAoyMDAwLTA0LTE4IDAyOjAxICBkYXZlcwoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogSGFuZGxlIHByZXZpb3VzIGZvcm0gb2YgLVogb3B0aW9uIGFzIHdlbGwKICAgCjIwMDAtMDQtMTcgMTU6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZpeCAtWiBpZiBhcmdzIGFyZSB3cm9uZy4KICAgCjIwMDAtMDQtMTcgMTU6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogZml4IC1aIHRvIHVzZSBhICcsJy4KICAgCjIwMDAtMDQtMTcgMTU6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oCjoKCiAgIC0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IFBhdGNoIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CiAgICAgLSB1cGRhdGUgb24gdGhlIHNlbmRtYWlsIG1vZHVsZS4KICAgCjIwMDAtMDQtMTcgMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLCB2bXN0YXQuYwo6CgogICAtICh2bXN0YXQuYyk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gZml4IHNzQ3B1U3lzdGVtLCBzc0NwdVVzZXIsIHNzQ3B1SWRsZS4KICAgCjIwMDAtMDQtMTcgMTQ6MTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4pOiBwcm9wZXJseSB1c2UgTE5fUyBmb3IgbGlua2luZyBzbm1waW5mb3JtLgogICAKMjAwMC0wNC0xNyAxMzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOiBlbmdpbmVJRCBjaGFuZ2VzIGZvciBiZXR0ZXIgYUNDIHN1cHBvcnQuCiAgIAoyMDAwLTA0LTE3IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIHNubXBpbmZvcm0uCiAgIAoyMDAwLTA0LTE3IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBmaXggcm93IGNyZWF0aW9uLgogICAKMjAwMC0wNC0xNyAwNzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwogICAoVjQtMS0xLXBhdGNoZXMuWzIsMywyXSksIGF1dG9fbmxpc3QuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYXV0b19ubGlzdC5jIHNubXBkLmMgYWdlbnR4L21hc3Rlci5jKTogRG9uJ3QgZXhpdCBvbiBmYWlsdXJlIHdpdGggJy1yJwogICAKMjAwMC0wNC0xNCAxNTowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGdldC4xLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcGNtZC4xLCBzbm1wZ2V0LjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOgogICAgIC0gbW92ZSAtSWYgdG8gLUNmIGFuZCBpbnZlcnQgYmVoYXZpb3VyLgogICAKMjAwMC0wNC0xNCAxNTowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IChvcHBzKS4KICAgCjIwMDAtMDQtMTQgMDk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdmVyc2lvbmluZm8uYyAoVjQtMS0xLXBhdGNoZXMuMiksCiAgIHZlcnNpb25pbmZvLmM6CgogICAtICh2ZXJzaW9pbmZvLmMpOiBhbHJpZ2h0LiAgV2hvIG1hZGUgdmVyc2lvbkNsZWFyQ2FjaGUgUk9OTFk/CiAgIAoyMDAwLTA0LTEzIDA1OjQ5ICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBkZWN1bWVudCB0aGUgLXcgd2lkdGggb3B0aW9uCiAgIAoyMDAwLTA0LTEyIDEyOjA1ICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0IChWNC0xLTEtcGF0Y2hlcy4xKSwgYnVnLXJlcG9ydDoKCiAgIGhpZGUgdXNlcidzIGhvc3RuYW1lOyBwcm9tcHQgYmVmb3JlIHNlbmRpbmcgZS1tYWlsOyBwcm9tcHQgdG8gc2F2ZSBhcyBmaWxlLgogICAKMjAwMC0wNC0xMiAxMToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jIChWNC0xLTEtcGF0Y2hlcy4zKSwgbWliLmM6CgogICBmaXggJWYoJXMpCiAgIAoyMDAwLTA0LTEyIDA5OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSWYuCiAgIAoyMDAwLTA0LTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwdXQgKysgYmFjayBpbiB0aGF0IGFjY2lkZW50aWNhbGx5IGdvdCBjaGVja2VkIGluLgogICAKMjAwMC0wNC0xMiAwOToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChzbm1wc2V0LmMpOiBwdXQgc3BhY2UgYmFjayBpbiB1c2FnZSBsaW5lLgogICAKMjAwMC0wNC0xMiAwOToxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CiAgICAgLSBBZGQgYSBuZXcgb3B0aW9uIC1JZiB0byBzcGVjaWZ5IGZpeGluZyBvZiBQRFVzLgogICAgICAgLSBBbnlvbmUga25vdyBhIGJldHRlciBwbGFjZSB0byBwdXQgdGhpcyBvcHRpb24/CiAgICAgLSBBcHBsaWNhdGlvbnMgZG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IGFueW1vcmUsIGFuZCB5b3UgY2FuJ3QgaW4gc25tcHNldC4KICAgCjIwMDAtMDQtMTIgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbS5jLCB2YWNtLmgpOiBmaXggdG8gYWxsb3cgbm8gdjEvdjJjIHJlcXVlc3RzIHdoZW4KICAgICBjb25maWd1cmVkIGZvciBqdXN0IHYzLgogICAKMjAwMC0wNC0xMiAwNjo0OSAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiAgIChWNC0xLTEtcGF0Y2hlcy5bMSwxXSksIHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgZml4IE1TVkMgYnVpbGQgZm9yIGVuY29kZV9rZXljaGFuZ2UsIGFuZCBhZGQgbW9yZSBzeW1ib2xzIGZvciByZWxlYXNlIGJ1aWxkcwogICAKMjAwMC0wNC0xMiAwNTozMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogY29ycmVjdCBwYXJzaW5nIG9mIHN1Yi10eXBlcyB0ZXh0dWFsIGNvbnZlbnRpb25zLiBBbGxvdyBwYXJzaW5nCiAgIAlvZiBNQUNSTyBpbnZvY2F0aW9ucyBmb3Igc3RhbmRhcmQgc3ltYm9scwogICAKMjAwMC0wNC0xMiAwNTozMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gcGFyc2UuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHdpdGggZm9yIC1UcAogICAKMjAwMC0wNC0xMiAwNTozMCAgbmJhCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQKOgoKICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQ6IGFsaWduIHdpdGggcHVibGlzaGVkCiAgIAlSRkMgMjc5MAogICAKMjAwMC0wNC0xMSAxNTozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1ha2UgY29uZmlnX2FkZF9taWIoKSBhY3R1YWxseSBsb29rIGZvcgogICAgIHRoZSBtaWIgaW4gJHNyY2Rpci9taWJzL2JsYWggYW5kIGluc3RhbGwgaXQgaWYgZm91bmQuCiAgIAoyMDAwLTA0LTExIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogbWFrZSBtYWNhZGRyIGVuZ2luZWlkIHNldHVwIG5vdCBsaW51eAogICAgIHNwZWNpZmljLCBidXQgI2RlZmluZXMgYXJlIGNoZWNrZWQgaW5zdGVhZC4KICAgCjIwMDAtMDQtMTEgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChzbm1wX2xvZ2dpbmcuaCk6IHJlbW92ZSBvbGQgY2FsbGJhY2sgdHlwZWRlZiBubyBsb25nZXIgbmVlZGVkLgogICAKMjAwMC0wNC0xMSAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gZW5hYmxlIGVuZ2luZUlEIHRvIGJlIHNldCBmcm9tIE1BQ0FkZHIuCiAgIAoyMDAwLTA0LTExIDA5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaAo6CgogICAtIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBOZXcgbW9kdWxlIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CiAgICAgLSBpbXBsZW1lbnRzIHRoZSBNVEEtTUlCIGZvciBtb25pdG9yaW5nIHNlbmRtYWlsLgogICAKMjAwMC0wNC0xMSAwOTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQ6CgogICAtIChNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0KTogbmV3IG1pYnMgZm9yIG5ldyBtb2R1bGVzLgogICAKMjAwMC0wNC0xMSAwMzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogU2F2ZS9yZXN0b3JlIG9yaWdpbmFsIHN0YXRQIHZhbHVlIGZvciBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTA0LTExIDAyOjM1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJlcG9ydCBmYWlsdXJlcyBmcm9tIEFDVElPTiBwaGFzZSBvZiBTRVQgY29ycmVjdGx5LgogICAKMjAwMC0wNC0xMSAwMTo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMyksCiAgIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IER5bmFtaWNhbGx5IHJlc2l6ZSBzdWJhZ2VudCByZXF1ZXN0cwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDQtMTAgMDU6MDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYwogICAoVjQtMS0xLXBhdGNoZXMuWzAsMl0pLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IG11bHRpLXN1YmFnZW50IHJlcXVlc3RzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNC0wNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBzbm1wbGliL3NubXB1c20uYyAoVjQtMS0xLXBhdGNoZXMuWzIsMl0pLAogICBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHRyYXAuYywgc25tcHVzbS5jKToKICAgICAtIGZpeCBzbm1wdjMgdHJhcHMgdG8gYmUgYXV0aG9yaXRhdGl2ZSBmcm9tIHRoZSBjbGllbnQgc2lkZSwgbm90IHRoZQogICAgICAgcmVjZWl2ZXIgc2lkZS4gIHNubXB2MyBpbmZvcm1zIHN0YXkgYXMgaXMuICBVbmZvcnR1bmF0ZWx5LCBmb3IKICAgICAgIGNvbW1hbmQgbGluZSBhcHBzIHRoaXMgZG9lc24ndCBtYWtlIGEgd2hvbGUgbG90IG9mIHNlbnNlIGJ1dCBpcwogICAgICAgcmlnaHQgaW4gdGVybXMgb2YgaG93IHRoZSBwcm90b2NvbCB3b3JrcyBhbmQgdGhpcyBpcyBoZW5jZQogICAgICAgc29tZXdoYXQgb2YgYSBoYWNrLgogICAKMjAwMC0wNC0wNyAwNzo1MCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjkpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBIYW5kbGUgdjIgZXhjZXB0aW9uIHR5cGVzIGluIHYxIHF1ZXJpZXMKICAgCjIwMDAtMDQtMDcgMDc6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYwogICAoVjQtMS0xLXBhdGNoZXMuWzQsMiwzXSksIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wdjMuYyk6CiAgICAgLSBhbGxvdyBOVUxMIGhlbHAgbGluZXMgZm9yIGNvbmZpZyBkaXJlY3RpdmVzIGFuZCB1c2UgaXQgdG8gaGlkZQogICAgICAgaW50ZXJuYWwgZGlyZWN0aXZlcyB1c2VkIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgIAoyMDAwLTA0LTA2IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gdHVybiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYWNyb3MgYmFjayBpbnRvIGZ1bmN0aW9ucyBzbwogICAgICAgZGVmYXVsdF9zdG9yZS5oIGRlcGVuZGVuY2llcyBnbyBhd2F5IGFnYWluLgogICAgIC0gY3JlYXRlIGEgZmxhZyB0byBub3QgcHJvYmUgZm9yIGVuZ2luZUlEcyBkdXJuaW5nIHNlc3Nfb3BlbigpLgogICAKMjAwMC0wNC0wNiAwNzoyMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRml4IG1pc2hhbmRsZWQgQ291bnRlcjY0IHBhcnNpbmcKICAgCjIwMDAtMDQtMDYgMDM6MzYgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogRml4IHVzYWdlIG1lc3NhZ2UgYWxpZ25tZW50LgogICAKMjAwMC0wNC0wNiAwMzozMSAgZGF2ZXMKCiAgICogbWFuLzogc25tcGQuMS5kZWYgKFY0LTEtMS1wYXRjaGVzLjEpLCBzbm1wZC4xLmRlZjoKCiAgIC0gKG1hbi9zbm1wZC4xLmRlZik6IERvY3VtZW50IHRoZSBBZ2VudFggc29ja2V0IGNvbW1hbmQtbGluZSBvcHRpb24KICAgCjIwMDAtMDQtMDUgMDg6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgLSAoRkFRMkhUTUwpOiBpdCdzIGJlZW4gc2l0dGluZyBpbiBteSBwZXJzb25hbCBzcmMgdHJlZSBmb3IgPiAyIHllYXJzLgogICAKMjAwMC0wNC0wNSAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIC0gKG1pYmluY2wuaCwgdXNtVXNlci5jLCBzbm1wdHJhcGQuYywgbGNkX3RpbWUuYywgc2NhcGkuYywgc25tcF9hcGkuYywKICAgICBzbm1wdXNtLmMsIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gbWFrZSBzbm1wdHJhcGQgaGFuZGxlIHYzIHVzZXJzIHByb3Blcmx5LCAoYW5kIHNodXRkb3duIHByb3Blcmx5IGFzIHdlbGwpLgogICAgIC0gYSBtb3JlIGdlbmVyaWMgdXNlciBzdG9yYWdlIHJvdXRpbmUgYWRkZWQgdG8gc25tcHVzbS5jIGFuZCB1c2VkIGluCiAgICAgICB1c21Vc2VyLmMgd2l0aCBhIHNpZGUgZWZmZWN0IG9mIG5lZWRpbmcgY2FsbGJhY2suaCBhYm92ZSBzbm1wdXNtLmguCiAgIAoyMDAwLTA0LTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIC0gKHJzbm1wKTogLT4gL3Vzci9iaW4vcGVybAogICAKMjAwMC0wNC0wNSAwODoyNCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBtaXNjIG1pbm9yIGFkZGl0aW9ucyB0byAvCiAgIAoyMDAwLTA0LTA0IDExOjAzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuOCksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSB1bmltcGxlbWVudGVkIG9iamVjdHMgcmV0dXJuICdub1N1Y2hPYmplY3QnCiAgIAoyMDAwLTA0LTAzIDE0OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbml0aWFsaXplIHN0YXRQLgogICAKMjAwMC0wNC0wMyAwOToxMiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjcpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgYSB2MSBTRVQgcmV0dXJucyBhIHYxIGVycm9yIHN0YXR1cy4KICAgCjIwMDAtMDQtMDMgMDg6MzIgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFllYXIgd2FzICIxMDAiIGZvciAyMDAwIChub3RpY2VkIGJ5IEpheSBSaWRkZWxsKToKICAgCjIwMDAtMDQtMDMgMDc6NTMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy42KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIFNFVHMgZmFpbCBpZiBvbmUgdmFyYmluZCBkb2VzLgogICAKMjAwMC0wMy0zMSAwNzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggdG8gcmVwb3J0ICdub1N1Y2hPYmplY3QnIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcwogICAKMjAwMC0wMy0zMSAwNzoxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRG9uJ3QgcmVwZWF0IHRoZSBmaXJzdCBmb3VyIGJ5dGVzIGluIGEgUERVIGR1bXAKICAgCjIwMDAtMDMtMzEgMDc6MDQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfbG9nZ2luZy5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9sb2dnaW5nLmMpOiBIYW5kbGUgbG9nZ2luZyBlbXB0eSBzdHJpbmdzIChlLmcuIGEgbnVsbCBpbmRlbnQpCiAgIAoyMDAwLTAzLTMwIDAwOjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNSksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEluaXRpYWxpc2UgdGltZW91dCBzdHJ1Y3R1cmUgcHJvcGVybHkKICAgCShUaGFua3MgdG8gYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMy0yNyAxMDozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9zd3J1bi5jCjoKCiAgIHJlbW92ZSB0cmFpbGluZyBuZXdsaW5lIGZyb20gaHJTV1J1bk5hbWUgdmFsdWVzLgogICAKMjAwMC0wMy0yNCAwOTowOSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBpbmZvcm0uMToKCiAgIHRvIHN5bmMgd2l0aCBwYXRjaGVzIGJyYW5jaC4KICAgCjIwMDAtMDMtMjQgMDU6MDcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdGx5IGZyZWUgdGhlIHJlcG9uc2UgaWYgc2VuZGluZyBpdCBmYWlscwogICAKMjAwMC0wMy0yNCAwNDoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgeHhfc3luY2hfcmVzcG9uc2U6IGF2b2lkIGZyZWVpbmcgUERVIHR3aWNlLgogICAKMjAwMC0wMy0yMyAyMzoyOSAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwLjEKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXBjbWQuMSwgc25tcHRyYXAuMSwgc25tcHRyYXAuYywgTWFrZWZpbGUuaW46IEluc3RhbGwgYW5kIGRvY3VtZW50CiAgIAlzbm1waW5mb3JtLgogICAKMjAwMC0wMy0yMyAwOTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5xdWV1ZSBvbmx5IGNvbXBsZXRlIHJlcXVlc3RfbGlzdCBlbnRyeTsgUmVkdWNlIHNjb3Bpbmcgb2YgY2FsbGJhY2sgdmFycy4KICAgCjIwMDAtMDMtMjMgMDM6MDIgIG5iYQoKICAgKiBtYW4vc25tcGluZm9ybS4xOgoKICAgZmlsZSBzbm1waW5mb3JtLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTAzLTIyIDA4OjEzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBwcmludGYgPwogICAKMjAwMC0wMy0yMSAxMToxMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtb2RpZnkgRi4gU3RyYXVzcycgcGF0Y2ggcGVyIE4uIEJhZ2dlc2VuJ3Mgc3VnZ2VzdGlvbjogcmVtb3ZlIGV4cG9ydC1keW5hbWljLgogICAKMjAwMC0wMy0yMSAwOToxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBtb3JlIHNtb290aCBzYWlsaW5nIHdpdGggV2luMzIgLkRMTCAuIERMTEVYUE9SVCwgYW55b25lID8KICAgCjIwMDAtMDMtMjEgMDk6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIHdpbjMyIGJ1aWxkIGNoZWNrOiBubyBzaWdhY3Rpb24sIFNJR0NMRCBkZWZpbmVkLgogICAKMjAwMC0wMy0yMSAwODo0NyAgZGF2ZXMKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoZHNfYWdlbnQuaCBzbm1wZC5jIG1pYmdyb3VwL2FnZW50eC97bWFzdGVyLHN1YmFnZW50fS5jKToKICAgICAtICBDb21tYW5kLWxpbmUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIEFnZW50WCBwb3J0CiAgICAgICAgKGJhc2VkIG9uIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcykKICAgCjIwMDAtMDMtMjEgMDg6MzggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBTdXBwb3J0ICdob3N0OnBvcnQnIHJlcHJlc2VudGF0aW9uIG9mIHBlZXJuYW1lcwogICAKMjAwMC0wMy0yMSAwNDowNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBNaXNzaW5nIG5ldy1saW5lIG9uIGRlYnVnIG91dHB1dAogICAKMjAwMC0wMy0yMSAwMjo1MiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3AuYywgdGNwLmgsIHRjcFRhYmxlLmMKLCB0Y3BUYWJsZS5oLCB1ZHAuYywgaWNtcC5jLCB1ZHAuaCwKICAgdWRwVGFibGUuYywgdWRwVGFibGUuaCwgaWNtcC5oLCBpcC5jLAogICBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS97dGNwLHVkcCxpcCxpY21wfSopIENvbnRpbnVpbmcgbWliSUkgY29kZSBjbGVhbnVwCiAgIAoyMDAwLTAzLTIwIDExOjE0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ29tbWVudCAtQyAtLSBkbyBub3QgdXNlIHRoaXMgZmxhZy4KICAgCjIwMDAtMDMtMTcgMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogc2l6ZW9mKHgpKihsZW4rMSkgbm90IHNpemVvZih4KSpsZW4rMQogICAKMjAwMC0wMy0xNiAwMDoxMCAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgLSBjb25maWd1cmUsIGhyX3ByaW50LmM6IGRldGVjdCBzeXN0ZW0gcHJpbnRlcnMgKFN5c1YvbHBzdGF0LCAqQlNEL2NnZXRuZXh0LAogICAJTGludXgvcHJpbnRjYXApCiAgIAoyMDAwLTAzLTE1IDE4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgU2Vjb25kIHBhcnQ6IGFsbCBtZW1iZXJzIG9mIHN0cnVjdCBzbm1wX2luZGV4IGFyZSBwb2ludGVycy4KICAgCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGaXggbWVtb3J5IGxlYWsgd2l0aCB1bnJlZ2lzdGVyX2luZGV4LgogICAKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggbWVtb3J5IGxlYWsgd2hlbiBjbGVhbmluZyB1cCB0cmFwIHZhcmlhYmxlcy4KICAgCjIwMDAtMDMtMTUgMDg6NDggIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogSW5pdGlhbGlzZSB2YXJiaW5kIGRhdGEgaG9vayBlbHNld2hlcmUgYXMgd2VsbC4KICAgCjIwMDAtMDMtMTUgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLAogICBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaW5maW5pdGUgbG9vcCBwcm9ibGVtIHdoZW4gd2Fsa2luZyBzdWJhZ2VudC4KICAgCjIwMDAtMDMtMTUgMDY6MDkgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEF2b2lkIGNhbGxpbmcgcmVhZCByb3V0aW5lIGZvciBlYWNoIFNFVCBoYW5kbGluZyBwYXNzLgogICAJTi5COiAgVGhpcyBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBBZ2VudFggc3ViYWdlbnRzIHlldAogICAKMjAwMC0wMy0xNSAwNjowNyAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBQcm92aWRlIGhvb2sgZm9yIGludGVybmFsIHZhcmJpbmQtcmVsYXRlZCBkYXRhCiAgIAoyMDAwLTAzLTE1IDA1OjIyICBkYXZlcwoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudC92YXJfc3RydWN0LmgpOiBVc2UgYSBzaW5nbGUgbWFnaWMgbnVtYmVyIGZvciBNSUIgcmVnaXN0cnkgbmFtZSBsZW5ndGhzLgogICAKMjAwMC0wMy0xNSAwMTo1MSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHN5c3RlbS5oIChWNC0xLTEtcGF0Y2hlcy4xKSwgc3lzdGVtLmg6CgogICAtIChzbm1wbGliL3N5c3RlbS5oKTogRG9uJ3QgZGVjbGFyZSBnZXR0aW1lb2ZkYXkoKSBpZiB0aGUgc3lzdGVtIHByb3ZpZGVzIGl0LgogICAJKEZpeCBwcm92aWRlZCBieSBSb24gTWV2aXNzZW4pCiAgIAoyMDAwLTAzLTE0IDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMyksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBzdGF0dXMgd2hlbiBjaGVja2luZyBhY2Nlc3MuCiAgIAoyMDAwLTAzLTE0IDA3OjUyICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJldHVybiBhIHJlc3BvbnNlLCBldmVuIGlmIHRoZSByZXF1ZXN0IGZhaWxlZC4KICAgCjIwMDAtMDMtMTMgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gaXBmd2FjYy5oOiBmaXggdGhlIE1JQiBuYW1lCiAgIAoyMDAwLTAzLTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBhdXRvY29uZiBydW4KICAgCjIwMDAtMDMtMTAgMTE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL01ha2VmaWxlLmRsbW9kOgoKICAgLSAoTWFrZWZpbGUuZGxtb2QpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBkbG1vZCBidWlsZCBNYWtlZmlsZSBleGFtcGxlLiAgTmVlZHMgaW5jb3JwZXJhdGlvbiB3aXRoIG1haW4gY29uZmlndXJlLgogICAKMjAwMC0wMy0xMCAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBiZXR0ZXIgc2lnbmFsIGNoZWNrIGZyb20gTWljaGFlbCBTbGlmY2FrCiAgIAoyMDAwLTAzLTEwIDEwOjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiB0eXBvIGZvdW5kIGJ5IE1pY2hhZWwgU2xpZmNhay4KICAgCjIwMDAtMDMtMTAgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoZGxtb2QuYywgZGxtb2QuaCwgc25tcGQuY29uZi41LmRlZiwgVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tCiAgICAgRnJhbmsgU3RyYXVzczoKICAgICAtIFJlaW1wbGVtZW50YXRpb24gb2YgdGhlIGRsbW9kIG1pYiBtb2R1bGU6CiAgICAgICBvIG1pYmdyb3VwL21pc2MvZGxtb2QgKyBkbG1vZHMvZGxtb2RfbWliIC0+IG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kCiAgICAgICBvIGZpeGVkIHJlZ2lzdHJhdGlvbiAodWNkYXZpcy51Y2RFeHBlcmltZW50YWwuMTQgaW5zdGVhZCBvZiB1Y2RhdmlzLjE0KQogICAgICAgbyBhZGRlZCBjb25maWd1cmUgc3R1ZmYgZm9yIEhBVkVfU05QUklOVEYsIHdoaWNoIHdhcyB1c2VkIGJ5IGRsbW9kLmMKICAgICAgIG8gcmVtb3ZlZCBgX2R5bmFtaWNfJyBwcmVmaXhlcyBmcm9tIGluaXQvZGVpbml0IGZ1bmN0aW9ucwogICAgICAgbyBtYWRlIGRsbW9kSW5kZXggbm90LWFjY2Vzc2libGUgKG9ubHkgaW1wbGVtZW50YXRpb24sIG5vdCBkZWZpbml0aW9uKQogICAgICAgbyByZW1vdmVkIHRoZSBhc25fcGFyc2VfWFhYIHN0dWZmCiAgICAgICBvIG1hZGUgZW50cmllcyB3aXRoIHN0YXRlIGBlcnJvcicgYWJsZSB0byBhY2NlcHQgc3RhdGUgYGxvYWQnCiAgICAgICBvIG1hZGUgdGhlIHdvbWJhdCBleGFtcGxlIHVzYWJsZSBhcyBzdGF0aWMgYW5kIGR5bmFtaWMgbW9kdWxlCiAgICAgICBvIGFkZGVkIHNpbXBsZSBjb25maWdfcGFyc2UgZnVuY3Rpb25hbGl0eSB0byB0aGUgd29tYmF0IGV4YW1wbGUKICAgCjIwMDAtMDMtMTAgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gc2lnbmFsIHJlZ2lzdHJ5IHN5c3RlbSBpbXBsZW1lbnRlZCAobmVlZHMgdG8gYmUgcmVkb25lIGFsbG93aW5nCiAgICAgICBtdWx0aXBsZSBjYWxsYmFja3MgYW5kIGhhbmRsZXJzIGZvciBhbGwgc2lnbmFscykuCiAgICAgLSBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yL3NvY2tldCByZWdpc3RyYXRpb24uCiAgICAgICAtIHRoaXMgaXMgbm90IHRoZSB3YXkgaXQgc2hvdWxkIGJlIGRvbmUgKHVzZSBzZXNzaW9ucyBpbnN0ZWFkKS4KICAgCjIwMDAtMDMtMTAgMTA6NDQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGNsZWFuIHVwIHNoYXJlZCBsaWJyYXJ5IHVzYWdlLgogICAKMjAwMC0wMy0xMCAxMDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcmUtYXJyYW5nZWQgc29tZSBzdHVmZi4KICAgCjIwMDAtMDMtMDcgMTE6NTggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBtb3JlIHRvdWNodXBzIHRvIGFsbG93IFVuaXhXYXJlIGJ1aWxkIHRvIGNvbXBsZXRlLgogICAKMjAwMC0wMy0wNyAxMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgpOiBtYWtlIE1BWF9TVUJJRFMgbGFyZ2VyIGFuZCBhIG11bHRpcGxlIG9mIDguCiAgIAoyMDAwLTAzLTA3IDEwOjEzICBtc2xpZmNhawoKICAgKiBGQVEsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSW50cm9kdWNlIC0tZW5hYmxlLW1pbmktYWdlbnQgdG8gY29uZmlndXJlIGFnZW50IChzbm1wdjMsIG5vIG1pYklJIGludGVyZmFjZXMpLgogICAKMjAwMC0wMy0wNyAwOTowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGFzc3VtZSAic25tcGFwcCIgaWYgbm8gYXJnIHBhc3NlZCB0byBpbml0X3NubXB2My4KICAgCjIwMDAtMDMtMDcgMDg6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVtb3ZlIGluaXRfbWliKCkgY2FsbCAtIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgogICAKMjAwMC0wMy0wNyAwODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTGV0IHRoZSBhaXg0IHBhdGNoIHdvcmsuCiAgIAoyMDAwLTAzLTA3IDA3OjA4ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICB0cmltIGZhdCBmcm9tIHJlY2VudCBjaGVjay1pbnMuCiAgIAoyMDAwLTAzLTA2IDIwOjAxICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbjoKCiAgIGNsZWFuZWQgdXAgU0NPIFVuaXhXYXJlIGJ1aWxkLgogICAKMjAwMC0wMy0wNiAxNjo0MCAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5ndWVzcywgY29uZmlnLmguaW4sCiAgIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc3RhcnQgc3VwcG9ydCBmb3IgU0NPIFVuaXhXYXJlIDUgYXMgc3ZyNS4KICAgCjIwMDAtMDMtMDYgMTA6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGRvbid0IGNoZWNrIHJhbmdlcyBpZiBub3QgcmVxdWVzdGVkLgogICAKMjAwMC0wMy0wNiAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYwo6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gZml4IGV4aXQoKWluZyBiZWhhdmlvdXIgaW4gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCiAgIAoyMDAwLTAzLTA2IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIC1uIHByaW50cyBudW1lcmljIElQIGFkZHJzLgogICAKMjAwMC0wMy0wNiAxMDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaAo6CgogICAtIChjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBJZGVhIGZyb20gYXNoaXBtYW5AZXJnZ3JvdXAuY29tOgogICAgIC0gY2FsbGJhY2sgZnVuY3Rpb24gKHVzaW5nIGNhbGxiYWNrLmgpIGFkZGVkIGZvciBleHRlcm5hbCBsb2dnaW5nLgogICAKMjAwMC0wMy0wNSAwNToyNSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCB0byBwcmVzZXJ2ZSB0cmFpbGluZyBtdWx0aSBjb21wb25lbnQgaW5zdGFuY2UgaWQncyBhdCB0aGUgZW5kIG9mCiAgIHN5bWJvbGljIG1pYiBuYW1lcyhlLmcuLCBmb28uNi43KSB3aGVuIGRvaW5nIHRyYW5zbGF0ZU9iai4KICAgCjIwMDAtMDMtMDQgMTE6MzQgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluLCBjb25maWd1cmU6IHN1cHBvcnQgLS13aXRob3V0LW9wZW5zc2wsIGV2ZW4gaWYgT3BlblNTTAogICAJaXMgYXZhaWxhYmxlCiAgIAoyMDAwLTAzLTA0IDExOjMwICBuYmEKCiAgICogYWdlbnQvOiBrZXJuZWwuYywga2VybmVsLmgsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwo6CgogICAtIGFnZW50Lyh2YXJpb3VzKTogZ2xvYmFsaXplIHRoZSBrdm1fdCAqa2QgdmFyaWFibGUKICAgCjIwMDAtMDMtMDQgMTE6MjYgIG5iYQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBtaWJfbW9kdWxlcy5jLCBocl9zdG9yYWdlLmM6IHByZS1wcm9jZXNzb3IgIyBzaG91bGQgYmUgaW4gY29sdW1uIDEKICAgCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldC5jLCBpbmV0Ni5jOgoKICAgLSBpbmV0LmMsIGluZXQ2LmM6IHN1cnZpdmUgLXYgMmMgZXhjZXB0aW9uIHJlcGxpZXMKICAgCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IHJlbW92ZSBhIHN1cGVyZmx1b3VzICYgaW4gZnJvbnQgb2YgYW4gYXJyYXkKICAgCjIwMDAtMDMtMDQgMTE6MTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMKLCB1Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCB1Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jCiwgdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaDoKCiAgIC0gdWNkX3NubXAuaCwge21lbW9yeSx2bXN0YXR9X25ldGJzZDEuW2NoXTogc3VwcG9ydCBmb3IgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogZml4ZXMgZm9yIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMToxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIHZlcnNpb25pbmZvLmM6IGRvbid0IHJldHVybiB0aGUgdHJhaWxpbmcgbmV3bGluZQogICAKMjAwMC0wMy0wNCAxMTowOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHByb2Nlc3Mgc2l6ZSBmb3IgRnJlZUJTRCAzIGFuZCBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MDUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICAtIGFnZW50X3RyYXAuaDogZml4IGEgd3JvbmcgcHJvdG90eXBlCiAgIAoyMDAwLTAzLTA0IDExOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGZpeCBwcm9ibGVtcyBwcmludGluZyB0YWJsZSBuYW1lIGFuZCBoZWFkZXJzIHdoZW4gdXNpbmcKICAgCS1PUyBmb3JtYXQKICAgCjIwMDAtMDMtMDIgMTE6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGZpeCBhZGRyZXNzIGxlbmd0aCBpbmZvIGZvciB0Y3AgY29ubmVjdAogICAKMjAwMC0wMy0wMiAxMTo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gbG9hZGF2ZS5jOiBmaXggZm9yIEFJWCA0CiAgIAoyMDAwLTAzLTAyIDA4OjMwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMsIGlwQWRkci5jLCBpcEFkZHIuaAosIGlwLmg6CgogICAtIChtaWIyL2lwLltjaF0gbWliMi9pcEFkZHIuW2NoXSk6IEZpcnN0IHN0YWIgYXQgdGlkeWluZyB1cCBtaWIyIHN1cHBvcnQuCiAgIAoyMDAwLTAzLTAxIDA4OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIGZpeCBidWcgMTgwIGZvciBjeWd3aW4gYnVpbGQgd2l0aCBfUkVFTlRSQU5UOyBwZXIgYXNoaXBtYW5AZXJnZ3JvdXAuY29tCiAgIAoyMDAwLTAyLTI5IDE0OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJbnZva2Ugc25tcF9zZXNzX3NlbmQgZnJvbSB3aXRoaW4gc25tcF9yZWFkIHRvIGF2b2lkIG11dGV4IGRlYWRsb2Nrcy4KICAgCjIwMDAtMDItMjggMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC86IHNubXBkLmgsIG1pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbm1wZC5oLCBzbXV4LmM6IGRvbid0IGluaXRpYWxpemUgc211eCBtYXN0ZXIgaW4gc3ViIGFnZW50CiAgIAoyMDAwLTAyLTI4IDE0OjE2ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiB1c2UgU1VCX0FHRU5UIHN5bWJvbAogICAKMjAwMC0wMi0yOCAxNDoxMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBzcHJpbnRfYnlfdHlwZSBzaG91bGQgaGFuZGxlIEFTTl9CSVRfU1RSCiAgIAoyMDAwLTAyLTI4IDE0OjEwICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGNvcnJlY3RseSBjYWxsIHRoZSAtSSBvcHRpb25zIGlucHV0IG9wdGlvbnMKICAgCjIwMDAtMDItMjggMTA6NDcgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZml4IGJ1ZyAjMTc2IChBSVggNCAtIHVzZSBrbmxpc3QgaW4gbGlldSBvZiBubGlzdCkKICAgCjIwMDAtMDItMjQgMTc6MTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggdG8gZml4IGJ1ZyBuby4gMTc3LgogICAKMjAwMC0wMi0yNCAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IG5ldyBzbm1wLmNvbmYga2V5d29yZAogICAgIHRvIGZvcmNlIHRoZSBwYXJzZXIgdG8gaWdub3JlIHVua25vd24gdG9rZW5zLgogICAKMjAwMC0wMi0yNCAwMzo1OSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMiAoJ3UnIGFuZCAnYycpIGluIHNubXBzZXQgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAyLTI0IDAzOjU2ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIENPVU5URVIzMiB0byBzbm1wX2FkZF92YXI7IGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMgogICAoJ3UnIGFuZCAnYycpIGluIHNubXB0cmFwIChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMi0yMyAyMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZml4IHNldHRpbmcgb2Ygb2N0ZXQgc3RyaW5ncy4KICAgCjIwMDAtMDItMjMgMDI6MDkgIG5iYQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC0gbXRfc3VwcG9ydC5oOiBhIGJhZCA7IGluIHRoZSBDKysgYnJhY2tldGluZwogICAKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyBpbmRpcmVjdGlvbnMgaW4gc3RyY2FzZWNtcAogICAKMjAwMC0wMi0yMyAwMjowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSB2bXN0YXRfc29sYXJpcy5jOiBtYWtlIHN1cmUgd2UgYWdyZWUgd2l0aCB0aGUgcHJvdG90eXBlIG9mIGdldHBhZ2VzaXplIQogICAKMjAwMC0wMi0yMiAxNTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oOgoKICAgLSBwYXNzX3BlcnNpc3QuaDogZGVjbGFyZSBpbml0X3Bhc3NfcGVyc2lzdAogICAKMjAwMC0wMi0yMSAxNjoxNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmg6CgogICBBcHBseSBSLiBTdG9yeSdzIHBhdGNoIGZvciBta2RpcmhpZXIgYW5kIHN0cm5jYXNlY21wIG9uIHdpbjMyCiAgIAoyMDAwLTAyLTIxIDA3OjM5ICBtc2xpZmNhawoKICAgKiBtYW4vOiByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hbGFybS4zLAogICBzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMQo6CgogICBmaXggYnVnIDE3MSAodGhhbmtzIHRvIExhcnJ5IFBhcm1lbGVlKS4KICAgCjIwMDAtMDItMjEgMDU6NTYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgcmVtb3ZlIGZyZWUgYWZ0ZXIgc25tcF9jbG9zZSAoZG9uJ3QgZnJlZSB0d2ljZSEpCiAgIAoyMDAwLTAyLTIxIDA0OjU4ICBtc2xpZmNhawoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FsYXJtLjMKLCBzbm1wX3Nlc3NfYXBpLjM6CgogICBBZGRlZCBkZXNjcmlwdGlvbiBpbiBTSF9OQU1FIGZvciBzZXZlcmFsIG1hbi1wYWdlcyAoYy9vIHJhZ25hcmspCiAgIAoyMDAwLTAyLTE4IDEyOjE0ICBtc2xpZmNhawoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMKLCBzbm1wX29wZW4uMywgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMwosIHNubXBfc2VuZC4zLCBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLAogICBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsIHNubXBfc2Vzc19pbml0LjMKLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywKICAgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLCBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLAogICBzbm1wX3Nlc3NfdGltZW91dC4zLCBzbm1wX3RpbWVvdXQuMzoKCiAgIHJlZmVyIHRoZSAuc28gbWFjcm8gdG8gbWFuMzsgYWRqdXN0IE1ha2VmaWxlLmluIHRvIHVzZSB0aGUgcmVuYW1lZCBmaWxlLgogICAKMjAwMC0wMi0xNyAwNToxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGluY2x1ZGUgcGFzc19wZXJzaXN0IGluIHRoZSByZXF1aXJlZCBsaXN0LgogICAKMjAwMC0wMi0xNyAwMjowMCAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIC0gKGNvbmZpZ3VyZSogdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMpOgogICAgIC0gUHJvdmlkZSBtaXNzaW5nICdnZXRwYWdlc2l6ZScgcm91dGluZSBmb3IgU29sYXJpcyAyLjQKICAgICAgIChUaGFua3MgdG8gUmFnbmFyIEtq+HJzdGFkKQogICAKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9zbm1wX21pYi5jCiwgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICBpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCiAgIAoyMDAwLTAyLTE2IDE2OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSBhdXRvX25saXN0IG9mIHVudXNlZCAic3dhcGxpc3QiIHN5bWJvbC4KICAgCjIwMDAtMDItMTYgMTU6MTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcGF0Y2ggc3VnZ2VzdGVkIGJ5IFJpY2sgQmVhbWFuIDxiZWFtYW5AbWVkaWFvbmUubmV0PgogICAKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMC0wMi0xNiAxNDo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHZhY20uYywgdmFjbS5oOgoKICAgdGVzdCBsZW5ndGhzIGJlZm9yZSBhbGxvY2F0aW5nIG1lbW9yeTsgdXNlIG5ldyBWQUNNU1RSSU5HTEVOIGNvbnN0YW50LgogICAKMjAwMC0wMi0xNiAwODoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgaW5jbHVkZSB0aW1lLmggb25jZQogICAKMjAwMC0wMi0xNiAwODowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICByZXN0b3JlICNpZiBIQVZFLi4uSU5fUENCX0gKICAgCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgKOgoKICAgLSBjb25maWd1cmUuaW4sIGlwY2guW2NoXTogaW5pdGlhbCBzdGFicyBhdCBMaW51eCBpcHY2IHN1cHBvcnQuIEEgbG90IGlzCiAgIAlsYWNraW5nIGluIHRoZSBrZXJuZWwgc3RhdGlzdGljcyB0aG91Z2guCiAgIAoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCjoKCiAgIC0gKG1hbnkpOiBjb25maWd1cmUgY2hlY2sgZm9yIG5ldGluZXQvaXA2LmgKICAgCjIwMDAtMDItMTUgMjM6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gaHJfZmlsZXN5cy5jOiBNTlRUWVBFIGRlZmluZXMgZm9yIEZyZWVCU0QtMyBhbmQgQlNESS00LCBhbmQgbW92aW5nIHRoZQogICAJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgogICAKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBnaXZlIGEgc2Vuc2libGUgb3V0cHV0IGZvciBhbiBlbXB0eSB0YWJsZS4KICAgCjIwMDAtMDItMTUgMjM6MjIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKICAgCjIwMDAtMDItMTUgMjM6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiByZXR1cm4gbWVtb3J5IHNpemUgaW4gcGFnZXMuCiAgIAoyMDAwLTAyLTE1IDIzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwo6CgogICAtIHVjZF9zbm1wLmgsIG1lbW9yeV9mcmVlYnNkMi5oOiBtYWtlIGl0IHdvcmsgZm9yIEZyZWVCU0QtMyB0b28KICAgCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogb25lIG1vcmUgcGxhY2UgdG8gc2VuZCBhIEFVVEhGQUlMIHRyYXAKICAgCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhZ2VudF9yZWdpc3RyeS5jOiBmaXggYSByZXR1cm4gZm9yIFNOTVB2MS9Db3VudGVyNjQgY2FzZQogICAKMjAwMC0wMi0xNSAwMjoxMiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KICAgCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogL3Vzci9sb2NhbC9iaW4vcGVybCAtPiAvdXNyL2Jpbi9wZXJsCiAgIAoyMDAwLTAyLTExIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIC0gKHJzbm1wKTogcGVybDUgLT4gcGVybAogICAKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX3RyYXBfYXBpLjMKICAgCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCiAgIAoyMDAwLTAyLTExIDE0OjAzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgNC4xLjEKICAgCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgNC4xLjEKICAgCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKICAgCjIwMDAtMDItMTEgMTI6NTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwKOgoKICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIGZvciBUaW1lb3V0IGZvciB2MmMuCiAgIAoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawogICAKMjAwMC0wMi0xMSAxMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGZpeCBmb3Igc2VwZXJhdGUgYnVpbGQgcGF0aAogICAKMjAwMC0wMi0xMSAxMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGNvbXBpbGVyIHdhcm5pbmcgZml4LgogICAKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgIC0gc2VuZCBhdXRoRmFpbHVyZSB0cmFwLgogICAKMjAwMC0wMi0xMSAxMjoyMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNoYW5nZSBwZXJsIHBhdGggdG8gL3Vzci9iaW4uCiAgIAoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgogICAKMjAwMC0wMi0xMCAxMToxNCAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTAyLTEwIDEwOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGV4dGVuc2libGUuYywgcGFzc19wZXJzaXN0LmMKOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogbWlub3IgZml4ZXMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbC4KICAgCjIwMDAtMDItMTAgMTA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgogICAKMjAwMC0wMi0xMCAwODozOSAgbmJhCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMywKICAgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfYWxhcm0uMywgc25tcF9hcGkuMywgc25tcF9jb25maWcuNS5kZWYKLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMywgc25tcGJ1bGtnZXQuMQosIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkLjEuZGVmLAogICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEsCiAgIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0ZXN0LjEsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYXAuMSwgc25tcHRyYXBkLjgsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEsCiAgIHZhcmlhYmxlcy41OgoKICAgLSBtYW4vKjogc2V0IHRoZSBkYXRlcyBvbiB0aGUgcGFnZXMgdG8gcmVmbGVjdCB0aGUgcmV2aXNpb24gZGF0ZQogICAKMjAwMC0wMi0xMCAwODoxMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1kNS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgKOgoKICAgZml4IHZhcmFyZ3MgZGVjbC9kZWZuIG9mIHNubXBfbG9nCiAgIAoyMDAwLTAyLTEwIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KICAgCjIwMDAtMDItMTAgMDc6MTQgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAogICAKMjAwMC0wMi0xMCAwNDo0MSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIC0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CiAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCiAgIAoyMDAwLTAyLTA5IDEzOjUzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVM6CgogICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgLSBza2lwIHNzbCB0ZXN0cyB3ZSBjYW4ndCBwZXJmb3JtLgogICAKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZ2V0IFBBVEhfTUFYIG9uIEZyZWVCU0QuCiAgIAoyMDAwLTAyLTA5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIC0gKFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KICAgCjIwMDAtMDItMDkgMTM6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhOgoKICAgLSAoU3YzY29uZmlnc2hhKTogc2hhIGNvbmZpZyBzdXBwb3J0CiAgIAoyMDAwLTAyLTA5IDEzOjMxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbAosIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWw6CgogICAtIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KICAgCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdG9vbHMuaDoKCiAgIERlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCiAgIAoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMKOgoKICAgLSAoVDAyNHNubXB2M2dldFNIQTEgVDAyNXNubXB2M2dldFNIQURFUyk6IG5ldyB0ZXN0cwogICAKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KICAgCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgICBzbm1wX2FnZW50LmMsIHZhY21fdmFycy5jKToKICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KICAgCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IHBhdGNoIGZyb20gcmVkaGF0IGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQuCiAgIAoyMDAwLTAyLTA5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2UgbW9kZSB0byBhdXRvY29uZi4KICAgCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCiAgIAoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICAtIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgIC0gU29sYXJpcyBwYXRjaGVzLgogICAKMjAwMC0wMi0wOSAxMDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBmaXggcnNubXAubWFkZS4KICAgICAtIHVzZSAkKE1BS0UpLgogICAKMjAwMC0wMi0wOSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBVcGRhdGUgZnJvbSBKb2NoZW4gS21pZXRzY2gKICAgCjIwMDAtMDItMDcgMTE6NDkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawogICAKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCiAgICogYnVnLXJlcG9ydDoKCiAgIFVuZG8gbGFzdCBjaGFuZ2U7IG9uIFN1biwgYWRkaXRpb25hbCBwbGF0Zm9ybSBpbmZvIHdhcyBub3Qgb2J0YWluZWQ7CiAgIHRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KICAgCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQ6CgogICBLZWVwIGN1c3RvbWVyJ3Mgbm9kZW5hbWUgb3V0IG9mIHRoZSBwdWJsaXNoZWQgJ3VuYW1lJyBpbmZvcm1hdGlvbi4KICAgCjIwMDAtMDItMDcgMDc6MjAgIGhhcmRha2VyCgogICAqIFBPUlRJTkc6CgogICAtIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgogICAKMjAwMC0wMi0wNiAwNjoxMSAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCiAgIAoyMDAwLTAyLTA1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KICAgCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCB3cmFwcGVkIGxpbmUgY29udGludWF0aW9uIGluIHVzYWdlIG1lc3NhZ2UuCiAgIAoyMDAwLTAyLTA1IDA2OjU2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBmaXggdmVyc2lvbiAgbnVtYmVyCiAgIAoyMDAwLTAyLTA0IDE4OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC90Lzogc2Vzc2lvbi50LCBzZXQudCwgc3RhcnRhZ2VudC5wbDoKCiAgIHdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwogICAKMjAwMC0wMi0wNCAxODoyMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC86IG5vdGlmeS50LCBzdGFydGFnZW50LnBsOgoKICAgYnJhaW4tbwogICAKMjAwMC0wMi0wNCAxNzo1MiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xICkKICAgCjIwMDAtMDItMDQgMTc6NDkgIGhhcmRha2VyCgogICAqIFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLnNubXB2MywgVE9ETzoKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLnNubXB2MywgVE9ETyk6IGxhc3QgbWludXRlIGRvYyB1cGRhdGVzLgogICAKMjAwMC0wMi0wNCAxNzoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgbG9jYWwgZml4ZXMgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBoYXZlCiAgICAgY29tcGxpYW50IG1ha2VmaWxlIHZhcmlhYmxlcyBsaWtlICQ8LgogICAKMjAwMC0wMi0wNCAxNjo0NyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjEKICAgCjIwMDAtMDItMDQgMTU6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogQlVHLCBoaW50cy9zb2xhcmlzLnBsOgoKICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCiAgIAoyMDAwLTAyLTA0IDE1OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC86IGhpbnRzL3NvbGFyaXMucGwsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50CiwgdC9zZXNzaW9uLnQsIHQvc2V0LnQsIHQvc25tcHRlc3QuY29uZjoKCiAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwogICAKMjAwMC0wMi0wNCAxNTowOSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFNOTVAueHMsCiAgIHQvYXN5bmMudCwgdC9nZXQudCwgdC9nZXRuZXh0LnQsIHQvbWlibG9hZC50CiwgdC9zZXNzaW9uLnQsIHQvc2V0LnQsIHQvc25tcGQuY29uZiwKICAgdC9zbm1wdGVzdC5jb25mOgoKICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCiAgIAoyMDAwLTAyLTA0IDE0OjAxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIChzbm1wdHJhcGQuOCk6IGRvY3VtZW50IC1jIGFuZCAtQy4KICAgCjIwMDAtMDItMDQgMTM6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBpbXBsZW1lbnQgLWMgYW5kIC1DIGZsYWdzIGZvciBKb2UuCiAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KICAgCjIwMDAtMDItMDQgMTM6NTIgIG1hcnoKCiAgICogSU5TVEFMTDoKCiAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAogICAKMjAwMC0wMi0wNCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBkb24ndCByZWFkIHRoZSBvcHQgY29uZmlnIGZpbGUgb3IgY2FsbAogICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KICAgCjIwMDAtMDItMDQgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1ha2UgZGVwZW5kLgogICAKMjAwMC0wMi0wNCAxMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRvbid0IHByaW50IGZhaWxlZCBhY2Nlc3MgZXJyb3JzIChFQUNDRVMpLgogICAKMjAwMC0wMi0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgogICAKMjAwMC0wMi0wNCAxMjowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxvY2FsL01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IGZpbmQsIGxvY2F0ZSwgYW5kIHVzZSBwZXJsIGlmIGZvdW5kLgogICAKMjAwMC0wMi0wNCAwODo1NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZCBkZWZhdWx0cyBmb3IgdjIgdHJhcCBwYXJhbXMKICAgCjIwMDAtMDItMDQgMDY6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAgaGF2ZSBtaWIgbG9hZGluZyBhcGkgcmV0dXJuIHJlc3VsdCBjb2RlcwogICAKMjAwMC0wMi0wNCAwNDowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IHJlYWxseSBkbyB0aGF0IEZyZUJTRCBzY3NpIHRoaW5nCiAgIAoyMDAwLTAyLTA0IDAxOjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBzbGlnaHQgcmV3b3JkaW5nIG9mIHdhcm5pbmcgbWVzc2FnZQogICAKMjAwMC0wMi0wNCAwMDoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IEEgbGl0dGxlIGNsZWFudXAgb2YgdGhlIGRpc2sgZGV2aWNlIGRlZmluaXRpb25zLCBhbHNvIGFkZGluZwogICAJU0NTSSB0byBGcmVlQlNEIDMKICAgCjIwMDAtMDItMDQgMDA6MTYgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudDogdG8KICAgCUVOVl9TRVBBUkFUT1J7X0NIQVJ9CiAgIAoyMDAwLTAyLTAzIDIzOjU5ICBuYmEKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICAtIG10X3N1cHBvcnQuaDogYW5vdGhlciB3YXkgb2YgZG9pbmcgbm90aGluZywgbm90IGdpdmluZyBhICJudWxsIGVmZmVjdCIKICAgCXdhcm5pbmcgZnJvbSBnY2MuCiAgIAoyMDAwLTAyLTAzIDIzOjU3ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gYWdlbnQvcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLCBjbGllbnQuYzogY2hhbmdlIHNvbWUgdHlwZSBjYXN0cyBmcm9tCiAgIAkoY2hhciAqKSB0byAodV9jaGFyICopIHRvcCBzaWxlbmNlIHNvbWUgd2FybmluZ3MuCiAgIAoyMDAwLTAyLTAzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChSRUFETUUpOiByZW1vdmUgZHVtbXkgcmVmZXJlbmNlLgogICAKMjAwMC0wMi0wMyAxNDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCiAgIAoyMDAwLTAyLTAzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmguCiAgIAoyMDAwLTAyLTAzIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS86IEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LAogICBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oOgoKICAgLSAoZHVtbXkvKik6IHJlbW92ZWQsIHVzZSBleGFtcGxlIGluc3RlYWQuCiAgIAoyMDAwLTAyLTAzIDEzOjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRm9sbG93IGNvbmRpdGlvbiBIQVZFX0dFVFBJRCBmb3IgcGlkX2ZpbGUgb2JqZWN0LgogICAKMjAwMC0wMi0wMyAxMjo1OCAgbXNsaWZjYWsKCiAgICogUkVBRE1FLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICBOb3RlIHRoZSB3b21iYXQgaXMgcmVwbGFjZWQgYnkgZXhhbXBsZSBpbiBtb3JlIHBsYWNlcy4KICAgCjIwMDAtMDItMDMgMTI6NTcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcAo6CgogICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQgYWJvdXQgb2Jzb2xldGUgdjJwYXJ0eS4KICAgCjIwMDAtMDItMDMgMTA6NDggIG1hcnoKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZCAtdSBQSURGSUxFIHRvIHNubXB0cmFwZCwgbm93IHdlIG5lZWQgLWMgLUM6KSwgYnR3IGlzIHRoZSB2YWx1ZSBvZiBvcHRhcmcgcmVsaWFibGUgYWZ0ZXIgZ2V0b3B0IGhhcyBiZWVuIGNhbGxlZCBhZ2Fpbi4uLml0IHNlZW1zIHRvIHdvcmsKICAgCjIwMDAtMDItMDMgMDk6NTYgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsIHdpbjMyL2NvbmZpZy5oCjoKCiAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KICAgCjIwMDAtMDItMDMgMDk6NDQgIG1hcnoKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsCiAgIAoyMDAwLTAyLTAzIDA2OjQzICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCiAgIAoyMDAwLTAyLTAzIDA0OjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2U6IGxvYWQgYXZlcmFnZSAhPSBhdmVyYWdlIHRpbWUgdGhhdCBDUFUgaXMgaWRsZS4KICAgCjIwMDAtMDItMDMgMDE6MzUgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCiAgIAoyMDAwLTAyLTAyIDE2OjM2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgVG91Y2h1cCB0byBidWlsZCBtb3JlIE1JQiBtb2R1bGVzIG9uIFdpbjMyLgogICAKMjAwMC0wMi0wMiAxNjoyMyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBUb3VjaHVwIGZvciBidWlsZGluZyBtb3JlIE1JQiBtb2R1bGVzIGluIFdpbjMyIChNU1ZDKS4KICAgCjIwMDAtMDItMDIgMTQ6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgTGV0IGhyUHJvY2Vzc29yTG9hZCBvdXQgb2YgdGhlIGdlbmllJ3MgYm90dGxlLgogICAKMjAwMC0wMi0wMiAxNDoxNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FLCBSRUFETUUud2luMzI6CgogICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKICAgCjIwMDAtMDItMDIgMTM6NDIgIG1hcnoKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYWRkIGluc3RydWN0aW9ucyBmb3IgYnVpbGRpbmcgdy8gT3BlblNTTCBvbiBWQysrCiAgIAoyMDAwLTAyLTAyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gUm9iZXJ0IE1pbGVzOgogICAgIC0gdmFyaW91cyBmaXhlczoKICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgMikgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyBuZXZlciByZWNlaXZlZCBhIHJlc3BvbnNlLgogICAgICAgMykgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyB3ZXJlIG5vdCBmaW5kaW5nIHRoZSByZWdpc3RyYXRpb24gd2hlbiB0aGUKICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICA0KSBOb24temVybyB2YWx1ZXMgd2VyZSBub3QgYmVpbmcgZW5jb2RlZCBwcm9wZXJseSBpbiByZWdpc3RyYXRpb24KICAgICAgICAgIHJlc3BvbnNlcy4KICAgCjIwMDAtMDItMDIgMDg6NTIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgZml4IHRoZSBmYXQtZmluZ2VyaW5nIHBhdGNoIEkganVzdCBtYWRlLiBmZWguCiAgIAoyMDAwLTAyLTAyIDA4OjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCiAgIAoyMDAwLTAyLTAyIDA4OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCiAgIAoyMDAwLTAyLTAyIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAKICAgCjIwMDAtMDItMDIgMDY6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBhZGQgTmV0QlNEIHN1cHBvcnQKICAgCjIwMDAtMDItMDIgMDQ6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCiAgIAoyMDAwLTAyLTAyIDAxOjEyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gKGhvc3QvaHJfZGlzay5jKTogRml4IHNvbGFyaXMgaW5pdGlhbGlzYXRpb24sIHBsdXMgZXh0cmEgZGVidWdnaW5nIGluZm8uCiAgIAoyMDAwLTAyLTAxIDExOjI2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jLCBzbm1wdjMuYzoKCiAgIEZpeHVwIG1vcmUgc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMC0wMi0wMSAwODo0NiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IGNoYW5nZWQgY29udGV4dCBzdHJpbmcgaW4gZXhhbXBsZXMgdG8gIiIuCiAgIAoyMDAwLTAyLTAxIDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgogICAKMjAwMC0wMi0wMSAwODo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KICAgCjIwMDAtMDItMDEgMDg6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4xNS4KICAgCjIwMDAtMDItMDEgMDg6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oOgoKICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCiAgIAoyMDAwLTAyLTAxIDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZlc3RpbnRlcm5ldHQvZGlza2lvLmMsCiAgIHZlc3RpbnRlcm5ldHQvZGlza2lvLmgsIHVjZC1zbm1wL2Rpc2tpby5jLAogICB1Y2Qtc25tcC9kaXNraW8uaDoKCiAgIC0gKGRpc2tpby4qKTogbW92ZWQgdG8gdGhlIHVjZC1zbm1wIGRpcmVjdG9yeQogICAKMjAwMC0wMi0wMSAwNToyNyAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgogICAKMjAwMC0wMi0wMSAwNDoxOSAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2F0Y2ggY29tbW9uIGludmFsaWQgY29uZmlndXJlIG9wdGlvbnMuCiAgIAoyMDAwLTAyLTAxIDAzOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IHNlc3Npb24gSUQgaGFuZGxpbmcgd2hlbiBkZWxlZ2F0aW5nIHJlcXVlc3RzLgogICAKMjAwMC0wMi0wMSAwMTo0OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAtIEZpeCBicm9rZW4gc2V0dGluZyBvZiBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgY2hvaWNlLgogICAKMjAwMC0wMS0zMSAxMDo0MSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBEU19MSUJfRE9OVF9CUkVBS0RPV05fT0lEUyB0byBnZXQgcHJldmlvdWxzeSByZWxlYXNlZCBiZWhhdmlvdXIgb2YgZ2V0X3N5bWJvbCB3cnQgb2N0ZXQgYmFzZWQgaW5zdGFuY2UgaWRzIChpLmUuLCBubyBkb3VibGUtcXVvdGluZykKICAgCjIwMDAtMDEtMzEgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLltjaF0pOgogICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCiAgIAoyMDAwLTAxLTMxIDA3OjU2ICBkYXZlcwoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAtIChhcHBzL3NubXB0ZXN0LmMpOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgCjIwMDAtMDEtMzEgMDc6NTUgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgLSBOLkI6IFRoaXMgY2hhbmdlcyB0aGUgaW50ZXJmYWNlIG9mIHNubXB2M19nZW5lcmF0ZV9lbmdpbmVJRCgpIHNsaWdodGx5LgogICAKMjAwMC0wMS0zMSAwNzo1MyAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICBzbm1wdXNtLmM6CgogICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgIC0gRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgIAoyMDAwLTAxLTMxIDA3OjUxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMjAwMC0wMS0zMSAwNzo0OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIEltcHJvdmVkIGNoZWNraW5nIGZvciBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjIwMDAtMDEtMzEgMDM6NDEgIGRhdmVzCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IFJldmlzZWQgYW5kIHVwZGF0ZWQgdmVyc2lvbi4KICAgCjIwMDAtMDEtMzEgMDM6MTQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEluaXRpYWxpemUgYWRkcmxlbiBpbiBfc2Vzc19yZWFkKCkuICAoRnJhbmsgU3RyYXVzcykKICAgCjIwMDAtMDEtMzEgMDM6MDMgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBBdHRlbXB0IHRvIGRldGVjdCBub24tdHJhZGl0aW9uYWwgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIChvbiBJcml4IDYueCkuCiAgIAoyMDAwLTAxLTMxIDAzOjAwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBJcml4IHNvY2tldCBoYW5kbGluZy4KICAgCjIwMDAtMDEtMzEgMDI6NDAgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCiAgIAoyMDAwLTAxLTMxIDAxOjQ1ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgIAlzbm1wVHJhcEVudGVycHJpc2UgT0lEIGRlZmluaXRpb25zLiAgKFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuKQogICAKMjAwMC0wMS0zMSAwMTowNSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgogICAKMjAwMC0wMS0zMCAxMDo1NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFJFQURNRToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgogICAKMjAwMC0wMS0zMCAxMDo0NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgogICAKMjAwMC0wMS0zMCAxMDo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgCiAgIE5vdGU6IEtOT1dOIEJVR1MKICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAKICAgbm90IHN1cmUgdGhhdCB0aGlzIGV2ZXIgd29ya2VkIC0gd2lsbCBoYXZlIHRvIGxvb2sgYXQgb2xkIE9DVEVUU1RSCiAgIGJlaGF2aW91ciBhbmQgc2VlIGhvdyB0byByZWNyZWF0ZSBpdAogICAKMjAwMC0wMS0zMCAxMDo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAKICAgTm90ZTogS05PV04gQlVHUwogICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgIAoyMDAwLTAxLTMwIDA4OjE5ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L3NubXBkLmNvbmY6CgogICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAogICAKMjAwMC0wMS0zMCAwMzoxMSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gaWYuYzogZGVmZW5zaXZlIHRlc3QgZm9yIG1pc3Npbmcgb2JqZWN0cyAoaXQgbWlnaHQgZmFpbCB0byBzaG93CiAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKICAgCjIwMDAtMDEtMzAgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiBjb252ZXJ0IGZyb20gcGFnZXMgdG8gMWsgYmxvY2tzCiAgIAoyMDAwLTAxLTMwIDAzOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogY29udmVydCB0byAxayBibG9ja3MKICAgCjIwMDAtMDEtMzAgMDM6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0Lmg6CgogICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQogICAKMjAwMC0wMS0yOCAxMjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgIGZvciBidWcgIzE0OS4KICAgCjIwMDAtMDEtMjggMTI6MzggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ2hhbmdlIGFnZW50eF97YnVpbGQscGFyc2V9X3Nob3J0IC4gVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW5AaGl0dC5ubC4KICAgCjIwMDAtMDEtMjggMTI6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgRml4IHNwZWxsIExJVFRMRV9FTkRJQU4uIFRoYW5rcyB0byB0YWxtYW5AaGl0dC5ubC4KICAgCjIwMDAtMDEtMjggMDc6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgU29tZSB2YXJpYWJsZSByZW5hbWluZyBmb3IgY29uc2lzdGVuY3ksIGVycm9yIGNoZWNraW5nCiAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgogICAKMjAwMC0wMS0yNyAxNjoxMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgogICAKMjAwMC0wMS0yNyAxNDo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgIDEuIEZpeCBtZW1vcnkgbGVhayB3aGVuIGFub255bW91c2x5IG5hbWVkIG5vZGVzIGFyZSB1c2VkLgogICAgMi4gSGFjayBhcm91bmQgc21pY25nJ3MgIlNNSSAiIHN0YXRlbWVudHMgdG8gcHJldmVudCBvdGhlciBtZW1vcnkgbGVha3MuCiAgIAoyMDAwLTAxLTI3IDExOjE0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG5vLW9wIHNubXBfc3luY2hfc2V0dXAKICAgCjIwMDAtMDEtMjcgMDg6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jKTogbWFrZSBjb25maWcgcGFyc2VyIGhhbmRsZSAiIiAobnVsbCkgcGFyc2VkIHN0cmluZ3MuCiAgIAoyMDAwLTAxLTI2IDE5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLWNoYW1lbGVvbi4KICAgCjIwMDAtMDEtMjYgMTc6MzIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhbGxvdyAnLCcgc2VwZXJhdGVkIC0td2l0aC0qLW1vZHVsZXMgZmxhZyB2YWx1ZXMuCiAgIAoyMDAwLTAxLTI2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCiAgIAoyMDAwLTAxLTI2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wY21kLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEKOgoKICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgIC0gYmFkbHkgZG9uZSB1cGRhdGVzLgogICAKMjAwMC0wMS0yNiAxNjo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KICAgCjIwMDAtMDEtMjYgMTY6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGZpeCBwcml2IGtleSBsZW5ndGggZXh0cmFwb2xhdGlvbi4gIFNob3VsZCBiZSBkb25lIGRpZmZlcmVudGx5Py4KICAgCjIwMDAtMDEtMjYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAtIG1ha2UgZGVwZW5kLgogICAKMjAwMC0wMS0yNiAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBhZGQgYWJpbGl0eSB0byBhbGxvdyBzZW5kaW5nIHRyYXBzIHRvIHBvcnRzIG90aGVyIHRoYW4gMTYyLgogICAKMjAwMC0wMS0yNiAxNTozNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwKICAgVUNELURMTU9ELU1JQi50eHQsIFVDRC1JUEZJTFRFUi1NSUIudHh0LAogICBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjb3JyZWN0IHVjZC1zbm1wLWNvZGVycyBlbWFpbCBhZGRyZXNzIHRvIHJlcGxhY2UgImVjZSIgd2l0aCAidWNkLXNubXAiLgogICAKMjAwMC0wMS0yNiAxNTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gY2xlYW4gdXAgYW5kIHJlZm9ybWF0IHN1Yi1yZWdpc3RyYXRpb24gY29tbWVudHMuCiAgIAoyMDAwLTAxLTI2IDE1OjMxICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0OgoKICAgLSAoVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCiAgIAoyMDAwLTAxLTI2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHByZWZpeCBvaWQgd2l0aCAidWNkIi4KICAgCjIwMDAtMDEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwKICAgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dDoKCiAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGZpeCB0aGUgZGlza2lvIG1pYiwgY29udmVydCB0byBTTUl2MiwgYW5kIG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLgogICAKMjAwMC0wMS0yNiAwNzoyNiAgbXNsaWZjYWsKCiAgICogUkVBRE1FOgoKICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCiAgIAoyMDAwLTAxLTI2IDA3OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGNvbXBpbGUgZXJyb3Igd2hlbiAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgaXMgdXNlZCAoc3RyYXVzc0BpYnIuY3MudHUtYnMuZGUpCiAgIAoyMDAwLTAxLTI1IDIxOjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBtaWIuYzpwcmludF90cmVlX25vZGUgLSBzaG93IG1vZHVsZSBuYW1lIG9uY2UgaW4gLS0gRlJPTTsKICAgcGFyc2UuYzogc2hvdyAiQ2Fubm90IGZpbmQgbW9kdWxlIiBvbmNlIHBlciBtaXNzaW5nIG1vZHVsZS4KICAgCjIwMDAtMDEtMjUgMTk6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIExhcmdlciBidWZmZXIgZm9yIHByaW50X21vZHVsZV9uYW1lOyBGaXggcG9zc2libGUgbnVsbCBkZXJlZiBpbiBnZXRfdGMuCiAgIAoyMDAwLTAxLTI1IDE0OjUwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hbGFybS4zLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IHJlZ2lzdHJhdGlvbiBmdW5jdGlvbiB0byBkbyB3aGF0IGl0IHNheXMgaXQgc2hvdWxkIGRvLgogICAKMjAwMC0wMS0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpOiBoZWxwIHVwZGF0ZQogICAKMjAwMC0wMS0yNSAxNDoxMiAgbmJhCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQKLCBNYWtlZmlsZS5pbjoKCiAgIC0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCBNYWtlZmlsZS5pbjoKICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCiAgIAoyMDAwLTAxLTI1IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1ZFU1QtSU5URVJORVRULU1JQi50eHQ6CgogICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgogICAKMjAwMC0wMS0yNSAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC86IGRpc2tpby5jLCBkaXNraW8uaDoKCiAgIC0gKHZlc3RpbnRlcm5ldHQvZGlza2lvLltjaF0pOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCiAgIAoyMDAwLTAxLTI1IDEzOjUyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIHRjX2luZGV4CiAgIAoyMDAwLTAxLTI1IDEyOjA1ICBtYXJ6CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFkZGl0aW9uYWwgd2luMzIgaW5zdGFsbCBub3RlcwogICAKMjAwMC0wMS0yNSAxMTo0NyAgbWFyegoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKICAgCjIwMDAtMDEtMjUgMDY6NDkgIG1hcnoKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAogICAKMjAwMC0wMS0yNCAxMDozNiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjQgMTA6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggcHJpbnRpbmcgSU1QTElFRCBpbmRleCAoZnJvbSBhc3NvY2lhdGUgb2YgSi4gS21pZXRzY2gpIG1vZGlmaWVkIGFuZCBhcHBsaWVkLgogICAKMjAwMC0wMS0yNCAxMDowNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBJdG9qdW4ncyBuZXRic2QgRUxGIHBhdGNoICsgcmVtb3ZlIHdvbWJhdCBbRGF2ZSdzIGV4YW1wbGUgZml4XQogICAKMjAwMC0wMS0yNCAwOTo1NSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0OiBjYXNlIGluc2Vuc2l0aXZlIGNoZWNrIGZvciAiYWxsIiBrZXl3b3JkLgogICAKMjAwMC0wMS0yNCAwOTo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBNYWtlIHN1cmUga3N0YXRfZmQgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQuCiAgIAoyMDAwLTAxLTI0IDA4OjU5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yNCAwNzoyMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwKICAgd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAtIENvbnNvbGlkYXRlZCBleGFtcGxlIG1vZHVsZXMgaW50byBvbmUsIGluY2x1ZGluZyBjb25maWcgYW5kIFNFVCBzdXBwb3J0LgogICAKMjAwMC0wMS0yMyAxNjo0MSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KICAgCjIwMDAtMDEtMjMgMTI6NDMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwogICAKMjAwMC0wMS0yMyAxMjo0MiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IG1lcmdpbmcgb2YgYW5vbnltb3VzIG5vZGVzIHdoZW4gdGhleSBhcmUgbmFtZWQKICAgCjIwMDAtMDEtMjMgMDg6NTEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCiAgIAoyMDAwLTAxLTIxIDExOjE5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgY29uZmlnX2FyY2hfcmVxdWlyZSBzb2xhcmlzMiB2ZXJzaW9uIG9mIHZtc3RhdC4KICAgCjIwMDAtMDEtMjEgMTA6NDcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjEgMTA6MjMgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjEgMDg6MTMgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbmZvcm0KICAgCjIwMDAtMDEtMjEgMDg6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbmZvcm0uCiAgIAoyMDAwLTAxLTIxIDA3OjI3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBhZGRlZCB2MyBpbmZvcm0KICAgCjIwMDAtMDEtMjEgMDE6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pbmltaXplIGRhdGEgaGFuZGxpbmcgYW5kIHVzZSByZWdpc3RlciB2YXJpYWJpZXMgaW4KICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgogICAKMjAwMC0wMS0yMSAwMTo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKOgoKICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KICAgCjIwMDAtMDEtMjEgMDE6NDYgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBSZW1vdmUgcGFydHkgY3J1ZDsgc3BlbGwgY2hlY2suCiAgIAoyMDAwLTAxLTIwIDA0OjI1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCiAgIAoyMDAwLTAxLTE4IDIxOjM3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENvbnNpc3RlbnQgZ2V0cGFnZXNpemUgKGZpcnN0IGRpdmlkZSBieSAxMDI0KS4KICAgCjIwMDAtMDEtMTggMjE6MjggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgMi5BcHBseSBXaW4zMiBwYXRjaCBmcm9tIFIuU3RvcnkgdG8gYWN0aXZhdGUgbWliIHN0YXRzIG1vZHVsZSAoc25tcF9taWIpLgogICAKMjAwMC0wMS0xOCAyMToyNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCiAgIAoyMDAwLTAxLTE4IDIxOjIyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENsZWFudXAgYXJvdW5kIGlwNl92YXJzLmggaW5jbHVkZSAobm8gI2lmIDApCiAgIAoyMDAwLTAxLTE4IDE0OjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIExhdGVzdCB2bXN0YXRfc29sYXJpczIgZnJvbSB0aGUgYXV0aG9yIEpvY2hlbiBLbWlldHNjaC4KICAgCjIwMDAtMDEtMTggMDg6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByZXZlbnQgYXJyYXkgYm91bmRzIGVycm9yIHdoZW4gY3JlYXRpbmcgc3BlY2lmaWMgdHJhcCBvaWQuCiAgIAoyMDAwLTAxLTE4IDA3OjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gdmFscyBmb3IgdHJhcCBmdW5jcywgY2xlYW4gdXAgcGR1CiAgIAoyMDAwLTAxLTE4IDA3OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtb2RpZmllZCBmb3IgdjItdHJhcC4KICAgCjIwMDAtMDEtMTcgMTI6NDcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGFkZGVkIHYyIHRyYXAKICAgCjIwMDAtMDEtMTcgMDk6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgogICAKMjAwMC0wMS0xNyAwNjoxMyAgZGF2ZXMKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KICAgCjIwMDAtMDEtMTQgMTY6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogcmVtb3ZlIGV4cG9ydCBjb250cm9sIG5vdGUgYWJvdXQgREVTLgogICAKMjAwMC0wMS0xNCAxNjowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KICAgCjIwMDAtMDEtMTQgMTE6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogZ3JlcCBmb3IgY29uZmlndXJlIGZsYWdzCiAgIAoyMDAwLTAxLTE0IDA5OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgc211eC9zbm1wX2JncC5jCiwgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX3JpcDIuYzoKCiAgIFNtYWxsIGNvbXBpbGUgZml4IGFuZCBkZWJ1ZyBtZXNzYWdlIHJlc3RvcmF0aW9uLgogICAKMjAwMC0wMS0xMyAwNjozMyAgZGF2ZXMKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcGxpYi9wYXJzZS5jKTogTW9yZSBjb21wbGV0ZSBoYW5kbGluZyBvZiB1bmxvYWRpbmcgTUlCIG1vZHVsZXMuCiAgIAoyMDAwLTAxLTEzIDA2OjMxICBkYXZlcwoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHNubXBsaWIvcGFyc2UuW2NoXSk6IFVubG9hZCBNSUIgbW9kdWxlCiAgIAkoTi5COiBTb21ld2hhdCBzaW1wbGlzdGljIHdpdGggcmVnYXJkIHRvIG11bHRpcGx5LWxvYWRlZCBub2RlcykKICAgCjIwMDAtMDEtMTMgMDU6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgogICAKMjAwMC0wMS0xMyAwMjo0NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IFJlbW92ZSBleHRyYW5lb3VzIGJyYWNrZXQuCiAgIAoyMDAwLTAxLTEyIDIxOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYXBwcy9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oCjoKCiAgIFVzZSBERUJVR01TR09JRCBsaWJlcmFsbHksIHJlcGxhY2luZyBzcHJpbnRfb2JqaWQ7IHNtYWxsIHNwZWVkdXAuCiAgIAoyMDAwLTAxLTEyIDExOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjYXN0IG1hbGxvYyByZXR1cm5zLgogICAKMjAwMC0wMS0xMSAxNTowNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBVc2UgQ0ZMQUdTIHdoZW4gbGlua2luZyAoY291bGQgaGF2ZSBwcm9maWxlIHN3aXRjaCwgZXRjKS4KICAgCjIwMDAtMDEtMTEgMTA6MzcgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvZ2V0LnQ6CgogICByZW1vdmUgYmFkIHNlc3Npb24gdGVzdCAtIHNlc3Npb24udCBoYXMgaXQgYWxyZWFkeSAtIG5vdGUgdGhlIGNhbGwgdG8gZ2V0aG9zdGJ5bmFtZSBjYW4gaGFuZyBmb3Igc29tZSB0aW1lIGlmIEROUyBpcyBub3Qgc2V0dXAgY29ycmVjdGx5IC0gYW55b25lIGtub3cgYSB3YXkgYXJyb3VuZCB0aGlzPwogICAKMjAwMC0wMS0xMSAwOToxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgKOgoKICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCiAgIAoyMDAwLTAxLTExIDA4OjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5pdCBmaWxlIGNvdW50IGF0IHplcm8sIG5vdCBieSBpbmNyZW1lbnRpbmcgcmFuZG9tIHZhbHVlLgogICAKMjAwMC0wMS0xMSAwNzo1OSAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBLZWVwIHdpbjMyIHJlbGVhc2UgYnVpbGQgZnJvbSBicmVha2luZy4KICAgCjIwMDAtMDEtMTEgMDc6NDQgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgQWRkIElOX1VDRF9TTk1QX1NPVVJDRSB0byBub3QgYnJlYWsgV2luMzIgYnVpbGRzLgogICAKMjAwMC0wMS0xMSAwMTo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBHbGVhbiByZWZzIHRvIG1pYklJLm8gZnJvbSB0aGlzIG1ha2VmaWxlLgogICAKMjAwMC0wMS0xMSAwMTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKOgoKICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCiAgIAoyMDAwLTAxLTEwIDE2OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYwo6CgogICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgIHJlYWRfY29uZmlnLmMgLSByZW1vdmUgc2l6ZW9mKHVfY2hhcikgZnJvbSBtYWxsb2Mgc2l6ZSBjYWxjLgogICBzY2FwaS5oICAgICAgIC0gc3BlbGwgY2hlY2suCiAgIAoyMDAwLTAxLTEwIDE2OjMxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgogICAKMjAwMC0wMS0xMCAxNjozMSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIHNubXB0cmFuc2xhdGUuMSAgIC0gcmVtb3ZlIGp1bmsgbGluZS4KICAgCjIwMDAtMDEtMTAgMTY6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHVjZERlbW9QdWJsaWMuYyAtIHJlbW92ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBmcm9tIHdyaXRlIG1ldGhvZC4KICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgIHNubXBkLmMgICAgICAgICAtIHRlcm1pbmF0ZSBzdGF0ZW1lbnQuCiAgIAoyMDAwLTAxLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgLSBjaGVjayBmb3IgLWxuc2wgbW9yZSBleHBsaWNpdGx5LgogICAKMjAwMC0wMS0xMCAxNTozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICAtIChTdjNjb25maWcpOiByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlLgogICAKMjAwMC0wMS0xMCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCiAgIAoyMDAwLTAxLTEwIDE0OjQwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIGFkZCBtaWJsb2FkCiAgIAoyMDAwLTAxLTEwIDE0OjM0ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMTAgMTQ6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogQlVHLCBNQU5JRkVTVCwgTUFOSUZFU1QuU0tJUCwKICAgTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cywgVE9ETwosIHBlcmxzbm1wLmgsIHR5cGVtYXAsIGV4YW1wbGVzL2FzeW5jMS5wbCwKICAgZXhhbXBsZXMvYXN5bmMyLnBsLCBleGFtcGxlcy9pcGZvcndhcmQucGwsCiAgIGV4YW1wbGVzL21pYnRyZWUucGwsIGV4YW1wbGVzL21pYndhbGsucGwsCiAgIGV4YW1wbGVzL3BpbmdtaWIucGwsIGV4YW1wbGVzL3RhYmxld2Fsay5wbCwKICAgZXhhbXBsZXMvdGVzdGxlYWsucGwsIGhpbnRzL2lyaXgucGwsIGhpbnRzL3NvbGFyaXMucGwKLCB0L1JFQURNRSwgdC9hc3luYy50LCB0L2dldC50LCB0L2dldG5leHQudAosIHQvbWliLnQsIHQvbWliLnR4dCwgdC9zZXNzaW9uLnQsIHQvc2V0LnQKLCB0L3NubXBkLmNvbmY6CgogICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKICAgCjIwMDAtMDEtMTAgMTM6MjEgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVhbGlmeSB1c2Ugb2Ygd2l0aHZhbCB0byBkZWZpbmUgbGlicmFyeSBhbmQgaW5jbHVkZSBzZWFyY2ggcGF0aHMuCiAgIAoyMDAwLTAxLTEwIDEzOjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgogICAKMjAwMC0wMS0xMCAwNjoxMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBSZS1zdHJ1Y3R1cmUgZ2V0X3VwdGltZSgpIHRvIGNhY2hlIGJvb3QgdGltZS4KICAgCjIwMDAtMDEtMTAgMDM6MDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKICAgCjIwMDAtMDEtMTAgMDI6MzEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCiAgIAoyMDAwLTAxLTEwIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkuaCk6IFJlLXJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlLgogICAKMjAwMC0wMS0wOCAxMjowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgVXNlIGtubGlzdCBpZmYgYWl4NCBhbmQgSEFWRV9LTkxJU1QgW25vdCBjb21wbGV0ZSB3L28gY29uZmlndXJlIG1vZHNdCiAgIAoyMDAwLTAxLTA4IDExOjQ0ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBidWlsZCBmb3IgTGludXggUmVkSGF0IDYuMSAoY2FudCBsaW5rIGxpYndyYXAgd2l0aG91dCBsaWJuc2wpLgogICAKMjAwMC0wMS0wOCAwMDo1NiAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IGJ1Z2ZpeCBmb3IgYSBidWdmaXggYnVnCiAgIAoyMDAwLTAxLTA3IDIzOjQzICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGNvbmZpZ3VyZS5pbjogc29tZSBtaXNzaW5nICJ4IiBpbiB0ZXN0cyBmb3IgLS13aXRoLW9wZW5zc2wgYW5kCiAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCiAgIAoyMDAwLTAxLTA3IDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogcHJvcGVybHkgZ3JvdXAgcncvcm91c2VycyBpbnRvIHVzbSBub3QgdjEvdjJjLgogICAKMjAwMC0wMS0wNyAxMToyMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGhhbmRsZSBtdWx0aXBsZSB0cmFuc2xhdGVkIE9JRHMuCiAgIAoyMDAwLTAxLTA3IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IHVwZGF0ZSB0byB2NCBBUEkgc2V0IGNvZGUuCiAgIAoyMDAwLTAxLTA3IDA5OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCiAgIAoyMDAwLTAxLTA2IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IHVucXVvdGVkIHF1b3RlcyBxdW90ZWQuCiAgIAoyMDAwLTAxLTA2IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAwLTAxLTA2IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IHkyayBidWcuCiAgIAoyMDAwLTAxLTA2IDEzOjE0ICBtYXJ6CgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHVwZGF0ZSBjb25maWcgYWNjZXNzIHN5bnRheCAoZXhhY3QpCiAgIAoyMDAwLTAxLTA2IDEzOjA3ICBtYXJ6CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCiAgIAoyMDAwLTAxLTA2IDEyOjU2ICBtYXJ6CgogICAqIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWc6CgogICB1cGRhdGUgc3ludGF4IChleGFjdCkKICAgCjIwMDAtMDEtMDYgMDg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuaCk6IHByb3Blcmx5IHdyYXAgc3RydWN0LmggaW5jbHVkZSBkaXJlY3RpdmUgZm9yCiAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KICAgCjIwMDAtMDEtMDYgMDE6NTggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmM6CgogICAtIChtaWJncm91cC9taWJJSS5jKTogUmVtb3ZlIHJlZHVuZGFudCBmaWxlCiAgIAoyMDAwLTAxLTA0IDIzOjUxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGltcGxlbWVudCB0cmFuZCBoYW5kbGVycyBmb3Igd2luMzIKICAgCjIwMDAtMDEtMDQgMjM6NTAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6ICNpZmRlZiBzb21lIHZhcmlhYmxlcyBub3QgdXNlZCB1bmRlciB3aW4zMgogICAKMjAwMC0wMS0wNCAyMjoxMiAgbmJhCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgc25tcGQuY29uZi41LmRlZjogcmVtb3ZlIGFsbCB0cmFjZXMgb2Ygc2VjdXJpdHkKICAgCW1vZGVsICJhbnkiIGluICJncm91cCIgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCiAgIAoyMDAwLTAxLTA0IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAtIEFkZCAtSS91c3IvaW5jbHVkZS9ycG0gYmVjYXVzZSBvZiBiYWRseSB3cml0dGVuIHJwbSBoZWFkZXIgZmlsZXMuCiAgIAoyMDAwLTAxLTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBkZWFsIHdpdGggYmxvY2tpbmcgYmV0dGVyIGluIHNubXBfYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KICAgCjIwMDAtMDEtMDQgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCiAgIAoyMDAwLTAxLTA0IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KICAgCjIwMDAtMDEtMDMgMTU6MzkgIG5iYQoKICAgKiBtYW4vOiBzbm1wY21kLjEsIHNubXB0cmFuc2xhdGUuMSwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBjbWQuMTogYWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwbGljYXRpb25zCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBleHBsYWluIC1UIG91dHB1dHMKICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCiAgIAoyMDAwLTAxLTAzIDE1OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAogICAKMjAwMC0wMS0wMyAxNTozMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgCUlnbm9yZSAuaW5kZXggZmlsZSBvbiBXSU4zMiBwbGF0Zm9ybQogICAKMjAwMC0wMS0wMyAxNTozMCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBhZGQgcHJvdG90eXBlIGZvciBzdHJjYXNlY21wCiAgIAoyMDAwLTAxLTAzIDE1OjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB3b21iYXQuYywgd29tYmF0Lmg6CgogICAtIHdvbWJhdC5bY2hdOiBjb3JyZWN0IHByb3RvdHlwZSBmb3Igd29tYmF0X3BhcnNlX2NvbmZpZwogICAKMjAwMC0wMS0wMyAxNToyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIG1pYklJLmg6IGFkZCBwcm90b3R5cGUgZm9yIGluaXRfbWliSUkKICAgCjIwMDAtMDEtMDMgMTU6MjYgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiBhZGQgYSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcgogICAKMjAwMC0wMS0wMyAxNToyNiAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogaW5jbHVkZSBhZ2VudF9yZWdpc3RyeS5oIG9ubHkgb25jZQogICAKMjAwMC0wMS0wMyAxNToyMyAgbmJhCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKICAgCjE5OTktMTItMzEgMTM6MjcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgQXBwbHkgc29tZSBOZXRCU0QgMS4zLngsIDEuNCBwYXRjaGVzIGMvbyBHcmVhIEEuIFdvb2RzIDx3b29kc0BwbGFuaXguY29tPgogICAKMTk5OS0xMi0zMSAxMjo0MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IGJ1ZyAjNDg6IG5vIHN0cmNhc2VjbXAvc3RybmNhc2VjbXAgZm9yIFNpbml4CiAgIAoxOTk5LTEyLTMxIDEwOjM2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IHdhcm5pbmdzIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMi0zMSAxMDozMyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBBdXRvY29uZiBwYXRjaCBjL28gQWxiZXJ0IENoaW4tQS1Zb3VuZyA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgogICAKMTk5OS0xMi0zMSAxMDoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCiAgIAoxOTk5LTEyLTMxIDA5OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBBcHBseSBwYXRjaCBwcm92aWRlZCBieSBTZXJnIFRydXNobmlrb3YgPHNhdEB6bWFpbC5ydT4gZm9yIEFJWCA0LjIuMSBrbmxpc3QKICAgCjE5OTktMTItMzEgMDk6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYzoKCiAgIEZpeCBidWcgIyAxMjIKICAgCjE5OTktMTItMzAgMTI6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgc25tcGxpYi90b29scy5jOgoKICAgRml4IGNvbXBpbGUgZXJyb3JzLgogICAKMTk5OS0xMi0zMCAwNzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB1c2FnZSBsaW5lIG9yZGVyIG1lc3NlZCB1cCwgYXMgcG9pbnRlZCBvdXQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMi0yOCAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmVtb3ZlIHRoZSAhIGluIGZyb250IG9mIGluX2Ffdmlldywgd2hpY2ggY2hhbmdlZC4KICAgCjE5OTktMTItMjMgMDg6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIG5vbiA4MC1jb2x1bW4gd3JhcHBlZCB2ZXJzaW9uLgogICAKMTk5OS0xMi0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCiAgIAoxOTk5LTEyLTIyIDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgdGFibGUgd2l0aCBtb3JlIHRoYW4gdGhhdCBudW1iZXIgaW4gY29sdW1ucywgd2hpY2ggYnJlYWtzIHNubXB0YWJsZS4KICAgCjE5OTktMTItMjIgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKG1hc3Rlci5jKTogdXNlIHNubXBfc2Vzc19vcGVuIGZvciB0aGUgc2Vjb25kIHRyeSBhdCBvcGVuaW5nIHRoZQogICAgIG1hc3RlciBwb3J0LgogICAKMTk5OS0xMi0yMiAwNTo1OCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gdmFjbSByb3V0aW5lczogYWxpZ25tZW50IHdpdGggUkZDIG1pYnMsIHByZXBhcmluZyBmb3IgdHJhcCBnZW5lcmF0aW9uCiAgIAlhbmQgYSBiZXR0ZXIgaW50ZWdyYXRpb24gd2l0aCB2YXJpYWJsZSB0cmVlIHdhbGtpbmcKICAgCjE5OTktMTItMjIgMDU6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCiAgIAoxOTk5LTEyLTIyIDA1OjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCiAgIAoxOTk5LTEyLTIyIDAyOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzoga2lsbCBhIGR1bW15IHZhbHVlCiAgIAoxOTk5LTEyLTIyIDAyOjQxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICAtIG1lbW9yeV9mcmVlYnNkMi5jOiBtYWtlIGl0IHdvcmsgKGFnYWluKSBmb3IgRnJlZUJTRC0yOi0pCiAgIAoxOTk5LTEyLTIxIDAyOjM3ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMi0yMCAxNzozNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTEgKQogICAKMTk5OS0xMi0yMCAxNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAogICAKMTk5OS0xMi0yMCAxNzozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIFNNSXYyIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTIwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIG5vdGUuCiAgIAoxOTk5LTEyLTIwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRGlnaXRhbCBVbml4IGhhY2sgZm9yIGJhZCByZWN2ZnJvbSBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTktMTItMjAgMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCiAgIAoxOTk5LTEyLTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBtYWtlIHVwdGltZSBhIGxvbmcgZm9yIDY0Yml0IGFyY2hpdGVjdHVyZXMuCiAgIAoxOTk5LTEyLTIwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBJUEZXQUNDLU1JQi50eHQgLT4gVUNELUlQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmM6CgogICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgogICAKMTk5OS0xMi0yMCAxMzozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCiAgIAoxOTk5LTEyLTIwIDEzOjI2ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELUlQRldBQ0MtTUlCLmluYywgVUNELUlQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCBhbmQgdXBkYXRlZCBmcm9tIElQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0byBVQ0QtSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjIzICBoYXJkYWtlcgoKICAgKiBtaWJzL0lQU0VDLU1JQi50eHQ6CgogICAtIChJUFNFQy1NSUIudHh0KTogcmVtb3ZlZAogICAKMTk5OS0xMi0yMCAwNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCiAgIAoxOTk5LTEyLTIwIDA2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBGb3JjZSBzZXQgdG8gMSBmb3IgLUQgc28gbXVsdGlwbGUgc3dpdGNoZXMgY2FuCiAgICAgYmUgZ2l2ZW4gKGllLCBkb24ndCB0b2dnbGUgdGhlIHZhbHVlKS4KICAgCjE5OTktMTItMjAgMDQ6MTUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBzbm1wX3ZhcnMuYywKICAgbWliZ3JvdXAvbWliSUkuaCwgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL2lwdjYuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS90Y3AuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYyBzbm1wX3ZhcnMuYyBtaWJJSS5bY2hdIG1pYklJLyouYyBtaWJJSS9zeXNPUlRhYmxlLmgpOgogICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgLSBSZWdpc3RlciB0aGUgdmFyaW91cyBNSUItMiBtb2R1bGVzIHNlcGFyYXRlbHkgaW4gc3lzT1JUYWJsZS4KICAgCjE5OTktMTItMjAgMDM6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgLSAoYWdlbnR4L1JFQURNRS5hZ2VudHgpOiBVcGRhdGVkIHRvIGRlc2NyaWJlIGN1cnJlbnQgc3RhdHVzLgogICAKMTk5OS0xMi0xNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGNvbXBsZXRlbHkgcmVzdHJ1Y3R1cmVkLgogICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCiAgIAoxOTk5LTEyLTE3IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgIC0gaW5jbHVkZSAic25tcF9hbGFybS5oIiBmb3IgbWliIG1vZHVsZXMgdGhhdCBuZWVkIHRoZSBjYWxsYmFjayBkZWYuCiAgIAoxOTk5LTEyLTE3IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gLUkuCiAgIAoxOTk5LTEyLTE3IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IG1pc3NpbmcgISBvcGVyYXRlciBvbiBzaWduYWwgdGVzdC4KICAgCjE5OTktMTItMTcgMTU6NDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdC5jCiwgdm1zdGF0X2ZyZWVic2QyLmM6CgogICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KICAgCjE5OTktMTItMTcgMTU6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKLCB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgSW5jbHVkZSBGcmVlQlNEIDQueCBzcGVjaWZpYyBtZW1vcnkgYW5kIHZtc3RhdCB3aGVuIGJ1aWxkaW5nIHRoYXQgYWdlbnQuCiAgIAoxOTk5LTEyLTE3IDE0OjIzICBtc2xpZmNhawoKICAgKiBtYW4vOiBSRUFETUUsIG1pYl9hcGkuMywgc25tcC5jb25mLjUuZGVmLAogICBzbm1wY21kLjEsIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wdGVzdC4xLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEKOgoKICAgRml4ZWQgYSBmZXcgc3BlbGlsbmcgZXJyb3JzLgogICAKMTk5OS0xMi0xNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgogICAKMTk5OS0xMi0xNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBzZWNvbmQgcGFzcy4KICAgCjE5OTktMTItMTcgMTA6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZWQgLVIgZnJvbSB0aGUgLWggb3V0cHV0LgogICAKMTk5OS0xMi0xNyAxMDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IGNoYW5nZWQgaGVscCBsaW5lIG9mIGNyZWF0ZVVzZXIgdG8gc2VwZXJhdGUgREVTIHRva2VuCiAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KICAgCjE5OTktMTItMTcgMTA6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBwdXQgc25tcGQubyBpbnRvIHRoZSBvYmplY3QgbGlzdCwgYW5kIHJlbW92ZSBpdCBmcm9tCiAgICAgZGlyZWN0IGNvbXBpbGF0aW9uIGluIHRoZSBDQyBsaW5rIGxpbmUuCiAgIAoxOTk5LTEyLTE3IDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHJlb3JkZXIgaW5pdCgpIHJvdXRpbmVzIGZvciAtSCB0byBwcmV2ZW50IHNlZ2ZhdWx0aW5nLgogICAKMTk5OS0xMi0xNyAxMDoxMSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogUEVSU0lTVEVOVF9ESVJFQ1RPUlkgdG9rZW4gYWRkZWQuCiAgIAoxOTk5LTEyLTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGZpcnN0IHBhc3MgYXQgY2hhbmdlcy4KICAgCjE5OTktMTItMTcgMDc6NDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCiAgIAoxOTk5LTEyLTE3IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgZmlsZSBkaXJlY3RpdmUuCiAgIAoxOTk5LTEyLTE3IDA3OjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCByb2NvbW11bml0eSwgcndjb21tdW5pdHksIHJvdXNlciwgcnd1c2VyLgogICAKMTk5OS0xMi0xNyAwNzoxMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjE5OTktMTItMTcgMDc6MDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KICAgCjE5OTktMTItMTcgMDc6MDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSSBhbmQgLU8gZmxhZ3MuCiAgIAoxOTk5LTEyLTE3IDAzOjIyICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICAtIGxpYnNubXAuZGVmOiBhZGQgc29tZSBmdW5jdGlvbiBuYW1lcwogICAKMTk5OS0xMi0xNyAwMjoxOCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBtYWtlIHRoZSBvaWRzIGdpdmVuIHRvIHRyYXBkIGhhbmRsZXJzIHByb3Blcmx5IC4wIHRlcm1pbmF0ZWQuCiAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgIAlBZGQgc3lzbG9nIG9mIHYyIHRyYXBzIGFuZCBpbmZvcm1zCiAgIAoxOTk5LTEyLTE3IDAyOjE0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgCWRlZmF1bHQgKGRvbid0IGV2ZW4gZG9jdW1lbnQgdGhlIC1DIGNvbXBhdGliaWxpdHkgb3B0aW9uKS4gSWdub3JlCiAgIAlub3QtYWNjZXNzaWJsZSBmaWVsZHMgaW4gdGhlIHdhbGsuCiAgIAoxOTk5LTEyLTE3IDAyOjA5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHVzYWdlKCkgY2FsbHMuCiAgIAoxOTk5LTEyLTE3IDAyOjA4ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgIAljb25kaXRpb25hbHMuIFByb3Blcmx5IG91dHB1dCBhbiBlbXB0eSBzdHJpbmcgaW5kZXguCiAgIAoxOTk5LTEyLTE2IDIzOjEwICBuYmEKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KICAgCjE5OTktMTItMTYgMjM6MDkgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IGEgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24gcHJvYmxlbSBwcmludGluZyBvaWRzCiAgIAoxOTk5LTEyLTE2IDIzOjA4ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogYmUgZXhwbGljaXQgaW4gdGhlIC10IHdhcm5pbmcKICAgCjE5OTktMTItMTYgMjM6MDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIHNtdXguW2NoXTogZml4IHNvbWUgcHJvdG90eXBlcyBhbmQgaW5jbHVkZXMuCiAgIAoxOTk5LTEyLTE2IDIzOjA2ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogXG4gdGVybWluYXRlIHNvbWUgbG9nIG1lc3NhZ2VzCiAgIAoxOTk5LTEyLTE2IDIzOjA1ICBuYmEKCiAgICogYWdlbnQva2VybmVsLmM6CgogICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCiAgIAoxOTk5LTEyLTE1IDExOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCiAgIAoxOTk5LTEyLTE1IDA5OjU2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgIEFkZCB0aW1lIG1hcmtlciBjcmVhdGUsIHNldCwgYW5kIGRlbHRhIHRpbWUgY2hlY2sgbWV0aG9kcy4KICAgCjE5OTktMTItMTUgMDk6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICBSZW1vdmUgc25tcF9sb2dfc3lzbG9nLCBzbm1wX2xvZ19maWxlbG9nLCBzbm1wX2xvZ19zdGRlcnJsb2c7CiAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KICAgCjE5OTktMTItMTUgMDk6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgU05NUHYyLU0yTS1NSUIudHh0LAogICBTTk1QdjItUEFSVFktTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0IFNOTVB2Mi1NMk0tTUlCLnR4dCApOiByZW1vdmVkLgogICAKMTk5OS0xMi0xNSAwOToxNyAgaGFyZGFrZXIKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIuaW5jLCBVQ0QtSVBGSUxURVItTUlCLnR4dDoKCiAgIC0gKEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsIFVDRC1JUEZJTFRFUi1NSUIuaW5jLAogICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KICAgCjE5OTktMTItMTUgMDU6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgogICAKMTk5OS0xMi0xNSAwNDoyMSAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmM6CgogICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgIAoxOTk5LTEyLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IGdldCBuZXh0IGluIGxpbmsgbGlzdCBiZWZvcmUgZGVsZXRpbmcgcm9vdC4KICAgCjE5OTktMTItMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgogICAKMTk5OS0xMi0xNCAxNToxOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRExNT0QgLT4gVUNELURMTU9ECiAgIAoxOTk5LTEyLTE0IDE0OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogcmV2ZXJzZSBnZW5lcmF0ZV9LdSBvcHRpbWl6YXRpb25zLCBhcyB0aGV5IGRvbid0IHdvcmsuCiAgIAoxOTk5LTEyLTE0IDA4OjQxICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSB1cGRhdGVzLgogICAKMTk5OS0xMi0xNCAwODowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGRlZmF1bHRfc3RvcmUuaCwKICAgICBtaWIuYywgbWliLmgpOgogICAgIC0gYXJndW1lbnQgc2h1ZmZsaW5nLi4uCiAgICAgICAtSSBmb3IgaW5wdXQgYXJncyBjcmVhdGVkLCBhbmQgLU9SIG1vdmVkIHRoZXJlLgogICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAtVEIgY3JlYXRlZCBmb3Igc25tcHRyYW5zbGF0ZSAod2FzIC1CKS4KICAgCjE5OTktMTItMTMgMTY6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBbGxvdyBzcHJpbnRfdmFyaWFibGUgdG8gd29yayBldmVuIGlmIG5vIE1JQiBmaWxlcyB3ZXJlIHJlYWQuCiAgIAoxOTk5LTEyLTEzIDE1OjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRmluaXNoIHN5bWJvbCBjb252ZXJzaW9uIHdpdGggbnVtZXJpYyB3aGVuIHN1YnRyZWUgaXMgbGVhZiBub2RlLgogICAKMTk5OS0xMi0xMyAxNDo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBwcm9ibGVtIHByaW50aW5nIElNUExJRUQgaW5kaWNlcyBvZiBPQkpFQ1RJRCB0eXBlLgogICAKMTk5OS0xMi0xMyAxNDoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS13aXRoLWVmZW5jZSBpbXBsZW1lbnRlZC4KICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKICAgCjE5OTktMTItMTMgMTM6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgogICAKMTk5OS0xMi0xMyAxMjowNCAgbXNsaWZjYWsKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gYWxzbyByZW1vdmVzIGdlbmVyYXRlZCBkZWZhdWx0X3N0b3JlLjMuaCAuCiAgIAoxOTk5LTEyLTEzIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsCiAgIFVDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAtIEp1ZXJnZW5zIHBhdGNoIHRvIG1vdmUgRExNT0QtTUlCIC0+IFVDRC1ETE1PRC1NSUIgYW5kIC0+IFNNSXYyLgogICAgIC0gbW92ZWQgdG8gdGhlIGV4cGVyaW1lbnRhbCB0cmVlLgogICAKMTk5OS0xMi0xMyAwOTo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgQWRkZWQgcGF0Y2ggZnJvbSBNLk1pY2hhdWQgdG8gdXNlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMuCiAgIAoxOTk5LTEyLTEzIDA0OjQzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3NtdXgvc211eC5jLAogICBtaWJncm91cC9zbXV4L3NtdXguaDoKCiAgIC0gKGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LltjaF0pOgogICAgIC0gUGF0Y2ggdG8gZ2V0IFNNVVggc3VwcG9ydCB3b3JraW5nIHdpdGggdGhlIG5ldyBhZ2VudCBhcmNoaXRlY3R1cmUuCiAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgIFRoYW5rcyB0byBOaWNrIEFtYXRvIGFuZCBNaWtlIE1pY2hhdWQuCiAgIAoxOTk5LTEyLTEzIDAzOjE4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwogICAKMTk5OS0xMi0xMyAwMzoxNyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBIYW5kbGUgZGVsZWdhdGVkIE1JQiByZWdpb25zIHByb3Blcmx5IHdoZW4gc3BsaXQuCiAgIAoxOTk5LTEyLTEwIDEzOjAzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgRml4IEhQLVVYIHByb2JsZW0gd2l0aCBpcERlZmF1bHRUVEwuCiAgIAoxOTk5LTEyLTEwIDEwOjQ0ICBtYXJ6CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCiAgIAoxOTk5LTEyLTEwIDEwOjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBBcHBseSBEYXZlJ3MgcGF0Y2ggdG8gZml4IG1heCB2YXJiaW5kcyB0ZXN0aW5nIG9uIEdFVEJVTEsuCiAgIAoxOTk5LTEyLTEwIDA3OjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBidWlsZCBleGVjdXRhYmxlIGFnZW50IG9uIEhQLVVYLgogICAKMTk5OS0xMi0xMCAwMzoxOSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICAtICh2YXJpb3VzKTogY2hhbmdlcyB0byBjb21waWxlIHNubXBkIHdpdGggVkMrKyA1LjAgKFJlbGVhc2UgbW9kZSkKICAgCjE5OTktMTItMTAgMDM6MTAgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IGFkZCBzb21lIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVycwogICAKMTk5OS0xMi0xMCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCiAgIAoxOTk5LTEyLTEwIDAzOjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSBwYXNzLmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgogICAKMTk5OS0xMi0xMCAwMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KICAgCjE5OTktMTItMDkgMTc6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQgb24gaHB1eAogICAKMTk5OS0xMi0wOSAxNjo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBuZXRzdGF0L01ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQKICAgCjE5OTktMTItMDkgMTY6MTYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIGFsbCBpbnN0YW5jZXMgb2Yga2IgdG8ga0IuCiAgIAoxOTk5LTEyLTA5IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgIC0gZ2VuZXJhdGVfS3UoKSBzcGVlZCBpbXByb3ZlbWVudHMuCiAgIAoxOTk5LTEyLTA5IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgIC0gZml4ZWQgLS1lbmFibGUtc2hhcmVkIChhdCBsZWFzdCBvbiBsaW51eCkuCiAgIAoxOTk5LTEyLTA5IDA4OjE0ICBtc2xpZmNhawoKICAgKiBtaWJzLzogRElTTUFOLVNDUklQVC1NSUIudHh0LCBVQ0QtREVNTy1NSUIuaW5jLAogICBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0CjoKCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgogICAKMTk5OS0xMi0wOSAwNzo0OSAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCiAgIAoxOTk5LTEyLTA5IDA3OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCiAgIAoxOTk5LTEyLTA5IDA3OjM0ICBkYXZlcwoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zOgoKICAgLSAobWFuL3NubXBfdHJhcF9hcGkuMyk6IEluaXRpYWwgZG9jdW1lbnRhdGlvbiBmb3IgYWdlbnQgdHJhcCBnZW5lcmF0aW9uLgogICAKMTk5OS0xMi0wOCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtYXN0ZXIuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAtIGltcGxlbWVudCBta2RpcmhpZXIoKSBhbmQgdXNlIGl0IGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIGFnZW50eAogICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCiAgIAoxOTk5LTEyLTA4IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcwo6CgogICAtIChtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcyk6CiAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgIG5lZWQgdG8gYmUgZWRpdGVkIG9uY2UuCiAgIAoxOTk5LTEyLTA4IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCouLk1ha2VmaWxlLmluKTogQSByZWFsIG1ha2UgZGVwZW5kIHdpdGggbm8gc3NsIGRlcGVuZGFuY2llcywgZXRjLgogICAKMTk5OS0xMi0wOCAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBtb3ZlIHN5cy9wYXJhbSBvdXQgb2YgaWZkZWYgRkRfU0VULgogICAKMTk5OS0xMi0wOCAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMTItMDggMTU6MjYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgogICAKMTk5OS0xMi0wOCAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIC0gcmVtZW1iZXJlZCBJTVBMSUVEIGluZGV4ZXMuCiAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICBjdXR0aW5nL3Bhc3Rpbmcgb2YgdGhlbSB3b3Jrcy4KICAgICAtIHByb3Blcmx5IHByaW50IHN0cmluZ3MgYW5kIG9pZHMgdGhhdCBhcmUgSU1QTElFRC4KICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCiAgIAoxOTk5LTEyLTA4IDE1OjA0ICBtc2xpZmNhawoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGQgbWlzc2luZyBkc2tQZXJjZW50Tm9kZSB0byBEc2tFbnRyeSAodGhhbmtzIHRvCiAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCiAgIAoxOTk5LTEyLTA4IDE1OjAxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCiAgIAoxOTk5LTEyLTA4IDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBmaXggLU9zIGFuZCBpbmRleCBiYXNlZCBvaWQgcHJpbnRpbmcgdG8gd29yayBhZ2Fpbi4KICAgCjE5OTktMTItMDggMTQ6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIG1ySW5kZXggSU1QTElFRCBzaW5jZSBpdCBpcyBpbiB0aGUgY29kZS4KICAgCjE5OTktMTItMDggMDk6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHJlZ2lzdGVyIGEgY29uZmlnIHRva2VuIGZvciBzdWZmaXggcHJpbnRpbmcuCiAgIAoxOTk5LTEyLTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBFbGltaW5hdGUgbXVsdGlwbHlpbmcgYnkgc2l6ZW9mKGNoYXIpIG9yIHNpemVvZih1bnNpZ25lZCBjaGFyKTsKICAgYWdlbnR4L2NsaWVudC5jIC0gc25tcF9mcmVlX3ZhcmJpbmQgcmVwbGFjZXMgZnJlZSBpbiBmb3VyIHBsYWNlczsKICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCiAgIAoxOTk5LTEyLTA3IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHdhbGsuMToKCiAgIC0gKHNubXB3YWxrLjEpOiBkb2N1bWVudCAtQ2kgYW5kIC1DcCAoYmFkbHkpLgogICAKMTk5OS0xMi0wNyAxMzo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6CiAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgIHJlc3VsdHMgYXJlIHJldHVybmVkIG9yIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgYW4gaW5jbHVzaXZlIG9wdGlvbi4KICAgICAtIE5ldyBhYmlsaXR5IHRvIHByaW50IG51bWJlciBvZiB2YXJpYWJsZXMgZm91bmQgYXQgdGhlIGVuZC4KICAgCjE5OTktMTItMDcgMDk6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGNvbnZlcnQgdG8gU01JdjIgYW5kIGNsZWFudXAuCiAgIAoxOTk5LTEyLTA3IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChzeXNPUlRhYmxlLmMpOiBtYWtlIHN5c09ySW5kZXggbm90LWFjY2Vzc2libGUsIGFzIGl0IHNob3VsZCBiZS4KICAgCjE5OTktMTItMDcgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYzoKCiAgIC0gKGhyX290aGVyLmMpOiBzaG9ydGVuIGNwdSBkZXNjcmlwdGlvbiBsZW5ndGguCiAgIAoxOTk5LTEyLTA3IDA4OjI5ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0gYWdlbnQvc25tcGQuW2NoXQogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgLSAgVXNlIHRoZSBzYXZlZCBhcHBsaWNhdGlvbiBuYW1lIGZvciByZWdpc3RlcmluZyBjb25maWcgaGFuZGxlcnMKICAgCShOLkI6IFRoaXMgY2hhbmdlIHdpbGwgbmVlZCB0byBiZSBhcHBsaWVkIHRvIE1JQiBtb2R1bGVzIGFzIHdlbGwpCiAgIAoxOTk5LTEyLTA3IDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB1c20uYzoKCiAgIFVzZSBhcmd2WzBdIHNpbmNlIHRoZSBhcHAgd29udCBiZSBzbm1wZ2V0bmV4dCwgcHJvYmFibHkuCiAgIAoxOTk5LTEyLTA2IDE2OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB1c20uYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNb3JlIGZ1biB1cGRhdGluZyBNUyBWQyBidWlsZCBvZiBhcHBzIGFuZCBsaWJyYXJ5LgogICAKMTk5OS0xMi0wNiAxNToxMSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi93aW4zMi5kc3cKLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AKLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIC0gc3lzdGVtLmMsIGNvbmZpZy5oLCB3aW4zMi5kc3csICouZHNwLCBsaWJzbm1wLmRlZjogY2xlYW5pbmcgdXAgZm9yIFZDIGJ1aWxkcwogICAKMTk5OS0xMi0wNiAxNTowOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHVzbS5oOgoKICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCiAgIAoxOTk5LTEyLTA2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGZpeCB1c2FnZSBmb3IgbmV3IGFyZ3MuCiAgIAoxOTk5LTEyLTA2IDE0OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogbWFrZSB2MyB0ZXN0aW5nIHdvcmsgYWdhaW4uCiAgIAoxOTk5LTEyLTA2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6CiAgICAgLSBtYWtlIHNubXB1c20gdXNhYmxlIGFnYWluLCBjaGFuZ2luZyBhcmd1bWVudHMgc2xpZ2h0bHkuCiAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgogICAKMTk5OS0xMi0wNiAxNDozMiAgbmJhCgogICAqIHdpbjMyLzogYmluLy5jdnNpZ25vcmUsIGxpYi8uY3ZzaWdub3JlOgoKICAgLSAuY3ZzaWdub3JlOiBNYWtlIENWUyBzaWxlbnQgYWJvdXQgaW5zdGFsbGF0aW9uIGZpbGVzCiAgIAoxOTk5LTEyLTA2IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwcmludCBlcnJvciBzdHJpbmdzIHJldHVybmVkIGJ5IGdlbmVyYXRlX0t1KCkuCiAgIAoxOTk5LTEyLTA2IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBkZWZhdWx0IHNwZWNpZmljYXRpb25zIGZvciBhdXRoL3ByaXYgdHlwZXMuCiAgIAoxOTk5LTEyLTA2IDA5OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU2hvdyBhbGwgbm9uLXByaW50YWJsZSBzdWJpZHMgaW4gZHVtcF9vaWRfdG9fc3RyaW5nLgogICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCiAgIAoxOTk5LTEyLTA1IDIxOjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBlbnN1cmUgcHJvcGVyIGJ5dGUgb3JkZXJpbmcgd2hlbiBwYXNzJ2luZwogICAJaXBhZGRyZXNzLgogICAKMTk5OS0xMi0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAtICh2bXN0YXQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgbGltaXRzLmggaW5jbHVkZS4KICAgCjE5OTktMTItMDMgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB1c2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UuCiAgIAoxOTk5LTEyLTAzIDE2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3dpdGNoIHRvIFBJQyBmcm9tIHBpYy4KICAgCjE5OTktMTItMDMgMTU6MDUgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHJlbWVtYmVyIHRvIE5VTEwgYSBmcmVlZCBwb2ludGVyCiAgIAoxOTk5LTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKICAgCjE5OTktMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdCBoYW5kbGluZyBvZiBTSUdIVVAgdHAgcmVjb25maWd1cmUuCiAgIAoxOTk5LTEyLTAyIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogdHVybiBvbiBSRUdFWF9FWFRFTkRFRC4KICAgCjE5OTktMTItMDIgMDk6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjODEgLSBjb250aW51ZSBpbnN0YWxsIGFmdGVyIGVycm9yIGNyZWF0aW5nIHBlcnNpc3RlbnQgZGlyZWN0b3J5LgogICAKMTk5OS0xMi0wMiAwNTowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25tcHYzLmg6CgogICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgIAl0byB0aGUgbGlicmFyeSwgc28gdGhhdCBzbm1wdHJhcGQgY2FuIHVzZSBpdC4KICAgCjE5OTktMTItMDIgMDQ6NDIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCiAgIAoxOTk5LTEyLTAyIDA0OjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAogICAKMTk5OS0xMi0wMSAxNjozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgVXNlIFNOTVBfTUFYQlVGIHdoZW4gZGVmaW5pbmcgbGFyZ2Ugc3RhdGljIGJ1ZmZlciBzdG9yYWdlLgogICAKMTk5OS0xMi0wMSAxNTo1NSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IGJ1ZyAjMTEyIGFuZCBmaW5pc2ggcGF0Y2ggc3VwcGxpZWQgYnkgQW50aG9ueSBTaGlwbWFuLgogICAKMTk5OS0xMi0wMSAxMDozOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgUHJldmVudCBvdmVyZmxvdyBvZiBvYmplY3QgSUQgaW4gZ2V0X21vZHVsZV9ub2RlLgogICBJbiBmaW5kX2Jlc3RfdHJlZV9ub2RlLCB0cmVhdCByZXN1bHQgZnJvbSByZWN1cnNlZCBjYWxsIHNhbWUgZm9yIG1hdGNoID0gMC4KICAgCjE5OTktMTItMDEgMDY6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEVycm9yIGNoZWNrIGFuZCBmcmVlIHJlc291cmNlcyBkdXJpbmcgcmVnZXggcHJvY2Vzc2luZy4KICAgCjE5OTktMTEtMzAgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgQWRkIG11bHRpcGxlIG1hdGNoIGNhcGFiaWxpdHkgdG8gZmluZF9iZXN0X3RyZWVfbm9kZSwgYW5kIHVzZSBpdCBpbgogICBzbm1wdHJhbnNsYXRlIChuZXcgLUIgb3B0aW9uKS4KICAgCjE5OTktMTEtMzAgMTQ6NDcgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCiAgIAoxOTk5LTExLTMwIDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jKTogaW1wbGVtZW50IHJlZ2V4IG1hdGNoaW5nCiAgICAgZXZlcnl3aGVyZS4KICAgCjE5OTktMTEtMzAgMTM6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbmNsdWRlIGN0eXBlLmgKICAgCjE5OTktMTEtMzAgMTM6MTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgRml4IC1UZCB1c2FnZSBkZXNjcmlwdGlvbjsgdXNlIHN3aXRjaCB3aGVuIGN1cnJlbnRfbmFtZSBpcyBOVUxMLgogICAKMTk5OS0xMS0zMCAwNzowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoxOTk5LTExLTMwIDA3OjA3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhZ2VudHgvbWFzdGVyLmMpOiBSZW1vdmUgcmVkdW5kZW50IHJvdXRpbmUuCiAgIAoxOTk5LTExLTMwIDAzOjAxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDoKCiAgIC0gc25tcF9hcGkuaCwgc25tcF9taWIuW2NoXTogQSBjb3VwbGUgYWRkaXRpb25hbCBTTk1QIHN0YXRpc3RpY3MgcG9pbnRzCiAgIAoxOTk5LTExLTI5IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhbm90aGVyIG5hbWUuCiAgIAoxOTk5LTExLTI5IDE0OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgZm9yIHJlZ2V4LmgsIHJlZ2NvbXAsIHN0cmNhc2VzdHIuCiAgIAoxOTk5LTExLTI5IDE0OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogbWFrZSBiZXN0IG1hdGNoaW5nICgtYikgdXNlIHJlZ2V4IHdoZW4gYXZhaWxhYmxlLgogICAKMTk5OS0xMS0yOSAxNDowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHN5c3RlbS5jLCBzeXN0ZW0uaDoKCiAgIC0gKHN5c3RlbS5jLCBzeXN0ZW0uaCk6IGltcGxlbWVudCBzdHJjYXNlc3RyIChmcm9tIE1pY2hhZWwgU2xpZmNhaykuCiAgIAoxOTk5LTExLTI5IDEyOjQzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmM6CgogICBVc2Ugc2l6ZV90IGZvciBuYW1lX2xlbiBtZW1iZXIuCiAgIAoxOTk5LTExLTI5IDExOjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGcmVlIFNUUkVBTSBwYWNrZXQgYnVmZmVyIHdoZW4gc2Vzc2lvbiBpcyBjbG9zZWQ7CiAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCiAgIAoxOTk5LTExLTI5IDEwOjM2ICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcHRyYXAuYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvbWFpbi5jCjoKCiAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIERFQlVHX01BTExPQ19JTkMgZnJhZ21lbnRzLgogICAKMTk5OS0xMS0yOSAxMDozMyAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwOgoKICAgRml4IHJlZmVyZW5jZSB0byBzbm1wbGliLgogICAKMTk5OS0xMS0yOSAxMDozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIG50b2hzIG1hY3JvIHRvIGNhcmVmdWxseSBvYnRhaW4gdGhlIGRlZmF1bHQgc2VydmljZSBwb3J0LgogICAKMTk5OS0xMS0yOSAwNTo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wYnVsa2dldC5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1vcmUgSFAtVVggYUNDIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4uCiAgIAoxOTk5LTExLTI3IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgogICAKMTk5OS0xMS0yNyAwNjozMSAgbWFyegoKICAgKiBhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgIChhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZml4IC1yIHN3aXRjaCB0byBzdXByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGZhaWxlZCBrZXJuZWwgYW5kIGFkZCAtciB0byBkZWZhdWx0IHRlc3RpbmcgY29kZSBzbyAnbWFrZSB0ZXN0IGNhbiBiZSBydW4gYnkgdXNlcgogICAKMTk5OS0xMS0yNiAxMToxOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSBkZWZhdWx0X3N0b3JlLmM6IGFsdGhvdWdoIHJlYWRfY29uZmlnIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGRzX2hhbmRsZV9jb25maWcKICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgIAlpdCB3YXMgY2FsbGVkIGJ1dCBkaWRuJ3Qga25vdyB3aGF0IHRvIGRvLgogICAKMTk5OS0xMS0yNSAxNDo1NyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBraWxsIHlldCBhbm90aGVyIHNpbGx5IHdhcm5pbmcgZnJvbSBnY2MKICAgCjE5OTktMTEtMjUgMTQ6NTYgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGRlZmF1bHRzX3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfcGFyc2VfYXJncy5jOiBhZGQgZGVmQ29tbXVuaXR5CiAgIAlkaXJlY3RpdmUKICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQogICAKMTk5OS0xMS0yNSAxNDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtIHVzbVVzZXIuYzogbmV3IHVzZXIgaXMgbm90IGFkZGVkIHVubGVzcyBib3RoIGF1dGggYW5kIHByaXYgaXMgc3BlY2lmaWVkCiAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQogICAKMTk5OS0xMS0yNSAxNDozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6CgogICAtIHNubXBfbWliLmg6IGZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwogICAKMTk5OS0xMS0yNSAxNDozMiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAJZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIAoxOTk5LTExLTI0IDExOjA3ICBtc2xpZmNhawoKICAgKiBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCiAgIAoxOTk5LTExLTI0IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZDouCiAgIAoxOTk5LTExLTI0IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGNoYW5nZSBlZGl0aW5nIG9mIGNvbmZpZy5oIG5vdGUuCiAgIAoxOTk5LTExLTI0IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi90b29scy5jCiwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1c21Vc2VyLmMsCiAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICBrZXltYW5hZ2V0ZXN0LmMsIHNjYXBpdGVzdC5jLCBjb25maWcuaCk6CiAgICAgLSBmb3JjZSAtLWVuYWJsZS1kZXZlbG9wZXIgZm9yIENWUyBjaGVja291dHMuCiAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgogICAKMTk5OS0xMS0yNCAwOTowMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogUmVsZWFzZSBhbGxvY2F0ZWQgaW5kZXhlcyBvbiBzdWJhZ2VudCBzaHV0ZG93bi4KICAgCjE5OTktMTEtMjMgMDU6NDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgIC0gQXNzb2NpYXRlIHN1Y2ggcmVnaXN0cmF0aW9ucyB3aXRoIHRoZSBtYWluIHNlc3Npb24KICAgICAtIG5ldyByb3V0aW5lIHRvIHVucmVnaXN0ZXIgYWxsIGluZGV4ZXMgZm9yIGEgZ2l2ZW4gc2Vzc2lvbgogICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgLSBjbGVhbiB1cCBhc3NvcnRlZCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0xMS0yMyAwNToyMSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgTWFrZSBtYWluIHNlc3Npb24gc3RydWN0dXJlIHZpc2libGUgdGhyb3VnaG91dCB0aGUgYWdlbnQsCiAgICAgIGFuZCB1c2UgdGhpcyBmb3IgQWdlbnRYIHN1YmFnZW50IGFzIHdlbGwuCiAgIAoxOTk5LTExLTIzIDAyOjIwICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKICAgCjE5OTktMTEtMjMgMDI6MTEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmM6CgogICAtIChob3N0L2hyX3N0b3JhZ2UuYyBob3N0L2hyX3N3cnVuLmMpOiBHdWFyZCBhZ2FpbnN0IGNhbGN1bGF0aW9uIG92ZXJmbG93CiAgIAoxOTk5LTExLTIzIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgCShSZXBvcnRlZCBieSBNaXRjaCBTaGllbGRzKQogICAKMTk5OS0xMS0yMyAwMToyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYXJndW1lbnRzIChpbnQgPT4gc2l6ZV90KS4gVGhhbmtzIHRvCiAgIAlBbnRob255IFNoaXBtYW4gPGFzaGlwbWFuQGVyZ2dyb3VwLmNvbT4KICAgCjE5OTktMTEtMjMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lQU0VDLU1JQi50eHQ6CgogICAtIElQU0VDLU1JQi50eHQ6IGNoYW5nZSBzb21lIHVuZGVybGluZXMgaW50byBkYXNoZXMsIGFuZCByZXBhaXIgdGhlCiAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0Oi0pKQogICAKMTk5OS0xMS0yMyAwMToyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKCiAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KICAgCjE5OTktMTEtMjIgMTc6NTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KICAgCjE5OTktMTEtMjIgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggbGVuZ3RoIGNoZWNrIG9mIGtleSBzcGFjZS4KICAgCjE5OTktMTEtMjIgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdmFjbV92YXJzLmMsIHNubXB2My91c21Vc2VyLmMKOgoKICAgLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYyk6IG5ldyBjb25maWcgdG9rZW5zIGFsbG93aW5nIGVhc3kgdXNlciBhbmQKICAgICB2YWNtL3VzZXIgY29uZmlndXJhdGlvbiBhbmQgc2V0dXAuCiAgIAoxOTk5LTExLTIyIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlIGNyZWF0aW9uIG9mIGluaXRpYWwgYW5kIHRlbXBsYXRlKiB1c2Vycy4KICAgCjE5OTktMTEtMjIgMTM6MDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHRjcC5jKTogUGF0Y2gKICAgICBmcm9tIEdhcnJldHQgV29sbG1hbjoKICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgogICAKMTk5OS0xMS0yMiAxMjo1MyAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKOgoKICAgLSAqOiBjaGFuZ2UgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucyB0byBhCiAgIAljb25zdCBzdHJpbmcKICAgCjE5OTktMTEtMjIgMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdmFjbV92YXJzLmMsIHVjZC1zbm1wL3Bhc3MuYwo6CgogICAtICh2YWNtX3ZhcnMuYywgcGFzcy5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zLgogICAKMTk5OS0xMS0yMiAxMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2ZyZWVic2QyLmMKOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCiAgIAoxOTk5LTExLTIyIDA5OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsCjoKCiAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSB0ZXN0cyBmb3IgbmV3CiAgICAgZXJyb3IgbWVzc2FnZXMuCiAgIAoxOTk5LTExLTIyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhvc3RfcmVzLmgsIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgogICAKMTk5OS0xMS0yMiAwOTowNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgbW9yZSBwZW9wbGUgdG8gdGhlIHRoYW5rcyBsaXN0LgogICAKMTk5OS0xMS0yMiAwOTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucyBwb2ludGVkIG91dCBieSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoxOTk5LTExLTIyIDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAtIEFkZGVkIGNvZGUgdG8gaGFuZGxlIHNwYXJzZSB0YWJsZXMuCiAgIAoxOTk5LTExLTIyIDA4OjIxICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlOgoKICAgQWRkIENWUyBpZ25vcmUgbGlzdCBmb3Igd2luMzIvbGliYWdlbnQuCiAgIAoxOTk5LTExLTIyIDA4OjIwICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3A6CgogICBSZXRyeSBhZGQgTVNWQysrIHByb2plY3QgZmlsZS4KICAgCjE5OTktMTEtMjIgMDc6MzAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgSW5kZXggZGUtYWxsb2NhdGlvbiwgYW5kIEFnZW50WCBpbmRleCBzdXBwb3J0LgogICAKMTk5OS0xMS0yMiAwNzoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCiAgIAoxOTk5LTExLTIyIDA2OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBpcHY2LmM6IHVwZ3JhZGUgdG8gdGhlIGN1cnJlbnQgS2FtZSBwYXRjaAogICAKMTk5OS0xMS0yMiAwNTozMiAgbmJhCgogICAqIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwgbWlicy9JUFY2LVVEUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCjoKCiAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgCXRhYmxlcyB0byB0aGVpciBwcm9wZXIgcG9zaXRpb24gaW4gdGhlIHRyZWUsIGFjY29yZGluZyB0byB0aGUgUkZDLgogICAKMTk5OS0xMS0yMiAwNToyOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKICAgCjE5OTktMTEtMjIgMDU6MjggIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiByZWluc3RhdGUgc25tcGQgLWEgZnVuY3Rpb25hbGl0eQogICAKMTk5OS0xMS0yMiAwNToyOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAgc25tcF9sb2dnaW5nLmM6IG9ubHkgdGltZXN0YW1wIGVmdGVyIGEgbmV3bGluZQogICAKMTk5OS0xMS0yMiAwNToyNyAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluOiBjb25maWd1cmUgdGVzdCBmb3IgbmV0aW5ldC9pcC5oCiAgIAoxOTk5LTExLTE5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGRpc2suYywgZGlzay5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCiAgIAoxOTk5LTExLTE5IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgIC0gbWFrZSBzbm1wX3NlbGVjdF9pbmZvIHBvc3NpYmx5IGhhbmRsZSBhbGFybSB0aW1lcnMuCiAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgogICAKMTk5OS0xMS0xOSAxMzo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZml4IG1pYjJjLnN0b3JhZ2UuY29uZi4KICAgCjE5OTktMTEtMTkgMTE6MDYgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogUHJvdmlkZSBtaXNzaW5nIGluZGV4IGFsbG9jYXRpb24gZGVmaW5lcy4KICAgCjE5OTktMTEtMTggMTg6MjAgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9kb3RfY29uZi5oLAogICBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJ1Y2RtaWJzLy5jdnNpZ25vcmUsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHNubXBkLy5jdnNpZ25vcmUsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIE1vcmUgTVNWQysrIFdpbjMyIGFnZW50IGZpbGVzLCBncmF0aXMgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xOCAxODoxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3OgoKICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KICAgCjE5OTktMTEtMTggMTc6NTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFwcHMvc25tcGJ1bGtnZXQuYwo6CgogICBDaGVjay1pbiBhZ2VudCBjaGFuZ2VzIHRvIHN1cHBvcnQgV2luMzIgYWdlbnQgYnVpbHQgd2l0aCBNU1ZDKysuCiAgIFRoYW5rcyB0byBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE3IDIxOjUxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIGRlZmF1bHRfc3RvcmUuYzogZHNfdG9nZ2xlX2Jvb2xlYW4gbWlzc2VkIGEgbWFzawogICAKMTk5OS0xMS0xNyAxMzowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogdXBkYXRlLiAgRGVhbHMgd2l0aCBSb3dTdGF0dXMgb2JqZWN0cyBiZXR0ZXIuCiAgIAoxOTk5LTExLTE3IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiB1cGRhdGUuCiAgIAoxOTk5LTExLTE3IDEzOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiB1cGRhdGUgdGhlIHNvIExEIGZvciBsaW51eCB0byAkKENDKS4KICAgCjE5OTktMTEtMTcgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jCiwgbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoZHNfYWdlbnQuaCwga2VybmVsLmMsIHNubXBkLmMsIHNubXBkLjEuZGVmKToKICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKICAgCjE5OTktMTEtMTcgMDc6MzYgIG1zbGlmY2FrCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIEFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcHMgdG8gYnVpbGQuCiAgIAoxOTk5LTExLTE3IDA3OjM1ICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wYnVsa2dldC86IC5jdnNpZ25vcmUsIHNubXBidWxrZ2V0LmRzcDoKCiAgIFByb2plY3QgZmlsZSBmb3IgYnVpbGRpbmcgc25tcGJ1bGtnZXQgdXNpbmcgTVNWQysrIGdyYXRpcyBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE3IDA1OjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBSZXBsYWNlIHVfaW50MTZfdCB3aXRoIG1vcmUgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIHVfc2hvcnQuCiAgIAoxOTk5LTExLTE2IDE0OjU2ICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIEJ1aWxkIHdpdGggZ2V0b3B0LgogICAKMTk5OS0xMS0xNiAxNDo0MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHdpbjMyL3dpbjMyLmRzdywKICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcAosIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgTVNWQyB0b3VjaHVwczoKICAgQWRkZWQgc25tcHRyYXBkIHByb2plY3QgLkRTUCBmaWxlOyBBbGwgLkRTW1BXXSBmaWxlcyBDUi1MRiBsaW5lIHRlcm1pbmF0ZWQ7CiAgIEZpeCB3YXJuaW5ncyBpbiBhc24xLmMgYW5kIHNubXBfYXBpLmM7IFJlbW92ZSB1bnVzZWQgdmFyIGluIHNubXB0cmFuc2xhdGUuYy4KICAgCjE5OTktMTEtMTYgMTA6MjYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB0aGUgVDogZmxhZyBmb3IgLVQgdG8gZ2V0b3B0CiAgIAoxOTk5LTExLTE2IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCiAgIAoxOTk5LTExLTE2IDA5OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKHNubXBsaWIvYXNuMS5jKTogRml4IGVuY29kaW5nIG9mIHJvb3QgT0lEcy4KICAgCjE5OTktMTEtMTYgMDg6NDggIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIEVtYnJhY2UgYWxsIEhQLTkwMDAvNnh4LDd4eCwgOHh4IHNlcmllcyBwbGF0Zm9ybXMsIHdpdGhvdXQgcmVncmV0cy4KICAgCjE5OTktMTEtMTYgMDY6MjEgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmM6IHJlZG8gdGhlIHNubXB0cmFuc2xhdGUgb3B0aW9ucwogICAJdG8gZm9sbG93IHRoZSBjb21tb24gb3B0aW9uIHNldC4gSXNzdWUgd2FybmluZ3Mgd2hlbiBzb21lb25lCiAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KICAgCjE5OTktMTEtMTYgMDM6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCiAgIAoxOTk5LTExLTE1IDIxOjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKICAgCjE5OTktMTEtMTUgMTc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FnZW50LmMsIG1hc3Rlci5jLCBwcm90b2NvbC5jLCBwcm90b2NvbC5oLCBzdWJhZ2VudC5jLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbWFrZSBUQ1Agc3VwcG9ydCBiZXR0ZXIgZm9yIGFnZW50eC4gIFN0aWxsIGhhcyBhIHByb2JsZW0gKEkgYnJva2UgYWdlbnR4KS4KICAgCjE5OTktMTEtMTUgMTY6NDMgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFkZCBOVUxMIHZhcmJpbmQgd2hlbiBFTkRPRk1JQlZJRVcgaXMgcmVhY2hlZC4KICAgCjE5OTktMTEtMTUgMTU6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgIGFuZCBkZWFsaW5nIHdpdGggcGllY2VzIG9mIGluY29taW5nIGRhdGEgdGlsbCB3ZSBoYXZlIGEgZnVsbCBwYWNrZXQuCiAgIAoxOTk5LTExLTE1IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgCjE5OTktMTEtMTUgMTU6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIHNubXBuZXRzdGF0L21haW4uYwo6CgogICAtIChzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMpOgogICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAogICAKMTk5OS0xMS0xNSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgpOiBuZXcgZnVuY3Rpb246IGFzbl9jaGVja19wYWNrZXQoKS4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGluc2VydGVkLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAtIChzbm1wX2FnZW50X2FwaS4zKTogZG9uJ3QgY2FsbCBzdWJhZ2VudF9wcmVfaW5pdCgpLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgdGttaWI6CgogICAtIChtaWIyYywgdGttaWIpOiByZW1vdmUgLXcuCiAgIAoxOTk5LTExLTE1IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCiAgIAoxOTk5LTExLTE1IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KICAgCjE5OTktMTEtMTUgMTU6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICAtIChtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYyk6IG1vdmUgc3ViYWdlbnRfcHJlX2luaXQoKSB0byBpbml0X2FnZW50KCkuCiAgIAoxOTk5LTExLTE1IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCiAgIAoxOTk5LTExLTE1IDE0OjA5ICBuYmEKCiAgICogLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoxOTk5LTExLTE1IDE0OjA1ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgogICAKMTk5OS0xMS0xNSAxNDowMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgUkZDMTI3MS1NSUIudHh0LCBSTU9OLU1JQi50eHQKOgoKICAgLSBtaWJzLzogcmVwbGFjZSBSRkMxMjcxLU1JTi50eHQgd2l0aCBSTU9OLU1JQi50eHQgKFJGQyAxNzU3IHZlcnNpb24pCiAgIAoxOTk5LTExLTE1IDE0OjAwICBuYmEKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wYnVsa2dldC5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICBzbm1wYnVsa2dldC5jOiBuZWVkcyAjaW5jbHVkZSA8Z2V0b3B0Lmg+IChUaGFua3MgdG8gUm9iZXJ0IFN0b3J5KQogICAKMTk5OS0xMS0xNSAwODoyOSAgbXNsaWZjYWsKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIEZpeCBkZXNjcmlwdGlvbiBvZiByZWFkX29iamlkIHJldHVybiB2YWx1ZS4KICAgCjE5OTktMTEtMTUgMDc6NTYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKICAgCjE5OTktMTEtMTQgMDY6MzIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIG1ha2V0YXJnZXQsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1pYnMvSVBTRUMtTUlCLnR4dCwKICAgbWlicy9JUFY2LUlDTVAtTUlCLnR4dCwgbWlicy9JUFY2LU1JQi50eHQsCiAgIG1pYnMvSVBWNi1UQy50eHQsIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwKICAgbWlicy9JUFY2LVVEUC1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluOgoKICAgLSBpcGM2OiBBZGQgdGhlIElQdjYgY29kZSBmcm9tIHRoZSBLYW1lIHByb2plY3QuIEkgaGF2ZSBvbmx5IG1hc3NhZ2VkCiAgIAlpdCBzbyBtdWNoIGFzIHRvIHN0aWxsIGNvbXBpbGUgb24gbm9uLUlQdjYgc3lzdGVtcywgYW5kIGRldGVjdAogICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAJYXV0aG9yOiBpdG9qdW5AaWlqbGFiLm5ldAogICAKMTk5OS0xMS0xNCAwNjoxNSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gc25tcHRyYXBkLjg6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CiAgIAoxOTk5LTExLTE0IDA2OjEyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CiAgIAoxOTk5LTExLTE0IDAyOjQyICBuYmEKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIFNOTVB2Mi1DT05GLnR4dDogY29tbWVudCBvdXQgdGhlIElNUE9SVCBjbGF1c2UKICAgCjE5OTktMTEtMTQgMDI6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmMsIHNubXB0cmFuc2xhdGUuYzogbW92ZSB0aGUgTUlCOmlkIGhhbmRsaW5nIGluc2lkZSByZWFkX29iamlkIGZvcgogICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwogICAKMTk5OS0xMS0xNCAwMjowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQogICAKMTk5OS0xMS0xNCAwMjowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzoga2lsbCBhIHdhcm5pbmcKICAgCjE5OTktMTEtMTQgMDE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgbWlicy9NYWtlZmlsZS5pbiwKICAgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LCBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQKLCBtaWJzL1NOTVAtTVBELU1JQi50eHQsIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dAosIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQKLCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsCiAgIG1pYnMvU05NUHYyLVNNSS50eHQsIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gbWlicy8qLCB2YWNtX3ZhcnMuaDogdXBkYXRlIHRoZSBtaWIgZmlsZXMgdG8gcmZjIDI1NzEtMjU3NS4gQWxzbyBhZGQKICAgCVNOTVBfQ09NTVVOSVRZX01JQiBmcm9tIHRoZSBjb2V4IGRyYWZ0LgogICAKMTk5OS0xMS0xNCAwMTo1NCAgbmJhCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCiAgIAoxOTk5LTExLTE0IDAxOjUzICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBtYW4vc25tcGJ1bGtnZXQuMSwgbWFuL01ha2VmaWxlLmluOgoKICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CiAgIAoxOTk5LTExLTE0IDAxOjUxICBuYmEKCiAgICogbWFuL3NubXB0YWJsZS4xOgoKICAgLSBzbm1wdGFibGU6IGFkZCBpbiB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgc25tcHRhYmxlIG9wdGlvbnMgYmV0d2VlbgogICAJdGhlIG5vcm1hbCBvcHRpb25zLgogICAKMTk5OS0xMS0xNCAwMTo0OCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZSwgc25tcF9wYXJzZV9hcmdzOiBhbGxvdyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgb3B0aW9ucyB0bwogICAKMTk5OS0xMS0xMiAxMzowMSAgbWFyegoKICAgKiBzbm1wbGliLzogbGNkX3RpbWUuYywgbGNkX3RpbWUuaCwgc25tcHVzbS5jOgoKICAgIChsY2RfdGltZS5bY2hdLCBzbm1wdXNtLmMpOiBmaXggZW5naW5ldGltZSB1cGRhdGUgYWxnb3JpdGhtIHRvIGNvbmZvcm0gdG8gc3BlYyByZmMyNTc0IDMuMi43LmIuMQogICAKMTk5OS0xMS0xMiAwODo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogUHJvdmlkZSBhIHVuaXF1ZSBJRCBmb3IgYWxsIGluY29taW5nIFBEVXMKICAgCjE5OTktMTEtMTEgMjI6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL21pYi5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmM6IGFsaWdubWVudCBvZiBvcHRpb24gY29kZS4KICAgCVNvbWUgZW5oYW5jZW1lbnRzIHRvIHRoZSBzbm1wdHJhbnNsYXRlIC1kIG91dHB1dC4KICAgCjE5OTktMTEtMTEgMjI6MTQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBzbm1wY21kLjE6IHVwZGF0ZSBtYW4gcGFnZSB0byBjb3JyZXNwb25kIHRvIHRoZSBuZXcgZ2V0b3B0IHNpdHVhdGlvbgogICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAJcGFnZSwgdGhleSBzdGlsbCB3b3JrIQogICAKMTk5OS0xMS0xMSAwMzozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSAoYWdlbnR4L2NsaWVudC5jKTogU2lsbHkgdHlwbyBpbiBzdGFydCB0aW1lIHN5bmNocm9uaXNhdGlvbgogICAKMTk5OS0xMS0xMCAyMjoxMCAgbmJhCgogICAqIHdpbjMyLzogLmN2c2lnbm9yZSwgZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLAogICBsaWJzbm1wLy5jdnNpZ25vcmUsIGxpYnNubXAvbGlic25tcC5wbGcsCiAgIGxpYnNubXBfZGxsLy5jdnNpZ25vcmUsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLAogICBzbm1wZGVsdGEvLmN2c2lnbm9yZSwgc25tcGRlbHRhL3NubXBkZWx0YS5wbGcsCiAgIHNubXBnZXQvLmN2c2lnbm9yZSwgc25tcGdldC9zbm1wZ2V0LnBsZywKICAgc25tcGdldG5leHQvLmN2c2lnbm9yZSwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLAogICBzbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBzbm1wc2V0Ly5jdnNpZ25vcmUsCiAgIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvLmN2c2lnbm9yZSwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRhYmxlLy5jdnNpZ25vcmUsCiAgIHNubXB0ZXN0Ly5jdnNpZ25vcmUsIHNubXB0ZXN0L3NubXB0ZXN0LnBsZywKICAgc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnCiwgc25tcHRyYXAvLmN2c2lnbm9yZSwgc25tcHRyYXAvc25tcHRyYXAucGxnLAogICBzbm1wdHJhcGQvLmN2c2lnbm9yZSwgc25tcHVzbS8uY3ZzaWdub3JlLAogICBzbm1wd2Fsay8uY3ZzaWdub3JlLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtIHdpbjMyLyo6IGNsZWFuIHVwIHJlcG9zaXRvcnkgZmlsZXMsIGFuZCBhZGQgcHJvcGVyIC5jdnNpZ25vcmUgZmlsZXMKICAgCjE5OTktMTEtMTAgMTU6MjkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcsCiAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3A6CgogICAtIGFwcHMvKjogY2hhbmdlcyBmb3IgZ2V0b3B0IHVzYWdlLCBhbmQgcmV3b3JraW5nIG9mIHNubXBfcGFyc2VfYXJncwogICAKMTk5OS0xMS0xMCAxMjoyMCAgbmJhCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICAtIHdpbjMyLyouZHNwOiB5ZXQgYW5vdGhlciByb3VuZCBvZiBtYWtpbmcgdGhpcyBjcmFwIHdvcmsKICAgCjE5OTktMTEtMTAgMDg6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggQWdlbnRYIG5vdGlmeSBzdXBwb3J0CiAgIAoxOTk5LTExLTEwIDA4OjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgogICAKMTk5OS0xMS0xMCAwODo1NyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKICAgCjE5OTktMTEtMTAgMDg6MzEgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgLSB3aW4zMi8qOiBWQysrIHByb2plY3QgdXBkYXRlcwogICAKMTk5OS0xMS0xMCAwODozMCAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLnBsZzoKCiAgIC0gd2luMzIvKjogZml4ZXMgdG8gdGhlIFZDKysgYnVpbGQgcHJvamVjdHMKICAgCjE5OTktMTEtMDkgMjM6MzAgIG5iYQoKICAgKiBzbm1wbGliL2dldG9wdC5oOgoKICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCiAgIAoxOTk5LTExLTA5IDIyOjIwICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC4gc25tcF9wYXJzZV9hcmdzLmM6IGEgZ2xpdGNoIGluIHRoZSBjb252ZXJzaW9uIHRvIGdldG9wdCAodGhhbmtzIHRvCiAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQogICAKMTk5OS0xMS0wOSAxNToxNSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5vcHQsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGcsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZwosIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnBsZwo6CgogICAtIHZhcmlvdXM6IGFkYXB0IHRvb2xzIHRvIHVzZSBnZXRvcHQgKGFuZCBwdXQgb25lIGluIGZvciBXaW4zMikKICAgCjE5OTktMTEtMDkgMTM6MDkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIERFTU8tTUlCLgogICAKMTk5OS0xMS0wOSAxMzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KICAgCjE5OTktMTEtMDkgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogcmVxdWlyZSB0aGUgREVNTy1NSUIgKGp1c3QgZm9yIHR1dG9yaWFsIHB1cnBvc2VzKS4KICAgCjE5OTktMTEtMDkgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IC1ILgogICAKMTk5OS0xMS0wOSAxMjo1OSAgbmJhCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBzbm1wdHJhcGQuYyxzbm1wdHJhcGRfaGFuZGxlcnMuYzogbWFrZSBpdCBjb21waWxlIHdpdGggVkMrKyA1LjAKICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCiAgIAoxOTk5LTExLTA5IDAxOjUwICBuYmEKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMsCiAgIHBhcnNlLmg6CgogICAtIG1pYi5jLHBhcnNlLmM6IG1ha2UgZXJyb3IgcmVwb3J0aW5nIGluIHBhcnNlciB3b3JrIGFjY29yZGluZyB0byBzcGVjICgtUGUpCiAgIAlzaG93IGRlZmluaW5nIG1vZHVsZXMgaW4gc25tcHRyYW5zbGF0ZSAtZAogICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCiAgIAoxOTk5LTExLTA1IDA2OjIyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIFNheSBnb29kYnllIHRvIFNOTVBfTUFMTE9DLCBtYWxsb2NfemVybywgeGNhbGxvYywgeG1hbGxvYywgYW5kIHhzdHJkdXAuCiAgIFJlc3BlY3RpdmVseSByZXBsYWNlZCB3aXRoIGNhbGxvYywgY2FsbG9jLCBjYWxsb2MsIG1hbGxvYywgYW5kIHN0cmR1cC4KICAgCjE5OTktMTEtMDQgMTM6NDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTcGVlZCB1cCBzcHJpbnRfdmFyaWFibGU6IGhhbHZlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gZ2V0X3N5bWJvbC4KICAgCjE5OTktMTEtMDQgMTA6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogbW92ZSAtcSBmbGFncyB0byAtTy4KICAgCjE5OTktMTEtMDQgMTA6MTkgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlZG8gRnJlZUJTRCA0LjA6IGRlZmluZSBmcmVlYnNkMyBpbiBzL2ZyZWVic2Q0Lmg7IHJlZHVjZSAiZGVmaW5lIiB0aHJhc2hpbmcuCiAgIAoxOTk5LTExLTA0IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IGluY2x1ZGUgaGVhZGVycyBmb3IgY29tcGlsYXRpb24gZm9yIGJvdGggaW50ZXJuYWwgYW5kCiAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KICAgCjE5OTktMTEtMDQgMTA6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgLSBkZWZpbmUgSU5fVUNEX1NOTVBfU09VUkNFIGluIGNvbmZpZy5oIGJ1dCBub3QgaW4gdWNkLXNubXAtY29uZmlnLmguCiAgICAgLSBtb3ZlIHVjZC1zbm1wLWNvbmZpZy5oIHVwIGluIHRoZSBidWlsZCBvcmRlciBiZWZvcmUgc3ViZGlycy4KICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAtIE1ha2UgTUlCRElSUyBwYXJzaW5nIGhhbmRsZSAkSE9NRSB2YXJpYWJsZXMgaW4gaXQuCiAgIAoxOTk5LTExLTA0IDA1OjEyICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KICAgCjE5OTktMTEtMDQgMDQ6MzMgIG1zbGlmY2FrCgogICAqIEFHRU5ULnR4dDoKCiAgIENoYW5nZSBleGFtcGxlIGF3YXkgZnJvbSBTVERDX0hFQURFUlMuCiAgIAoxOTk5LTExLTA0IDA0OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBtaWJncm91cC9taWJJSS9hdC5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jOgoKICAgTW9yZSBTVERDX0hFQURFUlMgY2xlYW51cDogdXNlIEhBVkVfU1RSSU5HX0gsIEhBVkVfU1RETElCX0ggaW5zdGVhZC4KICAgCjE5OTktMTEtMDQgMDI6NDIgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIHRvIGJ1aWxkIEJTRC9PUyA0LjAuMTsgZnJvbSBCZXJ0IERyaWVodWlzIC0tIGRyaWVodWlzQHBsYXliZWluZy5vcmcKICAgCjE5OTktMTEtMDMgMTM6MjAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wOiBrZXkgb2ZmIEdOVV9MSUJSQVJZIHZhbHVlLgogICAKMTk5OS0xMS0wMyAxMzoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYwosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwosIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLAogICB1Y2Qtc25tcC9wcm9jLmg6CgogICBGb2xsb3dpbmcgY2FsbCB0byBmZG9wZW4gKG5lYXIgZ2V0X2V4ZWNfb3V0cHV0KSwgZG8gbm90IGNsb3NlKGZkKS4KICAgCjE5OTktMTEtMDMgMDY6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE5lYXIgbGluZSA2NjM6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCiAgIAoxOTk5LTExLTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBkZWNsYXJlIGZpbmRfYmVzdF90cmVlX25vZGUgZm9yIE1TVkMgYnVpbGQuCiAgIAoxOTk5LTExLTAyIDE1OjQ2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHNubXBfYWdlbnRfYXBpLjMKICAgCjE5OTktMTEtMDIgMTU6MzYgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvY29uZmlnLmg6CgogICBVc2UgSEFWRV9TVERBUkdfSCB3aGVuIGRlY2lkaW5nIHRvIHVzZSB2YXJhcmdzIHZzIEFOU0ktQyBwcm90b3R5cGVzLgogICAKMTk5OS0xMS0wMiAwOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBvdGhlciBoZWFkZXIgZmlsZXMgbmVlZGVkIGJ5IFNOTVAucG0uCiAgIAoxOTk5LTExLTAxIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAtIGRvbid0IGJyZWFrIG9pZHMgaW50byBwaWVjZXMgaWYgcXVpY2tfcHJpbnQgaXMgdHVybmVkIG9uLgogICAgIC0gZGl0dG8gaWYgdGhlIG5ldyBkZWZhdWx0X3N0b3JlIG9wdGlvbiBpcyB0dXJuZWQgb24uCiAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KICAgCjE5OTktMTAtMjkgMTk6NTQgIG1hcnoKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAogICAKMTk5OS0xMC0yOSAxNjo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG1ha2UgaXQgZG8gc25tcHYzLiAgQWRkZWQgbWFueSB0aGluZ3MgdG8gdGhlIG9wdGlvbnMgbWVudS4KICAgCjE5OTktMTAtMjkgMTA6MTUgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBkZWZhdWx0X3N0b3JlLjN7LC5ofQogICAKMTk5OS0xMC0yOSAxMDoxNSAgaGFyZGFrZXIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuaDoKCiAgIC0oZGVmYXVsdF9zdG9yZS4zeywuaH0pOiByZW1vdmVkIGZyb20gQ1ZTIHNpbmNlIHRoZXkgYXJlIGJ1aWx0CiAgIAoxOTk5LTEwLTI5IDEwOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQogICAKMTk5OS0xMC0yOSAxMDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMpOgogICAgIC0gc25tcCBvdmVyIFRDUCBvcHRpb25zOiAtVCBUQ1AuCiAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KICAgCjE5OTktMTAtMjkgMDk6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IHR3byBuZXcgcHJpbnRpbmcgb3B0aW9uczoKICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAtIHByaW50TnVtZXJpY0VudW1zCiAgIAoxOTk5LTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAogICAKMTk5OS0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KICAgCjE5OTktMTAtMjkgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBQYXRjaCBmcm9tIEtlaXRoIFR1c29uOgogICAgIC0gbWlzYyBmaXhlcy4KICAgCjE5OTktMTAtMjggMDY6NDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICByZXBocmFzZSBzdWJ0cmVlIG5vdCBmb3VuZCBjb2RlIGluIF9nZXRfc3ltYm9sLgogICAKMTk5OS0xMC0yOCAwNToyNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaDoKCiAgIE9vcHMhIHJlc3RvcmUgdmVyc2lvbiByMS4xMzEuCiAgIAoxOTk5LTEwLTI4IDA1OjIzICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaDoKCiAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KICAgCjE5OTktMTAtMjggMDQ6NTUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERhdmUncyBjb21tZW50IGFib3V0IHByZV9wYXJzZSBldGMuIHdhcyB0b28gZ29vZCB0byBsb3NlIGluIGUtbWFpbC4KICAgCjE5OTktMTAtMjcgMTc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiB3YXRjaCBmb3IgbnVsbCBjb21tdW5pdGllcyB3aGVuIHByaW50aW5nIGRlYnVnIHN0YXRlbWVudHMuCiAgIAoxOTk5LTEwLTI3IDE3OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBiYWlsIGlmIHdlIGNhbid0IGZpbmQgYW4gaW5kZXggaW4gdGhlIG1pYiB0cmVlIHRvIHVzZSBmb3IKICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCiAgIAoxOTk5LTEwLTI3IDE3OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgogICAKMTk5OS0xMC0yNyAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZCBkZWZhdWx0X3N0b3JlLmggYW5kIHNubXBfbG9nZ2luZy5oCiAgIAoxOTk5LTEwLTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmg6CgogICAtIChsY2RfdGltZS5oKTogZGVmaW5lIGFuZCBjb21tZW50IExDRF9USU1FX1NZTkNfT1BUIGJldHRlci4KICAgCjE5OTktMTAtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAtIG1hcmsgcmVnaW9ucyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGVmYXVsdF9zdG9yZS4zIG1hbnVhbCBwYWdlLgogICAKMTk5OS0xMC0yNyAxNDozNiAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywKICAgZGVmYXVsdF9zdG9yZS4zLmJvdCwgZGVmYXVsdF9zdG9yZS4zLmgsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjM6CgogICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICAgIGRlZmF1bHRfc3RvcmUuMy5oLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zKToKICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KICAgCjE5OTktMTAtMjcgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogc2ltcGxlIGRlYnVnZ2luZyBzbyB5b3UgY2FuIHdhdGNoIHN0dWZmIHJlZ2lzdGVyLgogICAKMTk5OS0xMC0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgIHdyYXAgYXJvdW5kIHRoZSB2YXJpb3VzIGFnZW50IGluY2x1ZGUgZmlsZXMuCiAgIAoxOTk5LTEwLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmgpOiBwcm90b3R5cGUgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KICAgCjE5OTktMTAtMjcgMTQ6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggdXAgdWNkLXNubXAtY29uZmlnLmggYnVpbGRpbmcuCiAgIAoxOTk5LTEwLTI2IDEwOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBBbGxvdyB1bnNpZ25lZCByYW5nZSBmb3IgY291bnRlci9nYXVnZS90aW1ldGlja3MgKGZpeCBCVUcjODQgcGVyIFNhbmRlciBTdGVmZmFubikuCiAgIAoxOTk5LTEwLTI1IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBwYXJzZS5jKTogaGFjayB0byBkbyB3aWxkIGNhcmQgc2VhcmNoZXMgZm9yIGEgbWliIG5vZGUuCiAgIAoxOTk5LTEwLTI1IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGVuYWJsZSAtcCBwcmludGluZyBvZiBvbmx5IGEgc2VjdGlvbiBvZiB0aGUgbWliIHRyZWUuCiAgIAoxOTk5LTEwLTI1IDE0OjEyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMKLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgLSAqOiBjb25maWd1cmUgc3VwcG9ydCBmb3IgZG1hbGxvYyBtYWxsb2MgZGVidWdnZXIgKHd3dy5kbWFsbG9jLmNvbSkKICAgCjE5OTktMTAtMjUgMTQ6MDggIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGQuY29uZi41LmRlZjogbWlub3IgcXVpcmsKICAgCjE5OTktMTAtMjUgMTQ6MDcgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSBzbm1wZGVsdGEuYzogQ09VTlRFUjY0IHdpbGwgZGVyZWZlcmVuY2UgZnJlZWQgcG9pbnRlcgogICAKMTk5OS0xMC0yNSAxMzo1NiAgbmJhCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoCiwgZXZhbF90b29scy5zaDoKCiAgIC0gUlVOVEVTVFMsIFRFU1RDT05GLnNoIGV2YWxfb25lc2NyaXB0LnNoIGV2YWxfdG9vbHMuc2g6IHN1cHBvcnQgbm9uLWJhc2gKICAgCXNoZWxscyAoZWNobyAtbiB2cyBlY2hvIFxcYykuIERvbid0IHJlcXVpcmUgLiBpbiBQQVRICiAgIAoxOTk5LTEwLTI1IDEzOjQwICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gY29uZmlndXJlLmluLCBwcm9jLmM6IHN1cHBvcnQgZm9yIEZyZWVCU0QgMi4xIHdoZXJlIHBzIGRvZXNuJ3QgaGF2ZSBjIGZsYWcKICAgCjE5OTktMTAtMjUgMTM6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIExpbnV4IHBhcnQKICAgCjE5OTktMTAtMjUgMDg6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtaWIuYywgc2NhcGkuYzoKCiAgIG1pbm9yIHJld29yayB0byBjbGFyaWZ5IHNpZ25lZCBjb21wYXJlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEwLTI0IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIHByZW1pYiBkaXJlY3RpdmVzIHdlcmVuJ3QgZ2V0dGluZyByZWFkIGR1ZSB0byBhIG1pc3NpbmcgbmVnYXRpb24gKCEpLgogICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgogICAKMTk5OS0xMC0yNCAwODoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICBoYW5kbGUgbXVsdGlwbGUgY2FsbHMgKGFkZGl0aXZlKSBhbmQgJysncyBhbmQgdGhpbmdzLgogICAKMTk5OS0xMC0yNCAwODoyNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB0eXBvLgogICAKMTk5OS0xMC0yNCAwODoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNOTVBDT05GUEFUSCB1c2VzIHN5c2NvbmZkaXIgbm90IGRhdGFkaXIuCiAgIAoxOTk5LTEwLTIyIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCiAgIAoxOTk5LTEwLTIyIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oCiwgc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBrZXl0b29scy5jLAogICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgIC0gdXNlIG9wZW5zc2wgZm9yIG1kNS9zaGEgc3VwcG9ydCAoZnJvbSBPbGFmdXIgR3VkbXVuZHNzb24pLgogICAKMTk5OS0xMC0yMiAxMDoxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERpc3BsYXkgX3NvbWVfIG9jdGV0IHN0cmluZyBpbmRpY2VzIG9mIG9iamVjdCBpZGVudGlmaWVycyBhcyBxdW90ZWQgcHJpbnRhYmxlLgogICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgogICAKMTk5OS0xMC0yMiAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIGhleCBzdHJpbmdzIGluc2lkZSBvaWRzLgogICAKMTk5OS0xMC0yMiAwNzozOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQogICAKMTk5OS0xMC0yMiAwNjoyOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgRml4IEJVRyAjODMuCiAgIAoxOTk5LTEwLTIxIDEyOjU0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KICAgCjE5OTktMTAtMjEgMTI6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNtYWxsIHBhdGNoIGZyb20gTS4gTGF1a2thbmVuIHRvIGZpeCBIUCBhQ0MgYnVpbGQuCiAgIAoxOTk5LTEwLTIxIDEyOjA5ICBtc2xpZmNhawoKICAgKiBtYW4vOiBzbm1wX2FwaS4zLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBkLjEuZGVmCiwgc25tcG5ldHN0YXQuMSwgc25tcHRlc3QuMToKCiAgIEZpeCBCVUcjNzgKICAgCjE5OTktMTAtMjEgMTA6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB1c2Ugc25tcF9vcGVuX2V4LgogICAKMTk5OS0xMC0yMSAxMDo0MSAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICByZW1pbmRlcnMgZm9yIHNubXBfc2Vzc19wZXJyb3IgdXNhZ2UgYWZ0ZXIgb3Blbi4KICAgc25tcHRhYmxlLmMgLSBvcGVuL2Nsb3NlIHNlc3Npb24gZnJvbSBtYWluKCkuCiAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCiAgIAoxOTk5LTEwLTIxIDEwOjM5ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBGaXh1cHMgZm9yIGJ1aWxkaW5nIHdpdGggTVNWQysrLiAobm8gaHB1eC5jLCBzdXBwbHkgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUykuCiAgIAoxOTk5LTEwLTIxIDEwOjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMKLCBzbm1wX2FwaS5oOgoKICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgcmVhZF9jb25maWcuYyAtIGRyb3AgdW51c2VkIHZhcmlhYmxlLgogICBzbm1wX2FwaS5jIC0gbmV3IG1ldGhvZCBzbm1wX29wZW5fZXggcmVwbGFjZXMgc2V0IGludGVybmFsIGhvb2sgZnVuY3Rpb25zLgogICAKMTk5OS0xMC0yMSAxMDoyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KICAgCjE5OTktMTAtMjEgMTA6MjAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3Igd2l0aG91dCBzcGVjaWZ5aW5nIHNubXBfZXJybm8gX291dHNpZGVfIHRoZSBsaWJyYXJ5LgogICAKMTk5OS0xMC0yMSAxMDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCiAgIAoxOTk5LTEwLTIwIDE4OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgb2lkIHBhcnNlciB0byBoYW5kbGUgc2ltcGxlIGVtYmVkZGVkIHN0cmluZ3MgaW4gb2lkcwogICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICBFRzogLjEuMy5cImhlbGxvXCIuXCdoaVwnIC0+IC4xLjMuNS4xMDQuMTAxLjEwOC4xMDguMTExLjEwNC4xMDUKICAgCjE5OTktMTAtMjAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcGFyc2VkIHN0cmluZ3MgZnJvbSBvaWQncyBpbmNsdWRlIG51bGwgdGVybWluYXRvcnMuCiAgIAoxOTk5LTEwLTE1IDA3OjA5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgZGVmYXVsdF9zdG9yZS5jOgoKICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICBidWcgaW4gYXJyYXktYm91bmRhcnkgY2hlY2sgaW4gc25tcGxpYi9jYWxsYmFjay5jCiAgIHJlcG9ydGVkIGJ5IEJlcnQgSG9sc3RlaW4gMTUgT2N0IDE5OTkuCiAgIAoxOTk5LTEwLTEzIDA3OjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvbWFzdGVyX2FkbWluLmMsIG1pYklJL3N5c3RlbV9taWIuYwo6CgogICAtIG1hc3Rlcl9hZG1pbi5jLCBzeXN0ZW1fbWliLmg6IGluY2x1ZGVzIGZvciBwcm90b3R5cGVzCiAgIAoxOTk5LTEwLTEzIDAzOjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBhZGQgbWlzc2luZyBwcm90byBmb3Igc2F2ZV9wZXJzaXN0ZW50LgogICAKMTk5OS0xMC0xMiAwNjowNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lIGFkZHJlc3MgbGVuZ3RoIGZvciBGcmVlQlNEIHBsYXRmb3JtLgogICAKMTk5OS0xMC0xMiAwNTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIG1pYi5jOgoKICAgbWliLmM6IHF1aWNrX3ByaW50IGlzIGV4cG9zZWQgZm9yIENNVV9DT01QQVRJQkxFIGJ1aWxkcy4KICAgbGNkX3RpbWUuYzogY29tbWVudGVkIHVudXNlZCBkdW1wX2V0aW1lbGlzdF9lbnRyeSB1bmRlciBTTk1QX1RFU1RJTkdfQ09ERS4KICAgCjE5OTktMTAtMDcgMDk6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogTm90aWZpY2F0aW9uIHN1cHBvcnQKICAgCjE5OTktMTAtMDcgMDg6NDIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudF90cmFwLltjaF0pOiBJbXByb3ZlIGFjY2Vzc2liaWxpdHkgZm9yIHN1YmFnZW50cwogICAKMTk5OS0xMC0wNyAwNzoyNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaCwgc25tcGQuaDoKCiAgIC0gKGFnZW50X3RyYXAuYyBhZ2VudF90cmFwLmggYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wZC5oKToKICAgICAtICBSZS13cml0ZSBvZiBhZ2VudCB0cmFwIGhhbmRsaW5nOgogICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgIAlDb25zb2xpZGF0ZSB2MSBhbmQgdjIgdHJhcCBzaW5rIGxpc3RzCiAgIAlQcmVsaW1pbmFyeSBJTkZPUk0gc3VwcG9ydAogICAKMTk5OS0xMC0wNiAxNjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgIC0gU2F2ZSBhbmQgcGFyc2Ugb2xkZXIgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzIHRvIG1ha2Ugc3VyZSBkYXRhIGlzCiAgICAgICBub3QgbG9zdCBkdXJpbmcgc3RvcmFnZSBjcmFzaGVzLgogICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgogICAKMTk5OS0xMC0wNiAwODo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIC0gKGZpeHByb2MpOiBuZXcgY29tbWVudGVkIHZlcnNpb24uCiAgIAoxOTk5LTEwLTA1IDIyOjIyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IGluY2x1ZGUgc3lzdGVtLmggZm9yIHByb3RvdHlwZSBmb3IgY2FsY3VsYXRlX3RpbWVfZGlmZgogICAKMTk5OS0xMC0wNSAyMjoxOCAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAogICAKMTk5OS0xMC0wNSAyMTo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSBzbm1wX2RlYnVnLmg6IG1ha2UgdGhlIERFQlVHKiBtYWNyb3Mgc2FmZSBmb3IgdXNlIGluIGNvbXBvdW5kIHN0YXRlbWVudHMKICAgCjE5OTktMTAtMDUgMDc6MjMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMsIHN1YmFnZW50LmMKOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOiBXb3JraW5nIFNFVCBzdXBwb3J0CiAgIAoxOTk5LTEwLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgogICAKMTk5OS0xMC0wNCAxMzo1MiAgbmJhCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgLSBzdWJhZ2VudC5oLCBzdWJhZ2VudC5jLCBtaWJfbW9kdWxlcy5jOiBwcmVfaW5pdF9zdWJhZ2VudCBjb25mdXNlcwogICAJY29uZmlndXJlIGludG8gYmVsaWV2aW5nIHRoZXJlIGlzIGEgaW5pdF9zdWJhZ2VudCBmdW5jdGlvbi4KICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAogICAKMTk5OS0xMC0wNCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNTZXJ2aWNlcyBjb25maWd1cmFibGUuCiAgIAoxOTk5LTEwLTA0IDEzOjM4ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgKOgoKICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwogICAKMTk5OS0xMC0wNCAxMTo1MiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBjb25maWd1cmUuaW46CXJlbW92ZSAtcGVkYW50aWMgZnJvbSAtLXdpdGgtZGV2ZWxvcGVyLCBhbmQgdGhlIHN5c3RlbSBoZWFkZXJzCiAgIAlhcmUgbm90IHByZXBhcmVkIGZvciBpdCAoYXQgbGVhc3Qgb24gTGludXggYW5kIE5ldEJTRCkKICAgCjE5OTktMTAtMDQgMTE6NTAgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKICAgCjE5OTktMTAtMDQgMTE6NDggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIGFwcHMvc25tcHRyYXAuYwo6CgogICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKICAgCjE5OTktMTAtMDQgMTA6MjIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogVHJpdmlhbCAncGluZycgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMTAtMDQgMTA6MTcgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaAo6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5bY2hdCiAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gQ29tcGxldGUgc3ViYWdlbnQgaGFuZGxpbmcgb2YgQWdlbnQgQ2FwYWJpbGl0aWVzIC8gc3lzT1JUYWJsZQogICAKMTk5OS0xMC0wNCAxMDoxNSAgZGF2ZXMKCiAgICogc25tcGxpYi9jYWxsYmFjay5oOgoKICAgLSAoc25tcGxpYi9jYWxsYmFjay5oKTogSW5jcmVhc2UgbnVtYmVyIG9mIGFwcGxpY2F0aW9uIGNhbGxiYWNrcyBzdXBwb3J0ZWQKICAgCjE5OTktMTAtMDQgMDk6NTggIGRhdmVzCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgLSBFbnN1cmUgc3ViYWdlbnQgaXMgaW5pdGlhbGlzZWQgZWFybHkgKHByaW9yIHRvIE1JQiByZWdpc3RyYXRpb24sIGV0YykKICAgCjE5OTktMTAtMDQgMDk6NTMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcF92YXJzLmgsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBzbm1wX3ZhcnMuaCBtaWJJSS9zeXNPUlRhYmxlLmMKICAgICAgYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKICAgCjE5OTktMTAtMDQgMDM6NTggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgpOgogICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CiAgIAoxOTk5LTEwLTAyIDE0OjI4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgLSBGaXggYSBwcm9ibGVtIHdpdGggcmUtdXNlZCBQRFUgc3RydWN0dXJlcyBiZWluZyBmcmVlZCB0d2ljZS4KICAgCjE5OTktMTAtMDEgMDk6NDggIGRhdmVzCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBGaXggaW5jb21wYXRhYmlsaXR5IGluIGFnZW50IGxpYnJhcnkgbmFtZXMKICAgCjE5OTktMDktMzAgMDE6MDkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAtIChtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jKToKICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQogICAKMTk5OS0wOS0yOSAyMzo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9ocHV4LmM6CgogICBSZW1vdmUgdW51c2VkIGZpbGUuLiBzbm1wbGliL2hwdXguYwogICAKMTk5OS0wOS0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIC0gKG1pYl9tb2R1bGVzLmMpOiBpbmNsdWRlIG5ldGluZXQvaW4uaAogICAKMTk5OS0wOS0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCk6IGZpeCBidWdzLgogICAKMTk5OS0wOS0yOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLnZhcnR5cGVzLmNvbmYpOiByZW1vdmVkIGV4dHJhIFxuLgogICAKMTk5OS0wOS0yOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogcnVuIG50b2hsIG9uIGlwIGFkZHJlc3NlcyBzdG9yZWQgaW4gYSBsb25nLgogICAKMTk5OS0wOS0yOSAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCiAgIAoxOTk5LTA5LTI5IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50Lmg6CgogICAtIChjbGllbnQuaCk6IGRlZmluZSBERUZBVUxUX01JQl9QUklPUklUWSB0byAyNTUuCiAgIAoxOTk5LTA5LTI5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIChjbGllbnQuYyk6IHRoYXRzICJ0aW1ldmFsIiBub3QgInRpbWV2YWxlIiBEYXZlIChoZWhlKS4KICAgCjE5OTktMDktMjkgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gbmV3IGV4dHJhY3Rpb24gYW5kIGZyZWVpbmcgZnVuY3Rpb25zLgogICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KICAgCjE5OTktMDktMjkgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZGVkIE1pa2UgTWljaGF1ZCB0byB0aGUgdGhhbmsgeW91IGxpc3QuCiAgIAoxOTk5LTA5LTI5IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gZml4IFJBTkxJQiB0ZXN0aW5nIGZvciAtLWVuYWJsZS1zaGFyZWQuCiAgIAoxOTk5LTA5LTI5IDE0OjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSb2J1c3QgY29weSBvZiBpbmZvcm1hdGlvbiB0byB0cmVlLCBpbXBvcnRfbGlzdCwgZGlzcGxheSBoaW50cy4KICAgCjE5OTktMDktMjkgMTI6MTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsCiAgIHByb3RvY29sLmgsIHN1YmFnZW50LmM6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCiAgIAoxOTk5LTA5LTI5IDExOjQ4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOiBDaGFuZ2UgaW4gTUlCIHJlZ2lzdHJhdGlvbiBpbnRlcmZhY2UKICAgCjE5OTktMDktMjkgMTE6NDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOgogICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgIChzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZGVuIGluIHN1YmFnZW50cyB3aXRoIHRoZSBtYXN0ZXIncyB2YWx1ZSkKICAgCjE5OTktMDktMjkgMTE6NDMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aXNpb24gdG8gdW5yZWdpc3RlciBNSUJzIGJ5IHNlc3Npb24KICAgCjE5OTktMDktMjkgMTE6MzggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtICdDaGlsZHJlbicgbm9kZXMgbm93IGhhdmUgYSBkaWZmZXJlbnQgc3RhdHVzLCBhbmQgc2hvdWxkbid0IGJlIGZyZWVkLiBPb3BzIQogICAKMTk5OS0wOS0yOSAxMTozNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgLSBJbXByb3ZlIHJlZ2lzdHJ5IGVycm9yIGhhbmRsaW5nCiAgICAgLSBDb3JyZWN0bHkgaGFuZGxlIHVucmVnaXN0ZXJpbmcgTUlCIHJlZ2lvbnMKICAgCjE5OTktMDktMjkgMTE6MjMgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogQ29ycmVjdCB2YWx1ZSBvZiBkZWZhdWx0IHJlZ2lzdHJhdGlvbiBwcmlvcml0eQogICAKMTk5OS0wOS0yOSAxMToxNyAgZGF2ZXMKCiAgICogc25tcGxpYi86IG10X3N1cHBvcnQuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaAo6CgogICAtIChtdF9zdXBwb3J0Lmggc25tcF9hcGkuW2NoXSk6IFN1cHBvcnQgZm9yIHNlc3Npb24gYW5kIGluY29taW5nIHRyYW5zYWN0aW9uIElEcwogICAKMTk5OS0wOS0yOSAxMToxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogcHJvdGVjdCBzbm1wX2Nsb3NlKCkgYWdhaW5zdCBhIG51bGwgU2Vzc2lvbnMgbGlzdAogICAKMTk5OS0wOS0yOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaAosIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAtIG1ha2UgbGlidWNkYWdlbnQgYW5kIGxpYnVjZG1pYnMgYXMgc2VwZXJhdGUgbGlicmFyaWVzLiAgSW4gdGhlb3J5LAogICAgICAgeW91IHNob3VsZG4ndCBuZWVkIGxpYnVjZG1pYnMgdG8gdXNlIGxpYnVjZGFnZW50LgogICAKMTk5OS0wOS0yNyAxNjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KICAgCjE5OTktMDktMjIgMTI6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgLSBJbXByb3ZlZCBlcnJvciBzdGF0dXMgYWdncmVnYXRpb24uCiAgIAoxOTk5LTA5LTIyIDEwOjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSW1wcm92ZWQgQWdlbnRYIHJlc3BvbnNlIGhhbmRsaW5nCiAgIAoxOTk5LTA5LTIyIDEwOjAwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEVuc3VyZSByZWdpc3RyeSBpcyBpbml0aWFsaXNlZCBjb3JyZWN0bHkgb24gc3ViYWdlbnRzCiAgIAoxOTk5LTA5LTIyIDA5OjU4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IHJlbW92ZSByZWR1bmRhbnQgcm91dGluZXMKICAgCjE5OTktMDktMjIgMDk6NTQgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgdmFyX3N0cnVjdC5oKToKICAgICBDaGFuZ2UgdGhlIHdheSB0aGUgTUlCIHJlZ2lzdHJ5IGhhbmRsZXMgcmVnaXN0ZXJlZCByYW5nZXMuCiAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQogICAKMTk5OS0wOS0yMiAwOTozNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwogICAKMTk5OS0wOS0yMiAwOTozMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3ZpZGUgbWV0aG9kIGZvciBwcmlvcml0aXNlZCByZWdpc3RyYXRpb24KICAgCjE5OTktMDktMjIgMDk6MzEgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jKTogc3R1cGlkIHR5cG8KICAgCjE5OTktMDktMjIgMDk6MjcgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogc3R1cGlkIHR5cG8KICAgCjE5OTktMDktMjEgMTA6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtKG1pYi5jKSB1bmRvIGVycm9uZW91cyBjaGFuZ2UgdG8gaW5pdF9taWIgKHRoYW5rcyBOQiEpCiAgIAoxOTk5LTA5LTIxIDA5OjMyICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBkLmMpOiBTaW1wbGUgcnVuLXRpbWUgZHVtcCBvZiByZWdpc3RlcmVkIE1JQnMKICAgCjE5OTktMDktMjEgMDk6MjUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKICAgCjE5OTktMDktMjEgMDk6MjEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGhhbmRsZSBhZGRpbmcgJ2Vycm9yJyB0eXBlIHZhcmlhYmxlcyB0byBhIFBEVQogICAKMTk5OS0wOS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlIHRvIDIuMTMuCiAgIAoxOTk5LTA5LTE3IDExOjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCiAgIAoxOTk5LTA5LTE3IDExOjI0ICBtc2xpZmNhawoKICAgKiBGQVEsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLXJlbW92ZSBvbGQtc3R5bGUgaW5pdCBmb3IgcmVwbGFjZSBtaWIgZmVhdHVyZS4KICAgCjE5OTktMDktMTcgMTE6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgLSByZW1vdmUgdW5uZWVkZWQgdXNlIG9mIHN0YXRpYyB2YXIgImxhc3QiCiAgIAoxOTk5LTA5LTE3IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hcGkuMzoKCiAgIC0gKHNubXBfYXBpLjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAtIGZpeCBjb21tZW50cy4KICAgCjE5OTktMDktMTYgMTQ6MTYgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLXBlciBhZ3JlZW1lbnQgd2l0aCBNYXJra3UsIG5vIHN1cHBvcnQgbmVlZGVkIGZvciBTb2xhcmlzLXNwZWNpZmljIHRocmVhZHMuCiAgIAoxOTk5LTA5LTE1IDExOjMwICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbXRfc3VwcG9ydC5jLAogICBzbm1wbGliL210X3N1cHBvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZmluZSB0dW5pbmcgbXQgc3VwcG9ydAogICAKMTk5OS0wOS0xNSAwOTo0NSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zCiwgc25tcF9vcGVuLjMsIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMKLCBzbm1wX3NlbmQuMywgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywKICAgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLCBzbm1wX3Nlc3NfaW5pdC4zCiwgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsCiAgIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywgc25tcF9zZXNzX3Nlc3Npb24uMywKICAgc25tcF90aW1lb3V0LjM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMsIHNubXBfb3Blbi4zLAogICAgIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMsIHNubXBfc2VuZC4zLAogICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICBzbm1wX3Nlc3NfaW5pdC4zLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLCBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsCiAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAtIGNyZWF0ZSBzb21lIGZha2Ugc291cmNpbmcgbWFuIHBhZ2VzIGZvciBmdW5jdGlvbnMuCiAgIAoxOTk5LTA5LTE1IDA2OjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgaW5jbHVkZSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmggZm9yIGJlbmVmaXQgb2YgbWliX21vZHVsZV9kb3RfY29uZi5oCiAgIAoxOTk5LTA5LTE0IDEzOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAogICAKMTk5OS0wOS0xNCAxMzowMCAgbWFyegoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IGZpeCBzcHVyaW91cyBlcnJvciBtZXNzYWdlIHdoZW4gc25tcF9wYXJzZV9vaWQgZmFpbHMKICAgCjE5OTktMDktMTQgMDk6NTMgIG1zbGlmY2FrCgogICAqIEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCjoKCiAgIC0oRkFRLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL3BhcnNlLiopIGFkZCByZXBsYWNlIE1JQiBjYXBhYmlsaXR5KGV4cGVyaW1lbnRhbCkKICAgCjE5OTktMDktMTMgMjA6MjAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgcmUtYXNzZXJ0IE5pZWxzJyBwYXRjaCB0byBzbm1wX3NlbmQgdG8gZnJlZSB2Mi92MSBUcmFwLVBEVXMKICAgCjE5OTktMDktMTMgMTU6MDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYwosIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIHN1YmFnZW50LmMsCiAgICAgc3ViYWdlbnQuaCwgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAtIHVzZSBjYWxsYmFja3MgZXZlcnl3aGVyZSBuZWVkZWQgdG8gbm90IGNhbGwgbWliIG1vZHVsZSBjb2RlIGRpcmVjdGx5LgogICAgICAgLSBnZXQgcmlkIG9mIGFsbCBpbnN0YW5jZXMgb2YgVVNJTkdfIGluIGxpYmFnZW50IGNvZGUuCiAgIAoxOTk5LTA5LTEyIDIyOjAwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCiAgIAoxOTk5LTA5LTEyIDIxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGFkZCBhIG1pc3NpbmcgaW5jbHVkZSBmaWxlLgogICAKMTk5OS0wOS0xMiAyMTo1OCAgbmJhCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICAtIFRFU1RDT05GLnNoOiBmaXggc29tZSBleHBvcnRzIHRvIGV4cG9ydCB0aGUgcmlnaHQgdmFyaWFibGUuCiAgIAoxOTk5LTA5LTEyIDIxOjU3ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBhZ2VudC8qLCBzbm1wbGliLyo6IG1hbGxvYyBmaXhlcywgc29tZSBwcm92b2tlZCBieSB0aGUgY29ycmVjdGVkCiAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgogICAKMTk5OS0wOS0xMiAyMTo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCiAgIAoxOTk5LTA5LTA5IDEzOjU5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlLmMgd29yayBhcm91bmQgY29yZSBkdW1wIGZyZWVpbmcgVENzIHRoYXQgc3BlY2lmeSByYW5nZXMuCiAgIAoxOTk5LTA5LTA5IDAyOjMxICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHdpbjMyL2NvbmZpZy5oOgoKICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgogICAKMTk5OS0wOS0wOSAwMjoyMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICAtKHdpbnN0dWIuYykgSGFjayB0byBhbGxvdyBzbm1wbmV0c3RhdCAtYSB0byB3b3JrIG9uIEFJWDQgKHNpYykuCiAgIAoxOTk5LTA5LTA4IDIyOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtKG1pYmluY2wuaCkgY29tbWVudCBvdXQgZHVwbGljYXRlICNpbmNsdWRlIGhlYWRlciBsaW5lcy4KICAgCjE5OTktMDktMDggMjI6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KICAgCjE5OTktMDktMDggMTc6NTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtdF9zdXBwb3J0LmMsIG10X3N1cHBvcnQuaDoKCiAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKICAgCjE5OTktMDktMDggMTc6NDggIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtKGNvbmZpZyosd2luMzIvKixzbm1wbGliLyopIHJlc291cmNlIGxvY2tpbmcgb3JpZ2luYWxseSBmcm9tIE1hcmtrdSBMYXVra2FuZW4KICAgCjE5OTktMDktMDggMTc6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBtaWJJSS9pY21wLmMsCiAgIG1pYklJL2ludGVyZmFjZXMuYywgbWliSUkvaXAuYywgbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jOgoKICAgbWliaW5jbC5oLCBtaWJncm91cC9taWJJSS8qIC0gZml4dXAgZm9yIEN5Z1dpbjMyIGJ1aWxkCiAgIAoxOTk5LTA5LTA4IDEzOjA0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIC0oc25tcGxpYi9zbm1wX2NsaWVudC4qKSBhZGQgc25tcF9zcGxpdF9wZHUsIHNubXBfdmFyYmluZF9sZW4gbWV0aG9kcy4KICAgCjE5OTktMDktMDggMTM6MDAgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKHRlc3RpbmcvUlVOVEVTVFMpIHByZWZpeCBQQVRIIHdpdGggLiBhbmQgLi4gLCBhcyB0aGUgc2NyaXB0IGNoYW5nZXMgZGlyLgogICAKMTk5OS0wOS0wOCAwNzo1MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwcm9jZXNzaW5nICgtbGQgYW5kIHNpbWlsYXIpCiAgIAoxOTk5LTA5LTA4IDA3OjUxICBuYmEKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSBzbm1wZC4xLmRlZjogZml4IGEgZm9ybWF0dGluZyBwcm9ibGVtCiAgIAoxOTk5LTA5LTA4IDA3OjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIGFnZW50eC9zdWJhZ2VudC5jLAogICBtaWJJSS9zeXNPUlRhYmxlLmM6CgogICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTA5LTA4IDA3OjQ4ICBuYmEKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCiAgIAoxOTk5LTA5LTA4IDA3OjQ2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX2FwaS5oOiBtb3ZlIGluY2x1c2lvbiBwcm90ZWN0aW9uIHRvIHRoZSByZWFsIGJlZ2lubmluZy9lbmQgb2YgdGhlIGZpbGUKICAgCjE5OTktMDktMDggMDc6NDUgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCiAgIAoxOTk5LTA5LTA4IDA1OjE2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKICAgCjE5OTktMDktMDcgMjA6MTkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIHNubXB0cmFwLmMgLSByZXdvcmsgZml4IGJ1ZyAjNTQgKG1pc3NlZCBlbHNlKS4KICAgCjE5OTktMDktMDcgMjA6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIG1hbi9zbm1wX2FwaS4zLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKGFnZW50X3RyYXAuYyxzbm1wdHJhcC5jLHNubXBfYXBpLlszY10pIC0gc25tcF9mcmVlX3BkdSBmaXggQnVnICM1NCBwZXIgTmllbHMgQi4KICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KICAgCjE5OTktMDktMDcgMTU6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCiAgIAoxOTk5LTA5LTA3IDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIHJlbW92ZSB1bm5lZWRlZCBzdHJkdXAgdG8gRmlsZSB2YXJpYWJsZSBmcm9tIGluaXRfbWliX2ludGVybmFscy4KICAgCjE5OTktMDktMDcgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0oc25tcF9hcGkuaCkgc3RydWN0IHBkdSBhbmQgc25tcF9zZXNzaW9uIGFncmVlOiBsb25nIHR5cGUgZm9yIHZlcnNpb24gbWVtYmVyLgogICAKMTk5OS0wOS0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICh3aW4zMipsaWJzbm1wLmRlZikgLSBhZGQgbmV3IHNubXBfZ2V0X3Rva2VuIHRvIGxpc3QuCiAgIAoxOTk5LTA5LTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmg6CgogICAoZGVmYXVsdF9zdG9yZS4qKSAtIG1ha2UgM3JkIHBhcmFtIHRvIGRzX3NldF9zdHJpbmcgdHlwZSBvZiBjb25zdCBjaGFyICouCiAgIAoxOTk5LTA5LTA3IDE1OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KICAgCjE5OTktMDktMDcgMTQ6NDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLShwYXJzZS4qKSBmaXggc21hbGwgbWVtb3J5IGxlYWtzOyBhbGxvdyBJTkRFWHtJTlRFR0VSLi4ufSBjbGF1c2VzOwogICAgICAgICAgICAgIGFsbG93IGxhcmdlciBERVNDUklQVElPTiBjbGF1c2VzIFttYXggODE5Ml0uCiAgIAoxOTk5LTA5LTAzIDE1OjAxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KICAgCjE5OTktMDktMDMgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCBmYWxsIG9mZiB0aGUgZW5kIG9mIHRoZSBzZWFyY2ggdHJlZS4KICAgCjE5OTktMDktMDMgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChzbm1wbGliL01ha2VmaWxlLmluKTogaW5zdGFsbCBtb3JlIGxpYnJhcnkgaGVhZGVycy4KICAgCjE5OTktMDktMDMgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOgogICAgIC0gaW5zdGFsbCBsaWJhZ2VudC5hLgogICAgIC0gbWtkaXJoZWlyIG9uIG5lZWRlZCBuZXcgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLgogICAKMTk5OS0wOS0wMyAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgYWdlbnQgaGVhZGVyIGZpbGVzLgogICAKMTk5OS0wOS0wMyAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgc25tcF92YXJzLmxpbnV4LmgKOgoKICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTktMDktMDIgMDg6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KICAgCjE5OTktMDktMDIgMDc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IHNodXRkb3duX3N1YmFnZW50IC0+IHN1YmFnZW50X3NodXRkb3duIHNvIGNvbmZpZ3VyZQogICAgIGRvZXNuJ3QgZmluZCBpdC4KICAgCjE5OTktMDktMDIgMDY6MzggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCiAgIAoxOTk5LTA4LTMxIDA5OjI2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KICAgCjE5OTktMDgtMzEgMDg6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0oYWdlbnRfdHJhcC5jKSBmaXggcmVjZW50IG1lbW9yeSBsZWFrLCBhbmQgc2l6ZW9mKG9iamlkX3NubXB0cmFwKSBidWcuCiAgIAoxOTk5LTA4LTMwIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jKTogeWV0IG1vcmUgZGVidWdnaW5nLgogICAKMTk5OS0wOC0zMCAwOTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIG1hc3Rlci5jLAogICBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jOgoKICAgLSAoY2xpZW50LmMsIG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jKToKICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgIC0gdXNlIG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzIGluc3RlYWQgb2YgZXh0ZXJuYWwgdmFyaWFibGVzLgogICAKMTk5OS0wOC0zMCAwOTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICBzbm1wZC5jLCB1dGlsX2Z1bmNzLmMsIHN5c09SVGFibGUuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgLSBuZWVkcyBtdWNoIG1vcmUgd29yay4KICAgICAgIC0gbWFueSBwYXJhbWV0ZXJzIGFyZSBub3cgY29udHJvbGxlZCBieSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncwogICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgIC0gbWVyZ2UgaW5pdF9zbm1wIGFuZCB0aGUgY3VzdG9tIHZlcnNpb24gY2FsbGVkIGluc2lkZSB0aGUgYWdlbnQuCiAgICAgLSBhZGQgYSBuZXcgcGxhY2UgZm9yIHRyYXAgc3BlY2lmaWMgYWdlbnQgY29kZSAoYWdlbnRfdHJhcC5bY2hdKS4KICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgogICAKMTk5OS0wOC0yOCAwNzoyOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgogICAKMTk5OS0wOC0yOCAwNzoxOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfYWxhcm0uMy4KICAgCjE5OTktMDgtMjcgMDk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCiAgIAoxOTk5LTA4LTI3IDA4OjAzICBtc2xpZmNhawoKICAgKiBUT0RPOgoKICAgSG93YXJkIFNwaW5kZWwgc3VnZ2VzdHMgYW4gQVBJIGZvciB0cmFwcyB3aXRoIHBhc3NfcGVyc2lzdC4KICAgCjE5OTktMDgtMjcgMDc6MzUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW46CgogICAtKGNvbmZpZ3VyZSosIHNlZHNjcmlwdCopIGNoYW5nZSAuLi5FWFRFTklTLi4uICB0byAuLi5FWFRFTlNJLi4uCiAgIAoxOTk5LTA4LTI2IDEzOjQwICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBkb24ndCBidWlsdCB0YXJnZXRzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkCiAgIAoxOTk5LTA4LTI2IDEzOjE4ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAogICAKMTk5OS0wOC0yNCAxNzo0MyAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KICAgCjE5OTktMDgtMjQgMTc6MzkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCiAgIAoxOTk5LTA4LTI0IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAuMSApCiAgIAoxOTk5LTA4LTI0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCiAgIAoxOTk5LTA4LTI0IDE2OjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBUMi5zaCwKICAgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0X2tleWNoYW5nZS5zaCwgdGVzdF9rdWwuc2g6CgogICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgogICAKMTk5OS0wOC0yNCAxNjowNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtKGNvbmZpZ3VyZS4qKSBtb3ZlIHN0YXRlbWVudCBhYm91dCB1Y2REZW1vUHVibGljIGludG8gY29tbWVudCBmaWVsZC4KICAgCjE5OTktMDgtMjQgMTY6MDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogNC4wLjEgdXBkYXRlCiAgIAoxOTk5LTA4LTI0IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHZlcnNpb24gc2V0dGluZyBpbiBzbm1wX2FwaS5jLiAgTm90IG5lZWRlZCB0aGVyZS4KICAgCjE5OTktMDgtMjQgMTU6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIGFwcGx5IE5pY2sgQW1hdG8ncyBwYXRjaDogcHJldmVudCBTTVVYIGNsb3NlIG9uIHBhcnNlIG9yIGVycm9yLgogICAKMTk5OS0wOC0yNCAxNDoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N3cnVuLmMsIG1pYklJL2ljbXAuYywKICAgbWliSUkvaXAuYywgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9wcm9jLmM6CgogICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgogICAKMTk5OS0wOC0yNCAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hbGxfc3lzdGVtLmg6CgogICAtIChhbGxfc3lzdGVtLmgpOiByZW1vdmUuICBhZ2Fpbi4KICAgCjE5OTktMDgtMjQgMTQ6MDUgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCiAgIAoxOTk5LTA4LTI0IDEzOjQxICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydDotKQogICAKMTk5OS0wOC0yNCAxMzozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXB2My5jKToKICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KICAgCjE5OTktMDgtMjQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KICAgCjE5OTktMDgtMjQgMTI6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBjb3JyZWN0IHN5c09SVGFibGUgZW50cnkuCiAgIAoxOTk5LTA4LTI0IDEwOjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCiAgIAoxOTk5LTA4LTI0IDA2OjE5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFQuYywgZXRpbWV0ZXN0LmMsCiAgIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmM6CgogICBBZGQgIi4iIHRvIFBBVEggZm9yIFJVTlRFU1RTOyBEcm9wIG9wdHJlc2V0IHRvIGJ1aWxkIG1vc3QgcGxhdGZvcm1zCiAgIAoxOTk5LTA4LTI0IDA1OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgQVNOX1NIT1JUX0xFTiBoYWNrIC0ga25vd24gdG8gZHVtcCBjb3JlIGluIGFnZW50LgogICAKMTk5OS0wOC0yNCAwNDo0NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KICAgCjE5OTktMDgtMjMgMTY6NDQgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgc25tcHVzbS4xIG1hbnVhbCBwYWdlLgogICAKMTk5OS0wOC0yMyAxNjoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wICkKICAgCjE5OTktMDgtMjMgMTY6MTcgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogcmVtb3ZlIHZlcnNpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24KICAgCjE5OTktMDgtMjMgMTY6MTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWw6CgogICAtIChUMDI4c25tcHYzZ2V0ZmFpbCk6IHNubXB2MyBnZXQgZmFpbHVyZSB0ZXN0LgogICAKMTk5OS0wOC0yMyAxNjowNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdmVyc2lvbiB1cGRhdGUKICAgCjE5OTktMDgtMjMgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhBQ0shIGZpeHVwIHNob3J0IGxlbmd0aCAoZmlyc3QgcHV0IGNvcnJlY3QgY29tbXVuaXR5IHN0cmluZyBpbiBwZHUtPiApLgogICAKMTk5OS0wOC0yMyAxNDowMiAgbXNsaWZjYWsKCiAgICogRkFRLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZXNjcmliZSBVU0VfQVNOX1NIT1JUX0xFTiBpbiBGQVEsIGFuZCBpbXBsZW1lbnQgaW4gX3NubXBfYnVpbGQuCiAgIAoxOTk5LTA4LTIzIDEzOjU0ICBuYmEKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBfdmFycy5jOiBtb3ZlIHNvbWUgLXYgbG9nZ2luZyB0byBhIG1vcmUgcmF0aW9uYWwKICAgCXBsYWNlLgogICAKMTk5OS0wOC0yMyAxMjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChwcm90b2NvbC5jKTogYWxsb3cgTlVMTCBzdHJpbmdzIGluIGFnZW50WCBwYWNrZXRzLgogICAKMTk5OS0wOC0yMyAwOTowMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBUZXN0IHBvaW50ZXIgYmVmb3JlIGRlcmVmZXJlbmNlIGluIHVzbV9mcmVlX3VzZXIKICAgCjE5OTktMDgtMjMgMDk6MDIgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFNwZWxsIGNoZWNrOiBzaW1pbGFyCiAgIAoxOTk5LTA4LTIzIDA5OjAwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzIgYnVpbGQgZml4ZXMKICAgCjE5OTktMDgtMjMgMDc6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYW5zaSBtZW50aW9uZWQuCiAgIAoxOTk5LTA4LTIzIDA2OjE0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgd2luMzIvY29uZmlnLmg6CgogICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBjb25maWdfbG9hZF9taWIKICAgCjE5OTktMDgtMjIgMjM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIGFnZW50eC9tYXN0ZXJfYWRtaW4uYzogZmFpbHVyZSB3aGVuIGNsb3NpbmcgZmlyc3QgYWdlbnRzIHNlc3Npb24KICAgCSh1bmluaXRpYWxpemVkIHZhcmlhYmxlKS4KICAgCjE5OTktMDgtMjIgMTc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiB2ZXJzaW9uIC0+IHVfbG9uZy4KICAgCjE5OTktMDgtMjIgMTc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA4LTIyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIC0td2l0aG91dC1kdW1teS12YWx1ZXMgaXMgZGVmYXVsdCBhZ2Fpbi4KICAgICAtIGNsZWFudXAgb2YgLS1oZWxwIHN0dWZmLgogICAgIC0gZml4IG9mIHBlcmlzdGVudCBkaXJlY3RvcnkgY3JlYXRpb24uCiAgIAoxOTk5LTA4LTIyIDE3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLzogSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUKLCBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsCiAgIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywgbGliaXBmd2MuaDoKCiAgIC0gKGlwZmNoYWlucyk6IHJlbW92ZWQgZnJvbSBkaXN0cmlidXRpb24uICBOZXdlciBvbmUgaW4gZnRwJ3MgY29udHJpYiBkaXIuCiAgIAoxOTk5LTA4LTIwIDE3OjEwICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNyApCiAgIAoxOTk5LTA4LTIwIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGxhc3QgbWludXRlIGNoYW5nZXMKICAgCjE5OTktMDgtMjAgMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBzbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCwgYXNuMS5jKTogNjRiaXQgY2xlYW51cC4KICAgCjE5OTktMDgtMjAgMTM6NTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSAoc25tcC5jb25mLjUuZGVmLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfbG9nZ2luZy5jKToKICAgICAtIHR1cm4gb2ZmIHRpbWUgc3RhbXAgbG9nZ2luZyBieSBkZWZhdWx0LiAgSXQgbXVzdCBiZSBleHBsaWNpdGx5CiAgICAgICByZXF1ZXN0ZWQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRvIHR1cm4gaXQgb24uCiAgICAgICAodGhlIHJlYXNvbiBpcyB0aGF0IGEgbG90IG9mIGxvZ2dpbmcgaXMgaW5jcmVtZW50YWwgaW4gbmF0dXJlIGFuZAogICAgICAgaXMgbm90IGxpbmUgYnVmZmVyZWQgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIGxvZ2dpbmcgcm91dGluZXMuCiAgICAgICBUaGUgb3RoZXIgc29sdXRpb24gaXMgdG8gaGF2ZSB0aGUgbG9nZ2luZyByb3V0aW5lcyBkZXRlY3Qgd2hlbiB0bwogICAgICAgcHJpbnQgdGltZXN0YW1wcyBieSB3YXRjaGluZyBvdXQgZm9yIFxuJ3MuICBCdXQsIG5vdCB0aGlzIHJvdW5kLgogICAKMTk5OS0wOC0yMCAxMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywKICAgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgIC0gbWFrZSBsb2dnaW5nIG9mIHRpbWVzdGFtcHMgb3B0aW9uYWwgYnkgYSBzbm1wLmNvbmYgZGlyZWN0aXZlLgogICAKMTk5OS0wOC0yMCAwMzo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gYWdlbnR4Lyo6IHZhcmlvdXMgcHJvdG90eXBlIGZpeGVzLCB0byBrZWVwIG51bWJlciBvZiB3YXJuaW5ncyBkb3duCiAgIAoxOTk5LTA4LTE5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmM6CgogICAtIChzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYyk6IFBhdGNoIGZyb20gZGxlbmdlbEBob21lLmNvbToKICAgICAtIGNoZWNrIGFyZ3VtZW50IGNvdW50IGZvciBtaW5pbXVtIG51bWJlci4KICAgCjE5OTktMDgtMTkgMTQ6MDkgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9hcGkuPywgc25tcGQuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6IHJlaW5zdGF0ZSBhZ2VudF9hZGRyIGluCiAgIAl0aGUgcGR1IHN0cnVjdHVyZSAodXNlZCBmb3IgdjEgdHJhcHMpLgogICAKMTk5OS0wOC0xOSAxMDo0MCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzOiBmcm9tIHNubXBfbG9nX3BlcnJvci4KICAgCUxvZyB3aGVuIHNubXBkIHJlY29uZmlndXJlcyBmb2xsb3dpbmcgYSBTSUdIVVAKICAgCjE5OTktMDgtMTkgMTA6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiByZW1vdmUgc29tZSBleHRyYW5lb3VzIFxuIGZyb20gc25tcF9sb2dfcGVycm9yIGNhbGxzLgogICAKMTk5OS0wOC0xOSAxMDozOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzoJY29ycmVjbHkgY2FsbCBwcmUtcGFyc2UgaG9vaywgYWxzbyB3aGVuIG5vdCBkZWJ1Z2dpbmcKICAgCSh0aGlzIGtpbGxlZCB0aGUgbGlid3JhcCBjaGVjayBpbiBzbm1wZCkKICAgCjE5OTktMDgtMTkgMDI6MzUgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHNubXBfbG9nZ2luZy5jLCBhZ2VudC92YXJpb3VzOiByZWluc3RhdGUgLWEgYW5kIC1WIGxvZ2dpbmcgKGFsbW9zdCkuCiAgIAl0aW1lc3RhbXAgZmlsZSBhbmQgc3RkZXJyIGxvZ2dpbmcuCiAgIAoxOTk5LTA4LTE5IDAyOjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IHJlbW92ZSBzb21lIGxlZnQgb3ZlciBkZWJ1ZyBvdXRwdXQKICAgCjE5OTktMDgtMTggMDk6MzAgIG5iYQoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgLSAobWFueSk6CWNoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIGxvZ2dpbmcgZnVuY3Rpb25zIHRvIGJlIHNubXBfKgogICAJZGVmYXVsdCBkb19zdGRlcnJfbG9nZ2luZyB0byAxLgogICAKMTk5OS0wOC0xOCAwOToyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAtIGludGVyZmFjZXMuPzogdXBkYXRlcyBmb3IgTGludXggdG8gaGFuZGxlIGxhcmdlIGNvdW50ZXJzIGFuZCB2aXJ0dWFsCiAgIAlpbnRlcmZhY2VzLgogICAKMTk5OS0wOC0xOCAwMjo1MSAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwKICAgc25tcGQuYywgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gc25tcGQuYywgYWdlbnRfcmVhZF9jb25maWcuPywgdmVyc2lvbmluZm8uYzogbW92ZSB0aGUgcmVjb25maWd1cmF0aW9uCiAgIAlvdXRzaWRlIHRoZSBzaWduYWwgaGFuZGxlci4KICAgCjE5OTktMDgtMTggMDI6NDAgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWdlbnQvc25tcGQuYzoJbW92ZSB0aGUgdGVybWluYXRpb24gcHJvY2Vzc2luZyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgogICAJdG8gYWZ0ZXIgdGhlIG1haW4gbG9vcCBoYXMgdGVybWluYXRlZC4KICAgCjE5OTktMDgtMTYgMTU6MDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgLSAoVDEwMGFnZW50aHVwKTogYWRkZWQgbmV3IGFnZW50IGNhcGFiaWxpdHkgdGVzdCB0byB0ZXN0IGtpbGwgLUhVUC4KICAgCjE5OTktMDgtMTYgMTQ6NTkgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIHNubXBuZXRzdGF0L21haW4uYzogZW5hYmxlX3N0ZGVycmxvZygpIHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIG1lc3NhZ2UKICAgCWZvciBiYWQgaG9zdCBuYW1lcy4KICAgCjE5OTktMDgtMTYgMTQ6NTggIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOiBhbGxvdyAtaSBhbmQgLW8gb3V0cHV0cyBldmVuIHdpdGggaW5jb21wbGV0ZSByZXNwb25zZXMKICAgCWZyb20gc25tcGQgKHN1Y2ggYXMgTGludXggdGhhdCBkb2VzIG5vdCByZXR1cm4gaWZJbk5VQ2FzdFBrdHMKICAgCXdpdGggdGhlIG5ldyBEVU1NWSBzZXR1cCkKICAgCjE5OTktMDgtMTMgMTY6MDYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTYgKQogICAKMTk5OS0wOC0xMyAxNjowNSAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogcmVtb3ZlIHRoZSBJU1NVRVMgZmlsZSBmb3IgcmVsZWFzZXMuCiAgIAoxOTk5LTA4LTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSAoVEVTVENPTkYuc2gpOiBzdG9yZSB0aGUgcGVyaXN0ZW50IGRhdGEgaW4gYSB0ZW1wb3JhcnkgZmlsZS4gIHJlYWxseS4KICAgCjE5OTktMDgtMTMgMTU6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsCiwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6CiAgICAgLSBmaXhlZCB0byBjaGVjayBmb3IgIm5vc3VjaCIgZXJyb3JzIGFjdHVhbGx5IHJldHVybmVkLgogICAgIC0gc2hvcnRlbmVkIHRoZSBzbm1wdXNtIHRlc3QgZGVzY3JpcHRpb24uCiAgIAoxOTk5LTA4LTEzIDE1OjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgcmVtb3ZlIG1pYl9tb2R1bGVfbG9hZHMuaC4KICAgCjE5OTktMDgtMTMgMTU6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgY29uZmlnX2xvYWRfbWliIHBhcnNpbmcuCiAgIAoxOTk5LTA4LTEzIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcHJvcGVybHkgZG8gd2hhdCAtLXdpdGhvdXQtZHVtbXktdmFsdWVzCiAgICAgc2hvdWxkIGRvLgogICAKMTk5OS0wOC0xMyAxMjoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICB2YXJfcm91dGUuYyAtICNpZmRlZiBOT19EVU1NWSAtLT4gI2lmIE5PX0RVTU1ZIChsaWtlIHRoZSBvdGhlciB1c2VzKS4KICAgCjE5OTktMDgtMTMgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCBkbyBjYWNoaW5nIGZvciBOT19EVU1NWV9WQUxVRVMuCiAgIAoxOTk5LTA4LTEzIDExOjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfcHJpbnQuYywKICAgaG9zdC9ocl9wcm9jLmMsIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3aW5zdC5jCiwgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9hdC5jCiwgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLAogICBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAoaG9zdC9ocl9kZXZpY2UuYyxob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLGhvc3QvaHJfc3RvcmFnZS5jLAogICBob3N0L2hyX3N3aW5zdC5jLGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYyxtaWJJSS9hdC5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmMsbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYyxtaWJJSS92YXJfcm91dGUuYykgLSAjaWYgTk9fRFVNTVlfVkFMVUVTIChoZWxwIG91dCBjb25maWd1cmUpCiAgIAoxOTk5LTA4LTEzIDA5OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgdXNlIE5PX0RVTU1ZX1ZBTFVFUyBieSBkZWZhdWx0LgogICAKMTk5OS0wOC0xMyAwNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDgtMTMgMDc6MTIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIC0gKE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5OS0wOC0xMyAwNzoxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6ICJtYWtlIHRlc3QiIGluIHRvcCBsZXZlbCBNYWtlZmlsZS4KICAgCjE5OTktMDgtMTMgMDI6NDYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBleGFtcGxlcy91Y2REZW1vUHVibGljLmgsIGlwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuaCwgbWlzYy9pcGZ3YWNjLmMsIG1pc2MvaXBmd2FjYy5oCiwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbXV4L3NubXBfYmdwLmMKLCBzbXV4L3NubXBfYmdwLmgsIHNtdXgvc25tcF9vc3BmLmMsCiAgIHNtdXgvc25tcF9vc3BmLmgsIHNtdXgvc25tcF9yaXAyLmMsIHNtdXgvc25tcF9yaXAyLmgKOgoKICAgLSAoZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5bY2hdCiAgICAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5bY2hdIG1pc2MvaXBmd2FjYy5bY2hdCiAgICAgIHRhcmdldC9zbm1wVGFyZ2V0e0FkZHIsUGFyYW1zfUVudHJ5LltjaF0KICAgICAgc211eC9zbm1wXyouW2NoXSk6CiAgICAgIC0gUmVnaXN0ZXIgbW9kdWxlcyBkeW5hbWljYWxseSBhdCBydW4tdGltZQogICAKMTk5OS0wOC0xMyAwMjo0NCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBEcm9wIHN1cHBvcnQgZm9yICdzdGF0aWMnIG1vZHVsZSByZWdpc3RyYXRpb24gdmlhIGNvbmZpZ3VyZQogICAKMTk5OS0wOC0xMiAxNjo0NiAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgLSAoTkVXUywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KICAgCjE5OTktMDgtMTIgMTY6NDEgIGhhcmRha2VyCgogICAqIEZBUSwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwLjE6CgogICAtIChGQVEsIHNubXBjbWQuMSwgc25tcHRyYXAuMSk6IG1pbm9yIGRvYyB1cGRhdGVzLgogICAKMTk5OS0wOC0xMiAxNjoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAyMHNubXB2M2dldCwKICAgVDAyMXNubXB2M2dldG5leHQsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChTdjNjb25maWcsIFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0LAogICAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiB0ZXN0IHVwZGF0ZXMsIGluY2x1ZGluZyBhIG5ldyBzbm1wdXNtIHRlc3QuCiAgIAoxOTk5LTA4LTEyIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogbm8tZmlsbCB0aGUgLmNvbmYgZmlsZSBlbnRyaWVzLgogICAKMTk5OS0wOC0xMiAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgdG9rZW4gbGlzdC4KICAgCjE5OTktMDgtMTIgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBhZGRlZCB0byBkZXNjcmliZSB0aGUgc25tcHVzbSBjb21tYW5kLgogICAKMTk5OS0wOC0xMiAwOTozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtKHNubXB1c20uYykgLSBmaXggcG90ZW50aWFsIHJlcGVhdGVkICJmcmVlIiBvbiBtYWxsb2MgZmFpbHVyZS4KICAgCjE5OTktMDgtMTEgMjE6NTMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOgloYW5kbGUgbm9uLWNvbnRpZ3VvdXMgaWZUYWJsZS4gQWxzbyBtYWtlIHRoZQogICAJY291bnRlcnMgdW5zaWduZWQuCiAgIAoxOTk5LTA4LTExIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBocl9zdG9yYWdlLmM6CXJlbW92ZSB0byBmb3Jnb3R0ZW4gZGVidWcgbGluZXMuCiAgIAoxOTk5LTA4LTExIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAtIE1ha2UgcGVyc2lzdGVudCBjYWNoZSBjb25mb3JtIHRvIGEgbW9yZSBzZWN1cmUgdW1hc2suCiAgIAoxOTk5LTA4LTExIDEwOjUwICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzLCBhcHBzL3NubXB1c20uYzoKCiAgIC0gKFJFQURNRS5zbm1wdjMsIHNubXB1c20uYyk6IHVzZSBzcyBzZXNzaW9uIHRvIGdldCBwcm9iZWQgZW5naW5lSUQuCiAgIAoxOTk5LTA4LTEwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmM6CgogICAtIChsY2RfdGltZS5jKTogZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoxOTk5LTA4LTEwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHByaW50IC1IIHVzYWdlIHRvIHN0ZGVyci4KICAgCjE5OTktMDgtMTAgMTc6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlLgogICAKMTk5OS0wOC0xMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZm9yY2UgdjMgZW5naW5lSUQgc2V0dGluZyB0byBzb21ldGhpbmcgYm9ndXMgdG8KICAgICBnZXQgYXJvdW5kIGxvY2FsIGNvbmZpZ3VyYXRpb24gZGF0YSBzdG9yZSB0aW1lIHN5bmNocm9uaXphdGlvbiBjb25mbGljdHMuCiAgIAoxOTk5LTA4LTEwIDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogVW0sIGNvdWdoLCBhY3R1YWxseSByZWdpc3RlciB1cyBpbiB0aGUgKmluaXQqIGZ1bmN0aW9uLi4uCiAgIAoxOTk5LTA4LTEwIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcHJvdGVjdCBhZ2FpbnN0IGV2aWwgbWliIG1vZHVsZXMgZnJvbSBtb2RpZnlpbmcKICAgICBtZW1vcnkgdGhleSBzaG91bGRuJ3QgYmUgbW9kaWZ5aW5nIHlldC4KICAgICAtIChpZmRlZidlZCBmb3Igc3BlZWQgcHJvZmlsaW5nIGxhdGVyKS4KICAgCjE5OTktMDgtMTAgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbG9nIHZlcnNpb24gbnVtYmVyIGFmdGVyIHN0ZGVyciBpcyBvcHRpb25hbGx5IGNsb3NlZC4KICAgCjE5OTktMDgtMTAgMTA6MDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRml4IGZvciBidWlsZCAobm8gcGFnZXNpemUgdmFyIGRlZmluZWQgZm9yIGxpbnV4KS4KICAgCjE5OTktMDgtMTAgMDk6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jOgoKICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUixXQVJOSU5HKQogICAKMTk5OS0wOC0xMCAwNDo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgaW50ZXJmYWNlcy5jIHZhcl9yb3V0ZS5jIHNubXBfbG9nZ2luZy5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMDgtMTAgMDQ6NDggIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOglmaXhlcyBmb3Igc25tcG5ldHN0YXQgLWkgb24gdmlydHVhbCBpbnRlcmZhY2VzCiAgIAoxOTk5LTA4LTEwIDA0OjQ3ICBuYmEKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBhZ2VudC9rZXJuZWwuYzoJYWJvcnQgb24ga3ZtX29wZW4gZmFpbHVyZXMKICAgCjE5OTktMDgtMTAgMDQ6NDYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc25tcGxpYi9taWIuYzoJZml4IGhhbmRsaW5nIG9mIG51bWVyaWMgb2lkcyBhbmQgcmVwb3J0aW5nIGVycm9ycwogICAKMTk5OS0wOC0xMCAwNDo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjb25maWd1cmUuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIHMvbmV0YnNkIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAJc3VwcG9ydCBmb3IgTmV0QlNEL3NwYXJjIGFuZCBOZXRCU0QgMS40CiAgIAoxOTk5LTA4LTA5IDE1OjA3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgc25tcHVzbS5jIC0gYWx3YXlzIGNsZWFyIGZpZWxkX2xlbiBpZiByZWYgaXMgdmFsaWQgcHRyOwogICBzbm1wX2FwaS5jIC0gZG9uJ3Qgb3ZlcndyaXRlIGNvbW11bml0eSBwb2ludGVyIHdpdGggc2VjdXJpdHlBdXRoUHJvdG8gcG9pbnRlcgogICAKMTk5OS0wOC0wOSAxNDoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBlcnJvciBjaGVjay9udWxsIHNldCAqYWZ0ZXIqIGZyZWVpbmcgdGhlIG9sZCBtZW1vcnkuCiAgIAoxOTk5LTA4LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IG1vcmUgZXJyb3IgY2hlY2tpbmcgaW4gdGhlIE1BS0VfRU5UUlkgbWFjcm8uCiAgIAoxOTk5LTA4LTA5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgL2Rldi9yYW5kb20gdGVzdC4KICAgCjE5OTktMDgtMDkgMTE6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtZDUuYywgc25tcF9hcGkuYzoKCiAgIC0obWQ1LmMpIGZpeCByZWFkIHBhc3QgZW5kIHByb2JsZW0KICAgLShzbm1wX2FwaS5jKSBmaXggbG9zaW5nIGNvbW11bml0eSBzdHJpbmcgcHJvYmxlbQogICAKMTk5OS0wOC0wOSAxMDo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgKG1hbnkpOgludWtlIHZhcmlvdXMgcHJvdG90eXBlIHdhcm5pbmdzCiAgIAoxOTk5LTA4LTA5IDA5OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0oc25tcC5jKSBmaXggYnVmZmVyIG92ZXJmbG93IGluIHhkdW1wLCBvZiBhbGwgcGxhY2VzICg3NyBzL2IgNzg7IHVzaW5nIDgwKQogICAKMTk5OS0wOC0wOSAwNjo1NCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBsaWJzbm1wLmRlZiAtIHJlbW92ZSBwcmludF9vaWRfcmVwb3J0IGRpc2FibGUgb3B0aW9ucwogICAKMTk5OS0wOC0wOSAwNjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNubXBkLmMgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlCiAgIAoxOTk5LTA4LTA5IDA2OjUwICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMKOgoKICAgIHNubXBkZWx0YSwgdHJhbnNsYXRlLCB0cmFwZCkgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlOyByZW1vdmUgZGlzYWJsZXMgZm9yIHByaW50X29pZF9yZXBvcnQgaW4gdHJhbnNsYXRlLgogICAKMTk5OS0wOC0wOSAwNjo0OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaAo6CgogICBtaWIuKiwgcGFyc2UuKiAtIG1vdmUgcHJpbnRfb2lkX3JlcG9ydCBhbmQgbWluaW9ucyB3aG9sbHkgaW50byBtaWIuYwogICAKMTk5OS0wOC0wOSAwMTowMiAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogTmluZSBuZXcgcXVlc3Rpb25zLCBwbHVzIGFzc29ydGVkIHR3ZWFrcyBmb3IgdGhlIG5ldyByZWxlYXNlLgogICAKMTk5OS0wOC0wOSAwMDoyNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlLmM6CXBhcnNlIGFnZW50IGNhcGFiaWxpdGllcwogICAKMTk5OS0wOC0wNiAwNzozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oc25tcF9sb2dnaW5nLiopIC1hZGRlZCBSYWduYXIncyBwYXRjaCAjMyB3aXRoIHNtYWxsIHRvdWNoZXMuCiAgIAoxOTk5LTA4LTA2IDA2OjAyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL2F0LmMsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmMsIG1pYklJL3Zhcl9yb3V0ZS5jLCBob3N0L2hyX2RldmljZS5jCiwgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYywKICAgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMsIGhvc3QvaHJfc3dydW4uYwosIGhvc3QvaHJfc3lzdGVtLmM6CgogICAtIChtaWJJSS8qLmMgaG9zdC8qLmMpOiBEb24ndCBwcm92aWRlICJkdW1teSIgdmFsdWVzICh1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkKQogICAKMTk5OS0wOC0wNiAwNTo1OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIGNvbmZpZ3VyZS10aW1lIGZsYWcgdG8gY29udHJvbCBwcm92aXNpb24gb2YgImR1bW15IiB2YWx1ZXMKICAgCjE5OTktMDgtMDUgMTE6MTEgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wX2FwaS4zOgoKICAgc25tcF9hcGkuMyAtIGRlc2NyaWJlIHNubXBfZXJyb3IoKSwgcmVwbGFjZXMgc25tcF9lcnJubyBhbmQgc25tcF9nZXRfZXJybm8oKQogICAKMTk5OS0wOC0wNSAxMDo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgYWdlbnR4L2NsaWVudC5jIC0gcmVtb3ZlIHJlZnMgdG8gc25tcF9zeW5jaHtzZXR1cCxyZXNldH0gb3JpZ2luYWwgdmVyc2lvbgogICAKMTk5OS0wOC0wNSAwMzoyNSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIGNvbmZpZy5zdWIgLSBwYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW4gdG8gc3VwcG9ydCBIUFVYIDExCiAgIAoxOTk5LTA4LTA0IDEyOjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jIC0gZHVtbXkgZnVuY3Rpb25zIHNubXBfc3luY2hfe3NldHVwLHJlc2V0fSBhbmQgc25tcF9nZXRfZXJybm8uCiAgIAoxOTk5LTA4LTA0IDA5OjE3ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0oY29uZmlndXJlKikgLSBLZW4gSG9ybnN0ZWluOiBmaXggdGVzdCB4eGdldGhvc3RieW5hbWUsIHh4Z2V0c2VydmJ5bmFtZS4KICAgCjE5OTktMDgtMDQgMDU6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVuZG8gcGF0Y2ggYXJvdW5kIFNvbGFyaXMnIGNvbmZpZ3VyZSBmYWlsdXJlIHRvIHJlZ2lzdGVyIEhBVkVfR0VUSE9TVEJZTkFNRS4KICAgCjE5OTktMDgtMDQgMDM6NDggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIC0gcGF0Y2ggc3VwcGxpZWQgYnkgTmljayBBbWF0byB0byBmaXggQVNOX0lQQUREUkVTUyBwYXJzZS4KICAgCjE5OTktMDgtMDQgMDE6NDYgIGRhdmVzCgogICAqIG1pYnMvVUNELURFTU8tTUlCLnR4dDoKCiAgIC0gKG1pYnMvVUNELURFTU8tTUlCLnR4dCk6IFJlLXJlc29sdmUgZmlsZSAmIHVjZERlbW8gT0lEIGNvbmZsaWN0CiAgIAoxOTk5LTA4LTAzIDE0OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHNubXBfZGVidWcuYyAtIHNpZ25lZCBjb21wYXJpc29uIGZvciBsZW4gaW4gZGVidWdtc2dfaGV4dGxpLgogICAKMTk5OS0wOC0wMyAxMjo1MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnLmggLSBmaXggIndhcm5pbmc6IEFOU0kgQyBmb3JiaWRzIGNvbmRpdGlvbmFsIGV4cHIgd2l0aCBvbmx5IG9uZSB2b2lkIHNpZGUiLgogICAKMTk5OS0wOC0wMyAwODozNyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FLndpbjMyIC0gcnVudGltZSBsaWIgYW5kIGRlYnVnIGluZm8gY291cnRlc3kgb2YgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0wOC0wMyAwNzo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICB2YWNtX3ZhcnMuYyAtIGNvcHkgY29tbXVuaXR5IHN0cmluZywgbnVsbCB0ZXJtaW5hdGUsIHRoZW4gZGVidWcgcHJpbnQKICAgCjE5OTktMDgtMDMgMDc6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1Zy5oIC0gbW92ZSBERUJVR1RSQUNFIGZyb20gZGVidWdtc2dfaGV4dGxpIHRvIERFQlVHRFVNUFNFVFVQCiAgIAoxOTk5LTA4LTAzIDA3OjAwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHNubXBfZGVidWcuYyAtIHJlbW92ZSB0cmFjZSBtZXNzYWdlcyBmcm9tIGRlYnVnbXNnX2hleHRsaS4KICAgCjE5OTktMDgtMDMgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgYXNuMS5jIC0gZml4IG91dC1vZi1ib3VuZCBhcnJheSB3cml0ZSBhbmQgbWVtb3J5IGxlYWsgaW4gcGFyc2luZyBzdHJpbmdzLgogICAKMTk5OS0wOC0wMyAwNDo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYyAtIHJlbW92ZSAiQlkiIGZyb20gSEFWRV9HRVRIT1NUQllOQU1FIChTb2xhcmlzIDIuNS4xIHdyb25nISkKICAgCjE5OTktMDgtMDIgMjI6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1ZyAtIERFQlVHTVNHIG1hY3JvcyBjYWxsIHNubXBfZ2V0X2RvX2RlYnVnZ2luZyBiZWZvcmUgaW52b2tpbmcgZGVidWdtc2cqIGZ1bmN0aW9ucy4KICAgCjE5OTktMDgtMDIgMDQ6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlIC0gc2hhbWUgb24gbWUgZm9yIG5vdCBjb21waWxlIHRlc3RpbmcgZmlyc3QhCiAgIAoxOTk5LTA4LTAyIDA0OjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBwYXJzZS5jOgoKICAgYXNuMSwgcGFyc2UpIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4gKE1KUy11c2UgeGNhbGxvYyBpbiBwYXJzZSkKICAgCjE5OTktMDctMzAgMTQ6MTkgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCBSRUFETUUKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU1ICkKICAgCjE5OTktMDctMzAgMTQ6MTggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0zMCAxNDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgL3Zhci91Y2Qtc25tcCBleGlzdC4gIFdlIHNob3VsZCBkbyBhIHBlcm1pc3Npb24KICAgICBzZXQgYXMgd2VsbC4KICAgCjE5OTktMDctMzAgMTQ6MTAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bi4KICAgCjE5OTktMDctMzAgMTQ6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogZ2VuZXJpYyB2MyBpbnN0cnVjdGlvbnMsIGJ1dCBoYXMgZXJyb3JzLgogICAKMTk5OS0wNy0zMCAwODozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbm8gc3RydWN0IHNvY2thZGRyX2RsIGluIEFJWCAzLgogICAKMTk5OS0wNy0zMCAwODowMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIHZzbnByaW50ZiBjaGVjayBhbmQgSEFWRV9WU05QUklOVEYgY29uc3RhbnQKICAgCjE5OTktMDctMzAgMDc6MzEgIGRhdmVzCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CiAgIAoxOTk5LTA3LTMwIDA3OjAxICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKICAgCjE5OTktMDctMzAgMDY6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbm9uLWV4aXN0ZW50IHNubXBfdmFyc19tMm0uaAogICAKMTk5OS0wNy0zMCAwNjo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIHVzZSB0cmFkaXRpb25hbCBLJlIgY29tbWVudGluZzsgbm90IGFsbCAiQyIgY29tcGlsZXJzIGFjY2VwdCAiLy8iIGNvbW1lbnRzLgogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICB3aW4zMi9jb25maWcuaCAtIGRlZmluZSBIQVZFX0dFVEhPU1ROQU1FCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgc3lzdGVtIC0gdXNlIHNpemVvZgogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2MyAtIGtleSBvZmYgSEFWRV9HRVRIT1NUTkFNRTsgdXNlIHNpemVvZiBidWYKICAgCjE5OTktMDctMzAgMDY6MjMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFyc19tMm0uaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMgYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnNfbTJtLmgpOgogICAgIC0gUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiBvYnNvbGV0ZSB2MnBhcnR5IE1hbmFnZXItdG8tTWFuYWdlciBzdXBwb3J0CiAgIAoxOTk5LTA3LTMwIDA2OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzIC0gd3JhcCBwb3NzaWJseSB1bnVzZWQgdmFycyBpbiAjaWZkZWYgSEFWRV9HRVRIT1NUTkFNRQogICAKMTk5OS0wNy0zMCAwNjowMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYwogICAgICBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgICBzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuYyBhZ2VudC9taWJncm91cC92MnBhcnR5LmgpOgogICAgICAtICBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIHYycCBzdXBwb3J0CiAgIAoxOTk5LTA3LTMwIDA1OjQyICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgaHJfc3RvcmFnZS5jIC0gYXV0b19ubGlzdCBmb3IgSFJfU1RPUkVfU0laRQogICBocl9zd3J1bi5jIC0gZml4IGdsb2JhbCBzaGFkb3cgZGVjbAogICBzbm1wX2xvZ2dpbmcuYyAtIGNoYW5nZSBmaWx0ZXIgZm9yIG9wZW5sb2cgcGVyIEEuIFN5bW9ucyBwYXRjaAogICAKMTk5OS0wNy0zMCAwNDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgcmVuYW1lIHNkIHRvIGlmc2QgLSBhdm9pZCBnbG9iYWwgc2hhZG93IGRlY2wKICAgCjE5OTktMDctMzAgMDQ6MzkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsIGxvZ19wZXJyb3IKICAgCjE5OTktMDctMzAgMDQ6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHJlbmFtZSBsb2NhbCB2YXIgJ2xhc3QnIHRvICdsYXN0X2lwY2gnIC0gYXZvaWQgc2hhZG93IGdsb2JhbCBkZWNsCiAgIAoxOTk5LTA3LTMwIDA0OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oaXN0b3J5LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICAtKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsYWdlbnQvaGlzdG9yeS5jLGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLHNubXBsaWIvcmVhZF9jb25maWcuYyxzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLHNubXBsaWIvc25tcF9sb2dnaW5nLmMsc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zeXN0ZW0uYykgLSBwc29zIGRpZmZzIG9mZmVyZWQgYnkgQW50aG9ueSBTeW1vbnMKICAgCjE5OTktMDctMzAgMDM6NTcgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgUmVtb3ZlZCBoaW50IG9mIHYycGFydHkgZnJvbSBjb21tZW50LgogICAKMTk5OS0wNy0zMCAwMzo1MSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBIQVZFX0dFVD8/P0JZTkFNRTsgUmVtb3ZlZCB1bnVzZWQgX0NSVElNUAogICAKMTk5OS0wNy0zMCAwMzo0OCAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FLndpbjMyIC0gY2xlYW5lZCB1cCwgYWRkZWQgbW9yZSBhY2tub3dsZWRnZW1lbnRzCiAgIAoxOTk5LTA3LTI5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHh4Lmg6CgogICAtIChhZ2VudHh4LmgpOiByZW1vdmVkCiAgIAoxOTk5LTA3LTI5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5LzogYWNsX3ZhcnMuYywgYWNsX3ZhcnMuaCwKICAgYWxhcm0uYywgYWxhcm0uaCwgY29udGV4dF92YXJzLmMsCiAgIGNvbnRleHRfdmFycy5oLCBldmVudC5jLCBldmVudC5oLCBwYXJ0eV92YXJzLmMKLCBwYXJ0eV92YXJzLmgsIHZpZXdfdmFycy5jLCB2aWV3X3ZhcnMuaDoKCiAgIC0gKG1pYmdyb3VwL3YycGFydHkpOiByZW1vdmVkIGZpbGVzLgogICAKMTk5OS0wNy0yOSAxNzowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiByZW1vdmUgdHJhcF9zcGVjaWFsIHN0dWZmLgogICAKMTk5OS0wNy0yOSAxNjowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHVzZSBmcHV0cywgYXMgdnNwcmludGYgaGFzIGFscmVhZHkgZG9uZSB0aGUgaGFyZCB3b3JrLgogICAKMTk5OS0wNy0yOSAxNTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGZsdXNoIGZpbGUgYW5kIHN0ZGVyciBhZnRlciB3cml0ZS4KICAgCjE5OTktMDctMjkgMTU6NTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtKHNubXBfbG9nZ2luZykgaW5jb3Jwb3JhdGUgUmFnbmFyJ3MgaW1wcm92ZW1lbnRzIHdpdGggaW50ZXJlc3QKICAgCjE5OTktMDctMjkgMTU6MDQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBrZXJuZWwuYzoKCiAgIGF1dG9fbmxpc3QsIGtlcm5lbDogcGxhY2UgbG9nX3BlcnJvciB0byBjYXRjaCBlcnJubyB2YWx1ZSBpbiByZXBvcnQuCiAgIAoxOTk5LTA3LTI5IDEzOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLShhZ2VudC9zbm1wZC5jKSAtIGxvZyBzdGFuZGFyZCBlcnJvciB1bnRpbCBpbml0IGlzIGNvbXBsZXRlZC4KICAgCjE5OTktMDctMjkgMTM6MjggIG1zbGlmY2FrCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtKGFwcHMvTWFrZWZpbGUuaW4pIC0gY29tbWVudCB1bm5lZWRlZCBUUkFQU1BFQ0lBTCBsaW5lCiAgIAoxOTk5LTA3LTI5IDEyOjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcpIC0gZml4IGxvZ19wZXJyb3IKICAgCjE5OTktMDctMjkgMDg6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLAogICB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIG1lbW9yeV9zb2xhcmlzMjogaGFuZGxlIG1hbGxvYyBlcnJvcnMKICAga2VybmVsX3N1bm9zNTogc2hhcmUga3N0YXQgZmlsZGVzIFtTSEFSRV9LU1RBVF9GRF0KICAgCjE5OTktMDctMjkgMDM6MjkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAobWliSUkvdmFjbV92YXJzLmMpOiBDYXRjaCB1c2Ugb2YgdW5jb25maWd1cmVkIEVYQU1QTEUuY29uZiBmaWxlcwogICAKMTk5OS0wNy0yOCAxMzozMyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLVJFQURNRS53aW4zMiAtIGJ1aWxkIGd1aWRlIGZvciBXaW4zMi4gQ3lnd2luIGZyaWVuZGx5IHNjcmlwdCBpbmNsdWRlZC4KICAgCjE5OTktMDctMjggMDk6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBzbm1wX2xvZ2dpbmcuYzogYWRqdXN0IGhlYWRlcnMgZm9yIHRoYXQgV2luMzIgcGxhdGZvcm0uCiAgIAoxOTk5LTA3LTI4IDA5OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcpIFN1cHBvcnQgaHB1eDkgYW5kIHNvbGFyaXMyLjUuMSB3aXRoIHZzcHJpbnRmIGluc3RlYWQuCiAgIAoxOTk5LTA3LTI4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IGNoYW5nZSBtYWlsIGFkZHIgdG8gdWNkLXNubXAtYnVncwogICAKMTk5OS0wNy0yOCAwMjo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIGhyX3N3cnVuIC0gcmVzZXQgcG9pbnRlciBpbiBtb2R1bGUgaW5pdCAoaGVscCBIUC9VWCA5KQogICBzbm1wX2xvZ2dpbmcgLSB1c2UgdnNwcmludGYgZm9yIEhQL1VYLTkKICAgCjE5OTktMDctMjcgMjM6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtZDUuYywgbWQ1LmgsIHNjYXBpLmMKLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jOgoKICAgLShrZXl0b29scy5jLG1kNS5jLG1kNS5oLHNjYXBpLmMsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMpIGNhdGNoIE1ENSBlcnJvcnMKICAgCjE5OTktMDctMjcgMjM6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtKHNubXBkLmMpIGludm9rZSBsb2cgZnVuY3Rpb25zIGZyb20gY2hpbGQgKGNvcnJlY3QgcHJvY2VzcyBJRCBpbiBzeXNsb2cpCiAgIAoxOTk5LTA3LTI3IDIxOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcuYykgZml4IHN5c2xvZyBieSB2c25wcmludGYgdG8gYnVmZmVyLgogICAKMTk5OS0wNy0yNyAxOTowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0obWliLmMpIGZpeCB3YWxraW5nIE9JRCBsZW5ndGggcG9pbnRlciwgbnVtZXJpYyBzdWItaWQgbm90IGZvdW5kCiAgIGluIHJlYWRfb2JqaWQgYW5kIHBhcnNlX3N1YnRyZWUuCiAgIAoxOTk5LTA3LTI3IDE5OjAyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLShzbm1wX3BhcnNlX2FyZ3MpIGluIHNubXBfcGFyc2Vfb2lkLCB0cnkgZ2V0X25vZGUgaWYgcmVhZF9vYmppZCBmYWlscy4KICAgCjE5OTktMDctMjcgMTc6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgaW5jbHVkaW5nIG1pYi5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gZGVmaW5lIEZJTEUgKi4KICAgCjE5OTktMDctMjcgMTY6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogZml4IGhlYWRlciBkdW1wLgogICAKMTk5OS0wNy0yNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jCiwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYzoKCiAgIC0gKGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAtIGNsZWFuZWQgdXAgZGVidWdnaW5nIGR1bXAgb3V0cHV0LgogICAgIC0gYWRkZWQgbW9yZSBkdW1wIHBhcnNlIGhlYWRlcnMgZm9yIHYzIGR1bXBzLgogICAKMTk5OS0wNy0yNyAxNjowNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLShpbnRlcmZhY2VzLmMpIC0gZml4IGVycm9yIHNldHRpbmcgaWZfaWJ5dGVzIGZvciBMaW51eCAyLjAKICAgCjE5OTktMDctMjcgMTI6MjMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB1c20uYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0oYXBwczplbmNvZGVfa2V5Y2hhbmdlLmMsc25tcGRlbHRhLmMsc25tcHRhYmxlLmMsIHNubXB1c20uYzsKICAgc25tcGxpYjpyZWFkX2NvbmZpZy5jLHNubXB2My5jOyB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZikgLQogICAgYWRqdXN0IGhlYWRlcnMsIGJ1aWxkIFdpbjMyIHNubXB1c20rZW5jb2RlX2tleWNoYW5nZQogICAKMTk5OS0wNy0yNyAxMjowMCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwOgoKICAgLShlbmNvZGVfa2V5Y2hhbmdlLmRzcCxzbm1wdXNtLmRzcCkgLWJ1aWxkIHVzaW5nIGNvbW1vbiBXaW4zMiBjb21waWxlcgogICAKMTk5OS0wNy0yNyAwOTo0MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICAtKG1hc3Rlci5jLCBzdWJhZ2VudC5jKSB1bi1jb21tZW50IGluaXRfbWFzdGVyIGFuZCBpbml0X3N1YmFnZW50LgogICAKMTk5OS0wNy0yNyAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L3NubXBkLmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYyxhcHBzL3NubXBkZWx0YS5jLGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsYXBwcy9zbm1wc2V0LmMsYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsYXBwcy9zbm1wdGVzdC5jLGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYyxhcHBzL3NubXB1c20uYyxhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsc25tcGxpYi9wYXJzZS5jLHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdjMuYykgZml4IHNubXBfc2Vzc19wZXJyb3IgdXNlOyB1c2UgbG9nX3BlcnJvciBmb3IgcGVycm9yCiAgIAoxOTk5LTA3LTI3IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBzbm1wbGliL2FzbjEuYyxzbm1wbGliL3NjYXBpLmMsc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgpICBFUlJPUl9NU0csIHByaW50ZiAtLT4gREVCVUdNU0dUTAogICAKMTk5OS0wNy0yNyAwNjozOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgZmlsZS5jLCBocHV4LmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmMsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfc29sYXJpczIuYywKICAgcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLyouYyk6IHR3ZWFrIHJlZ2lzdHJ5IGxhYmVscwogICAKMTk5OS0wNy0yNyAwNDoyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGluY2x1ZGUgbmV0L2lmX2RsLmggc3VnZ2VzdGVkIGJ5IFRvbSBJdmFyIEhlbGJla2ttbwogICAKMTk5OS0wNy0yNiAxNzoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5oOgoKICAgLSAoc2NhcGkuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHNpemVfdCBmaXguCiAgIAoxOTk5LTA3LTI2IDE3OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywKICAgc2NhcGkuYzoKCiAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIHBhcnNlLmMsIHNjYXBpLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBzaXplX3QgY2hhbmdlcy4KICAgCjE5OTktMDctMjYgMTc6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHZhcmlhYmxlIG5hbWluZyBjaGFuZ2UuCiAgIAoxOTk5LTA3LTI2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wNy0yNiAxNToxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMKLCBzbm1wX2F1dGguYywgc25tcHVzbS5jOgoKICAgLShhc24xLmMsYXNuMS5oLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jLHNubXB1c20uYykgbW9yZSBkZXRhaWxlZCBwYXJzZSBlcnJvciBtZXNzYWdlcy4KICAgCjE5OTktMDctMjYgMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IEJJVF9zdHJpbmc6IC0+IEJJVFM6CiAgIAoxOTk5LTA3LTI2IDExOjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU0ICkKICAgCjE5OTktMDctMjYgMDk6MTQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlZCBhIGJpdAogICAKMTk5OS0wNy0yNiAwOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0yNiAwNzozNyAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIChTTk1QdjItQ09ORi50eHQpOiByZW1vdmVkIGJvZ3VzIElNUE9SVFMgY2xhdXNlCiAgIAoxOTk5LTA3LTI0IDA4OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLShtZDUuYykgLSB3cmFwIHVudXNlZCBNRDVwcmludCB3aXRoIFNOTVBfVEVTVElOR19DT0RFIGlmZGVmCiAgIAoxOTk5LTA3LTI0IDA4OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suaCwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FsYXJtLmgKLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oY2FsbGJhY2suaCxkZWZhdWx0X3N0b3JlLmgsc25tcF9hbGFybS5oLHNubXBfbG9nZ2luZy5oKSBleHRlcm4gIkMiIHdyYXBwZWQKICAgCjE5OTktMDctMjQgMDc6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0oc25tcF9jbGllbnQuYykgLSB1c2UgU0VUX1NOTVBfRVJST1IgZm9yIHJlc3RvcmVkIHNubXBfZXJybm8gc2V0cy4KICAgCjE5OTktMDctMjQgMDc6MTggIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLShsaWJzbm1wLmRlZikgLSBhZGQgZGVjbHMgZm9yIG5ldyBlcnJvciBsb2dnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDctMjQgMDc6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLShhc24xLmMpIC0gZml4IGNvbXBhcmUgZXJyb3IgYXQgbGluZSAzODY7IHJlbW92ZSB1bnVzZWQgdmFycyBlbHNld2hlcmUKICAgCjE5OTktMDctMjMgMTU6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgIHNubXBfY2xpZW50LmMpOgogICAgIC0gbWFrZSBhbmQgdXNlIHNubXBfc2Vzc19wZXJyb3Ioc3RyLCBzZXNzKSBmb3IgZXJyb3IgcHJpbnRpbmcuCiAgIAoxOTk5LTA3LTIzIDE0OjMxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVC5zaCwgVDIuc2gsIGRlbW8ucmVtb3RlLCBkZW1vMgosIGRlbW8yLmZ1bmN0aW9ucywgZGVtbzIuc2V0dXBmaWxlOgoKICAgLSAoVC5zaCwgVDIuc2gsIGRlbW8ucmVtb3RlLCBkZW1vMiwgZGVtbzIuZnVuY3Rpb25zLCBkZW1vMi5zZXR1cGZpbGUpOgogICAgIC0gcmVtb3ZlZCBzb21lIHVuLW5lZWRlZCBvbGRlciBkZW1vIGZpbGVzLgogICAKMTk5OS0wNy0yMyAxNDoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAosIHRlc3RzL1QwMjBzbm1wdjNnZXQsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsIFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwKICAgICBUMDIzc25tcHYzZ2V0TUQ1REVTKTogc3VwcG9ydCBhIFNOTVBfRkxBR1MgZW52IHZhcmlhYmxlLgogICAKMTk5OS0wNy0yMyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBpbml0IGRlYnVnZ2luZy4KICAgCjE5OTktMDctMjMgMTQ6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jCiwgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAtIHJldmVydCB0byBub24tZHBhcnNlIHZlcnNpb25zIG9mIGFzbiBkZWNvZGluZy4KICAgCjE5OTktMDctMjMgMTM6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBhIGxpdHRsZSBtb3JlIHZlcmJvc2UgYWJvdXQgd2hhdCBpcyBydW5uaW5nLgogICAKMTk5OS0wNy0yMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMKLCBzbm1wX2FwaS5jOgoKICAgLSAoa2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IHNubXBfbG9nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNy0yMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtIChzbm1wLmMpOiB4ZHVtcCBmaXhlcy4KICAgCjE5OTktMDctMjMgMTM6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogbnVsbCB0ZXJtaW5hdGUgcGFyc2VkIHN0cmluZ3MsIGp1c3QgaW4gY2FzZS4KICAgCjE5OTktMDctMjMgMTM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGNoYW5nZSBtYWxsb2Mgc2l6ZSgpLgogICAKMTk5OS0wNy0yMyAxMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBtb3JlIHNubXBfbG9nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNy0yMyAxMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmgpOiBhZGRlZCBmb3IgYSBwcm90b3R5cGUgZGVmaW5pdGlvbi4KICAgCjE5OTktMDctMjMgMTA6NDIgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0LAogICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwgbWlicy9JRi1NSUIudHh0LAogICBtaWJzL0lQLU1JQi50eHQsIG1pYnMvVENQLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGtlcm5lbF9zdW5vczUuYywgdXRpbF9mdW5jcy5jLCBpbnRlcmZhY2VzLmMsCiAgICAgaW50ZXJmYWNlcy5oLCBzeXN0ZW1fbWliLmMsIHZhcl9yb3V0ZS5jLCBzbm1wRW5naW5lLmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXB0cmFwZC5jLCBIT1NULVJFU09VUkNFUy1NSUIudHh0LAogICAgIElBTkFpZlR5cGUtTUlCLnR4dCwgSUYtTUlCLnR4dCwgSVAtTUlCLnR4dCwgVENQLU1JQi50eHQsCiAgICAgVURQLU1JQi50eHQsIHBhcnNlLmMsIHNubXBfYWxhcm0uYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAtIG1lcmdlIGZyb20gVjMtbGluZSBwb3N0IDMuNi4yIHRvIGN1cnJlbnQuCiAgICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgICAtIG1ha2UgYXBwcyB0dXJuIG9uIHN0ZGVyciBsb2dnaW5nIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTA3LTIzIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBsb2cgdG8gc3RkZXJyLgogICAKMTk5OS0wNy0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuc3RvcmFnZS5jb25mLCB0a21pYjoKCiAgIC0gKHRrbWliLCBtaWIyYyk6IHVkcGF0ZSB0byB1c2UgaW5kZXhlcyAocmVxdWlyZXMgYSBwZXJsIHBhdGNoLgogICAKMTk5OS0wNy0yMCAxOTozMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG5vIHByaW50ZiBpbiBhc2NpaV90b19iaW5hcnkKICAgCjE5OTktMDctMjAgMTg6MTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtbWlub3IgY2hhbmdlcyB0byBidWlsZCBXaW4zMiBwbGF0Zm9ybXMgdXNpbmcgQ3lnV2luLWVnY3MgYW5kIE1TVkMgY29tcGlsZXJzLgogICAKMTk5OS0wNy0yMCAxNzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IC1XYWxsIGZpeGVzIChBTlNJKS4KICAgCjE5OTktMDctMjAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMKLCBkbG1vZHMvZGxtb2RfbWliLmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIG1pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMKLCBtaWJncm91cC92MnBhcnR5L2FsYXJtLmM6CgogICAtIChhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywKICAgICBpcGZ3Y2hhaW5zLmMsIGludGVyZmFjZXMuYywgZGxtb2QuYywgc211eC5jLCB2ZXJzaW9uaW5mby5jLAogICAgIGFsYXJtLmMpOgogICAgIC0gY29udmVydCBzbm1wX2xvZyhMT0dfREVCVUcpIHRvIERFQlVHTVNHVEwoKS4KICAgCjE5OTktMDctMjAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvaGlzdG9yeS5jLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgaGlzdG9yeS5jLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCwgdXRpbF9mdW5jcy5jLCBpcGZ3Y2hhaW5zLmMsCiAgICAgYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YWNtX3ZhcnMuYywgdmFyX3JvdXRlLmMsIGRsbW9kLmMsIHNtdXguYywgZGlzay5jLCBleHRlbnNpYmxlLmMsCiAgICAgbG9hZGF2ZS5jLCBtZW1vcnlfc29sYXJpczIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLAogICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBQYXRjaCBmcm9tIFJhZ25hcgogICAgIEtq+HJzdGFkOgogICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCiAgIAoxOTk5LTA3LTE1IDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAtIChhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAtIG5lZWRzIGEgbG90IG1vcmUgd29yayBhbmQgY2xlYW4gdXAuCiAgICAgLSBJIG5lZWQgY29tbWVudHMuLi4gIFRlbGwgbWUgd2hhdCB5b3UgdGhpbmsuLi4KICAgCjE5OTktMDctMTUgMDg6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiBpbmNsdWRlIGFycGEvaW5ldC5oLgogICAKMTk5OS0wNy0xNCAxMzo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDA3OjE5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogV2FybmluZyAtIGhlcmUgYmUgZHJhZ29ucy4uLi4KICAgCjE5OTktMDctMTIgMDg6MzIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsCiAgIGhyX2Rpc2suYywgaHJfZGlzay5oLCBocl9maWxlc3lzLmMsCiAgIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsCiAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywKICAgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLCBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYwosIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywKICAgaHJfc3lzdGVtLmg6CgogICAtIChtaWJncm91cC9ob3N0LyopOiBEeW5hbWljYWxseSByZWdpc3RlciBhbGwgSG9zdCBSZXNvdXJjZSBtb2R1bGVzCiAgIAoxOTk5LTA3LTEyIDA3OjE0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogcmVtb3ZlIGRlcGVuZGVuY3kgb24gc25tcGxpYi9hZ2VudHguaAogICAKMTk5OS0wNy0xMSAxODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgogICAKMTk5OS0wNy0wOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBmaXggY2xpZW50cmVnIGVycm9yLgogICAKMTk5OS0wNy0wOSAxNDoxOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0od2luMzIsc25tcGxpYixhcHBzLGFnZW50KSBhZGQgc25tcF9zb2NrZXRfbGVuZ3RoIHRvIGhpZGUgc29ja2FkZHJfdW47IFdpbjMyIHRvdWNodXBzCiAgIAoxOTk5LTA3LTA5IDEyOjEyICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wX3Nlc3NfYXBpLjMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKHNubXBfY2xpZW50LiopIHJlbW92ZSBzbm1wX3N5bmNoX3NldHVwLCBzbm1wX3N5bmNoX3Jlc2V0CiAgIAoxOTk5LTA3LTA5IDA4OjM1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmM6CgogICAtIChzbm1wbGliL2FnZW50eCopOiBNb3ZlZCBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQogICAKMTk5OS0wNy0wOSAwODozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHguaCwgYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudHgvY2xpZW50LmgsIGFnZW50eC9tYXN0ZXIuYywgYWdlbnR4L21hc3Rlci5oCiwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50eC9wcm90b2NvbC5oLCBhZ2VudHgvc3ViYWdlbnQuYwosIGFnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmggYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOgogICAgIC0gTW92ZSBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcgdG8gYSAobW9zdGx5KSBzZWxmLWNvbnRhaW5lZCBtb2R1bGUKICAgCjE5OTktMDctMDkgMDg6MjcgIGRhdmVzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4gc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgIGFnZW50L3NubXBkLltjaF0gYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBNb3ZlIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5CiAgIAoxOTk5LTA3LTA5IDAxOjQ5ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKICAgCjE5OTktMDctMDggMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2r4cnN0YWQ6CiAgICAgLSBBZGQgb3B0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgZ2l2ZW4gdWlkIGFuZCBnaWQuCiAgIAoxOTk5LTA3LTA4IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaAo6CgogICAtIChzbm1wZGVsdGEuYywgaW50NjQuYywgaW50NjQuaCk6IG1pbmltYWwgYzY0IHN1cHBvcnQgZm9yIHNubXBkZWx0YS4gVW50ZXN0ZWQuCiAgIAoxOTk5LTA3LTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMDggMTQ6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaAosIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dC5jLAogICBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaAosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCB2aWV3X3BhcnNlLmMsIHZhY21fdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1haW4uYywgTWFrZWZpbGUuaW4sIGFjbC5jLAogICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICBsaWJzbm1wLmgsIHBhcnR5LmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgdmlldy5jLCB2aWV3LmgpOgogICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKICAgCjE5OTktMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oOgoKICAgLSAoYWdlbnR4LmMsIGFnZW50eC5oKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA3LTA4IDE0OjI5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGNvbmZpZy5oKTogY29tbWVudCBjaGFuZ2UgZm9yIGludGVybmFsIG1kNS4KICAgCjE5OTktMDctMDggMTQ6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiB0eXBvIGluICNpZmRlZi4KICAgCjE5OTktMDctMDggMDY6MjUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYywgc3lzdGVtX21pYi5jOgoKICAgLSAobWliSUkvc3lzdGVtX21pYi5jIG1pYklJL3NubXBfbWliLmMpOgogICAgIC0gVXBkYXRlICd3cml0ZScgcm91dGluZXMgZm9yIFY0IGFyY2hpdGVjdHVyZSwKICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KICAgCjE5OTktMDctMDggMDI6MTYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBSZXRhaW4gY29tbXVuaXR5IHN0cmluZyBpbiByZXNwb25zZXMKICAgCjE5OTktMDctMDcgMDY6NTQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgYWdlbnR4LmMsIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jIGFzbjEuaCBzbm1wLmMgc25tcC5oIHNubXBfYXBpLmMgc25tcF9hcGkuaAogICAgICBzbm1wX2F1dGguYyBzbm1wX2ltcGwuaCBhZ2VudHguYyk6CiAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQogICAKMTk5OS0wNy0wNiAwMjoyMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCiAgIAoxOTk5LTA3LTAyIDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHJlZ2lzdGVyIGRlYnVnZ2luZyB0b2tlbnMgd2l0aCAtRAogICAKMTk5OS0wNy0wMiAwNToxOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHh4LmgsIGFnZW50eC9tYXN0ZXIuYywKICAgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50eC9tYXN0ZXJfYWRtaW4uaCwgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5oOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4eC5oIG1pYmdyb3VwLmFnZW50eC8pOiBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFnZW50WCBtYXN0ZXIKICAgCjE5OTktMDctMDIgMDU6MTYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBzdXBwb3J0IGxpc3RzIG9mIHNlc3Npb25zIChhbmQgc3Vic2Vzc2lvbnMpCiAgIAoxOTk5LTA3LTAyIDA1OjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHZhcl9zdHJ1Y3QuaCBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtIG1hcCBiZXR3ZWVuIE1JQiByZWdpc3RyYXRpb25zIGFuZCB0aGUgc3VwcG9ydGluZyAoc3ViYWdlbnQpIHNlc3Npb24KICAgCjE5OTktMDctMDIgMDU6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvYXNuMS5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5oOgoKICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAtIGltcGxlbWVudCBhbiBpbnRlcmZhY2UgZm9yIGRlbGVnYXRpbmcgcmVxdWVzdHMgdG8gc3ViYWdlbnRzCiAgIAoxOTk5LTA3LTAyIDAyOjM5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IHRoYXQgbGFzdCAnc2VuZHRvJyBjYXNlICpjb3JyZWN0bHkqIHRoaXMgdGltZQogICAKMTk5OS0wNy0wMiAwMjowNCAgZGF2ZXMKCiAgICogc25tcGxpYi9hZ2VudHguYzoKCiAgIC0gKGFnZW50eC5jKTogQmV0dGVyIGhhbmRsaW5nIG9mIGJ1aWxkaW5nIG51bGwgc3RyaW5ncwogICAKMTk5OS0wNi0zMCAxOTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYwosIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgKOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywKICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gY29udmVydCBtb3JlIHN0dWZmIHRvIHRoZSBkZWZhdWx0X3N0b3JlIHNwYWNlLgogICAKMTk5OS0wNi0zMCAxOTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHRvb2xzLmM6CgogICAtIChrZXl0b29scy5jLCB0b29scy5jKTogLVdhbGwgZml4ZXMgd2hlbiBURVNUSU5HX0NPREUgaXMgZW5hYmxlZC4KICAgCjE5OTktMDYtMzAgMDU6NDggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBNaXNzZWQgb25lICdzZW5kdG8nIGNhbGwKICAgCjE5OTktMDYtMzAgMDU6MDYgIGRhdmVzCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKICAgCjE5OTktMDYtMzAgMDU6MDUgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQcm92aWRlIHRoZSBjb3JyZWN0IHNpemUgb2Ygc29ja2V0IGFkZHJlc3NlcwogICAKMTk5OS0wNi0zMCAwMzoyMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKICAgCjE5OTktMDYtMzAgMDI6MzIgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBDb3JyZWN0IHRoZSBzZXR1cCBvZiBzdHJlYW0tYmFzZWQgYWNjZXB0ZWQgaW50ZXJuYWwgc2Vzc2lvbnMKICAgCjE5OTktMDYtMzAgMDE6NDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQogICAKMTk5OS0wNi0zMCAwMTo0NSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgogICAKMTk5OS0wNi0zMCAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgogICAKMTk5OS0wNi0yOCAxNTowMSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogaW5pdF9zbm1wX2FsYXJtKCk7CiAgIAoxOTk5LTA2LTI4IDE1OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICAtICh1Y2REZW1vUHVibGljLmMpOiBjb252ZXJ0IHRvIHNpemVfdAogICAKMTk5OS0wNi0yOCAxNDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KICAgCjE5OTktMDYtMjggMDk6NTIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgIC0gTm9uLXJlY3Vyc2l2ZSBNSUIgcmVnaXN0cnkgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMDYtMjggMDg6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oLAogICBzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgsIHVzbVN0YXRzLmMsCiAgIHVzbVN0YXRzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgLSAoc25tcEVuZ2luZS5jIHNubXBFbmdpbmUuaCBzbm1wTVBEU3RhdHMuYyBzbm1wTVBEU3RhdHMuaAogICAgICB1c21TdGF0cy5jIHVzbVN0YXRzLmggdXNtVXNlci5jIHVzbVVzZXIuaCk6CiAgICAgIC0gUnVuLXRpbWUgcmVnaXN0cmF0aW9uIChyYXRoZXIgdGhhbiB2aWEgJ2NvbmZpZ3VyZScpCiAgIAoxOTk5LTA2LTI4IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFN2M2NvbmZpZywgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMpOgogICAgIC0gMyBuZXcgdjMgdGVzdHMuCiAgIAoxOTk5LTA2LTI4IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICAtIChSVU5URVNUUywgZXZhbF90b29scy5zaCk6IGFjY2VwdCBhZ2VudCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgCjE5OTktMDYtMjggMDQ6MDcgIGRhdmVzCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jOgoKICAgLSB7TWFrZWZpbGUuaW4gYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wX3ZhcnMuYyBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtIENvbnNvbGlkYXRlIGFsbCByZWdpc3RyeSBoYW5kbGluZyBpbnRvIG9uZSBmaWxlCiAgIAoxOTk5LTA2LTI4IDAzOjA4ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6IG1ha2UgU05NUCBwYWNrZXQgaGFuZGxpbmcgcm91dGluZSByZS1lbnRyYW50LgogICAKMTk5OS0wNi0yMyAxMDowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gsCiAgIGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2M2NvbmZpZzoKCiAgIC0gKE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsIFN2M2NvbmZpZyk6CiAgICAgLSBnaXZlIFJVTlRFU1RTIGxvdHMgb2YgYXJndW1lbnRzLgogICAgIC0gIm1ha2UgdGVzdCIgbm93IGNhbGxzICJSVU5URVNUUyAtYSIKICAgCjE5OTktMDYtMjIgMDU6MjUgIG5iYQoKICAgKiBUT0RPOgoKICAgVE9ETzoJbmVlZCBmb3IgQ291bnRlcjY0IHN1cHBvcnQgaW4gc25tcGRlbHRhCiAgIAoxOTk5LTA2LTIyIDA1OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIGludm9rZSBzbm1wX3Nlc3NfaW5pdCBiZWZvcmUgYW55IE1JQiBwcm9jZXNzaW5nIChmaXhlcyBtYXN0ZXIgYWdlbnQpLgogICAKMTk5OS0wNi0xOCAxMjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHhfY2xpZW50LmM6CgogICAtKGFnZW50eCouYykgZml4IGhlYWRlcnMgdG8gY29tcGlsZSBvbiBDeWdXaW4sIFdpbjMyIE1TVkMrKwogICAKMTk5OS0wNi0xOCAxMDowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLShzeXNPUlRhYmxlLmMpIGZpeCBwdHIgdGVzdAogICAKMTk5OS0wNi0xOCAwOToxNCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jCiwgc25tcGQuaCwgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChzbm1wZC5jIHNubXBkLmggc25tcF92YXJzLmMgc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaAogICAgICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0wNi0xOCAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG1lYW5zIG9mIGJ5cGFzc2luZyBWQUNNIGNoZWNrcwogICAKMTk5OS0wNi0xOCAwODo1NSAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHguaCwgYWdlbnR4X2NsaWVudC5jLAogICBzbm1wX2FwaS5oLCBNYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAtIGJhc2ljIEFnZW50WCBwcm90b2NvbCBoYW5kbGluZwogICAKMTk5OS0wNi0xOCAwODo0OSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6CiAgICAgLSBhY2NvbW9kYXRlIHNlcnZlcnMgdGhhdCByZXF1aXJlIGFuIGFjY2Vzc2libGUgY2xpZW50LWVuZCB1bml4IHN0cmVhbSBzb2NrZXQKICAgICAgICAgICAgICAgICAoaW4gcGFydGljdWxhciwgdGhlIENNVSBBZ2VudFggbWFzdGVyIGFnZW50KQogICAKMTk5OS0wNi0xOCAwODo0NyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG5vbi1yZXNwb25zZSBoYW5kbGluZyBpbiAnc25tcF9zZXNzX3JlYWQnCiAgIAoxOTk5LTA2LTE4IDA4OjQ0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQogICAKMTk5OS0wNi0xOCAwODowNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGFzbjEuaCBzbm1wX2FwaS5jKTogTmV3IHByaXZhdGUgdHlwZXMgZm9yIE9JRCByYW5nZXMKICAgCjE5OTktMDYtMTggMDg6MDAgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBFbmFibGUgYWNjZXNzIHRvICJlbXB0eSIgcmVzcG9uc2UgUERVcyAoaS5lLiBoZWFkZXIgb25seSkuCiAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKICAgCjE5OTktMDYtMTggMDc6NTYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyk6IGRpc3Rpbmd1aXNoIGJldHdlZW4gU05NUCBwcm90b2NvbCAmIFBEVSBoYW5kbGluZyBmbGFncwogICAKMTk5OS0wNi0xOCAwNjo1OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBuZXcgcm91dGluZSBmb3IgcmVtb3Zpbmcgc3lzT1JUYWJsZSBlbnRyaWVzCiAgIAoxOTk5LTA2LTE4IDA1OjAxICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdXNtLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgYXBwbGllZCBmaXhlcyBmcm9tIE0uIExhdWtrYW5lbgogICAKMTk5OS0wNi0xNyAxMzoxOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCiAgIAoxOTk5LTA2LTE3IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IC0taGVscC4KICAgCjE5OTktMDYtMTYgMTY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaAo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSAyIG5ldyBzbm1wLmNvbmYgdG9rZW5zOiBkb0RlYnVnZ2luZywgZGVidWdUb2tlbnMuCiAgIAoxOTk5LTA2LTE2IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jCiwgcGFyc2UuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgcGFyc2UuYyk6CiAgICAgLSBmaXJzdCB1c2FnZSBvZiB0aGUgZGVmYXVsdF9zdG9yZSgpIHJvdXRpbmVzOiBtb3ZlIGFsbCB0aGUgbWliCiAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAtIHByZW1pYiBhdXRvLXJlZ2lzdHJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlIG5lZWRzIGNsZWFuaW5nIHVwLi4uICBzaWdoLi4uCiAgIAoxOTk5LTA2LTE2IDA2OjU2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IEhvb2tzIGZvciBidWlsZGluZy9wYXJzaW5nIG5vbi1TTk1QIHBhY2tldHMKICAgCjE5OTktMDYtMTYgMDU6NDkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKICAgCjE5OTktMDYtMTYgMDU6MTEgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCiAgIAoxOTk5LTA2LTE1IDE2OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQ6CgogICAtIChUMDIwc25tcHYzZ2V0KTogbmV3IHRlc3Q6ICBzbm1wZ2V0IHVzaW5nIHYzIGFuZCB1c2VyICJpbml0aWFsIi4KICAgCjE5OTktMDYtMTUgMTY6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dDoKCiAgIC0gKFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0KToKICAgICAtIENoZWNrIGZvciBUaW1ldGlja3M6IGluIG91dHB1dCwgc2luY2Ugb3V0cHV0IGhhcyBjaGFuZ2VkIGluIDQuMC4KICAgCjE5OTktMDYtMTUgMTY6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBkaXNwbGF5IG1vcmUgb3V0cHV0IHN0dWZmIHdoZW4gaW4gdmVyYm9zZSBtb2RlLgogICAKMTk5OS0wNi0xNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gKFRFU1RDT05GLnNoKTogc2F2ZSBwYWNrZXQgZHVtcC4KICAgCjE5OTktMDYtMTUgMTY6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggYWxsb3dlZCB6ZXJvbGVuZ3RoIHBkdS0+c2VjdXJpdHlOYW1lIHByb2JsZW0gZm9yCiAgICAgdjMgZW5naW5lSUQgZGlzY292ZXJ5IHByb2Jlcy4KICAgCjE5OTktMDYtMTUgMDg6MjcgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKToKICAgICAtIE1vdmUgcHJvY2Vzc2luZyBmcm9tICdoYW5kbGVfbmV4dF9wYXNzKCknIHRvICdoYW5kbGVfc25tcF9wYWNrZXQoKScKICAgCjE5OTktMDYtMTUgMDM6NTkgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKICAgCjE5OTktMDYtMTEgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjFjb25maWcsIFN2MmNjb25maWcsIFN2YW55Y29uZmlnCiwgVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0CiwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsOgoKICAgLSAoU3YxY29uZmlnLCBTdjJjY29uZmlnLCBTdmFueWNvbmZpZywgVDAwMXNubXB2MWdldCwKICAgICBUMDAyc25tcHYxZ2V0bmV4dCwgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LAogICAgIFQwMTVzbm1wdjJjZ2V0bmV4dCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOgogICAgIC0gaW5pdGlhbCBwYXNzIG9mIHRlc3Rpbmcgc3VpdGUgdGVzdHMuLi4gIEFnYWluLCBzdGlsbCBuZWVkcyB3b3JrLgogICAKMTk5OS0wNi0xMSAxNzo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBUMi5zaCwgVEVTVENPTkYuc2gsCiAgIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgLSAoUlVOVEVTVFMsIFQyLnNoLCBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2gpOgogICAgIC0gdGVzdGluZyBzdWl0ZSBzY3JpcHRzLi4uICBzdGlsbCBuZWVkIGhlYXZ5IHdvcmsuCiAgIAoxOTk5LTA2LTA5IDE4OjI5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIEZBUQosIElOU1RBTEwsIE5FV1MsIFJFQURNRSwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWFrZXRhcmdldCwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKCopOiBtZXJnZWQgMy42LjIgY2hhbmdlcyBpbnRvIG1haW4gYnJhbmNoLgogICAKMTk5OS0wNi0wOSAwNjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKICAgCjE5OTktMDYtMDggMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9mcmVlYnNkMi5jOgoKICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKICAgCjE5OTktMDYtMDggMDg6NDMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oKToKICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKICAgCjE5OTktMDYtMDggMDc6NDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFYzLWxpbmUuNCksIGhyX2ZpbGVzeXMuYwo6CgogICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KICAgCjE5OTktMDYtMDcgMTM6MDQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgogICAKMTk5OS0wNi0wNyAwNzo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jCiwgdWRwLmM6CgogICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQogICAKMTk5OS0wNi0wNCAwOTo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgbG9jYWwvTWFrZWZpbGUuaW46CgogICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCiAgIAoxOTk5LTA2LTAyIDEyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgLSAoc25tcF9hbGFybS4zKTogZG9jdW1lbnQgdGhlIG5ldyBzbm1wX2FsYXJtKCkgY2FsbHMuCiAgIAoxOTk5LTA2LTAxIDE3OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oCiwgc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCiAgIAoxOTk5LTA2LTAxIDA3OjMwICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwogICAKMTk5OS0wNi0wMSAwMjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQogICAKMTk5OS0wNi0wMSAwMjoxNyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCiAgIAoxOTk5LTA1LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywKICAgZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgIGxpYnJhcnkuCiAgIAoxOTk5LTA1LTI4IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgogICAKMTk5OS0wNS0yOCAwOToyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQogICAKMTk5OS0wNS0yOCAwOToxMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQogICAKMTk5OS0wNS0yOCAwODo1NyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAogICAKMTk5OS0wNS0yOCAwODoxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQogICAKMTk5OS0wNS0yOCAwNzowMSAgZGF2ZXMKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwogICAKMTk5OS0wNS0yNyAxNDozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCiAgIAoxOTk5LTA1LTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCiAgIAoxOTk5LTA1LTI3IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCiAgIAoxOTk5LTA1LTI3IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgogICAKMTk5OS0wNS0yNyAwNToxNiAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQogICAKMTk5OS0wNS0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQRldBQ0MtTUlCLnR4dCAoVjMtbGluZS4yKSwgSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCiAgIAoxOTk5LTA1LTI2IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgogICAKMTk5OS0wNS0yNiAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy86IGlwZndhY2MuaCAoVjMtYjMuMiksIGlwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KICAgCjE5OTktMDUtMjYgMTU6MTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUEZXQUNDLU1JQi50eHQgKFYzLWIzLjEpLCBJUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCiAgIAoxOTk5LTA1LTI2IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFYzLWIzLjEpLCBocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCiAgIAoxOTk5LTA1LTI2IDExOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogaXBmd2FjYy5oIChWMy1iMy4xKSwgaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCiAgIAoxOTk5LTA1LTI2IDA4OjE2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpIC0gaW5jbCBzeXMvdHlwZXMgdG8gZml4IEhQLVVYIDkueCBidWlsZAogICAKMTk5OS0wNS0yNCAwNTozNiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlOgoKICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwogICAKMTk5OS0wNS0yMyAwODowNCAgbWFyegoKICAgKiB0ZXN0aW5nL3BhY2tldDEudHh0OgoKICAgZmlsZSBwYWNrZXQxLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMjEgMTU6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92aWV3LmMKLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCiAgIAoxOTk5LTA1LTIxIDExOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCiAgIAoxOTk5LTA1LTIxIDExOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhlYWRlcl9jb21wbGV4X3BhcnNlX29pZCgpIGNyZWF0ZWQuCiAgICAgLSBjb252ZXJ0IGV2ZXJ5dGhpbmcgdG8gc2l6ZV90LgogICAKMTk5OS0wNS0yMSAwNTo1NCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQogICAKMTk5OS0wNS0yMSAwNToyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgogICAKMTk5OS0wNS0yMSAwMToyNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBGaXggaW5jb3JyZWN0IHBvaW50ZXIgY2FzdAogICAKMTk5OS0wNS0yMCAwMzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKICAgCjE5OTktMDUtMTkgMTg6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdF9yZXMuaCAoVjMtbGluZS4xKSwgaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKICAgCjE5OTktMDUtMTkgMTg6MDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFYzLWxpbmUuMiksIHZhcl9yb3V0ZS5jCjoKCiAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQogICAKMTk5OS0wNS0xOSAwODowMiAgbWFyegoKICAgKiB0ZXN0aW5nL3BrdGdlbi50eHQ6CgogICBmaWxlIHBrdGdlbi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTA1LTE5IDA3OjE2ICBtYXJ6CgogICAqIHRlc3RpbmcvcGFja2V0LnR4dDoKCiAgIGZpbGUgcGFja2V0LnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDc6MTQgIG1hcnoKCiAgICogdGVzdGluZy9wa3RnZW4ucGw6CgogICBmaWxlIHBrdGdlbi5wbCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDU6MTEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKICAgCjE5OTktMDUtMTkgMDI6MzMgIGRhdmVzCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCiAgIAoxOTk5LTA1LTE4IDA5OjIzICBkYXZlcwoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQogICAKMTk5OS0wNS0xOCAwOTowMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgogICAKMTk5OS0wNS0xOCAwNjoyNiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCiAgIAoxOTk5LTA1LTE3IDA3OjE3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKICAgCjE5OTktMDUtMTcgMDQ6MzYgIGRhdmVzCgogICAqIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAKICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwogICAKMTk5OS0wNS0xNyAwNDozNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKICAgCjE5OTktMDUtMTcgMDM6MjAgIGRhdmVzCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjMtbGluZS4xKSwgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKICAgCjE5OTktMDUtMTcgMDM6MTcgIGRhdmVzCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKICAgCjE5OTktMDUtMTQgMTM6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgc25tcGxpYi9zbm1wdXNtLmMKOgoKICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCiAgIAoxOTk5LTA1LTE0IDA5OjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKICAgCjE5OTktMDUtMTQgMDY6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwogICAKMTk5OS0wNS0xMyAwOTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjMtbGluZS4zKSwgdmFjbV92YXJzLmMKOgoKICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCiAgIAoxOTk5LTA1LTEzIDAzOjUyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMgKFYzLWxpbmUuMiksIGlwLmM6CgogICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQogICAKMTk5OS0wNS0xMiAxMToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMKOgoKICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCiAgIAoxOTk5LTA1LTEyIDEwOjUzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCiAgIAoxOTk5LTA1LTExIDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGhwdXguYywgaHB1eC5oOgoKICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgogICAKMTk5OS0wNS0xMSAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCiAgIAoxOTk5LTA1LTExIDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgogICAKMTk5OS0wNS0xMCAxNDo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KICAgCjE5OTktMDUtMTAgMTQ6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi90b29scy5jOgoKICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgogICAKMTk5OS0wNS0wNiAwOToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCiAgIAoxOTk5LTA1LTA0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCiAgIAoxOTk5LTA1LTA0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKToKICAgICAtIGZpeGVzIGZvciBrbXQuCiAgICAgLSBwb3J0YWJpbGl0eSBlbmhhbmNlbWVudHMuCiAgIAoxOTk5LTA1LTA0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogZG9uJ3QgdXNlIElTREYoKS4KICAgCjE5OTktMDUtMDQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBkb24ndCBkdW1wIGtleWxpc3QuCiAgIAoxOTk5LTA1LTA0IDAwOjUwICBuYmEKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHNubXBkLmMsIHNubXBkLmgsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS91ZHAuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiwgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMKLCBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIG1pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYwosIG1pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIG1pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmM6CgogICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKICAgCjE5OTktMDUtMDQgMDA6NDcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAgCjE5OTktMDUtMDMgMTU6MzggIG5iYQoKICAgKiBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9hbGxfc3lzdGVtLmgsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuaAosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25tcHYzLmgsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwosIHNubXBsaWIvdmFjbS5oLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCiAgIAoxOTk5LTA1LTAzIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgdGVzdGluZy9NYWtlZmlsZS5pbgosIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLAogICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCiAgIAoxOTk5LTA1LTAzIDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgogICAKMTk5OS0wNS0wMyAwNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25tcHYzLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCiAgIAoxOTk5LTA1LTAzIDA3OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogLVdhbGwgZml4IGluaXRpYWxpemluZyBhIHZhcmlhYmxlLgogICAKMTk5OS0wNS0wMSAwNzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAtIChjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogcmVuYW1lZCBzbm1wX2NhbGxiYWNrIHRvIHNubXBfZ2VuX2NhbGxiYWNrLgogICAKMTk5OS0wNC0yOSAwODo0NCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLSAoUkVBRE1FLndpbjMyKTogTm90ZSBjaGFuZ2UgZnJvbSBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTA0LTI5IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wZC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25tcHYzLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KICAgCjE5OTktMDQtMjkgMDc6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgogICAKMTk5OS0wNC0yOCAwNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZW51bSAjZGVmaW5lcyBjcmVhdGVkCiAgIAoxOTk5LTA0LTI3IDA5OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCiAgIAoxOTk5LTA0LTI2IDEyOjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKICAgCjE5OTktMDQtMjYgMTI6MTEgIG5iYQoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC92aWV3X3BhcnNlLmMKLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgsIHRlc3RpbmcvTWFrZWZpbGUuaW4KOgoKICAgCiAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAJZnVuY3Rpb25zLgogICAKMTk5OS0wNC0yNiAxMjowOSAgbmJhCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgIHNubXB0YWJsZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgIAogICAKICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCiAgIAoxOTk5LTA0LTI2IDEyOjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgCiAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgCXN0cmluZ3MKICAgCjE5OTktMDQtMjYgMTE6NDggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCiAgIAoxOTk5LTA0LTI2IDExOjIxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgCiAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCiAgIAoxOTk5LTA0LTI2IDA5OjIxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCiAgIAoxOTk5LTA0LTIzIDEzOjA1ICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkOgoKICAgLSBSRUFETUUudGhyZWFkIC0gbG9uZyBuZWVkZWQgZG9jdW1lbnQgZGVzY3JpYmluZyBob3cgdG8gdXNlIFNpbmdsZSBBUEkKICAgCjE5OTktMDQtMjIgMTA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCiwgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCiAgIAoxOTk5LTA0LTIyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBDcmVhdGVkIGEgbmV3IHN1cGVyLWR1cGVyIG1pYjJjIGNvbmZpZ3VyYXRpb24KICAgICBmaWxlIHRoYXQgdGFrZXMgY2FyZSBvZiBqdXN0IGFib3V0IGV2ZXJ5dGhpbmcgaWYgeW91IGhhdmUgYSBtaWIgdGhhdAogICAgIGRvZXMgaXRzIG93biBzdG9yYWdlIChyYXRoZXIgdGhhbiBoYXZpbmcgdG8gcG9rZSBzb21ldGhpbmcgZWxzZSBmb3IKICAgICBpbmZvcm1hdGlvbikuCiAgIAoxOTk5LTA0LTIyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCiAgIAoxOTk5LTA0LTIyIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CiAgIAoxOTk5LTA0LTIyIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IG1ha2UgaGVhZGVyX2NvbXBsZXgoKSBhY2NlcHQgTlVMTHMuCiAgIAoxOTk5LTA0LTIwIDIxOjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZSB1bi11c2VkIHZ0eXBlLCBwYXJzZXIgZmllbGRzLgogICAKMTk5OS0wNC0yMCAyMTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KICAgCjE5OTktMDQtMjAgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCiAgIAoxOTk5LTA0LTIwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAtIGNuYW1lIC0+IE5BTUUKICAgCjE5OTktMDQtMjAgMTU6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgogICAKMTk5OS0wNC0yMCAxMToyOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KICAgCjE5OTktMDQtMTkgMjE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIC0gKHRvb2xzLmgpOiBuZXcgY29udmVuaWVuY2UgbWFjcm86IFNOTVBfTUFMTE9DX1NUUlVDVChzdHJ1Y3ROYW1lKS4KICAgCjE5OTktMDQtMTkgMjE6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZG9uJ3QgZnJlZSB0aGluZ3MgdGhhdCBhcmUgTlVMTC4KICAgCjE5OTktMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgogICAKMTk5OS0wNC0xOSAyMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCiAgIAoxOTk5LTA0LTE5IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IE5VTEwgY2hlY2tpbmcuCiAgIAoxOTk5LTA0LTE5IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KICAgCjE5OTktMDQtMTkgMjE6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgogICAKMTk5OS0wNC0xOCAwNjo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0OiA5IC0+IDEwCiAgIAoxOTk5LTA0LTE2IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKICAgCjE5OTktMDQtMTYgMjE6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKICAgCjE5OTktMDQtMTYgMjE6MjcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlZAogICAKMTk5OS0wNC0xNiAyMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KICAgCjE5OTktMDQtMTYgMjE6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCiAgIAoxOTk5LTA0LTE2IDIxOjEzICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dDoKCiAgIC0gKERJU01BTi1TQ1JJUFQtTUlCLnR4dCk6IGFkZGVkIHRvIG1pYnMgZGlyLgogICAKMTk5OS0wNC0xNiAyMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmgpOiBwcm90b3R5cGVzLgogICAKMTk5OS0wNC0xNiAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKICAgCjE5OTktMDQtMTYgMjE6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KICAgCjE5OTktMDQtMTYgMDg6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYykgIi1tIiBvciBNSUJTOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KICAgCjE5OTktMDQtMTYgMDc6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvSVBGV0NIQUlOUy1NSUIudHh0OgoKICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKICAgCjE5OTktMDQtMTYgMDc6MzAgIG1zbGlmY2FrCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KICAgCjE5OTktMDQtMTQgMTY6NTYgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wc3RhdHVzLmM6CgogICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCiAgIAoxOTk5LTA0LTE0IDE2OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCiAgIAoxOTk5LTA0LTE0IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgogICAKMTk5OS0wNC0xNCAxNTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCiAgIAoxOTk5LTA0LTE0IDE1OjI5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgogICAKMTk5OS0wNC0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KICAgCjE5OTktMDQtMTMgMTY6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CiAgIAoxOTk5LTA0LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgogICAKMTk5OS0wNC0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc3VwcG9ydCAtUC4KICAgCjE5OTktMDQtMTMgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KICAgCjE5OTktMDQtMTMgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KICAgCjE5OTktMDQtMTMgMTU6MzYgIGhhcmRha2VyCgogICAqIG1pYnMvOiBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dDoKCiAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgogICAKMTk5OS0wNC0xMyAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KICAgCjE5OTktMDQtMTMgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgogICAKMTk5OS0wNC0xMyAxNToxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCiAgIAoxOTk5LTA0LTEzIDA4OjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGFkZCBhIFVSTCByZWZlcmVuY2UgdG8gY3lnd2luLgogICAKMTk5OS0wNC0xMiAyMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KICAgCjE5OTktMDQtMTIgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCiAgIAoxOTk5LTA0LTEyIDIyOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmg6CgogICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgogICAKMTk5OS0wNC0xMiAyMjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgogICAKMTk5OS0wNC0xMiAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGRlYWwgd2l0aCBtb3JlIGNvbXBsZXggZGF0YQogICAgIHN0cnVjdHVyZXMgd2l0aCBtdWx0aXBsZSBhbmQgdmFyaWFibGUgbGVuZ3RoIGluZGV4ZXMuCiAgIAoxOTk5LTA0LTEyIDIyOjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBuZXcgUkVBRE1FIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTktMDQtMDcgMTU6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KICAgCjE5OTktMDQtMDcgMTI6MjMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICAtKGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jIHNubXBsaWIvdG9vbHMuYykgbW92ZSBrZXlzdHJva2UgZnVuY3Rpb25zIHRvIGFwcGxpY2F0aW9uLgogICAKMTk5OS0wNC0wNyAxMjoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmM6CgogICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAogICAKMTk5OS0wNC0wNyAxMTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3ZhY20uaCwgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KICAgCjE5OTktMDQtMDcgMTE6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKTogcmVtb3ZhbCBvZiBkdXBsaWNhdGUgZnVuY3Rpb25zLgogICAKMTk5OS0wNC0wNyAxMTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHVzbS5jOgoKICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmMpOiBkZWJ1Z2dpbmcgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA0LTA3IDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS92YWNtX3ZhcnMuYywgc211eC9zbXV4LmMKLCBzbm1wdjMvc25tcEVuZ2luZS5jLCBzbm1wdjMvdXNtVXNlci5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKOgoKICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCiAgIAoxOTk5LTA0LTA3IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICAtIChzY2FwaS5jLCBzbm1wdjMuYyk6IGRlYnVnIHR5cG9zIGFuZCBpbmNsdWRlIGZpbGUgYWRkaXRpb25zLgogICAKMTk5OS0wNC0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgogICAKMTk5OS0wNC0wNyAxMDo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWJ1Zy5oOgoKICAgLSAoZGVidWcuaCk6IHJlbW92ZWQuCiAgIAoxOTk5LTA0LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICBuZXdlciBtb2RlbC4KICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgogICAKMTk5OS0wNC0wNyAwNjoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9kZWJ1Zy5oLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmgKLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAogICAKMTk5OS0wNC0wNiAyMjoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKICAgCjE5OTktMDQtMDYgMjI6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KICAgCjE5OTktMDQtMDYgMjE6MjMgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCiAgIAoxOTk5LTA0LTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KICAgCjE5OTktMDQtMDYgMTU6MTIgIGhhcmRha2VyCgogICAqIElTU1VFUywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaAosIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2F1dG9fbmxpc3QuaCwgYWdlbnQvbTJtLmgsIGFnZW50L3NubXAycC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCBhcHBzLy5jdnNpZ25vcmUKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYwosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtdWNkLnNoCiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dAosIG1pYnMvU05NUHYyLVRDLnR4dCwgbWlicy9VQ0QtREVNTy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwgc25tcGxpYi9hbGxfc3lzdGVtLmgsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2RlYnVnLmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLmMKLCBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3ZhY20uaCwKICAgc25tcGxpYi92aWV3LmMsIHRlc3RpbmcvLmN2c2lnbm9yZSwKICAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SRUFETUUsIHRlc3RpbmcvVC5jLAogICB0ZXN0aW5nL1Quc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LAogICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMKLCB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLAogICB0ZXN0aW5nL2RlbW8ucmVtb3RlLCB0ZXN0aW5nL2RlbW8yLAogICB0ZXN0aW5nL2RlbW8yLmZ1bmN0aW9ucywgdGVzdGluZy9kZW1vMi5zZXR1cGZpbGUsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLAogICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90ZXN0bGlzdCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywKICAgdGVzdGluZy9taXNjdGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLAogICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KICAgCjE5OTktMDQtMDYgMTE6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfcHJvYy5jLAogICBpcGZ3Y2hhaW5zL2xpYmlwZndjLmMsIG1pYklJL2ljbXAuYywgbWliSUkvaXAuYwosIG1pYklJL3JvdXRlX3dyaXRlLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYwosIHNtdXgvc211eC5jLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIC0gYW5vdGhlciByb3VuZCBvZiBBTlNJLWZ5aW5nIHRoZSBhZ2VudCBjb21wbGV0ZWQuCiAgIAoxOTk5LTA0LTA2IDEwOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAtIChleHRlbnNpYmxlLmMpIHF1ZWxsIHdhcm5pbmcgYWJvdXQgY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBub24tcG9pbnRlci4KICAgCjE5OTktMDQtMDYgMDk6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlnLnN1Yik6IG5ldyB2ZXJzaW9ucyBmcm9tIGF1dG9jb25mIDIuMTMuCiAgIAoxOTk5LTA0LTA1IDE1OjU5ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIEJ1aWxkIHVzaW5nIEN5Z1dpbjMyIChpbmNsdWRlcyBOaWVscyBCLidzIHNubXBfdmFycy5jIHBhdGNoKS4KICAgCjE5OTktMDQtMDUgMTQ6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIEJ1aWxkIHdpdGggQ3lnV2luMzIKICAgCjE5OTktMDQtMDUgMTQ6MTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBNYWtlZmlsZS5pbiwgaWYuYywgd2luc3R1Yi5jCiwgd2luc3R1Yi5oOgoKICAgLSBidWlsZCBzbm1wbmV0c3RhdCB3aXRoIEN5Z1dpbjMyCiAgIAoxOTk5LTA0LTA1IDExOjA2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYywgbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYykgSm9lIE1hcnpvdCdzIGZpeCB0byBjb3B5IGV2ZW4gYW4gZW1wdHkgY29tbXVuaXR5IG5hbWUuCiAgIAoxOTk5LTA0LTAxIDEzOjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2xpYnNubXAuaDoKCiAgIC0gKGxpYnNubXAuaCkgQXN5bXB0b3RpY2FsbHkgY2xvc2VyIHRvIHN1cHBvcnRpbmcgQ01VIGNvbnN0YW50cy4KICAgCjE5OTktMDMtMjggMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAtIHdoZW4gdXNpbmcgY29weV93b3JkKCkgZG9uJ3Qgc2tpcCBzcGFjZXMsIHNpbmNlIGl0IGRvZXMgdGhhdC4KICAgCjE5OTktMDMtMjggMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKTogcmVsb2NhdGUgdG8KICAgICBzbm1wTW9kdWxlcy4xMiwgd2hlcmUgdGhleSBzaG91bGQgYmUuCiAgIAoxOTk5LTAzLTIzIDEwOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHJlZ2V4cCBmaXguCiAgIAoxOTk5LTAzLTIzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChtaWJkZWZzLmgsIHN0cnVjdC5oLCBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaCwgcHJvYy5jLCBwcm9jLmgsCiAgICAgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBwZXItcHJvY2Vzcy9leGVjIGZpeCBzY3JpcHRzIGNyZWF0ZWQuCiAgIAoxOTk5LTAzLTIzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSByZXR1cm4gdGhlIG5leHQgdG9rZW4sIG5vdCB0aGUKICAgICBuZXh0IHNwYWNlLgogICAKMTk5OS0wMy0yMyAxMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgbW9yZSB0YXJnZXRzLgogICAKMTk5OS0wMy0xOSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBnZXQuYywgc25tcHdhbGsuYyk6IGZpeGVkIGluaXRpYWxpemF0aW9uIGFuZCB1c2FnZSBvZiAiZmFpbHVyZXMiLgogICAKMTk5OS0wMy0xOCAwODozNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gKG1pYklJL2lwLmMpIGZpeCBNSUJfSVBDT1VOVEVSX1NZTUJPTCB1c2FnZQogICAKMTk5OS0wMy0xNyAxMzo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLShocl9zd3J1bi5jKSAtIHByZXZlbnQgU3VuT1MgNC4xIGNvcmUgKHN1bm9zNCBzdGlsbCBwcmltaXRpdmUpCiAgIAoxOTk5LTAzLTE2IDExOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuaCwgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwo6CgogICAtIG1vdmUgTUFUQ0hfRkFJTEVEL01BVENIX1NVQ0NFRURFRCBmcm9tIHV0aWxfZnVuY3MuaCB0byBtaWJpbmNsLmgKICAgCjE5OTktMDMtMTYgMTE6MjMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgY29uc2lzdGVudCBlcnJvciByZXR1cm4uCiAgIAoxOTk5LTAzLTE2IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogZml4IGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGZyZWVic2QuCiAgIAoxOTk5LTAzLTE2IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogcmVtb3ZlZCBhIGJvZ3VzIG5ldy1saW5lLgogICAKMTk5OS0wMy0xNSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IGRvbid0IGRvIGEgbWFrZSBpbnN0YWxsIG9mIGRsbW9kcwogICAKMTk5OS0wMy0xNSAxNjowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRSwgRkFRLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4xICkKICAgCjE5OTktMDMtMTUgMTY6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG1hcmsgd2l0aCB2ZXJzaW9uIG51bS4KICAgCjE5OTktMDMtMTUgMTY6MDAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy42LjEuCiAgIAoxOTk5LTAzLTE1IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1M6CgogICAtIChGQVEsIE5FV1MpOiB1cGRhdGVzIHRvIHRhbGsgYWJvdXQgdGhlIEFHRU5ULnR4dCBmaWxlLgogICAKMTk5OS0wMy0xNSAxNTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCiAgIAoxOTk5LTAzLTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBmaXhlcyBmb3IgbGludXggMi4yIGludGVyZmFjZSBzY2FubmluZy4KICAgCjE5OTktMDMtMTUgMTU6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW50ZXJmYWNlcy5jLCBsaW51eC5oKTogZGV0ZWN0CiAgICAgL3Byb2MvbmV0L2RldiB2ZXJzaW9uIGF0IHJ1biB0aW1lLCBub3QgY29tcGlsZSB0aW1lLgogICAKMTk5OS0wMy0xNSAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9wcm9jLmgsCiAgIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbG9hZGF2ZS5oOgoKICAgLSAoaHJfcHJvYy5jLCBocl9wcm9jLmgsIGxvYWRhdmUuYywgbG9hZGF2ZS5oKTogZml4IHRyeV9sb2FkYXZlIGZvciBzb2xhcmlzLgogICAKMTk5OS0wMy0xNSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiBhZGRlZCBDTVVfQ09NUEFUSUJMRQogICAKMTk5OS0wMy0xNSAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICAtIChzbm1wLmgpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudGVkIG91dCBkZWZpbmUuCiAgIAoxOTk5LTAzLTE1IDA5OjQyICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gc2Vjb25kIHBhc3MgYXQgQ01VX0NPTVBBVDogRGlzYWJsZSBieSBkZWZhdWx0LCBsZWF2ZSBzbm1wX3BhcnNlIGFsb25lLgogICAKMTk5OS0wMy0xNSAwODo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMpOgogICAgIC0gcmV2ZXJ0IHRvIHNubXBfcGFyc2UuCiAgICAgLSBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4KICAgCjE5OTktMDMtMTUgMDU6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgbGlic25tcC5oLCBtaWIuYywKICAgc25tcC5oLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4gbGlic25tcC5oIG1pYi5jIHNubXAuaCBzbm1wX2FwaS5jKSB1cGRhdGUgQ01VX0NPTVBBVElCTEUKICAgCjE5OTktMDMtMTIgMTU6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvOiBJUEZXQ0hBSU5TLU1JQi50eHQsCiAgIGlwZndjaGFpbnMuaDoKCiAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCwgaXBmd2NoYWlucy5oKTogbW92ZSB0byBhIHN1Yi1vaWQgaW4gdGhlCiAgICAgZXhwZXJpbWVudGFsIHRyZWUuCiAgIAoxOTk5LTAzLTEyIDE1OjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9JUEZXQ0hBSU5TLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjX2tlcm5lbF9oZWFkZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9saWJpcGZ3Yy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2xpYmlwZndjLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUsCiAgICAgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLCBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsCiAgICAgbGliaXBmd2MuaCk6IFBhdGNoIGZyb20gRGlkaWVyIERoYWVuZW5zOgogICAgIC0gbmV3IG1vZHVsZXM6IGlwZndjaGFpbnMuCiAgIAoxOTk5LTAzLTEyIDE1OjIzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGRvbid0IHByaW50IG1vZHVsZSBsaXN0IGhlcmUuLi4gIHRlbGwgdGhlbSB0byBsb29rIGF0CiAgICAgY29uZmlndXJlIC0taGVscC4KICAgCjE5OTktMDMtMTIgMTQ6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIGhvc3QvaHJfc3lzdGVtLmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gcmVzdG9yZSBjb25maWdfcmVxdWlyZSBsb2dpYzsgZml4IHNwcmludGYgY2FsbHMgdG8gY29tcGlsZSB1bmRlciBTdW5PUyA0LjEueC4KICAgCjE5OTktMDMtMTIgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuaCk6IE1BVENIX0ZBSUxFRCAtPiAtMSwgc2luY2Ugc29tZSB1c2UgaXQuCiAgIAoxOTk5LTAzLTEyIDE0OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAodGFyZ2V0LmgsIHRhcmdldC8qLmgpIHJlcXVpcmUgdXRpbF9mdW5jcyBvbmNlLgogICAKMTk5OS0wMy0xMiAxNDozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5oOgoKICAgLSAoaHJfc3lzdGVtLmgpIC0gZG9uJ3QgcmVxdWlyZSBocl91dGlsOyBkb25lIGluIG1pYmdyb3VwL2hvc3QuaAogICAtIChocl9zd3J1bi5jKSAtIHNvbGFyaXMyOiBtYWtlIHN1cmUga3ZtX29wZW4gaXMgY2FsbGVkIGJlZm9yZSBrZCBpcyB1c2VkLgogICAtIChocl9zd3J1bi5jKSAtIGFkZCBsYW1lIHN1bm9zNCBlcXVpdmFsZW50IGluIEhSU1dSVU5QRVJGX0NQVS4KICAgCjE5OTktMDMtMTIgMTQ6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogcHJvdGVjdCBzdHJjcHkoKSBhZ2FpbnN0IGEgbnVsbCBwYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlCiAgICAgY29uZmlnIGxpbmUuCiAgIAoxOTk5LTAzLTEyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjE5OTktMDMtMTIgMTI6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBmaXggYXNuX3BhcnNlIGZ1bmN0aW9ucyB0byBwYXNzIGEgcG9pbnRlciB0byB0aGUgc2l6ZSB2YXJpYWJsZS4KICAgCjE5OTktMDMtMTIgMTE6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogZXhwbGljaXQgdGVzdCBmb3IgTUFUQ0hfRkFJTEVECiAgIAoxOTk5LTAzLTEyIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgZHVtbXkvZHVtbXkuYywKICAgZXhhbXBsZXMvd29tYmF0LmMsIGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfZGlzay5jCiwgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfbmV0d29yay5jLAogICBob3N0L2hyX3BhcnRpdGlvbi5jLCBob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jCiwgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMsCiAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvaWNtcC5jCiwgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLAogICBtaWJJSS9zbm1wX21pYi5jLCBtaWJJSS9zeXNPUlRhYmxlLmMsCiAgIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaXNjL2RsbW9kLmMsIHVjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICAtIChtaWJpbmNsLmgsIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBzbm1wX21pYi5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLCBkbG1vZC5jLAogICAgIHJlZ2lzdHJ5LmMpOiBmaXhlZCBNQVRDSF9GQUlMRUQvU1VDQ0VFREVEIGRlZmluZXMgLT4gdXRpbF9mdW5jcy5oLgogICAKMTk5OS0wMy0xMiAwNzowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBVc2UgTUFUQ0hfRkFJTC9TVUNDRUVERUQgaW4gdXRpbF9mdW5jcy5oCiAgIAoxOTk5LTAzLTExIDE2OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oOgoKICAgLSAoc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oKTogUGF0Y2ggZnJvbSBFcmlrIEphY29ic2VuOgogICAgIC0gZml4ZWQgcHJvdG90eXBlcyBmb3IgREVCVUdQKCkgYW5kIERFQlVHUE9JRCgpLgogICAKMTk5OS0wMy0xMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKTogbW92ZSBNQVRDSF9TVUNDRUVERUQgZGVmcyB0byAuaC4KICAgCjE5OTktMDMtMTEgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzIGFuZCBhbnNpJ2lmaWVkIHRoaW5ncy4KICAgCjE5OTktMDMtMTEgMTY6MTAgIGhhcmRha2VyCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpOiByZW1vdmVkIEFHRU5UCiAgIAoxOTk5LTAzLTExIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogY2hhbmdlZCBzb21lIGNvbW1lbnRzIHRvIC8qICovIGluc3RlYWQgb2YgLy8uCiAgIAoxOTk5LTAzLTExIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBNaWtlIEJhZXIuCiAgIAoxOTk5LTAzLTEwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBOQU1FIC0+IE9JRC4KICAgCjE5OTktMDMtMTAgMTU6MDcgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogZ3JvdXAgbGluZXMgd2VyZSBiYWNrd2FyZHMuCiAgIAoxOTk5LTAzLTEwIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBtb3ZlZCBmcm9tIEFHRU5UIHRvIGF2b2lkIG5vbi1jYXNlLXNlbnNpdGl2ZSB3MzIgY29uZmxpY3RzLgogICAKMTk5OS0wMy0wOCAxNDoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIHJvdXRlLmM6CgogICAtIChzbm1wbmV0c3RhdDppZi5jLCByb3V0ZS5jKSBsaW1pdCBpbnRlcmZhY2UgbmFtZSBzaXplcyB0byBmaXQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAoxOTk5LTAzLTA4IDA5OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpIENvbXBsZXRlIERhdmUgU2hpZWxkcycgcGF0Y2ggZm9yIGNvbnRpbnVlIGFmdGVyIGVycm9yLgogICAKMTk5OS0wMy0wOCAwNTowNyAgbXNsaWZjYWsKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCkgTUFYX05BTUVfTEVOIC0tPiBNQVhfT0lEX0xFTiBpbiBleGFtcGxlCiAgIAoxOTk5LTAzLTA4IDA1OjAxICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0od2luMzIvY29uZmlnLmgpIHJlbW92ZSB1bnVzZWQgU1lTX1RJTUVfTkFNRSxHTE9CQUxTRUNVUklUWS4gYWRkIG5ldyBjb25zdGFudHMuCiAgIAoxOTk5LTAzLTA4IDA0OjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKSB1c2UgcmVxdWVzdCBkYXRhIHdpdGggcmVxdWVzdCBjYWxsYmFjawogICAKMTk5OS0wMy0wOCAwNDowMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgKHBhcnNlLmMpIC0gZml4IHN1YmlkIGluaXQ7IHJlbW92ZSB1c2VsZXNzICctUGwnIG9wdGlvbi4KICAgCjE5OTktMDMtMDUgMTc6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzozNSAgaGFyZGFrZXIKCiAgICogRkFRLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAo6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNiApCiAgIAoxOTk5LTAzLTA1IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBmaW5hbCB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wMy0wNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogYXV0b2NvbmYgdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzoxOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTOgoKICAgLSAoRkFRLCBORVdTKTogZmluYWwgdXBkYXRlcy4KICAgCjE5OTktMDMtMDUgMTc6MTIgIGhhcmRha2VyCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpOiBEYXZlIFNoaWVsZCdzIG5ldyBkb2N1bWVudC4KICAgCjE5OTktMDMtMDUgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oOgoKICAgLSAobWliSUkvc3lzdGVtLmgpOiByZW1vdmVkCiAgIAoxOTk5LTAzLTA1IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiByZWZlcmVuY2UgQUdFTlQgZG9jdW1lbnQuCiAgIAoxOTk5LTAzLTA1IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogZG8gZXJyb3IgcmVwb3J0aW5nIGZvciBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgogICAKMTk5OS0wMy0wNSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICAtICh2bXN0YXQuaCk6IGRlY2xhaXIgaW5pdF92bXN0YXQoKS4KICAgCjE5OTktMDMtMDUgMTY6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscCdzIG1vZHVsZSBsaXN0LgogICAKMTk5OS0wMy0wNSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGV4YW1wbGVzL3dvbWJhdC5jCiwgaG9zdC9ocl9uZXR3b3JrLmMsIG1pYklJL3NubXBfbWliLmgsCiAgIG1pYklJL3N5c3RlbV9taWIuaCwgdWNkLXNubXAvZGlzay5oLAogICB1Y2Qtc25tcC9lcnJvcm1pYi5oLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIHVjZC1zbm1wL2ZpbGUuaCwgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcHJvYy5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5oCiwgdWNkLXNubXAvdmVyc2lvbmluZm8uaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYywgd29tYmF0LmMsIGhyX25ldHdvcmsuYywgc25tcF9taWIuaCwgc3lzdGVtX21pYi5oLAogICAgIGRpc2suaCwgZXJyb3JtaWIuaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsIG1lbW9yeV9zb2xhcmlzMi5oLCBwYXNzLmgsCiAgICAgcHJvYy5oLCByZWdpc3RyeS5oLCB2ZXJzaW9uaW5mby5oKToKICAgICAtIC1XYWxsIGZpeGVzLCBtb3N0bHkgaW5pdF8oKSByb3V0aW5lcyBkZWNsYWlyZWQgaW4gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAKMTk5OS0wMy0wNSAxNTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IGNyZWF0ZSBVTkRPCiAgIAoxOTk5LTAzLTA1IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlIHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvLCBzaW5jZSBpdHMgbm90IHVzZWQgdGhpcyByZWxlYXNlLgogICAKMTk5OS0wMy0wNSAxMTowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAKICAgKHRjcC5jKSAtIGJyZWFrIG91dCBvZiBpbmZpbml0ZSBsb29wIHdoZW4ga2xvb2t1cCBmYWlscy4KICAgCjE5OTktMDMtMDUgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzd2l0Y2ggQ09NTUlUIGFuZCBBQ1RJT04gcGhhc2VzLgogICAKMTk5OS0wMy0wNSAxMDoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZTogcmVhcnJhbmdpbmcgYW5kIGNsZWFuaW5nLgogICAKMTk5OS0wMy0wNSAxMDoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHRoZSB1c2Ugb2YgJ2hlYWRlcl9zaW1wbGVfdGFibGUnIHJhdGhlciB0aGFuICdjaGVja21pYicKICAgICAtIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCBNQVRDSF9GQUlMRUQKICAgICAtIGRvbid0IHNldCBkZWZhdWx0cyBmb3IgJ3dyaXRlX21ldGhvZCcgYW5kICd2YXJfbGVuJwogICAJCShzaW5jZSBib3RoICdoZWFkZXJfZ2VuZXJpYycgYW5kICdjaGVja21pYicgZG8gdGhpcyBhbnl3YXkpCiAgICAgLSBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHZhcmlhYmxlIGluaXRpYWxpc2F0aW9uIGluIHRoZQogICAJCXdyaXRlIHJvdXRpbmUgKHNpbWlsYXJseSBpbiB0aGUgbWliMmMuY29uZiBwYXRjaCkKICAgICAgICAgW1RoaXMgaXMgb25lIG9mIG15IGhvYmJ5LWhvcnNlcyB3aXRoIG91ciBzdHVkZW50cywgc28gSSBkb24ndAogICAJCSBzZWUgd2h5ICJwcm9mZXNzaW9uYWwiIHByb2dyYW1tZXJzIHNob3VsZCBiZSBleGVtcHQhXQogICAKICAgICAtIE1ha2UgcHJvcGVyIHVzZSBvZiB0aGUgdGhyZWUtcGhhc2UgbmF0dXJlIG9mIFNFVHMKICAgCjE5OTktMDMtMDUgMDk6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAKICAgRml4IFdpbjMyIHZlcnNpb24gb2YgZ2V0dGltZW9mZGF5OiB0dl91c2VjIHdhcyBtaWxsaXNlY3MgLCByZXR1cm4gbm93ID0gMAogICAKMTk5OS0wMy0wNCAxODoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAKICAgKHNubXBfYXBpLmMpIC0gZXhwb3NlIHNubXBfZnJlZTsgc25tcF9wZHVfYWRkX3ZhcmlhYmxlIHJldHVybnMgcHRyIHRvIHZhciBmb3IKICAgZnV0dXJlIGltcHJvdmVkIGVycm9yIHJlY292ZXJ5LgogICAKMTk5OS0wMy0wNCAxNzo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgd2luMzIvY29uZmlnLmgKOgoKICAgCiAgIFJlcGxhY2UgdXNlcyBvZiBiemVybyB3aXRoIG1lbXNldCwgYmNvcHkgd2l0aCBtZW1jcHkuCiAgIEZpeCBwcm90b3R5cGVzLgogICAKMTk5OS0wMy0wNCAxNzowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgCiAgIChzeXNPUlRhYmxlLmMpIC0gcmVtb3ZlIHN0YXRpYyB1X2xvbmcgbG9uZ19yZXR1cm4sIGZvciBjb25zaXN0ZW5jeS4KICAgCjE5OTktMDMtMDQgMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYwosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtICh1dGlsX2Z1bmNzLmMsIGR1bW15LmMsIGV4YW1wbGUuYywgd29tYmF0LmMsIHRjcC5jLCBocHV4LmMsCiAgICAgbWVtb3J5LmMsIGFsYXJtLmMsIHNubXBfYXBpLmMpOgogICAgIC0gbWlzYyBmaXhlcywgLVdhbGwgbW9zdGx5LgogICAKMTk5OS0wMy0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5OS0wMy0wNCAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtICh2bXN0YXRfZnJlZWJzZDIuYyk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHR5cG8gZml4ZWQuCiAgIAoxOTk5LTAzLTA0IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIC0gKFJFQURNRS5zbXV4KTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gdXBkYXRlLgogICAKMTk5OS0wMy0wNCAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwKICAgZXhhbXBsZXMvZXhhbXBsZS5jLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pc2MvaXBmd2FjYy5jCiwgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL2ZpbGUuYywgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwosIHVjZC1zbm1wL3Byb2MuYywgdWNkLXNubXAvdm1zdGF0LmMsCiAgIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIGV4YW1wbGUuYywgc3lzT1JUYWJsZS5jLCBpcGZ3YWNjLmMsCiAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB2bXN0YXQuYywKICAgICB2bXN0YXRfZnJlZWJzZDIuYyk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBoZWFkZXJfc2ltcGxlX3RhYmxlIHRvIHJlcGxhY2UgY2hlY2ttaWIoKS4KICAgCjE5OTktMDMtMDQgMTU6MjkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgCiAgIChocl9kaXNrLmMpIC0gY29uZGl0aW9uYWxseSB1c2UgZGVmaW5lZCBES0MgZGlzayB0eXBlcwogICAKMTk5OS0wMy0wNCAxNToyNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgCiAgIChkaXNrLmMpIC0gZXhwbGljaXQgYnJhY2VzIHRvIGF2b2lkIGFtYmlndW91cyBgZWxzZScKICAgCjE5OTktMDMtMDQgMTU6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9wcm9jLmMsIHVjZC1zbm1wL2xvYWRhdmUuYwo6CgogICAKICAgCiAgIChocl9wcm9jLmMsIGxvYWRhdmUuYykgLSBmaXhlZCBjb3JlIG9uIGdldGxvYWRhdmcgaW4gYSBkaWZmZXJlbnQgd2F5CiAgIAoxOTk5LTAzLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHZvaWQgY2hlY2suCiAgIAoxOTk5LTAzLTA0IDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBXaGVuIHRoZSBhZ2VudCBpcyBjb21waWxlZCB3aXRoIEhBVkVfTElCUlBNIHNldCwgeWV0IG5vIGRhdGFiYXNlCiAgICAgICBpcyBmb3VuZCwgYWdlbnQgd2lsbCBjb3JlLi4uCiAgIAoxOTk5LTAzLTA0IDA5OjM4ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXMsIGxvY2FsL2VjZS1zbm1wZC5jb25mLAogICBsb2NhbC9maXhwcm9jLmNvbmY6CgogICAtIChyZW1vdmUtZmlsZXMsIGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLmNvbmYpOgogICAgIC0gcmVtb3ZlZCBlY2Ugc3BlY2lmaWMgY29uZmlnIGZpbGVzIGZyb20gdGhlIHJlcG9zaXRvcnkuCiAgICAgLSBkb24ndCByZW1vdmUgbG9jYWwvKi5jb25mIGluIHRoZSBmaXJzdCBwbGFjZSBhbnltb3JlLgogICAKMTk5OS0wMy0wNCAwOTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgLSBmaXggbG9hZCBhdmVyYWdlIG9uIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTA0IDA5OjI0ICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIAogICAKICAgKE1ha2VmaWxlLmluKSAtIGZpbmQgbWliZGVmcy5oIHdoZW4gbm90IGJ1aWxkaW5nIGluIHRoZSBzb3VyY2UgdHJlZQogICAKMTk5OS0wMy0wNCAwOToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwosIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIAogICAKICAgKGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZXMKICAgCiAgIChhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jKTogY2hhbmdlICIqd29yZCIgdG8gIip0b2tlbiIgdG8gaGVscCBzb21lIGNvbXBpbGVyCiAgIAoxOTk5LTAzLTA0IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZml4IHZvaWQgdGVzdCBmb3IgYW5zaSBjb21waWxlcnMuCiAgIAoxOTk5LTAzLTA0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIC0gKFJFQURNRS5zbXV4KTogYWRkIE5pY2suCiAgIAoxOTk5LTAzLTA0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHJlcG9zaXRvcnkgbW92ZS4KICAgCjE5OTktMDMtMDQgMDQ6MDggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIAogICAoc25tcG5ldHN0YXQvaWYuYykgLSBhZGQgdm9pZCB0byBlbXB0eSBmb3JtYWwgcGFyYW1ldGVyIGxpc3QKICAgCjE5OTktMDMtMDMgMTg6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMTAgKQogICAKMTk5OS0wMy0wMyAxODowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIFNNVVguCiAgIAoxOTk5LTAzLTAzIDE4OjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gbmFtZSBjaGFuZ2UuCiAgIAoxOTk5LTAzLTAzIDE3OjUxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FCiwgVE9ETywgYnVnLXJlcG9ydCwgYWdlbnQvc25tcGQuYywKICAgbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgVE9ETywgYnVnLXJlcG9ydCwgc25tcGQuYywKICAgICBSRUFETUUubWliMmMpOiBlY2UudWNkYXZpcy5lZHUgLT4gdWNkLXNubXAudWNkYXZpcy5lZHUuCiAgIAoxOTk5LTAzLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtIChwcm9jLmMsIHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gQ2hyaXMgSHVnaGVzOgogICAgIC0gVXNlIC9wcm9jIG9uIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTAzIDEwOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogYW5zaSdpZnkgdGhlIGNvbmZpZyBmdW5jdGlvbi4KICAgCjE5OTktMDMtMDMgMDg6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHJhbiBhdXRvY29uZi4uLgogICAKMTk5OS0wMy0wMyAwODoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgTmljay4KICAgCjE5OTktMDMtMDIgMTU6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBMaW51eCBjb21waWxlcyBkaWUgYXQgU09fUkNWVElNRU8uCiAgICAgLSAtV2FsbCB0eXBlIGZpeGVzLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdHlwby4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiB0eXBlY2FzdCBmdW5jdGlvbiB3aXRoICh2b2lkKS4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguaDoKCiAgIC0gKHNtdXguaCk6IHRvcCBsZXZlbCBzbXV4IGZha2UgbW9kdWxlIGhlYWRlci4KICAgCjE5OTktMDMtMDIgMTU6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2RlYnVnLmMsCiAgICAgc25tcF9kZWJ1Zy5oKToKICAgICAtIG5ldyBmbGFnOiAgLS1kaXNhYmxlLWRlYnVnZ2luZyB0byBjb21wbGV0ZWx5IHR1cm4gb2ZmIGl0cyBzdXBwb3J0LgogICAgIC0gcmVuYW1pbmcgb2YgRE9ERUJVRyB0byBTTk1QX0FMV0FZU19ERUJVRy4KICAgICAtIGNsZWFuIHVwIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IG9wdGlvbnMgbGlzdGVkLCBpbmNsdWRpbmcgcHV0dGluZwogICAgICAgYSBsaXN0IG9mIGF2YWlsYWJsZSBtb2R1bGVzIGZvciBjb21waWxhdGlvbiBpbnRvIHRoZSBhZ2VudC4KICAgCjE5OTktMDMtMDIgMTM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCByZXR1cm4gYSBwb2ludGVyIHRvIGEgcG9pbnRlci4KICAgCjE5OTktMDMtMDIgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS92YWNtX3ZhcnMuYwosIG1pc2MvaXBmd2FjYy5jOgoKICAgLSAoc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgaXBmd2FjYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBTdWdnZXN0ZWQgZml4ZXMgdG8gZWxpbWluYXRlIG1vcmUgc2hhZG93ZWQgZ2xvYmFsIHJlZmVyZW5jZXMuCiAgICAgLSBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZyAoKV0uCiAgIAoxOTk5LTAzLTAyIDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBEb24ndCBkZWZpbmUgTUFYX05BTUVfTEVOIGlmIGRlZmluZWQgc29tZXdoZXJlIGVsc2UuCiAgIAoxOTk5LTAzLTAxIDE3OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6CiAgICAgLSBhbGxvdyBudWxsIGxlbmd0aCBwYXNzd29yZHMuCiAgICAgLSBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMTk5OS0wMy0wMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBwdXQgYmFjayBpbiBNQVhfTkFNRV9MRU4gdGVtcG9yYXJpbHkuCiAgIAoxOTk5LTAzLTAxIDE2OjIwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBkZXMuMSwgZGVzLjM6CgogICAtIChkZXMuMSwgZGVzLjMpOiByZW1vdmVkIHVudXNlZCBtYW51YWwgcGFnZXMuCiAgIAoxOTk5LTAzLTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gRUNFIGRlcHQuCiAgIAoxOTk5LTAzLTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgdGFyZ2V0cy4KICAgCjE5OTktMDMtMDEgMTY6MTcgIGhhcmRha2VyCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZgosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwKICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYKLCB2YXJpYWJsZXMuNToKCiAgIC0gKG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLAogICAgIHZhcmlhYmxlcy41KTogTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc3BlbGwgY2hlY2suCiAgIAoxOTk5LTAzLTAxIDE2OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAtIHJlbW92ZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggdGhhdCB3YXNuJ3QgbmVlZGVkLgogICAKMTk5OS0wMy0wMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jOgoKICAgLSAoYWxhcm0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gQ2FzdCB0byBwb2ludGVyIHRvIGludCBtYXkgb3ZlcmZsb3cgdGhlIHJldHVybiBidWZmZXIuCiAgIAoxOTk5LTAzLTAxIDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IDMuNmlmaWVkLgogICAKMTk5OS0wMy0wMSAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSBjb21wbGV0ZWx5IHJlLXdyaXR0ZW4gc211eCBtb2R1bGVzLgogICAKMTk5OS0wMy0wMSAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIGNvbXBhcmVfdHJlZSgpIGdsb2JhbC4KICAgCjE5OTktMDMtMDEgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjb250ZXh0X3BhcnNlLmMsIG1pYi5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWNhc3RpbmcgZm9yIGNlcnRhaW4gZnVuY3Rpb25zIHRvIChjaGFyICopLgogICAKMTk5OS0wMy0wMSAxMjozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGFkZGVkIE1JTl9PSURfTEVOIGZvciBpbnN0cnVjdGlvbmFsIHVzZSBtb3N0bHkgKGl0cyB1bnVzZWQpLgogICAKMTk5OS0wMy0wMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgIAoxOTk5LTAzLTAxIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHV0IGEgcHJvcGVyICh2b2lkKSBpbnRvIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogc3ByaW50ZiBhcmcgbWlzbWF0Y2guCiAgIAoxOTk5LTAzLTAxIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGNhc2UgZW50cmllcy4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGZyZWUgdGhlIGludGVyZmFjZSB0YWJsZS4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmM6CgogICAtIChlcnJvcm1pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZXJybm8gdmFyaWFibGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gcmVuYW1pbmcgb2YgdmFyaWFibGVzIGF3YXkgZnJvbSBzeXN0ZW0gZnVuY3Rpb24gbmFtZXMgKGluZGV4IC0+IGxpbmRleCkuCiAgIAoxOTk5LTAzLTAxIDEyOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gaW5pdGlhbGl6ZSB2YXJpYWJsZSB0byAwLgogICAKMTk5OS0wMy0wMSAxMDo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHR5cG86IGZpbGVNYXggLT4gZmlsZUVycm9yRmxhZyBuYW1lIGNoYW5nZS4KICAgCjE5OTktMDItMjYgMTY6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOSApCiAgIAoxOTk5LTAyLTI2IDE2OjExICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsCiAgIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYKLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjgsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAtIG5ldyBkb2N1bWVudGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzLgogICAKMTk5OS0wMi0yNiAxNjoxMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogdXNhZ2UgdXBkYXRlLCBhbmQgLUggc3VwcG9ydC4KICAgCjE5OTktMDItMjYgMTY6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIGZvciAzLjYgcmVsZWFzZS4KICAgCjE5OTktMDItMjYgMTY6MDYgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGFuZCBtYWRlIGJldHRlciBleGFtcGxlcy4KICAgCjE5OTktMDItMjYgMTU6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBVbmxpbmtlZCBPSUQgLi4uIGNjaXR0IDAgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgIC0gQ29udGludWUgYWZ0ZXIgcmVzZXJ2ZWQgd29yZCBlcnJvciBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgLSBNb2RpZmljYXRpb24gdG8gIzIgY291cnRlc3kgb2YgTmllbHMgQmFnZ2VzZW4uCiAgICAgLSBNb2RpZmljYXRpb24gdG8gcHJpbnQgc3ViLWlkZW50aWZpZXIgPT0gMAogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgICAgLSBJbnN0ZWFkIG9mIHJlLW9yZGVyaW5nIGFsbCBzaW5nbHktbGlua2VkIGxpc3RzLCB1c2UgYSBuZXcgbWVtYmVyCiAgICAgICB0aGF0IGZsYWdzIHdoZW4gYSByZXBvcnQgaGFzIGJlZ3VuLgogICAKMTk5OS0wMi0yNiAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChsb2FkYXZlLmMsIGxvYWRhdmUuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBpbXBsZW1lbnQgbG9hZCBhdmVyYWdlIHJlcG9ydGluZyBhcyBhIGludGVnZXIgYW5kIGFzIGEgZmxvYXQuCiAgIAoxOTk5LTAyLTI1IDEwOjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIC0gKFJFQURNRSwgdWNkX3NubXAuaCwgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oKTogUGF0Y2gKICAgICBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAtIG1lbW9yeSBzdXBwb3J0IGZvciBzb2xhcmlzMi4KICAgCjE5OTktMDItMjQgMTc6MTAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbGludXguaCk6CiAgICAgLSBDaGVjayBmb3IgYW5kIGhhbmRsZSAyLjIgL3Byb2MvbmV0L2RldiBjaGFuZ2VzLgogICAKMTk5OS0wMi0yNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiB1cGRhdGUuCiAgIAoxOTk5LTAyLTIyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBEb24ndCBwcmludCAiY2FuJ3QgZmluZCBtb2R1bGUgWFhYIiBtZXNzYWdlcyB3aXRob3V0IHdhcm5pbmdzIHR1cm5lZCBvbi4KICAgCjE5OTktMDItMjIgMDk6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBzZWxlY3QgImFsbG93IHVuZGVyc2NvcmUgaW4gTUlCCiAgICAgICBzeW1ib2xzIiBpcyBtaXNzaW5nLgogICAKMTk5OS0wMi0xNyAxNjoyMyAgZHJlZWRlcgoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIGZpbGUgc25tcC11Y2Quc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTAyLTE3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0Lzogd2luc3R1Yi5jLCB3aW5zdHViLmg6CgogICAtICh3aW5zdHViLmMsIHdpbnN0dWIuaCk6IHBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZ2VuZXJpYyB3aW5kb3dzIEFQSSByZXBsYWNlbWVudHMuCiAgIAoxOTk5LTAyLTE3IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGQuYywgZHVtbXkuYywgd29tYmF0LmMsIHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGRsbW9kLmMsCiAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICBtZW1vcnlfZnJlZWJzZDIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCBtaWIuYywKICAgICByZWFkX2NvbmZpZy5jKTogd29yZCAtPiB0b2tlbiAoIndvcmQiIGlzIHJlc2VydmVkIGluIHNvbWUgY29tcGlsZXJzLgogICAKMTk5OS0wMi0xNyAxNToyOCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AKOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB3aW4zMiB1cGRhdGVzLgogICAKMTk5OS0wMi0xNyAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jCjoKCiAgIC0gKHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0IGZpeGVzLgogICAKMTk5OS0wMi0xNyAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChzbm1wX2RlYnVnLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGRlYnVnX2FyZ3Mgd2FzIGRlY2xhcmVkIHR3aWNlLgogICAgIC0gaGVhZGVyIGZpeGVzIGZvciB3aW4zMi4KICAgCjE5OTktMDItMTcgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGZwcmludF92YXJpYWJsZSB0byBub3QgcmVjdXJzZS4KICAgCjE5OTktMDItMTcgMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY29udGV4dF9wYXJzZS5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBkb24ndCB1c2UgYSB2YXJpYWJsZSBjYWxsZWQgJ3RpbWUnLiAgVHNrIHRzay4KICAgCjE5OTktMDItMTcgMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBjb21tZW50IHJlZm9ybWF0dGluZy4KICAgCjE5OTktMDItMTcgMTU6MTggIGhhcmRha2VyCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2UgYSAnLScgaW5zdGVhZCBvZiBhICcuJyBmb3IgSUVFRTgwMi0xMS4KICAgCjE5OTktMDItMTcgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogc2VwYXJhdGUgdGFyZ2V0IGZvciBnZW5lcmF0ZWQgbWFudWFsIHBhZ2VzLgogICAKMTk5OS0wMi0xNyAxNToxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlIGFnYWluIGZvciBiZXR0ZXIgc3RpbGwgb3V0cHV0LgogICAKMTk5OS0wMi0xNyAxNToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgbWFpbi5jLAogICBuZXRzdGF0LmgsIHJvdXRlLmM6CgogICAtIChpZi5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtYWtlIHNubXBuZXRzdGF0IHdpbjMyIGNvbXBhdGlibGUuCiAgIAoxOTk5LTAyLTE3IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNhZ2UgZml4LgogICAKMTk5OS0wMi0xNyAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuaDoKCiAgIC0gKHNubXBkLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgcHJvdG90eXBlLgogICAKMTk5OS0wMi0xNyAxNToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEwuIEhpdGNoOgogICAgIC0gZml4IGlmX25hbWUgdmFyaWFibGUgYnkgbWFraW5nIGl0IHN0YXRpYy4KICAgCjE5OTktMDItMTYgMTc6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZWQgbWliMmMgcHJvZ3JhbS4uLiAgc3RpbGwgaW4gcHJvZ3Jlc3MuLi4KICAgCjE5OTktMDItMTEgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdXBkYXRlLgogICAKMTk5OS0wMi0xMSAxNjo0OCAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU4ICkKICAgCjE5OTktMDItMTEgMTY6NDYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFeHQtMy02LXByZTggKQogICAKMTk5OS0wMi0xMSAxNjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAtICh0Y3AuYyk6IHZhcl90Y3BFbnRyeSB3YXMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgaW5jb21pbmcgb2lkIHdpdGggdGhlCiAgICAgd3JvbmcgbGVuZ3RoIGFuZCBjb3VsZCBzdWNjZWVkIGF0IHRpbWVzIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUuCiAgIAoxOTk5LTAyLTExIDE2OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywKICAgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYzoKCiAgIC0gKGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgIC0gTW9yZSBidWYgc2l6ZSBzdGFuZGFyZGl6YXRpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgICAgLSBBIGZldyBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4gY29udmVyc2lvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgCjE5OTktMDItMTEgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogaW5jbHVkZSBzbm1wX3ZhcnMuaCBhaGVhZCBvZiB2YXJfc3RydWN0LmguCiAgIAoxOTk5LTAyLTExIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKCopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGNvbnZlcnQgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOLgogICAgIC0gY29udmVydCB0ZW1wb3JhcnkgY2hhcmFjdGVyIHN0b3JhZ2UgYnVmZmVycyB0byBTUFJJTlRfTUFYX0xFTi4KICAgICAtIG1ha2UgdGhlIGxpYnJhcmllcyBwcmludF8gZnVuY3Rpb25zIHVzZSB0aGUgZnByaW50XyBmdW5jdGlvbgogICAgICAgYWxyZWFkeSBkZWZpbmVkIGFuZCBwYXNzIGl0IHN0ZG91dC4KICAgCjE5OTktMDItMDkgMTQ6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGluY3JlYXNlIGJ1ZmZlciBzaXplIGZvciBvaWQgcHJpbnRpbmcuCiAgIAoxOTk5LTAyLTA5IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IGRlZmluZSBhIHN5bWJvbCBmb3IgT0lEIHByaW50aW5nJ3Mgc3RvcmFnZSBidWZmZXIgc2l6ZS4KICAgCjE5OTktMDItMDkgMTQ6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiB0eXBvLgogICAKMTk5OS0wMi0wOSAxNDoxMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgRkFRLmh0bWwuCiAgIAoxOTk5LTAyLTA4IDIzOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvOiBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYwosIGV4YW1wbGUuaDoKCiAgIC0gKGFnZW50L2RsbW9kcyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBmaXhlcy4KICAgCjE5OTktMDItMDggMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmg6CgogICAtIChrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCkgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbmNsdWRlIHVwZGF0ZXMuCiAgIAoxOTk5LTAyLTA4IDIzOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgc25tcDJwLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsCiAgIHNubXBfdmFycy5oLCBzbm1wZC5oLCB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KICAgCjE5OTktMDItMDggMjM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZHVtbXkvZHVtbXkuYywgZXhhbXBsZXMvZXhhbXBsZS5jLAogICBleGFtcGxlcy9leGFtcGxlLmgsIGV4YW1wbGVzL3dvbWJhdC5jLCBob3N0L2hyX2RldmljZS5jCiwgaG9zdC9ocl9kZXZpY2UuaCwgaG9zdC9ocl9kaXNrLmMsIGhvc3QvaHJfZGlzay5oCiwgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfZmlsZXN5cy5oLAogICBob3N0L2hyX25ldHdvcmsuYywgaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcmludC5oLCBob3N0L2hyX3Byb2MuYywKICAgaG9zdC9ocl9wcm9jLmgsIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N0b3JhZ2UuaAosIGhvc3QvaHJfc3dpbnN0LmMsIGhvc3QvaHJfc3dpbnN0LmgsCiAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zd3J1bi5oLCBob3N0L2hyX3N5c3RlbS5jCiwgaG9zdC9ocl9zeXN0ZW0uaCwgbWliSUkvYXQuYywgbWliSUkvYXQuaCwKICAgbWliSUkvaWNtcC5jLCBtaWJJSS9pY21wLmgsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaW50ZXJmYWNlcy5oLCBtaWJJSS9pcC5jLCBtaWJJSS9pcC5oLAogICBtaWJJSS9yb3V0ZV93cml0ZS5oLCBtaWJJSS9zbm1wX21pYi5jLCBtaWJJSS9zbm1wX21pYi5oCiwgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS9zeXNPUlRhYmxlLmgsCiAgIG1pYklJL3N5c3RlbS5oLCBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3N5c3RlbV9taWIuaAosIG1pYklJL3RjcC5jLCBtaWJJSS90Y3AuaCwgbWliSUkvdWRwLmMsCiAgIG1pYklJL3VkcC5oLCBtaWJJSS92YWNtX3ZhcnMuYywgbWliSUkvdmFjbV92YXJzLmgKLCBtaWJJSS92YXJfcm91dGUuYywgbWliSUkvdmFyX3JvdXRlLmgsCiAgIG1pc2MvaXBmd2FjYy5jLCBtaXNjL2lwZndhY2MuaCwgc211eC9zbm1wX2JncC5jLAogICBzbXV4L3NubXBfYmdwLmgsIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9vc3BmLmgKLCBzbXV4L3NubXBfcmlwMi5jLCBzbXV4L3NubXBfcmlwMi5oLAogICB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL2Rpc2suaCwgdWNkLXNubXAvZXJyb3JtaWIuYwosIHVjZC1zbm1wL2Vycm9ybWliLmgsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCB1Y2Qtc25tcC9maWxlLmMsIHVjZC1zbm1wL2ZpbGUuaAosIHVjZC1zbm1wL2hwdXguYywgdWNkLXNubXAvaHB1eC5oLAogICB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL2xvYWRhdmUuaCwKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeS5oLAogICB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcGFzcy5oLAogICB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIHVjZC1zbm1wL3Byb2MuYywgdWNkLXNubXAvcHJvYy5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5jCiwgdWNkLXNubXAvcmVnaXN0cnkuaCwgdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgdWNkLXNubXAvdm1zdGF0LmMsCiAgIHVjZC1zbm1wL3Ztc3RhdC5oLCB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsIHYycGFydHkvYWNsX3ZhcnMuYywKICAgdjJwYXJ0eS9hY2xfdmFycy5oLCB2MnBhcnR5L2FsYXJtLmMsIHYycGFydHkvYWxhcm0uaAosIHYycGFydHkvY29udGV4dF92YXJzLmMsIHYycGFydHkvY29udGV4dF92YXJzLmgsCiAgIHYycGFydHkvZXZlbnQuYywgdjJwYXJ0eS9ldmVudC5oLCB2MnBhcnR5L3BhcnR5X3ZhcnMuYwosIHYycGFydHkvcGFydHlfdmFycy5oLCB2MnBhcnR5L3ZpZXdfdmFycy5jLAogICB2MnBhcnR5L3ZpZXdfdmFycy5oOgoKICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAyLTA4IDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IHN5cy90eXBlcy5oCiAgIAoxOTk5LTAyLTA4IDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2Ugc25tcF9vaWRfY29tcGFyZSB1c2UgY29uc3Qncy4KICAgCjE5OTktMDItMDggMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzZSBzaXplX3QgaW5zdGVhZCBvZiAidW5zaWduZWQiIGZvciB4bWFsbG9jLCBldGMuCiAgIAoxOTk5LTAyLTA4IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IHByb3BlciBicmFja2V0IGluZGVudGF0aW9uLgogICAKMTk5OS0wMi0wOCAxNToxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAocm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gSWZJbmRleC4KICAgCjE5OTktMDItMDggMTU6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IG5vdGhpbmcuICByZWFsbHkuCiAgIAoxOTk5LTAyLTA4IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIHRpbWUgLT4gbV90aW1lLgogICAKMTk5OS0wMi0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IGlpbmRleC4KICAgCjE5OTktMDItMDggMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2UgdHJlZV9jb21wYXJlKCkgYmUgYSByZWFsIHR5cGVkZWYnZWQgZnVuY3Rpb24gYWdhaW4gbm93IHRoYXQKICAgICAgIHFzb3J0aW5nIGlzIG5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk5LTAyLTA4IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFRrLnBtIG1lbnRpb24uCiAgIAoxOTk5LTAyLTA4IDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9obiBQb2xzdHJhOgogICAgIC0gY2FsbCBhY2NlcHQoKSB0byBnZXQgdGhlIHNvY2tldCBmaWxlIGRlc2NyaXB0b3IuCiAgIAoxOTk5LTAyLTAyIDIyOjAyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1lbnRpb24gdGhhdCB0aGUgbWVtb3J5IHNlY3Rpb24gaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbAogICAgICAgYXJjaGl0ZWN0dXJlcy4KICAgCjE5OTktMDItMDIgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSAoaHJfcHJvYy5jKTogdXNlIFswXSBpbmRleCBvZiBsb2FkIGF2ZXJhZ2UgdGFibGUuCiAgIAoxOTk5LTAyLTAyIDIyOjAxICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IFJlbW92ZSB1bnN1cHBvcmVkIG1pYiBub2RlcyBmcm9tIG91dHB1dCBpbnN0ZWFkIG9mIHJldHVybmluZyAwJ3MuCiAgIAoxOTk5LTAyLTAyIDIyOjAwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIGxhY2sgb2Ygc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KICAgCjE5OTktMDItMDIgMTQ6NDggIGJhZXJtCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHRhcmdldC5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIENvZGUgYWRkZWQgdG8gc3VwcG9ydCB0aGUgdGFyZ2V0IE1JQiwgc3BlY2lmaWNhbGx5IHRoZSBhZGRyZXNzIGFuZAogICAgIHBhcmFtcyB0YWJsZS4KICAgCjE5OTktMDItMDIgMTQ6MzQgIGJhZXJtCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gVXBkYXRlZCBjb3B5X3dvcmQgdG8gYWNjZXB0IHF1b3RlZCBzdHJpbmdzLCB3aXRoIGluY2x1ZGVkIHdoaXRlCiAgICAgICBzcGFjZXMuICdcJyBlc2NhcGVzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyLgogICAKMTk5OS0wMi0wMiAxMzozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB0eXBvOiAtTCAtPiAtQSBpbiBoZWxwIHN0cmluZ3MgZG9jcy4KICAgCjE5OTktMDItMDIgMTM6MzMgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIDIwMzYgLT4gMjAzOAogICAKMTk5OS0wMS0yNiAwOTo0NSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcmVmZXJlbmNlIElQIG5ldCBhZGRyZXNzZXMgdG8gMTAuMTAuMTAuMC4KICAgCjE5OTktMDEtMjUgMTY6MjUgIGhhcmRha2VyCgogICAqIFJFQURNRSwgbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoUkVBRE1FLCBSRUFETUUubWliMmMpOiBtaWIyYyByZWFkbWUgZmlsZS4KICAgCjE5OTktMDEtMjUgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwKICAgICBmaWxlLmMsIGluZXQuYywgcGFyc2UuYywgc25tcF9kZWJ1Zy5jKToKICAgICAtIC1XYWxsIGZpeGVzLgogICAKMTk5OS0wMS0yNSAxMToxMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHRlc3QgaWYgX19GVU5DVElPTl9fIGlzIHN1cHBvcnRlZCBieSB0aGUgY29tcGlsZXIuCiAgIAoxOTk5LTAxLTI1IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIC0gKHNubXBfZGVidWcuaCk6IHNwZWNpYWwgdGVzdCBmb3IgX19GVU5DVElPTl9fIGJlZm9yZSB1c2luZyBpdC4KICAgCjE5OTktMDEtMjUgMTA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGZpeCBzdHJpbmdzLmggaW5jbHVkZS4KICAgCjE5OTktMDEtMjUgMTA6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jLAogICBzeXN0ZW0uYzoKCiAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgICAgc25tcF9jbGllbnQuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpIGZpeGVzLgogICAKMTk5OS0wMS0yNSAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgogICAKMTk5OS0wMS0yNSAxMDoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMKLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpbmV0LmMsIG1haW4uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIG1vcmUgYW5zaSBmaXhlcy4KICAgCjE5OTktMDEtMjIgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIENoZWNrIGZvciBOVUxMIG9uIHNlc3Npb24gY2xvc2VzLgogICAKMTk5OS0wMS0yMSAwODo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSB1Y2Qgc3BlY2lmaWMgbW9kdWxlIGRlcGVuZHMuCiAgIAoxOTk5LTAxLTIxIDA4OjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiwgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9hcGkuYywgY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwKICAgICBKLiBTbGlmY2FrOgogICAgIC0gTk9fTlVMTF9DT01VTklUWSAtPiBOT19aRVJPTEVOR1RIX0NPTU1VTklUWS4KICAgCjE5OTktMDEtMjEgMDg6MzkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBKLiBTbGlmY2FrOgogICAgIC0gdHlwbyBvbiBKb2UncyBuYW1lIGZpeGVkLgogICAKMTk5OS0wMS0yMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKICAgCjE5OTktMDEtMjAgMTc6MDQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCiAgIAoxOTk5LTAxLTIwIDE3OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogcmFuIGF1dG9oZWFkZXIKICAgCjE5OTktMDEtMjAgMTY6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgbWFpbi5jLCBzbm1wX2FwaS5jKToKICAgICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGFsbG93IHplcm8gbGVuZ3RoIChsZWdhbCkgY29tbXVuaXR5IHN0cmluZ3MuCiAgIAoxOTk5LTAxLTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGRlYnVnZ2luZyBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBleHBvcnQgc2RsaXN0IGFuZCBzZGxlbiB2YXJpYWJsZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtaWIgbW9kdWxlIG1ha2UgcmVxdWlyZW1lbnRzLgogICAKMTk5OS0wMS0yMCAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdCk6ICNpZmRlZiBSUE0gcHJvdGVjdCBhIGZyZWUgcm91dGluZS4KICAgCjE5OTktMDEtMjAgMTU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogdHlwbwogICAKMTk5OS0wMS0yMCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogaGVscGluZyBvdXQgY2hhbmdlcy4KICAgCjE5OTktMDEtMjAgMTU6MzAgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogSXQncyAxOTk5CiAgIAoxOTk5LTAxLTIwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogYWRkZWQgdmVyc2lvbiBzdGFtcC4KICAgCjE5OTktMDEtMjAgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTAxLTIwIDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHVjZC1zbm1wLWluY2x1ZGVzLmguCiAgIAoxOTk5LTAxLTIwIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogbWluaW1hbGlzaCBpbmNsdWRlIHNldCBmb3IgbGlicmFyeSBjbGllbnRzLgogICAKMTk5OS0wMS0yMCAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKToKICAgICAtIGxpbnV4IDIuMSBrZXJuZWwgbmVlZHMgYXNtL3BhZ2UuaCAoYWxsIGluY2x1ZGVzIG5lZWQgdG8gYmUgcmUtd3JpdHRlbikuCiAgIAoxOTk5LTAxLTIwIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwosIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMKOgoKICAgLSAoYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMpOgogICAgIC0gc3lzL3N0cmVhbS5oIG5lZWRlZCBieSBTQ08uCiAgICAgLSBpbnRlcmZhY2VzIHNjYW4gZml4ZXMgZm9yIGxpbnV4IDIuMCB2cyAyLjEgY2FuIGJlIGNvbmZpZ3VyZWQgZWxzZXdoZXJlIG5vdy4KICAgICAtIHByb3RlY3QgZ2V0X2FkZHJlc3MgY2FsbHMgYWdhaW5zdCBOVUxMIHBvaW50ZXIgcmV0dXJucy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdmVyc2lvbiB0YWdnaW5nIGFiaWxpdHkgdG8gZG8gbWFueSB0aGluZ3MuCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOiBpbmNsdWRlIHN5cy9zdHJlYW0uaCBmb3IgU0NPLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIGZvciBhc20vcGFnZS5oIChsaW51eCkuCiAgICAgLSBjaGVjayBmb3Igc3lzL3N0cmVhbS5oIChTQ08pLgogICAgIC0gRml4IHJ0ZW50cnkgdGVzdC4KICAgCjE5OTktMDEtMjAgMTU6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB2ZXJzaW9uIHRhZyBjcmVhdGlvbi4KICAgCjE5OTktMDEtMjAgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgaG9zdF9yZXMuaCwgbWliaW5jbC5oLCAuY3ZzaWdub3JlLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGlmLmMsIE1ha2VmaWxlLmluLCBtaWIuYywgcGFyc2UuYywKICAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwKICAgICB2YWNtLmMpOiBkZWJ1Z2dpbmcgc3VwcG9ydCBjb2RlIG1vdmVkIHRvIHNubXBfZGVidWcuW2NoXS4KICAgCjE5OTktMDEtMjAgMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IHR5cG8gaW4gYW5zaSBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiB1bm5lZWRlZCBjb21tZW50IHJlbW92ZWQuCiAgIAoxOTk5LTAxLTIwIDEyOjIwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBwZXJsLVNOTVAgYW5kIHkyayBxdWVzdGlvbnMgYWRkZWQuCiAgIAoxOTk5LTAxLTIwIDEyOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8ucHVyZSwgc25tcGxpYi8ucHVyZToKCiAgIC0gKC5wdXJlLCAucHVyZSwgLnB1cmUpOiByZW1vdmVkLgogICAKMTk5OS0wMS0xOSAyMDowMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgLSAoc25tcHRhYmxlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2F1dGguYywgbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tCiAgICAgTWljaGFlbCBKLiBTbGlmY2FrOgogICAgIC0gYXBwcy9zbm1wdGFibGUuYyAtIHNvbWUgY29tcGlsZXJzIHdhcm4gY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBpbnRlZ2VyCiAgICAgLSBzbm1wbGliL21pYi5jIC0gYWxyZWFkeSBtZW50aW9uZWQgYmVmb3JlOyBoZXJlIGZvciBjb21wbGV0ZS1uZXNzCiAgICAgLSBzbm1wbGliL3BhcnNlLmMgLSBtaW5vciB0b3VjaHVwIG9mIGluY2x1ZGVzOyBzeXN0ZW0uaCBkdXAgcmVtb3ZlZAogICAgIC0gc25tcGxpYi9zbm1wX2FwaS5oIC0gTVNWaXN1YWwgQysrIGRvZXNuJ3QgaGF2ZSBfX0ZVTkNUSU9OX18KICAgICAtIHNubXBsaWIvc25tcF9hdXRoLmMgLSBtaW5vciBmaXggb2YgY29tbWVudAogICAgIC0gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLSBzbm1wX3BhcnNlX2FyZ3MgbmVlZHMgYSBuZXcgZnVuY3Rpb24KICAgCjE5OTktMDEtMTkgMTk6NTkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBfX1AgY2hlY2tpbmcuCiAgIAoxOTk5LTAxLTE4IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChSRUFETUUsIGFwcHMsIGFnZW50LCBhY2NvbmZpZy5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KICAgCjE5OTktMDEtMTggMTA6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYwosIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuaCwKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuaAosIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgogICAKMTk5OS0wMS0xNiAyMzoxMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU2ICkKICAgCjE5OTktMDEtMTYgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2wuYywgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMKLCBhc24xLmgsIGNvbnRleHQuYywgY29udGV4dC5oLAogICBjb250ZXh0X3BhcnNlLmMsIGludDY0LmMsIGludDY0LmgsIG1kNS5jLAogICBtZDUuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oCiwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsCiAgIHN5c3RlbS5jLCBzeXN0ZW0uaCwgdmFjbS5jLCB2YWNtLmgsCiAgIHZpZXcuYywgdmlldy5oOgoKICAgLSAoc25tcGxpYi8qLltjaF0pOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhc25pJ2lmeSBhbGwgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0xNiAyMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IHVwZGF0ZWQgLUQgZGVzY3JpcHRpb24uCiAgIAoxOTk5LTAxLTE1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHNtdXggcGF0Y2hlcy4KICAgCjE5OTktMDEtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgLSAodmFjbS5jKTogREVCVUdNU0cgdHlwby4KICAgCjE5OTktMDEtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgogICAKMTk5OS0wMS0xNSAxNToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBtaWJncm91cC9NYWtlZmlsZS5pbgosIG1pYmdyb3VwL21pYklJLmgsIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIG1pYmdyb3VwL2R1bW15L2R1bW15LmgsIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLCBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYwosIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9hdC5oLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuaCwgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmgsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmgsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCBtaWJncm91cC9taWJJSS9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHAuaCwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaAosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmgsIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYwosIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwLyopOgogICAgIC0gbWFkZSBhbGwgKG9rLCBzb21lLiAhaG9zdCkgbWliIG1vZHVsZXMgdXNlIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkuCiAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2UgcmVnaXN0ZXJfbWliKCkuCiAgIAoxOTk5LTAxLTE1IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCiAgIAoxOTk5LTAxLTE1IDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wMnAuYzoKCiAgIC0gKHNubXAycC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgogICAKMTk5OS0wMS0xNCAwOTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHVwZGF0ZSBmb3IgU05NUC5wbSAxLjguCiAgIAoxOTk5LTAxLTA5IDIxOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBtaWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMKLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSAoYWdlbnQvKi5jKToKICAgICAtIHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgICAgLSBpbXBsZW1lbnQgbmVlZGVkIC1EIGZsYWcgY2hhbmdlcy4KICAgCjE5OTktMDEtMDkgMjA6NTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkaXNjdXNzIC1EIHVzYWdlIGNoYW5nZS4KICAgCjE5OTktMDEtMDkgMjA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IERFQlVHUE9JRCByZXBsYWNlbWVudDogREVCVUdNU0dPSUQuCiAgIAoxOTk5LTAxLTA5IDIwOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcmVtb3ZlIG9sZCB0b2tlbiBzcGVjaWZpZXIgaW4gYSBkZWJ1Z2dpbmcgc3RhdGVtZW50CiAgICAgZm9ybWF0IGxpbmUuCiAgIAoxOTk5LTAxLTA5IDIwOjUwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgbWFpbi5jOgoKICAgLSAoaWYuYywgbWFpbi5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDEtMDkgMjA6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0wOSAyMDo0OSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IFVSTCBjaGFuZ2VzLgogICAKMTk5OS0wMS0wOSAyMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbWFrZSAtRCByZWdpc3RlciB0aGUgZGVidWdnaW5nIHRva2VucyBzcGVjaWZpZWQuCiAgIAoxOTk5LTAxLTA5IDIwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBjaGFuZ2UgaW50ZXJuYWwgZGVidWcgdmFyaWFibGUgdG8gbG9jYWxkZWJ1Zy4KICAgCjE5OTktMDEtMDkgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYyk6CiAgICAgLSBJbXBsZW1lbnQgdGhlIG5ldyB0b2tlbiBiYXNlZCBkZWJ1Z2dpbmcgbWVzc2FnZSBzdXBwb3J0LgogICAKMTk5OS0wMS0wNSAxMDo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgICBzbm1wdGFibGUuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIG1ha2UgbWFpbigpIHJldHVybiBhbiBpbnQgaW5zdGVhZCBvZiB2b2lkLgogICAKMTk5OS0wMS0wNSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogTWFrZSBmaWVsZCBzZXBhcmF0b3IgdGFrZSBhcmd1bWVudHMgZGlyZWN0bHkgYWZ0ZXIgdGhlIC1mLgogICAKMTk5OS0wMS0wMiAwODo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgLSBuZXcgY29tcGxldGUgbGlzdCBvZiBpZlR5cGVzLgogICAKMTk5OC0xMi0zMSAxNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gb2lkTGVuJ3Mgd2VyZSB3cm9uZyBmb3IgbTJtIG9pZHMuCiAgIAoxOTk4LTEyLTMxIDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBuZWVkIHRvIHJlYWRfb2JqaWQoKSB0aGUgY29udGV4dCBvaWQgYmFzZSwgbm90IHRoZSBwYXJ0eSBvaWQgYmFzZQogICAgICAgaW4gb25lIGxvY2F0aW9uLgogICAKMTk5OC0xMi0zMSAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jOgoKICAgLSAoZXZlbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gbWVtY21wJ3Mgc2l6ZXMgd2VyZSB3cm9uZy4KICAgCjE5OTgtMTItMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB2YWNtLmMgKFYzLWIzLjIpLCB2YWNtLmM6CgogICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgIHRyZWUuICBUaGUgdmlld3MgYWxyZWFkeSBleGlzdGVkLCBidXQgd2VyZW4ndCBjaGVja2VkIGFuZCBvbmx5IHRoZQogICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICBzaG91bGQgYmUgcmV3cml0dGVuIHdpdGggc3ViLXBpZWNlcyB0byBkbyBpdCBwcm9wZXJseSB3aXRoIGdyZWF0ZXIKICAgICAgIHNwZWVkLgogICAKMTk5OC0xMi0yOSAxNjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgbmV3bGluZXMgZnJvbSBzcHJpbnRfdmFsdWUoKSB3aGVyZSBhcHBsaWNhYmxlLgogICAKMTk5OC0xMi0yNiAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGRsbW9kIGNvbXBpbGF0aW9uIGluIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkgY2FsbC4KICAgCjE5OTgtMTItMjIgMTQ6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggbXkgYnJva2VuIHNldF9sb2NhbGUgc3R1ZmYuCiAgIAoxOTk4LTEyLTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgY29tcGlsZSBkbG1vZHMKICAgCjE5OTgtMTItMjEgMTg6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gV2luMzIgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIG9wZW5kaXIoKSwgZXRjLgogICAKMTk5OC0xMi0yMSAxODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAoZmlsZS5oLCBVQ0QtU05NUC1NSUIudHh0KTogbW92ZSB0aGUgZmlsZSBtaWIgdG8gLjE1IHNvIGl0IGRvZXNuJ3QKICAgICBjb25mbGljdCB3aXRoIHRoZSBkZW1vIG1pYi4KICAgCjE5OTgtMTItMjEgMTg6MTggIGhhcmRha2VyCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYSAuZ2RiIGZpbGUgb2YgbWluZS4KICAgCjE5OTgtMTItMjEgMDk6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL2lwZi1tb2QucGwsIG1pYnMvSVBGSUxURVIudHh0OgoKICAgLSAoaXBmLW1vZC5wbCwgSVBGSUxURVIudHh0KTogUGF0Y2ggZnJvbSBZYXJvc2xhdiBUZXJsZXRza3k6CiAgICAgLSBpcGZpbHRlciBwYXNzIHNjcmlwdCBhbmQgbWliIGZpbGUuCiAgIAoxOTk4LTEyLTE4IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgKOgoKICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IG1pYiBvYmplY3QgdG8gZGlzcGxheSBjb25maWd1cmUgb3B0aW9ucy4KICAgCjE5OTgtMTItMTggMTg6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBzdG9yZSBjb25maWd1cmUgZmxhZ3MgdG8gYSBkZWZpbmUuCiAgIAoxOTk4LTEyLTE4IDE4OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBpbmNsdWRlIHJlYWRfY29uZmlnLmguCiAgIAoxOTk4LTEyLTE4IDE4OjExICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogdXBkYXRlIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAKMTk5OC0xMi0xOCAxODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKOgoKICAgLSAocGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBmaXhlcyBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgICAtIG1pc2MgcmVhZF9jb25maWcgZnVuY3Rpb25zIHB1bGxlZCBpbiBmcm9tIHRoZSB2MyB3b3JrLgogICAKMTk5OC0xMi0xOCAxMTozNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwby4KICAgCjE5OTgtMTItMTcgMDg6MDUgIGRyZWVkZXIKCiAgICogbG9jYWwvc25tcGQtdWNkLnNoOgoKICAgZmlsZSBzbm1wZC11Y2Quc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk4LTEyLTE2IDA3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBwb2ludGVyIGNoZWNrcyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIAoxOTk4LTEyLTEzIDA4OjU5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTUgKQogICAKMTk5OC0xMi0xMyAwODo1NyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgSmVmZiBKb2huc29uIHRvIHRoZSBjb250cmlidXRvcnMgbGlzdC4KICAgCjE5OTgtMTItMTMgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gSmVmZiBKb2huc29uOgogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG1lbW9yeSBsZWFrcyB3aXRoIHRoZSBSUE0gcGFja2FnZSBpbmZvIGNhbGxzLgogICAKMTk5OC0xMi0xMyAwODo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBpbml0IHBvaW50ZXIgdG8gTlVMTC4KICAgCjE5OTgtMTItMTMgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogd2F0Y2ggb3V0IGZvciBOVUxMIGZpbGUgcG9pbnRlcnMuCiAgIAoxOTk4LTEyLTEzIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiByZW1vdmUgYSBmZXcgZGVmaW5lcyB0aGF0IHdlcmUgbWVzc2luZyB1cCBzb2xhcmlzIDcuCiAgIAoxOTk4LTEyLTEzIDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgLXcvLVcgZmxhZyBpbiB1c2FnZS4KICAgCjE5OTgtMTItMTMgMDg6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzcGFjaW5nIGluIG1pYiBvcHRpb24gdXNhZ2UgZml4ZXMuCiAgIAoxOTk4LTEyLTEzIDA4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBmaXggZGlzayBzaXplIGVycm9yIGZsYWcgcmVwb3J0aW5nIG9uIFNvbGFyaXMuCiAgIAoxOTk4LTEyLTEzIDA4OjA2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGJlZ2lubmluZyBub3RlcyBmb3IgMy42LgogICAKMTk5OC0xMi0xMyAwNzo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogLVAgZmxhZyBmb3IgdG9nZ2xpbmcgbmV3IG1pYiBwYXJzaW5nIG9wdGlvbnMuCiAgIAoxOTk4LTEyLTEzIDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBuZXcgZnVuY3Rpb25zOiBzbm1wX21pYl90b2dnbGVfb3B0aW9ucygpIGFuZCB1c2FnZS4KICAgCjE5OTgtMTItMTMgMDc6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgLSB1c2Ugc2V0bG9jYWxlKCkgaWYgYXZhaWxhYmxlIHRvIGNvcnJlY3QgaXNwcmludCBwcm9ibGVtcy4KICAgCjE5OTgtMTItMDUgMTY6NTIgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vLnJlbW90ZToKCiAgIGZpbGUgZGVtby5yZW1vdGUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kczoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jbWRzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmg6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURFTU8tTUlCLnR4dDoKCiAgIGZpbGUgVUNELURFTU8tTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTE6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgZmlsZSBzbm1wdXNtLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzIuZnVuY3Rpb25zOgoKICAgZmlsZSBkZW1vMi5mdW5jdGlvbnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzI6CgogICBmaWxlIGRlbW8yIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMyAxODo0NCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8yLnNldHVwZmlsZToKCiAgIGZpbGUgZGVtbzIuc2V0dXBmaWxlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMiAxNToxOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGZpbGUgc25tcC5jb25mLjUuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNyAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wcGFzcy5jOgoKICAgZmlsZSBzbm1wcGFzcy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNCAxNjo0MyAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmg6CgogICBmaWxlIHRyYW5zZm9ybV9vaWRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI0IDE2OjQzICBkcmVlZGVyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgZmlsZSBlbmNvZGVfa2V5Y2hhbmdlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCiAgIAoxOTk4LTExLTIzIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAtIHJ1bnRpbWUgb3B0aW9ucyB0byBjb250cm9sIHVuZGVyc2NvcmUgYW5kIGNvbW1lbnQgcGFyc2luZyBpbiBtaWJzLgogICAKMTk5OC0xMS0yMyAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jLCBpcml4LmgpOiBmaXggbG9jYXRpb24gb2YgX0tFUk5FTCBkZWZpbmUgZm9yIGlyaXguCiAgIAoxOTk4LTExLTIyIDA3OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLy5jdnNpZ25vcmU6CgogICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTIyIDA3OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2RlbW86CgogICBmaWxlIGRlbW8gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTE2IDIyOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogdG9vIG1hbnkgaW1wcm92ZW1lbnRzIHRvIGNvdW50LgogICAKMTk5OC0xMS0wNiAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB2MiB0cmFwIHNlbmQgZGVidWdnaW5nLgogICAKMTk5OC0xMS0wNiAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiB1c2UgdHJhcDJzaW5rIGZvciB2MiBoYW5kbGVycwogICAKMTk5OC0xMS0wNiAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggdjIgdHJhcCBnZW5lcmF0aW9uLgogICAKMTk5OC0xMC0yNCAyMzowNyAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL21pc2N0ZXN0LmM6CgogICBmaWxlIG1pc2N0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDE1OjM5ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXRpbWV0ZXN0LmM6CgogICBmaWxlIGV0aW1ldGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAxMzo1OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcGQuYywgd29tYmF0LmgsCiAgICAgc3lzdGVtLmgsIHZhY21fdmFycy5oLCBkbG1vZC5jLCBkaXNrLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLAogICAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5oLCBwYXNzLmgsIHBhc3NfcGVyc2lzdC5oLAogICAgIHByb2MuaCwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtaWIuYywgcmVhZF9jb25maWcuYywKICAgICByZWFkX2NvbmZpZy5oKToKICAgICAtIG5ldyBvcHRpb24gLUggb24gY29tbWFuZCBsaW5lIHRvIHByaW50IG91dCAuY29uZiBmaWxlIGRpcmVjdGl2ZXMKICAgICAgIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyc3RhbmRzLgogICAgIC0gY3JlYXRlZCBhIG5ldyBvcHRpb24gdG8gdGhlIHJlYWQgY29uZmlnIHJlZ2lzdHJhdGlvbiB0byBhbGxvdwogICAgICAgc3BlY2lmeWluZyBvZiBhIGhlbHAgbGluZS4KICAgCjE5OTgtMTAtMjMgMTM6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBlZGl0YWJsZSBvaWQgZmllbGQuCiAgIAoxOTk4LTEwLTIzIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jKTogYnVnIGZpeGVzLCBtaXNzaW5nICNlbmRpZi4KICAgCjE5OTgtMTAtMjMgMTM6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnNlcnQgQCBzaWduLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL1Quc2g6CgogICBmaWxlIFQuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIGZpbGUgZXZhbF90ZXN0bGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgZmlsZSBldmFsX3Rvb2xzLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICBmaWxlIGV2YWxfc3VpdGUuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoOgoKICAgZmlsZSBldmFsX29uZXByb2dyYW0uc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvVC5jOgoKICAgZmlsZSBULmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgZmlsZSBSRUFETUUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBOVUxMIGNoZWNraW5nIG9uIHRoZSBmaWxlc3lzdGVtIG1vdW50IHBvaW50LgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZmlsZSB0ZXN0X2t1bC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaDoKCiAgIGZpbGUgdGVzdF9rZXljaGFuZ2Uuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF90b29scy5zaDoKCiAgIGZpbGUgdGVzdF90b29scy5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmt1bC1tZDU6CgogICBmaWxlIGRhdGEua3VsLW1kNSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlczoKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMToKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2Utc2hhMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDU6CgogICBmaWxlIGRhdGEua2V5Y2hhbmdlLW1kNSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmt1bC1zaGExOgoKICAgZmlsZSBkYXRhLmt1bC1zaGExIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxNzowMSAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmCjoKCiAgIC0gKC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZik6CiAgICAgLSBuZXcgdW5wcm9vZnJlYWQgbWFudWFsIG9uIHRoZSByZWFkX2NvbmZpZyBhcGkgKG1vc3Qgb2YgaXQpLgogICAKMTk5OC0xMC0yMSAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gd2F0Y2ggb3V0IGZvciBlbXB0eSBmaWxlIG5hbWVzIHBhc3NlZCBpbi4KICAgCjE5OTgtMTAtMjEgMTA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gRml4IHBhcnNlciB0byBkZWFsIHdpdGggYW5vbnltb3VzIGNoaWxkcmVuIHByb3Blcmx5LgogICAKMTk5OC0xMC0yMCAxMTozOCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYzoKCiAgIGZpbGUga2V5bWFuYWdldGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xOCAyMToxNCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTggMjE6MTQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGZpbGUgc2NhcGl0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBhaXguaCk6IGFpeCBoZWFkZXIgZmlsZSBmaXhlcy4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgZmlsZSB0b29scy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBmaWxlIHRvb2xzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuaDoKCiAgIGZpbGUgbGNkX3RpbWUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgZmlsZSBzY2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICBmaWxlIHNjYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIGZpbGUgbGNkX3RpbWUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5oOgoKICAgZmlsZSBrZXl0b29scy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBmaWxlIGtleXRvb2xzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaDoKCiAgIGZpbGUgYWxsX2dlbmVyYWxfbG9jYWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9hbGxfc3lzdGVtLmg6CgogICBmaWxlIGFsbF9zeXN0ZW0uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9kZWJ1Zy5oOgoKICAgZmlsZSBkZWJ1Zy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IGZpeCBmb3IgaHB1eDkuCiAgIAoxOTk4LTEwLTE0IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBmb3IgYnJva2VuIGNvbXBpbGVyIHdhcm5pbmdzIG9uIE5ULgogICAKMTk5OC0xMC0xNCAxNjo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtQS4KICAgCjE5OTgtMTAtMTQgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZG9jdW1lbnQgLUEuCiAgIAoxOTk4LTEwLTE0IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IC1BOiBhcHBlbmQgdG8gbG9nIGZpbGUuCiAgIAoxOTk4LTEwLTE0IDA5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gKGhyX3N0b3JhZ2UuYyk6IG1hY2hpbmUvdHlwZXMuaCBhbmQgc3lzL3ZtbWV0ZXIuaCBmb3IgZnJlZWJzZDMuCiAgIAoxOTk4LTEwLTE0IDA5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IG5ldC9pbl92YXIuaCBmb3IgZnJlZWJzZDMuCiAgIAoxOTk4LTEwLTE0IDA5OjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbWFjaGluZS90eXBlcy5oLgogICAKMTk5OC0xMC0xNCAwOToxNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcHVibGljIGNvbW11bml0eSBleGFtcGxlcyAtPiBwcml2YXRlLgogICAKMTk5OC0xMC0wOSAyMzoyMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSBTaGllbGQgZXhwbGFpbnMgaW4gd29uZGVyb3VzIGRldGFpbCBhbGwgYWJvdXQgdGhlIFZBQ00gbW9kdWxlLgogICAKMTk5OC0xMC0wOSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzdXBwb3J0IGZvciBzdHJpY3QgKGNhc2Ugc2Vuc2l0aXZlKSBvcHRpb24gdG8gdGhlIG1pYiBjb21waWxlci4KICAgCjE5OTgtMTAtMDkgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gQ2hlY2sgZm9yIGZ1bGx5IHF1YWxpZmllZCBvaWQgc3RhdGVtZW50cy4KICAgCjE5OTgtMTAtMDkgMDg6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KICAgCjE5OTgtMTAtMDcgMTc6MDAgIGhhcmRha2VyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIC0gKGxpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHdpbk5UIHByb2plY3QgZmlsZSB1cGRhdGVzLgogICAKMTk5OC0xMC0wNyAxNjo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZXhpdGluZyBwcm9ibGVtcyBvbiBOVC4KICAgCjE5OTgtMTAtMDcgMTY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggZGVmYXVsdCBwb3J0IHByb2JsZW1zIChhZ2FpbikuCiAgIAoxOTk4LTEwLTA3IDE2OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgdW4tbmVlZGVkIGhlYWRlcnMuCiAgIAoxOTk4LTEwLTA3IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IG1ha2UgaHRtbC4KICAgCjE5OTgtMTAtMDcgMTY6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHByb3Blcmx5IGxvY2F0ZSB2ZXJzaW9uLmggaW4gJChzcmNkaXIpLgogICAKMTk5OC0xMC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUzICkKICAgCjE5OTgtMTAtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdHlwby4KICAgCjE5OTgtMTAtMDYgMTU6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogZml4IGZvciBjdnMgMS4xMC4KICAgCjE5OTgtMTAtMDYgMTU6MzQgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IHVwZGF0ZS4KICAgCjE5OTgtMTAtMDYgMTU6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQ6CgogICAtIChVQ0QtU05NUC1NSUItT0xELnR4dCk6IGFkZGVkCiAgIAoxOTk4LTEwLTA2IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogc2V0dXAgZGVmaW5lIGZvciBIQVZFX1VTTEVFUC4KICAgCjE5OTgtMTAtMDYgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCiAgIAoxOTk4LTEwLTA1IDE3OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIC0gKGhyX3Byb2MuYyk6IHBvc3NpYmxlIGZpeCBmb3Igc29sYXJpcydzIHByb2Nlc3MgcGVyY2VudGFnZS4KICAgCjE5OTgtMTAtMDUgMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15LzogZHVtbXkuYywgZHVtbXkuaDoKCiAgIC0gKGR1bW15LmMsIGR1bW15LmgpOiB1cGRhdGUgdG8gcmVtb3ZlIGNvbW1vbl9oZWFkZXIuaAogICAKMTk5OC0wOS0zMCAxNDo1NiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW50ZXJmYWNlcy5jLCBtZW1vcnkuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgcGFyc2UuYyk6CiAgICAgLSBtZXJnZSAzLjUuMyBjaGFuZ2VzIGludG8gbWFpbiB0cnVuay4KICAgCjE5OTgtMDktMjUgMTg6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXRpbF9mdW5jcy5jKTogdXNlIFVTTEVFUCBpZiBhdmFpbGFibGUgZm9yCiAgICAgc21hbGwgc2xlZXAgdGltZXMgd2hpbGUgd2FpdGluZyBmb3IgcHJvY2Vzc2VzIHRvIGZpbmlzaC4KICAgCjE5OTgtMDktMjUgMTg6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudC1vdXQuCiAgIAoxOTk4LTA5LTI1IDE4OjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB2ZXJzaW9uLmgsIGFuZCBzdHJpcCBpbmNsdWRlcyBvdXQgb2YgY29uZmlnLmgKICAgCjE5OTgtMDktMjUgMTc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGluc3RhbGwgbGlic25tcC5oLiAgSXQncyBnb2luZyB0byBjaGFuZ2UgdG9vCiAgICAgbXVjaCBpbiB0aGUgZnV0dXJlLgogICAKMTk5OC0wOS0yNSAxNzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbnN0YWxsIG1vcmUgaGVhZGVycy4KICAgCjE5OTgtMDktMjUgMTc6MzIgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcDoKCiAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzdHVwaWQgT1MgdXBkYXRlLgogICAKMTk5OC0wOS0yNSAxNzoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMzoKCiAgIC0gKHNubXBfc2Vzc19hcGkuMyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc2Vzc2lvbiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KICAgCjE5OTgtMDktMjUgMTc6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IHByb2Nlc3MgYXJncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZ2V0X29wdCgpLgogICAKMTk5OC0wOS0yNSAxNzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20KICAgICBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycy4KICAgCjE5OTgtMDktMjUgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgIC0gVGhlIENNVSBsaWJyYXJ5IGhhcyBhbiBvcHRpbWl6YXRpb24gaW4gc25tcF9jbG9uZV9wZHUoKSB0aGF0IGRvZXMKICAgICAgbm90IGNvcHkgemVybyBsZW5ndGggc3RyaW5ncy4gIEkgaGFkIG1lcmdlZCB0aGlzIGluIHdpdGggY2hhbmdlcwogICAgICBtYWRlIGZvciBtdWx0aS10aHJlYWQgc3VwcG9ydC4gIFVuZm9ydHVuYXRlbHksIEkgZGlkIG5vdCBtYWtlIHN1cmUKICAgICAgdGhlIGNsb25lZCBQRFUgaGFkIG5vIHBvaW50ZXIgZm9yIHRoaXMgY2FzZS4gIE9vcHMhCiAgICAtIEFub3RoZXIgcHJvYmxlbSBpbiBzbm1wX2Nsb25lX3BkdSgpIHdhcyB0aGUgdGVzdCBmb3IgemVybyBsZW5ndGgKICAgICAgc3RyaW5nIHdhcyBub3QgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSBmaXJzdCB2YXJiaW5kIGluIHRoZSBjaGFpbi4KICAgCjE5OTgtMDktMjUgMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChFeHQtMy01LXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZG9uJ3QgcmVseSBvbiB0aGUgZ2V0c2VydmJ5bmFtZSBwb2ludGVyIHRvIHN0YXkgYXJvdW5kLgogICAKMTk5OC0wOS0yMyAxMzowNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBhcnNlLmMpOiBOZXcgZmxhZzoKICAgICAtIC0tZW5hYmxlLWVvbC10ZXJtaW5hdGVkLWNvbW1lbnRzLgogICAKMTk5OC0wOS0yMyAxMjoxNSAgaGFyZGFrZXIKCiAgICogSVNTVUVTOgoKICAgZmlsZSBJU1NVRVMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTIxIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jIChFeHQtMy01LXBhdGNoZXMuNSksIHNubXBfdmFycy5jCiAgIChWMy1iMS5bNSwyXSksIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KICAgCjE5OTgtMDktMjEgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZmlsZS5jLCBmaWxlLmg6CgogICAtIChmaWxlLmMsIGZpbGUuaCk6IGFsbG93IC0xIHNpemUgdG8gaW5kaWNhdGUgc2ltcGxlIHNpemUgbW9uaXRvcmluZy4KICAgCjE5OTgtMDktMTggMTQ6MDQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDaGFuZ2UgZmlsZSByZXR1cm4gY29kZSBmcm9tIFRydXRoVmFsdWUgdG8KICAgICBpbnRlZ2VyIHNpbmNlIDEvMiBkb2VzIG5vdCBmaXQgdGhlIGN1cnJlbnQgMC8xIHJldHVybiBjb2RlIHNjaGVtZS4KICAgCjE5OTgtMDktMTggMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaDoKCiAgIC0gKGZpbGUuaCk6IHJlbWFwIHRvIHRoZSAxMDAvMTAxIGNvbnZlbnRpb25zIG9mIHRoZSB1Y2Qtc25tcCB0YWJsZXMuCiAgIAoxOTk4LTA5LTE4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IGFkZCB0aGUgZmlsZSBtaWIgbW9kdWxlLgogICAKMTk5OC0wOS0xOCAxMzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gKGZpbGUuYywgZmlsZS5oKTogUGF0Y2ggZnJvbSBKb25hcyBPbHNzb246CiAgICAgLSBJbXBsZW1lbnQgYSBmaWxlIHNpemUgd2F0Y2hpbmcgbWliIG1vZHVsZSAodWNkLXNubXAvZmlsZSkuCiAgIAoxOTk4LTA5LTE4IDEzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogYWRkZWQgdGhlIEZpbGVUYWJsZSBzdWJtaXR0ZWQgYnkgSm9uYXMgT2xzc29uLgogICAKMTk5OC0wOS0xOCAxMjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmg6CgogICBmaWxlIHNubXAtdGMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgZmlsZSBzbm1wdXNtLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgIGZpbGUgc25tcHVzbS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGZpbGUgdXNtVXNlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIGZpbGUgdXNtVXNlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNiAwNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmg6CgogICBmaWxlIHVzbVN0YXRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE2IDA3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYzoKCiAgIGZpbGUgdXNtU3RhdHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTUgMTM6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBpbml0X3NubXAgY2FsbHMgZnJvbSBzZXNzaW9uIHJvdXRpbmVzLgogICAKMTk5OC0wOS0xNSAxMzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogLy8gY29tbWVudCAtPiAvKiAqLyBjb21tZW50LgogICAKMTk5OC0wOS0xNSAxMzowMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1lbW9yeSByZWxhdGVkIGZpeGVzLgogICAKMTk5OC0wOS0xNCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jOgoKICAgZmlsZSBzbm1wTVBEU3RhdHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaDoKCiAgIGZpbGUgc25tcE1QRFN0YXRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBmaWxlIHNubXB2M21pYnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMTI6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsOgogICAgIC0gZG8gZGxtb2RzIGNvbXBpbGF0aW9uIGJldHRlciBhdCBsZWFzdCBvbiBzb2xhcmlzIGFuZCBsaW51eC4KICAgCjE5OTgtMDktMTQgMTI6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgZGxtb2RfbWliLmMsIHV0aWxfZnVuY3MuYywKICAgICBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHNubXBfYmdwLmMsCiAgICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBocHV4LmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsCiAgICAgcmVnaXN0cnkuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsCiAgICAgcGFydHlfdmFycy5jLCB2aWV3X3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbmFtZSBjb21wYXJlIC0+IHNubXBfb2lkX2NvbXBhcmUoKS4KICAgCjE5OTgtMDktMTQgMTI6MzUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbnN0YWxsIHNubXBfc2Vzc19hcGkuMy4KICAgCjE5OTgtMDktMTQgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmM6CgogICBmaWxlIHNubXBFbmdpbmUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmg6CgogICBmaWxlIHNubXBFbmdpbmUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaWxlIHNubXB2My5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuaDoKCiAgIGZpbGUgc25tcHYzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTEzIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdXBkYXRlOiAzLjYucHJlMgogICAKMTk5OC0wOS0xMyAyMTowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSAobWliLmMsIHJlYWRfY29uZmlnLmMpOiByZWZpeCB0aGUgbm9uLW1hbGxvY2VkIGNvbmZpZ3VyYXRpb24gdmFycy4KICAgCjE5OTgtMDktMTMgMjE6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IE5hbWUgYWRkaXRpb24uCiAgIAoxOTk4LTA5LTEzIDIwOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJldmVudCBkb3VibGUgaW5pdF9zbm1wKClzLgogICAKMTk5OC0wOS0xMyAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IG5vdCBmaW5kaW5nIGEgY29uZmlnIGZpbGUgaXMgcHJpbnRlZCB3aXRoIERFQlVHUCgpIGluc3RlYWQuCiAgIAoxOTk4LTA5LTEzIDIwOjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZGVmaW5lIHVzYWdlIG1pc3BlbGxpbmcgU05NUF9CQURfUEFSU0UgLT4gU05NUEVSUl9CQURfUEFSU0UuCiAgIAoxOTk4LTA5LTEzIDIwOjExICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIChzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIC0gbWVyZ2UgaW50byBtYWluIGxpbmUgZnJvbSB0aGUgMy02LXByZTEtdHJhbnMgYnJhbmNoLgogICAKMTk5OC0wOS0xMyAxODoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZXhpdCAtPiByZXR1cm4uCiAgIAoxOTk4LTA5LTEyIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogTW92ZSBDQU5fVVNFX05MSVNUIHRlc3RzIGJlbG93IGFyY2ggLmggZmlsZXMuCiAgIAoxOTk4LTA5LTEyIDA5OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCiAgIAoxOTk4LTA5LTEyIDA4OjU2ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKG92L01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHNlY3Rpb25zIGFscmVhZHkgZGVmaW5lZCBpbiBNYWtlZmlsZS50b3AuCiAgIAoxOTk4LTA5LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCBtaWJfbW9kdWxlX3NodXRkb3duLmgKICAgCjE5OTgtMDktMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBEb24ndCBmb3JjZSBjYyBhbnltb3JlLCBhbGxvdyBnY2MgdG8gZ28gZmlyc3QuCiAgIAoxOTk4LTA5LTEyIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbW92ZSB1bi1jb25maWd1cmVkIGRlZmluZXMgYWJvdmUgQFRPUEAuCiAgIAoxOTk4LTA5LTEyIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJvdG90eXBlIG1vdmUgaW5pdF9zbm1wKCkgYWJvdmUgaW5pdF9zbm1wX3Nlc3Npb24uCiAgIAoxOTk4LTA5LTExIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIG1hbi9zbm1wX3Nlc3NfYXBpLjMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaAosIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9jb25maWcuaAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAoKik6IE1lcmdlZCB0aGUgTVQgY2hhbmdlcyBpbnRvIHRoZSBtYWluIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMjE6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGlic25tcC5oOgoKICAgZmlsZSBsaWJzbm1wLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS0xLU1ULgogICAKMTk5OC0wOS0wOSAyMTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMzoKCiAgIGZpbGUgc25tcF9zZXNzX2FwaS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtMS1NVC4KICAgCjE5OTgtMDktMDkgMTY6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IHRyYXAgc3R1ZmYgYnJva2VuIGJ5IHRoZSBjb2RlIG1lcmdlLgogICAKMTk5OC0wOS0wOSAxNjowOSAgaGFyZGFrZXIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnCiwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEucGxnCiwgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldC9zbm1wZ2V0LnBsZywKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc2V0L3NubXBzZXQucGxnLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LnBsZywKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGFjbC5oLCBhc24xLmMsIGFzbjEuaAosIG1kNS5oLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwKICAgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLAogICBzeXN0ZW0uYywgdmFjbS5oLCB2aWV3Lmg6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NubXBfYXBpLjMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjgsCiAgIG1hbi92YXJpYWJsZXMuNToKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgQ09QWUlORywgQ2hhbmdlTG9nLCBNYWtlZmlsZS5pbgosIE5FV1MsIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L3NubXAycC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmg6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3A6CgogICBmaWxlIHNubXBkZWx0YS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnBsZzoKCiAgIGZpbGUgc25tcGRlbHRhLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnBsZzoKCiAgIGZpbGUgc25tcHRlc3QucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwOgoKICAgZmlsZSBzbm1wdHJhcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3A6CgogICBmaWxlIHNubXB0ZXN0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnBsZzoKCiAgIGZpbGUgc25tcHRyYXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oOgoKICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaDoKCiAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wMyAxNDoyOSAgbmJhCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KICAgCjE5OTgtMDktMDIgMTg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwKICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICBzbm1wZC5oKToKICAgICAtIHN1cHBvcnQgbWliLW1vZHVsZSBzaHV0ZG93biBmdW5jdGlvbnMuCiAgICAgLSBkbyBhIG1pbmltYWwgcGVyc2lzdGVudCBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhbmQgcmVhZCBpdCBhdCBzdGFydCB1cC4KICAgICAtIHRlc3Qgd2l0aCBiZWdpbm5pbmdzICh3cm9uZyBwbGFjZSkgb2YgYWdlbnRCb290cyB2YXJpYWJsZS4KICAgCjE5OTgtMDktMDIgMTg6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHVzZSBpbml0X3NubXAgaW5zdGVhZCBvZiBpbml0X21pYigpLgogICAKMTk5OC0wOS0wMiAxODo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlLgogICAKMTk5OC0wOS0wMiAxODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogaW5pdF9zbm1wKCkuCiAgIAoxOTk4LTA5LTAyIDE4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLAogICByZWFkX2NvbmZpZy5oOgoKICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIHByZS9wb3N0IG1pYiBsb2FkaW5nIGNvbmZpZyBmaWxlcy4KICAgICAtIGNyZWF0ZSBpbml0X3NubXAoKSB0byB3cmFwIG90aGVyIGZ1Y3Rpb25zLgogICAgIC0gbmV3IHNubXAuY29uZiBkaXJlY3RpdmVzOiBtaWJzLCBtaWJkaXJzLCBtaWJmaWxlLgogICAKMTk5OC0wOS0wMiAxODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHR5cG8uCiAgIAoxOTk4LTA5LTAyIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcGVyc2lzdGVudCBjb25maWcgZmlsZSBxdWVzdGlvbi4KICAgCjE5OTgtMDktMDIgMTg6NDMgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgogICAKMTk5OC0wOC0zMSAxMzozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCiAgIAoxOTk4LTA4LTMxIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoRXh0LTMtNS1wYXRjaGVzLjIpLAogICBpbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCiAgIAoxOTk4LTA4LTE0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOC0xNCAwODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDctMjIgMTY6MjMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KICAgCjE5OTgtMDctMjIgMTU6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KICAgCjE5OTgtMDctMjAgMTc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KICAgCjE5OTgtMDctMTcgMTM6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvUkZDLTEyMTUudHh0OgoKICAgLSAoUkZDLTEyMTUudHh0KTogY3JlYXRlZCBhbiBlbXB0eSBtaWIgbW9kdWxlIGZvciBpbXBvcnRpbmcgb2YgVFJBUC1UWVBFLgogICAKMTk5OC0wNy0xNyAxMzoxMSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgogICAKMTk5OC0wNy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgogICAKMTk5OC0wNy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCiAgIAoxOTk4LTA3LTEwIDA5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHdyb25nIHBkdSBwb2ludGVyIGZvciBzbm1wdjJjIHRyYXBzLgogICAKMTk5OC0wNy0wOCAxNTo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxICkKICAgCjE5OTgtMDctMDggMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiAtV2FsbCBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGJ1ZyBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKOgoKICAgLSAocGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oKTogY2xlYW5lZCB1cCBhbmQgLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiByZW1vdmVkIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdCBmcm9tIGRlZmF1bHQgaW5jbHVkZSBsaXN0LgogICAKMTk5OC0wNy0wOCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAosIHBhc3MtcGVyc2lzdC5jLCBwYXNzLXBlcnNpc3QuaDoKCiAgIC0gKHBhc3MtcGVyc2lzdC5jIHBhc3MtcGVyc2lzdC5oKTogbW92ZWQgdG8gcGFzc19wZXJzaXN0LltjaF0uCiAgIAoxOTk4LTA3LTA4IDE0OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGUgdW5yZWdpc3Rlcl9yZWFkLi4oKSBmdW5jdGlvbi4KICAgCjE5OTgtMDctMDggMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgICAtIChkbG1vZC5jKTogdXNlIHNubXBkXyByZWdpc3Rlcl9yZWFkX2NvbmZpZygpIHdyYXBwZXJzLgogICAKMTk5OC0wNy0wOCAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCk6IHdyYXBwZXJzIGZvciByZWFsIHJlYWRfY29uZmlnKClzLgogICAKMTk5OC0wNy0wOCAxNDowNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9kbG1vZHMvLmN2c2lnbm9yZSwgYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuaCwKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbWlicy9ETE1PRC1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLAogICAgIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYywKICAgICBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBETE1PRC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEV1Z2VuZQogICAgIFBvbG92bmlrb3Y6CiAgICAgLSBuZXcgZGxtb2Qgc2V0LgogICAgIC0gZml4IGNvbmZpZ3VyZSBzY3JpcHQuCiAgIAoxOTk4LTA3LTA4IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBmb3IgbWlzc2luZyBvYmplY3QgaWRlbnRpZmllciBsYWJlbHMuCiAgIAoxOTk4LTA3LTA4IDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgogICAKMTk5OC0wNy0wOCAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCiAgIAoxOTk4LTA3LTA4IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgogICAKMTk5OC0wNy0wOCAxMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiBhZGRlZCBwYXNzLXBlcnNpc3QgbW9kdWxlLgogICAKMTk5OC0wNy0wOCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IHJlbW92ZWQgZnJvbSBhZ2VudCBkaXIuCiAgIAoxOTk4LTA3LTA4IDEyOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsCiAgIHV0aWxfZnVuY3MuaCwgdWNkLXNubXAvcGFzcy1wZXJzaXN0LmMsCiAgIHVjZC1zbm1wL3Bhc3MtcGVyc2lzdC5oOgoKICAgLSAoc3RydWN0LmgsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBwYXNzLXBlcnNpc3QuYywKICAgICBwYXNzLXBlcnNpc3QuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAtIGNyZWF0ZSBhIHBhc3MtcGVyc2lzdCBtb2R1bGUgdG8gaGFuZGxlIGNvbnRpbnVvdXNseSBydW5uaW5nIHBhc3MgdGhyb3VnaHMuCiAgIAoxOTk4LTA3LTA4IDEyOjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LmRzcAosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LmRzcAosIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQuZHNwLCBzbm1wc2V0LnBsZywKICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgTWFyem90OgogICAgIC0gd2luMzIgdXBkYXRlLgogICAKMTk5OC0wNy0wMSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6CiAgICAgLSBmaXggZXh0ZW5zaWJsaXR5IGNoZWNraW5nIG9mIG9pZHMuCiAgICAgLSBzZXBlcmF0ZSBydW5uaW5nIG9mIGV4dGVybmFsIGNvbW1hbmQgaW50byBuZXcgZnVuY3Rpb24uCiAgIAoxOTk4LTA3LTAxIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBtaW5vciBzcGFjaW5nIGNoYW5nZXMuCiAgIAoxOTk4LTA3LTAxIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaCk6CiAgICAgLSBhZGRlZCBERUJVR1BPSUQobmFtZSwgbmFtZWxlbik7CiAgICAgLSBtb3ZlZCBERUJVR1AgZGVmaW5pdGlvbiBpbnRvIHNubXBfYXBpLmggd2hlcmUgaXQgYmVsb25ncy4KICAgCjE5OTgtMDctMDEgMTE6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBNYWtlZmlsZS5pbiwKICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KICAgCjE5OTgtMDctMDEgMTE6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgogICAKMTk5OC0wNi0yOCAwOTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBzbm1wX2FkZF92YXIoKS4KICAgCjE5OTgtMDYtMjYgMTA6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jCiwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oOgoKICAgLSAoc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKTogUGF0Y2gKICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KICAgCjE5OTgtMDYtMjYgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAtIGZpeCBjYWxjdWxhdGlvbiBvZiB0b3RhbGRpc2sgYnkgZG9pbmcgYmxvY2sgZGl2aXNpb24gZmlyc3QgdG8KICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgogICAKMTk5OC0wNi0yNCAxMTo0MCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhZGRlZCAuaW5kZXguCiAgIAoxOTk4LTA2LTI0IDExOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAtIGNyZWF0ZWQgKHBvb3JseSkgc2VuZF90cmFwX3BkdSgpIGZvciBzZW5kaW5nIHYyIHRyYXBzIGZyb20gbWliIG1vZHVsZXMuCiAgIAoxOTk4LTA2LTI0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogLmN2c2lnbm9yZSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc2h1dGRvd24gdHJhcCBzcGVjaWZpY2F0aW9ucy4KICAgICAtIG1pc2MgbWliIGZpeGVzLgogICAKMTk5OC0wNi0yNCAxMDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSwgLmN2c2lnbm9yZSk6IGEgZmV3IHVwZGF0ZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKG1hbi8uY3ZzaWdub3JlKTogaWdub3JlIC5odG1sIGZpbGVzLgogICAKMTk5OC0wNi0yNCAxMDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgaGV4X3RvX2JpbmFyeSwgYXNjaWlfdG9fYmluYXJ5LCBhbmQgc25tcF9hZGRfdmFyIHRvIHNubXBsaWIuCiAgIAoxOTk4LTA2LTI0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9wZHVfYWRkX3ZhcmlhYmxlKCkuCiAgIAoxOTk4LTA2LTI0IDEwOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCiAgIAoxOTk4LTA2LTIyIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KICAgCjE5OTgtMDYtMTkgMTM6MTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LgogICAKMTk5OC0wNi0xOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNSApCiAgIAoxOTk4LTA2LTE5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IExhc3QgdXBkYXRlIGZvciAzLjUuCiAgIAoxOTk4LTA2LTE5IDEzOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA2LTE5IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogbWVtc2V0IHRvIDAgdGhlIGVudGlyZSBzdWJ0cmVlIHN0cnVjdC4KICAgCjE5OTgtMDYtMTkgMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGZpeCBjaGVja21pYigpIGluIGNhc2Ugd2UgZ2V0IGNhbGxlZCBvbiBhIGdldCB3aGVuCiAgICAgd2UgcmVhbGx5IHNob3VsZG4ndCAoYmFkIGFydGlmYWN0IG9mIG5ldyB0cmVlIHN0cnVjdHVyZSkuCiAgIAoxOTk4LTA2LTE5IDEyOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jOgoKICAgLSAoZHVtbXkuYyk6IG1lbnRpb24gYXV0b19ubGlzdCgpLgogICAKMTk5OC0wNi0xOSAxMjowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvQWRkTW9kdWxlRm9yRHVtbWllcy50eHQ6CgogICAtIChBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCk6IHVwZGF0ZSB0byBmaXggcGF0aHMgYW5kIG1pc2Mgc3R1ZmYuCiAgIAoxOTk4LTA2LTE5IDEyOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZml4IHJlZ2lzdGVyX21pYigpIHRvIGluaXQgcG9pbnRlcnMgdG8gbnVsbC4KICAgCjE5OTgtMDYtMTkgMDg6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBpbnN0YWxsIElQRldBQ0MgbWliLgogICAKMTk5OC0wNi0xOSAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gdHVybiBpbnRvIGEgY29ycmVjdCB0YWJsZS4KICAgCjE5OTgtMDYtMTkgMDg6NTggIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGV4YW1wbGUgb3V0cHV0IGNvcnJlY3Rpb25zLgogICAKMTk5OC0wNi0xOSAwODo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gQlNESSB1c2VycyBhZ2FpbnN0IC91c3IvdWNiL2NjLgogICAKMTk5OC0wNi0xOSAwODo0MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQ6IG5vdCBmb3VuZCBtb2R1bGVzIHdpdGggY29uZmlndXJlPy4KICAgCjE5OTgtMDYtMTcgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15Lmg6CgogICAtIChkdW1teS5oKTogYWRkIERVTU1ZLU1JQiBieSBkZWZhdWx0LgogICAKMTk5OC0wNi0xNyAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWVudGlvbiBkdW1teSBncm91cC4KICAgCjE5OTgtMDYtMTcgMDg6MjEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvQWRkTW9kdWxlRm9yRHVtbWllcy50eHQKLCBhZ2VudC9taWJncm91cC9kdW1teS9EVU1NWS1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oCjoKCiAgIC0gKFJFQURNRSwgQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15LmgpOgogICAgIFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAtIG1pYiBtb2R1bGUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBmb3IgZHVtbWllcy4KICAgCjE5OTgtMDYtMTcgMDg6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmg6CgogICAtIChtaWIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSByZW1vdmUgMm5kIGluaXRfbWliKCkgcHJvdG90eXBlLgogICAKMTk5OC0wNi0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYmNvcHkgLT4gbWVtY3B5LgogICAKMTk5OC0wNi0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsCiAgIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMQosIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgIHNubXB3YWxrLjE6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgICBzbm1wZ2V0bmV4dC4xLCBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgICAgc25tcHdhbGsuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXAgYW5kIGNlbnRyYWxpemF0aW9uIG9mIGNvbW1vbiBvcHRpb25zLgogICAKMTk5OC0wNi0xNyAwODowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogdXNhZ2UoKSB1cGRhdGUuCiAgIAoxOTk4LTA2LTE3IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWlzYyB0eXBlIGZpeGVzLgogICAKMTk5OC0wNi0xMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBhIHVjZEV4cGVyaW1lbnRhbCBzZWN0aW9uIGZvciB0aGUgaXBmd2FjYyBtaWIgdGlsbAogICAgICAgaXQgc3RhYmlsaXplcy4KICAgCjE5OTgtMDYtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgLSAoa2VybmVsLmMpOiBkb24ndCBwcmludCBrbHJlYWQgZXJyb3JzIHVubGVzcyBpbiBkZWJ1Z2dpbmcgbW9kZS4KICAgCjE5OTgtMDYtMTIgMTM6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogNjRiaXQgZml4IG1lbnRpb25lZC4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBhZGQgc2V0ZW52IHRvIHRoZSBsaXN0LgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAtICh3aW4zMi9jb25maWcuaCk6IGRvbid0IGhhdmUgc2V0ZW52LgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGZ1bmN0aW9uIG5hbWUgdHlwby4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiB0cmFwIHR5cGVzIHdlcmUgaW50J3Mgbm90IGxvbmdzIChmYWlsZWQgdW5kZXIgNjRiaXQgYXJjaCkuCiAgIAoxOTk4LTA2LTEyIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBwZXJjZW50YWdlIGNoZWNrIHdhcyBiYWNrd2FyZHMuCiAgIAoxOTk4LTA2LTEyIDEwOjEyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pbm9yIHVwZGF0ZS4KICAgCjE5OTgtMDYtMTIgMTA6MTIgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogc2hvdyB2YWNtIGV4YW1wbGUgZm9yIHB1YmxpYy9wcml2YXRlIGZyb20gYW55d2hlcmUuCiAgIAoxOTk4LTA2LTEyIDA4OjUyICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVE6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gdXBkYXRlIGZvciBWQUNNIHN0dWZmLgogICAKMTk5OC0wNi0xMCAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oKTogLVdhbGwgY2xlYW51cHMuCiAgIAoxOTk4LTA2LTEwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjE5OTgtMDYtMTAgMTU6MzAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYWRkZWQgRGF2ZSdzIGxpc3QuCiAgIAoxOTk4LTA2LTEwIDE0OjE1ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy41LnByZTIgKQogICAKMTk5OC0wNi0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gIHN0YXJ0cyB0byBzZXBhcmF0ZSBvdXQgdGhlIGhpc3RvcmljIFNOTVB2MiBzdHVmZi4KICAgICAtICBkb2VzIGEgYml0IG9mICdjb2RlIHRpZHlpbmcnLgogICAgIC0gIHN0YXJ0cyB0byBtb3ZlIHRvd2FyZHMgcG9ydC1zcGVjaWZpYyBoYW5kbGVycy4KICAgCjE5OTgtMDYtMTAgMDc6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBoYXZlX3NldGVudi4KICAgCjE5OTgtMDYtMDggMTQ6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiB1bmRpZCByZWRvIG9mIGNvbW1lbnQgb2YgZ2V0dGltZW9mZGF5KCkuCiAgIAoxOTk4LTA2LTA4IDE0OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYzoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaAogICAgZnJvbSBKb2UgTWFyem90OgogICAgIC0gYXN5bmMgc3R1ZmYgYWRkZWQuCiAgICAgLSBnZXRfdGMgYWRkZWQuCiAgICAgLSBiZXR0ZXIgY29tbWVudHMgaW4gc29tZSBwbGFjZXMuCiAgIAoxOTk4LTA2LTA4IDE0OjE2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiB3MzIgdXBkYXRlLgogICAKMTk5OC0wNi0wOCAxNDoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIHJlbW92ZSBtb3JlIGNvbmZpZyBjcmVhdGVkIGhlYWRlcnMgb24gbWFrZSBjb25maWdjbGVhbi4KICAgCjE5OTgtMDYtMDggMTM6NTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSByZmMgIyBmb3IgdmFjbSByZWZlcmVuY2UuCiAgIAoxOTk4LTA2LTA4IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBFdWdlbmUncyBuYW1lLgogICAKMTk5OC0wNi0wOCAxMjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGNyZWF0ZSBhIC5jIC0+IC5vIHJ1bGUgdG8gbWFrZSBzdXJlIGFuZCBwbGFjZSB0aGUKICAgICBvYmplY3QgZmlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIHN1YmRpcmVjdG9yaWVzLgogICAKMTk5OC0wNi0wOCAxMDo1MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXJsIHR5cGUgc3BsaXR0aW5nLgogICAKMTk5OC0wNi0wNSAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6CiAgICAgLSBjaGFuZ2Uge2RlLH1pbml0IGZ1bmN0aW9ucyB0byBfZHluYW1pY197ZGUsfWluaXRfTU9EVUxFLgogICAgIC0gdXNlIFNOTVBMSUJQQVRIIGluc3RlYWQgb2YgaGFyZCBjb2RlZCAvdXNyL2xvY2FsL2xpYi4KICAgCjE5OTgtMDYtMDUgMTA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYwosIHN5c3RlbS5oOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgcGFyc2UuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIE1JQl9BQ0NFU1MgZGVmaW5lIGNoYW5nZXMuCiAgICAgLSBzZXRlbnYgaW1wbGVtZW50YXRpb24uCiAgICAgLSBpZmRlZiB3cmFwcGVycyBmb3IgT1BBUVVFX1NQRUNJQUxfVFlQRVMuCiAgIAoxOTk4LTA2LTA1IDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3QgZm9yIG51bGwgcG9pbnRlci4KICAgCjE5OTgtMDYtMDUgMTA6NTIgIGhhcmRha2VyCgogICAqIG1ha2V0YXJnZXQ6CgogICAtIChtYWtldGFyZ2V0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHN1cHBvcnQgZm9yIGxhcmdlciB0cmVlIGRlcHRocy4KICAgCjE5OTgtMDYtMDUgMTA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBmb3Igc2V0ZW52LgogICAKMTk5OC0wNi0wMyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUxICkKICAgCjE5OTgtMDYtMDMgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZWFkX2NvbmZpZy5vIGlzIG1pYm1vZHVsZSBoZWFkZXIgZGVwZW5kYW50IHRvby4KICAgCjE5OTgtMDYtMDMgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluJ3MpOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDYtMDMgMTQ6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFwcHMvc25tcHNldC5jLAogICBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGhyX2Rpc2suYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBzbm1wc2V0LmMsIGFzbjEuaCwKICAgICBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgLSAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDYtMDMgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggbmV3IC0td2l0aC1jYyBhbmQgLS13aXRoLWNmbGFncyBhcmd1bWVudHMuCiAgIAoxOTk4LTA2LTAzIDEzOjUyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGZyZWVic2QyLmgpOgogICAgIC0gbW92ZSBjb25maWd1cmFibGUgZGVmaW5lcyB0byBjb25maWd1cmUgcmF0aGVyIHRoYW4gaW4gZnJlZWJzZDIuaC4KICAgCjE5OTgtMDYtMDMgMTM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcHRyYXBkLmMpOgogICAgIC0gY2hlY2sgZm9yIGdldGR0YWJsZXNpemUgYW5kIHVzZSBhIGdlbmVyaWMgaWYgbm90IGF2YWlsYWJsZS4KICAgCjE5OTgtMDYtMDMgMTM6MzkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBOZXcgZmxhZ3M6CiAgICAgLSAtLXdpdGgtY2M9Q0MKICAgICAtIC0td2l0aC1jZmxhZ3M9Q0ZMQUdTCiAgIAoxOTk4LTA2LTAzIDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAtIGZpeCBwZHUtPnZlcnNpb25zIHRvIGJlIGFsbCBpbnRzLgogICAKMTk5OC0wNi0wMyAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogbWlzc2VkIGEgbmVlZGVkIE9QQVFVRV9TUEVDSUFMX1RZUEVTIGlmZGVmLgogICAKMTk5OC0wNi0wMyAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbmNsdWRlIG1pYklJL3NubXBfbWliLmguCiAgIAoxOTk4LTA2LTAzIDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsCiAgIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZXMvZXhhbXBsZS5jLAogICBleGFtcGxlcy9leGFtcGxlLmgsIGV4YW1wbGVzL3dvbWJhdC5jLAogICBleGFtcGxlcy93b21iYXQuaDoKCiAgIC0gKFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZS5jLAogICAgIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKToKICAgICAtIG1vdmVkIHdvbWJhdCBhbmQgZXhhbXBsZSB0byBleGFtcGxlcy8gZGlyZWN0b3J5LgogICAKMTk5OC0wNi0wMyAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwgbWlzYy9kbG1vZC5jCiwgbWlzYy9kbG1vZC5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgpOiBQYXRjaCBmcm9tIEV1Z2VuZSBQb2xvdm5pa292OgogICAgIC0gaW1wbGVtZW50IGEgZHluYW1pYyBsb2FkaW5nIG1vZHVsZSBmb3IgbG9hZGluZyBzaGFyZWQgb2JqZWN0IG1pYiBtb2R1bGVzLgogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWVudGlvbiBDcmlzdGlhbiBFc3RhbiBpbiB0aGUgY29kZXJzIGxpc3QuCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IG1lbnRpb24gaXBmd2FjYwogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCBtaWJzL0lQRldBQ0MtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtb3ZlZCBpcGZ3YWNjIHRvIHVjZGF2aXMuMTMgYW5kIHJlbW92ZWQgXk1zIGFuZCBzb21lIGJsYW5rIGxpbmVzLgogICAKMTk5OC0wNi0wMyAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBjb25maWdfYWRkX21pYihJUEZXQUNDLU1JQikuCiAgIAoxOTk4LTA2LTAzIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCk6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBpcCBmaXJld2FsbCBhY2NvdW50aW5nIGluZm9ybWF0aW9uIG1pYiBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTgtMDYtMDMgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwKICAgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oCiwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4L3NtdXguYywKICAgc211eC9zbXV4LmgsIHNtdXgvc25tcF9iZ3AuYywgc211eC9zbm1wX2JncC5oLAogICBzbXV4L3NubXBfb3NwZi5jLCBzbXV4L3NubXBfb3NwZi5oLCBzbXV4L3NubXBfcmlwMi5jCiwgc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLAogICAgIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICAgIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKToKICAgICAtIG1vdmVkIHNtdXggc3R1ZmYgaW50byBhIHNtdXggc3ViLWRpcmVjdG9yeS4KICAgCjE5OTgtMDYtMDIgMTQ6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaHJfdXRpbHMuYywgYXQuYywgaW50ZXJmYWNlcy5jLAogICAgIHZhcl9yb3V0ZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGZyZWVic2QyLmgsIGhwdXguaCwgbGludXguaCwgbmV0YnNkLmgsCiAgICAgc29sYXJpcy5oLCBzeXN2LmgsIGFzbjEuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXV0aC5jLAogICAgIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgLSBtYWtlIGhvc3QgcmVzb3VyY2VzIHdvcmsgdW5kZXIgTmV0QlNELCBGcmVlQlNELCBTb2xhcmlzIGFuZCBMaW51eC4KICAgICAgIC0gU3VuT1M0IGFsbW9zdCB3b3Jrcy4KICAgICAtIEFkZCAtcy8tUyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJpbnRpbmcgb2Ygc2hvcnRlciBvaWRzLgogICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgogICAKMTk5OC0wNS0zMSAxNzo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG1ha2UgaXQgcG9zc2libGUgbm90IHRvIHVzZSBvcGFxdWUgc3BlY2lhbCB0eXBlcyB3aXRoIG5ldyBjbWQgbGluZSBmbGFnLgogICAKMTk5OC0wNS0zMSAxNzo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChzbm1wc2V0LmMpOiBlbmFibGUgc2V0dGluZyBvZiBvcGFxdWUgZmxvYXRzLCBkb3VibGVzLCBpbnQ2NHMsIHVpbnQ2NHMuCiAgIAoxOTk4LTA1LTMxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgKLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCiwgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCk6CiAgICAgLSBpbXBsZW1lbnQgc3BlY2lhbCBkYXRhIHR5cGVzIHZpYSBvcGFxdWVzOiBmbG9hdCwgZG91YmxlLCBpbnQ2NCwgdWludDY0cy4KICAgCjE5OTgtMDUtMjkgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IGNoYW5nZSBwZHUgdmVyc2lvbiBmcm9tIGxvbmcgdG8gaW50LgogICAKMTk5OC0wNS0yOSAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ocl9vdGhlci5jLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYywgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmgsIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9pY21wLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYwosIGFnZW50L21pYmdyb3VwL2lwLmgsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYwosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuYwosIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLCBhZ2VudC9taWJncm91cC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuaCwgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYwosIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c09SVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3RjcC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYwosIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlZCBtb3N0IG1pYmdyb3VwIHBpZWNlcyBpbnRvIHJlbGV2ZW50IHN1Yi1kaXJlY3Rvcmllcy4KICAgICAgIC0gY2hhbmdlZCBhbGwgaGVhZGVyIGZpbGUgYW5kICNpZmRlZiBVU0lOR18qIGxpbmVzIHRvIHJlZmxlY3QgdGhpcy4KICAgCjE5OTgtMDUtMjkgMTU6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhYmlsaXR5IHRvIHNwZWNpZnkgbWliIGluZm9ybWF0aW9uIG9uIHRoZSBjbWQgbGluZS4KICAgCjE5OTgtMDUtMjkgMTU6MjAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogd2luU05NUCBtZW50aW9uLgogICAKMTk5OC0wNS0yOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgLSBBZGQgYSBkZXBlbmRhbmN5IGxpbmUgZm9yIHNubXBfdmFycy5vIGZvciBhbGwgdGhlIG1vZHVsZSBpbmNsdWRlcy4KICAgCjE5OTgtMDUtMjkgMTE6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IG1ha2Ugb2YgY29uZmlndXJlLgogICAKMTk5OC0wNS0yOSAxMToyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogcGF0Y2ggZnJvbSBOaWVsczogaW5jbHVkZSBzeXMvc29ja2V0IGluIGlmX210dSB0ZXN0LgogICAKMTk5OC0wNS0yOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBmaXggY29tbXVuaXR5IG5hbWUgbGVuZ3RoIHByb2JsZW1zIGFuZCBpbmNyZWFzZSBzaXplLgogICAKMTk5OC0wNS0yOSAxMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYzoKCiAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOiBmaXggZm9yIGlyaXguCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggZm9yIG5ldGJzZCA8IDEuMy4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogY2hhbmdlIHZhY20gbmV3cyB3b3JkaW5nLgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIHRvIGNoYW5nZSBhIGZldyB0aGluZ3MuCiAgIAoxOTk4LTA1LTIwIDA4OjMzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40ICkKICAgCjE5OTgtMDUtMjAgMDg6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjE5OTgtMDUtMjAgMDg6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDUtMjAgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogY29uZmlnX3BlcnJvcigpIC0+IGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIHRva2Vucy4KICAgCjE5OTgtMDUtMjAgMDc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IHZlcnNpb24gc2hvdWxkIGJlIGEgbG9uZy4KICAgCjE5OTgtMDUtMjAgMDc6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IG1ha2UgY2hlY21pYigpIHVzZSBvaWQgbm90IGludCBmb3IgbmV3bmFtZS4KICAgCjE5OTgtMDUtMjAgMDc6MzQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5OC0wNS0yMCAwNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZXh0ZW5kIHJhbmRvbSBsb29rdXBzIGZ1cnRoZXIuCiAgIAoxOTk4LTA1LTE5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogZml4IHN3YXBpbmZvIG9uIGhwdXgxMCBzeXN0ZW1zLiAoL2V0Yy9zd2FwaW5mbyAtcikuCiAgIAoxOTk4LTA1LTE5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jOgoKICAgLSAoYXQuYyk6IHNldCB0byBkbyBub3RoaW5nIHdoZW4gQ0FOX1VTRV9TWVNDVEwuCiAgIAoxOTk4LTA1LTE4IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIChpbnQ2NC5jKToKICAgICAtIGluY2x1ZGUgaGVhZGVyIGNoYW5nZXMgZm9yIHdpbjMyLgogICAKMTk5OC0wNS0xOCAxNTozOSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU5ICkKICAgCjE5OTgtMDUtMTggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBwcm90ZWN0IHVzaW5nIHRoZSBkYXRlIHBvaW50ZXIgYWdhaW5zdCBOVUxMIHNldHRpbmdzLgogICAKMTk5OC0wNS0xOCAxMjo1MiAgaGFyZGFrZXIKCiAgICogbWlicy8uaW5kZXg6CgogICAtIChtaWJzLy5pbmRleCk6IHJlbW92ZWQuCiAgIAoxOTk4LTA1LTE4IDExOjE3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gZml4IHJ0ZW50cnkgc3RydWN0dXJlIHRlc3Qgb24gcmUtY29uZmlndXJlcy4KICAgCjE5OTgtMDUtMTUgMTE6MTggIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZwosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQucGxnCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQucGxnCiwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5wbGcsCiAgICAgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LnBsZywgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUucGxnLAogICAgIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIHdpbjMyIGZpbGUgdXBkYXRlcy4KICAgCjE5OTgtMDUtMTUgMTE6MTcgIGhhcmRha2VyCgogICAqIEZBUSwgc25tcGxpYi9taWIuYzoKCiAgIC0gKEZBUSwgbWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gaGFuZGxlIHJhbmRvbSBsb29rdXBzIHdpdGggbXVsdGlwbGUgb2lkIHNlZ21lbnRzLgogICAKMTk5OC0wNS0xNSAxMDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHByb3ZpZGUgYWJpbGl0eSB0byBkbyByYW5kb20gc2VhcmNoZXMgc3BlY2lmeWluZyBhIG1vZHVsZSBuYW1lIHRvIGxvb2sgaW4uCiAgIAoxOTk4LTA1LTE1IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAocmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgIGhyX3N5c3RlbS5oLCBocl91dGlscy5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhbnNsYXRlLjEsCiAgICAgYnNkLmgsIHNvbGFyaXMuaCwgc3Vub3MuaCwgaW50NjQuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHRyYW5zbGF0ZSBzdXBwb3J0cyAtUiBhbmQgLXIuCiAgICAgLSBtaXNjZWxsYW5lb3VzIHdhcm5pbmcgZml4ZXMuCiAgICAgLSBvaWQgc2VhcmNoZXIgYWx3YXlzIGlnbm9yZXMgY2FzZS4KICAgICAtIGZpeGVkIGhyX3N5c3RlbSB0byBjb21waWxlIG9uIFN1bk9TNC4KICAgCjE5OTgtMDUtMTUgMTA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzaW5nbGUgcXVvdGUgbWlzc2luZyBtb2R1bGUgbmFtZXMuCiAgIAoxOTk4LTA1LTE0IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogdHlwb3MuCiAgIAoxOTk4LTA1LTE0IDA4OjIyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pYjJjIG1lbnRpb25lZC4KICAgCjE5OTgtMDUtMTQgMDg6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG5ldyBGQVEgZnJvbSBEYXZlIFNoaWVsZHMuCiAgIAoxOTk4LTA1LTE0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogbW92ZSBzeXMvcGFyYW0uaCB1cCBhYm92ZSBmcy5oIGhlYWRlcnMuCiAgIAoxOTk4LTA1LTEzIDIxOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBzcHJpbnRfYnlfdHlwZSgpIGRpZG4ndCBoYW5kbGUgY291bnRlcjY0J3MuCiAgIAoxOTk4LTA1LTEzIDIxOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCBmb3IgYnNkaQogICAKMTk5OC0wNS0xMyAyMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKGlwLmMpOiBpbmNsdWRlIG5ldC9yb3V0ZS5oIGFuZCBzeXNsb2cuaCBmb3IgYnNkaS4KICAgCjE5OTgtMDUtMTMgMjE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCByZXR1cm4gYSBjb3VudGVyNjQgdG8gYSBzbm1wdjEgcmVxdWVzdC4KICAgCjE5OTgtMDUtMTMgMjE6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYzoKCiAgIC0gKGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogbWFrZSBpbnQ2NC5jIHVzZSBjb3VudGVyNjQncyBzdHJ1Y3R1cmUuCiAgIAoxOTk4LTA1LTEyIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTggKQogICAKMTk5OC0wNS0xMiAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jCiwgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMKLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jOgoKICAgLSAoZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLAogICAgIHByb2MuYywgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYyk6CiAgICAgLSBpbmNsdWRlIHRpbWUuaCBwcm9wZXJseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdXRpbF9mdW5jcy5oIHRvIGRvIGl0LgogICAKMTk5OC0wNS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHN5c3RlbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc3lzdGVtLmMpOgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIHN5c3RlbS5jIHRvIHNubXBfYXBpLmMsIHdoZXJlIGl0IHNob3VsZCBiZS4KICAgCjE5OTgtMDUtMTIgMTE6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jOgoKICAgLSAodm1zdGF0LmMpOiBjb3JyZWN0IHN0cmluZ3MgaW5jbHVzaW9uLgogICAKMTk5OC0wNS0xMiAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogTlVMTCAtPiAwLgogICAKMTk5OC0wNS0xMiAxMToxMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG11bmdlIHJwbSBsaWIgY2hlY2sgdG8gbGluayB3aXRoIC1sZGIgYXMgd2VsbC4KICAgCjE5OTgtMDUtMTIgMTE6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbW9yZSB1cGRhdGVzLgogICAKMTk5OC0wNS0xMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGluY2x1ZGUgYSBnZXRkdGFibGVzaXplKCkgZnVuY3Rpb24gZm9yIGhwdXg5LgogICAKMTk5OC0wNS0xMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBtb3JlIHN3aW5zdCBmaXhlcyBmb3IgcnBtIG1vZHVsZXMuCiAgIAoxOTk4LTA1LTExIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsCiAgIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAtIGZpeCB0aGUgcGFyc2VyIHRvIHJlcG9ydCB1bmxpbmtlZCBPSURzLiBUaGlzIGRpZCByZXZlYWwgYW4gZXJyb3IgaW4gYQogICAgICAgQ2lzY28gTUlCIChDSVNDTy1JUE1DQVNULU1JQikgdGhhdCBJIGhhZCBiZWVuIHVzaW5nIChpdCBuZWVkcyBhbgogICAgICAgSU1QT1JUUyBjaXNjb0V4cGVyaW1lbnQgRlJPTSBDSVNDTy1TTUkpCiAgICAgICBBY3R1YWxseSB0aGUgcGFyc2VyIHdvcmtlZCBvaywgZXhjZXB0IGZvciB0aGUgbWlzc2luZyBlcnJvciBtZXNzYWdlcy4KICAgICAtIHJld3JpdGUgb2YgdGhlIHBhcnNlcnMgbGV4aWNhbCBhbmFseXNlciwgdG8gY29ycmVjdCB0aGUgZXJyb3JzIHRoYXQKICAgICAgIERhdmUgUGVya2lucyBhbmQgb3RoZXJzIGhhdmUgcG9pbnRlZCBvdXQgcmVjZW50bHkgKG5hbWU6Oj0gLCBERVNDUklQVElPTiIKICAgICAgIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgLS0gcGFydGlhbCBsaW5lIGNvbW1lbnRzIC0tKS4gV2F0Y2ggb3V0ISB0aGlzIGxhc3QKICAgICAgIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZSB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0CiAgICAgICB3ZSBzaGlwKS4gTXkgRm9yZSBTeXN0ZW1zIE1JQnMgaGFkIGVycm9ycyB3aXRoIHRoaXMuCiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKICAgCjE5OTgtMDUtMTEgMTA6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gQ29ycmVjdGlvbnMgb2YgZGlzayBlbnRyeSBjYXBpdGlsYXphdGlvbiBwcm9ibGVtcy4KICAgCjE5OTgtMDUtMTEgMTA6MzEgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGhpcyBsYXN0IFtwYXJzZXJdIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZQogICAgICAgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdCB3ZSBzaGlwKS4KICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIChzbm1wdHJhbnNsYXRlLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlLgogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmM6CgogICAtIChocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc29tZSBwcm90b3R5cGVzIGZvciB0aGUgaHJfKi5jIGZpbGVzIChuZWVkcyBEYXZlJ3MgcmVjZW50IHBhdGNoKQogICAgICAgV2FybmluZzogdGhlIHByb2MgcGFydCBzdGlsbCBkb2VzIG5vdCB3b3JrIHdpdGggU29sYXJpcyEKICAgCjE5OTgtMDUtMTEgMTA6MjkgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsCiAgIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBzbm1wZC5oLCB2YXJfc3RydWN0LmgpOiBQYXRjaAogICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdGhlIHRyYXBzaW5rIGRpcmVjdGl2ZXMgaW4gc25tcGQKICAgCjE5OTgtMDUtMTEgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gKGludDY0LmMpOiBhZGQgaW5jckJ5VTMyKCkuCiAgIAoxOTk4LTA1LTExIDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogb3BhcXVlJ3MgY2FuIGhhdmUgYSBzaXplIHNwZWNpZmllci4KICAgCjE5OTgtMDUtMTEgMDg6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOgogICAgIC0gY291bnRlcjY0cy4KICAgICAtIGNvbnNvbG9kYXRpb24gb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLgogICAgIC0gbW9yZSBlcnJvciBzdGluZ3MgaW4gYWxsIGZpbGVzIGZvciB1bmtub3duIHZhcmlhYmxlIHR5cGVzLgogICAKMTk5OC0wNS0xMSAwODowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG9wdGlvbmFsIHBvcnQgbnVtYmVyLgogICAKMTk5OC0wNS0xMSAwODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogYmxhbmsgbGluZSByZW1vdmFsLgogICAKMTk5OC0wNS0wOCAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogd29yZGluZyBjaGFuZ2UuCiAgIAoxOTk4LTA1LTA4IDExOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2Rpc2suYywgaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYywgaHJfZGlzay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMuCiAgIAoxOTk4LTA1LTA4IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIHBrZ2xvY3MuaC4KICAgCjE5OTgtMDUtMDcgMDk6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZGVidWcgaW5mbyBmb3IgY29uZmlnIGZpbGVzIHJlYWQuCiAgIAoxOTk4LTA1LTA3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3lzL3N0YXQgaW5jbHVzaW9uIGluIGZzIGNoZWNrcy4KICAgCjE5OTgtMDUtMDcgMDk6MDUgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogY29ycmVjdGlvbiBmb3IgZGF0ZXMuCiAgIAoxOTk4LTA1LTA2IDIyOjI4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKHdpbjMyL2NvbmZpZy5oKTogdXBkYXRlIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTgtMDUtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBjcmVhdGVkIGEgbWliMmMgdGVtcGxhdGUgY3JlYXRvci4KICAgCjE5OTgtMDUtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIGJvZ3VzIGluZGV4J3MgYmUgMC4KICAgCjE5OTgtMDUtMDYgMjE6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgLSBuZXcgZnVuY3Rpb246IGNhbGN1bGF0ZV90aW1lX2RpZmYodDEsIHQyKS4KICAgCjE5OTgtMDUtMDYgMjE6MDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoxOTk4LTA1LTA2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jCiwgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmMsIHByb2MuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW0uYwosIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jCiwgdm1zdGF0LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jLCB2bXN0YXQuYyk6CiAgICAgLSByZW1vdmUgdGhlIG5ld25hbWUgcmVxdWlyZW1lbnQgZnJvbSBjaGVja21pYigpLgogICAgIC0gY3JlYXRlIGhlYWRlcl9nZW5lcmljKCkgZm9yIHNpbXBsZSBzY2FsYXIgdGVzdHMuCiAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMoKSBpbiBhbGwgdWNkIHNwZWNpZmljIHNjYWxhciBtaWJzLCBhbmQgZXhhbXBsZS5bY2hdLgogICAKMTk5OC0wNS0wNiAxNDowNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBhZGRlZCBpbnRlcm5hbCB0YWJsZSBzZWN0aW9uLgogICAgIC0gbWliIG51bWJlciBjb3JyZWN0aW9ucyB0byBtYXRjaCB0aGUgc291cmNlLgogICAKMTk5OC0wNS0wNiAxMToyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGttaWIuCiAgIAoxOTk4LTA0LTI5IDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKToKICAgICAtIGRpc3BsYXkgdW5sb2FkZWQgbW9kdWxlIGVycm9yLgogICAgIC0gZG9uJ3QgdHJ5IHRvIGxvYWQgYSBmaWxlIG9uIGEgY2FuY2VsLgogICAKMTk5OC0wNC0yOSAxMTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHB1dCB2bXN0YXQgYmFjayBpbiBhbmQgcmVuYW1lZCB0byBzeXN0ZW1TdGF0cy4KICAgCjE5OTgtMDQtMjkgMTE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdm1zdGF0LmMsIHZtc3RhdC5oOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oKTogbW92ZXMsIGNoYW5nZXMsIHJlbW92YWxzLCBhbmQgZml4ZXMuCiAgIAoxOTk4LTA0LTI5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYwosIHdvbWJhdC5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6IG1vcmUgY2xlYW4gdXBzLgogICAKMTk5OC0wNC0yOSAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMKLCB3b21iYXQuYzoKCiAgIC0gKGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgIC0gbmxpc3QgY2xlYW51cHMuCiAgIAoxOTk4LTA0LTI5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AuYzoKCiAgIC0gKHRjcC5jKTogZG9uJ3QgdXNlIFRDUFNUQVRfU1lNQk9MIHVubGVzcyBkZWZpbmVkLgogICAKMTk5OC0wNC0yOSAwODo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCAtSCBoZWFkZXIgcHJpbnRpbmcuCiAgIAoxOTk4LTA0LTI3IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogYnVnIGZpeGVzLgogICAKMTk5OC0wNC0yNyAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IE5ldyBtaWIgbWVudSBjb21tYW5kOiBsb2FkIGEgbWliIG1vZHVsZSBieSBJRCBuYW1lLgogICAKMTk5OC0wNC0yNyAxNjoyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGJ1ZyBmaXhlcyBhbmQgbmV3IG1pYiBtZW51IHRvIGxvYWQgbmV3IG1pYnMuCiAgIAoxOTk4LTA0LTI3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTcgKQogICAKMTk5OC0wNC0yNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYyk6CiAgICAgLSBQdXQgdGhlIHdvcmQgIlRpbWVvdXQ6ICIgaW4gZnJvbnQgb2YgdGhlICJObyBSZXNwb25zZSIgZXJyb3JzLgogICAKMTk5OC0wNC0yNyAxMTowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBTSExJQl9MRENPTkZJR19DTUQgYXMgIjoiIGZvcgogICAgIHN0YXRpYyBsaWJyYXJ5IGNhc2VzLgogICAKMTk5OC0wNC0yNyAxMDo1OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlZCB1bm5lZWRlZCB2YXJpYWJsZS4KICAgCjE5OTgtMDQtMjQgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiB3YXRjaCBvdXQgZm9yIHNpbmdsZSByb3V0ZSBsb29wcy4KICAgCjE5OTgtMDQtMjQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCk6IG5fdmFsdWUgaXMgYSBsb25nOgogICAgIC0gcmV0dXJuIHRoZSB2YWx1ZSBmcm9tIGF1dG9fbmxpc3RfdmFsdWUgYXMgYW4gdW5zaWduZWQgbG9uZy4KICAgCjE5OTgtMDQtMjQgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBpbmNsdWRlIG5ldGluZXQvdGNwaXAuaCBmb3IgRFU0LjAuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBjYWxjdWxhdGUgdmZzIGJsb2NrIHNpemUgaWYgcG9zc2libGUgYW5kIHNpemUgPiAyNTUgYnl0ZXMuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYzoKCiAgIC0gKGhyX3BhcnRpdGlvbi5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGp1c3Qgb3BlbmVkLgogICAKMTk5OC0wNC0yNCAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBkZWZpbmUgTUFYUEFUSExFTi4KICAgCjE5OTgtMDQtMjQgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGVjayBzdGF0dmZzLmggZm9yIGZfYmF2YWlsLgogICAKMTk5OC0wNC0yNCAxNDowMyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vcmUgY2xlYW5pbmcgYW5kIHJlbmFtaW5nLgogICAKMTk5OC0wNC0yNCAxMDoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgc29tZS4KICAgCjE5OTgtMDQtMjQgMTA6MDIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmVuYW1lZCBsYWJlbHMgdG8gYmUgdW5pcXVlIGZyb20gdGhlIG9sZCBkZWZpbml0aW9ucy4KICAgICAtIHJlbnVtYmVyZWQgYWdhaW4uCiAgICAgLSBjb21tZW50ZWQgb24gdGhlIGRlc2dpbiBvZiB0aGUgbWliIGF0IHRoZSB0b3AuCiAgICAgLSBDaGFuZ2VkIGJhY2sgdG8gU01JdjEuCiAgICAgLSByZW1vdmVkIGxvY2tkIHNlY3Rpb24uCiAgICAgLSByZW1vdmVkIHZtc3RhdCBzZWN0aW9uIHRpbGwgaXQgZ2V0cyBpbXBsZW1lbnRlZC4KICAgICAtIHJlbW92ZWQgc2VxdWVuY2VzIG9mIHNjYWxlcnMuCiAgIAoxOTk4LTA0LTI0IDEwOjAwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbWliIG9pZCBsb2NhdGlvbiB1cGRhdGVzIGZvciB1Y2Qtc25tcCBtaWIuCiAgIAoxOTk4LTA0LTIyIDA4OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHBhcnNlIEJJVFMga2V5d29yZHMuCiAgIAoxOTk4LTA0LTIyIDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCB3b3JkaW5nLCBjbGVhbmVkIHVwIGEgYml0LgogICAKMTk5OC0wNC0yMCAxNjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBuZWVkZWQgcG9pbnRlciBjb3BpZXMuCiAgIAoxOTk4LTA0LTIwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmM6CgogICAtICh0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtICNpZmRlZiBjaGVja3Mgb24gc3ltYm9scyBhbmQgaGVhZGVyIG1vdmVtZW50LgogICAKMTk5OC0wNC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0eXBlY2FzdCBhIHBvaW50ZXIuCiAgIAoxOTk4LTA0LTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZ2V0aG9zdGJ5YWRkciBtb3ZlcyB1cC4KICAgICAtIGluY2x1ZGUgc3lzL3dhaXQuaC4KICAgICAtIHN5c2xvZyAlZCAtPiAlbGQgZm9yIGxvbmcgc3BlY2lmaWNfdHlwZS4KICAgCjE5OTgtMDQtMjAgMTY6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwcm90b3R5cGluZyBhbmQgb3RoZXIgY2xlYW51cHMuCiAgIAoxOTk4LTA0LTIwIDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IHN5bWJvbCBkZWZpbmVzIGFuZCBjbGVhbnVwLgogICAKMTk5OC0wNC0yMCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBtb3Zlcy4KICAgCjE5OTgtMDQtMjAgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFwcHJvcHJpYXRlIHVzZSBvZiBzdHJkdXAgZHVyaW5nIHN0YXJ0dXAgYW5kIGJldHRlciBmbGFnIGNoZWNraW5nLgogICAKMTk5OC0wNC0yMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9maWxlc3lzLmMsIGhyX3N3cnVuLmM6CgogICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IHNvbWUgaG9zdCByZXNvdXJjZXMgZm9yIHNvbGFyaXMuCiAgIAoxOTk4LTA0LTIwIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3Igc3lzL2RraW8uaAogICAKMTk5OC0wNC0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0X3Jlcy5oLCBocl9kaXNrLmMsCiAgIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYzoKCiAgIC0gKGhvc3RfcmVzLmgsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgICAtIGNvbnNvbGlkYXRlIHRoZSBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgYSBiaXQgKHNob3VsZCBtYWtlIGl0IGVhc2llcgogICAgICAgICB0byBmb2xsb3cpCiAgICAgICAtIFJlLXN0cnVjdHVyZXMgdGhlIERpc2sgc2VhcmNoaW5nLCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIHNldCB1cAogICAgICAgICB2aWEgdGhlIGNvbmZpZyBmaWxlLiAod2hpY2ggSSBzdGlsbCBuZWVkIHRvIGRvKQogICAgICAgLSBTcGVlZCB1cCBkaXNrIHNlYXJjaGluZyAoYnkgY2FjaGluZyBpbnZhbGlkIHJlc3VsdHMgLSBhICptYWpvciogd2luISkKICAgICAgIC0gSGFuZGxlIHBhcnRpdGlvbnMgc2Vuc2libHkgKGFydGhlciB0aGFuIG9uZSBwZXIgZGlzaykKICAgICAgIC0gSW1wcm92ZSBTb2xhcmlzIHN1cHBvcnQgZm9yIHRoZSBEZXZpY2UgZ3JvdXAKICAgCjE5OTgtMDQtMjAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogY2hhbmdlIG9pZCBmcm9tIHRleHR1YWwgdG8gbnVtZXJpYyB0byBhbGxvdyBub3cgbWlicyB0bwogICAgIGJlIGxvYWRlZC4KICAgCjE5OTgtMDQtMDEgMTY6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGFsd2F5cyBzZW5kIGVudGVycHJpc2UgYW5kIHRyYXBvaWQgdG8gc2NyaXB0cy4KICAgCjE5OTgtMDQtMDEgMTQ6NDMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNiApCiAgIAoxOTk4LTA0LTAxIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgdW5yZWdlc3RlcmluZyBvZiBtaWJzIHdvcmsuCiAgICAgLSAoaW4gbW9zdCBjYXNlczotPykKICAgCjE5OTgtMDQtMDEgMTQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA0LTAxIDE0OjEwICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlbW92ZWQgYSBmZXcgdGhpbmdzIQogICAKMTk5OC0wNC0wMSAxMzo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogbW92ZWQgdGhlIHZpZXcgZXhhbXBsZSBzZWN0aW9uIGFib3ZlIHRoZSBhY2Nlc3Mgc2VjdGlvbi4KICAgCjE5OTgtMDQtMDEgMTM6NTMgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgdmFjbSBleGFtcGxlIGNvbmZpZ3VyYXRpb24uCiAgIAoxOTk4LTA0LTAxIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogbW9yZSAzLjQgdXBkYXRlcy4KICAgCjE5OTgtMDQtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIE5FV1MsIFBPUlRJTkc6CgogICAtIChORVdTLCBQT1JUSU5HKTogdXBkYXRlcyBmb3IgMy40LgogICAKMTk5OC0wNC0wMSAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKToKICAgICAtIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIG9mIHRyZWUgdHJhdmVyc2FsLgogICAKMTk5OC0wNC0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IGVudGVycHJpc2VfbGVuZ3RoIGlzIHNpemVvZihvaWQpIGRlcGVuZGVudC4KICAgCjE5OTgtMDMtMjcgMTY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL3JlZ2lzdHJ5LmM6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIGludGVyZmFjZXMuYywgaXAuYywgcmVnaXN0cnkuYyk6CiAgICAgLSBwcm90b3R5cGluZyBhbmQgLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTAzLTI3IDE2OjQyICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGRvY3VtZW50IGxpYndyYXAuCiAgIAoxOTk4LTAzLTI3IDE2OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOgogICAgIC0gY29ycmVjdGx5ICNpZmRlZiBvdXQgdGhlIHRjcHdyYXBwZXJzIHBhdGNoLgogICAKMTk5OC0wMy0yNyAxNjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogSW50ZXJmYWNlc19TY2FuX05leHQgbmVlZGVkIGEgNHRoIChOVUxMKSBhcmd1bWVudC4KICAgCjE5OTgtMDMtMjcgMTY6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOiBQYXRjaCBmcm9tCiAgICAgQXJ0aHVyIEh5dW46CiAgICAgLSB0Y3B3cmFwcGVycyBzdXBwb3J0LgogICAKMTk5OC0wMy0yNyAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmM6CgogICAtIChocl9kZXZpY2UuYyk6IGNoZWNrIGRldmljZSBpbmRleCBhZ2FpbnN0IG1heGltdW0gKHNlZ2ZhdWx0IG9uIEhQVVgpLgogICAKMTk5OC0wMy0yNyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogdXNlIGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIGRpc2tzLgogICAKMTk5OC0wMy0yNyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBjcmVhdGUgY29uZmlnX3B3YXJuKCkgdGhhdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBlcnJvciBjb3VudCB0bwogICAgICAgcHJldmVudCBleGl0aW5nLiAgVXNlZCBmb3IgZGlza3MsIHNpbmNlIHNvbWUgbWlnaHQgYnkgcHJvY2VzcyBvcgogICAgICAgbmZzIG1vdW50ZWQuCiAgIAoxOTk4LTAzLTI3IDA5OjIwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gQmV0YSB2ZXJzaW9uIG9mIGFuIGV4dGVuc2libGUgdHJhcCBkZW1vbi4KICAgICAgIC0gLUMgJ2NvbW1hbmQnIG9uIHRoZSBjb21tYW5kIGxpbmUgcnVucyB0aGUgY29tbWFuZCBhbmQgZmVlZHMgaXQKICAgICAgICAgc3RkaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyYXAuCiAgICAgICAtIHYxIHRyYXBzIGFyZSBjb252ZXJ0ZWQgdG8gdjIgdHJhcHMgZm9yIGNvbnNpc3RhbmN5IG9mCiAgICAgICAgIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIHNjcmlwdHMuCiAgIAoxOTk4LTAzLTI2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jLAogICBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwosIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jCiwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX3JpcDIuYywgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZpZXcuYwo6CgogICAtICgqLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWlzYyBwb3J0aW5nIGltcHJvdmVtZW50cyAodGhlIGJzZCBncm91cHMsIHN1bm9zLCAuLi4pLgogICAgIC0gc3dpdGNoIGF1dG9fbmxpc3RzIGNhbGxpbmcgb3JkZXIgb2YgXyB2cyBub24gXyBsb29rdXBzLgogICAgIC0gcmV2ZXJzZSBhbGwgc3RyaW5nLmgvc3RyaW5ncy5oIGluY2x1ZGUgcG9zc2liaWxpdGllcy4KICAgCjE5OTgtMDMtMjUgMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6IGZpeCB3cml0ZV9tZXRob2QgZGVjbGFyYXRpb24uCiAgIAoxOTk4LTAzLTI1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmMsIHYycGFydHkuYywgdmFjbV92YXJzLmMKOgoKICAgLSAodjJwYXJ0eS5jLCBtaWJJSS5jLCB2YWNtX3ZhcnMuYyk6IGRlY2xhaXIgcmVnaXN0cmF0aW9uIHZhcmlhYmxlcyBzdGF0aWNseS4KICAgCjE5OTgtMDMtMjUgMTI6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMKOgoKICAgLSAoTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogQ29kZSBmcm9tIERhdmlkIFQuIFBlcmtpbnM6CiAgICAgLSBpbnRlZ3JhdGVkIERhdmlkJ3MgY29kZSB0byBwcmludCBjb3VudGVyNjRzIGFzIGludGVnZXJzIHJhdGhlciB0aGFuIGhleC4KICAgCjE5OTgtMDMtMjUgMTA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBBZGQgYW4gJiB0byBhcnBjb20uYWNfZW5hZGRyIGluIG1lbXNldC4KICAgCjE5OTgtMDMtMjUgMTA6NDYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGxpbnV4LmgpOiBuZXcgZGVmaW5lOiBET05UX1VTRV9OTElTVC4KICAgCjE5OTgtMDMtMjUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBkLmMsIHNubXBfYXBpLmMpOiBTcGVsbGluZyBlcnJvcnMgZnJvbSB0aGUgQ01VIGNvZGUgZml4ZWQuCiAgIAoxOTk4LTAzLTI1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2ltcGx5IGRvbid0IGRlZmluZSBDQU5fVVNFX05MSVNUIG9uIGxpbnV4LgogICAKMTk5OC0wMy0yNSAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYwosIG1pYmdyb3VwL3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL3JlZ2lzdHJ5Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6CiAgICAgLSBmaXggdGhlIHJlZ2lzdHJ5IG1pYiB0byB1c2UgdGhlIG5ldyBtb2R1bGUgc3RydWN0dXJlLgogICAgIC0gY3JlYXRlIGEgd29ya2luZyBmaW5kX3N1YnRyZWUoKSBhbmQgZmluZF9zdWJ0cmVlX25leHQoKS4KICAgCjE5OTgtMDMtMjUgMDk6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBpbmNsdWRlIHRjcGlwLmggZm9yIGRpZ2l0YWwgdW5peC4KICAgCjE5OTgtMDMtMjIgMTg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jOgoKICAgLSAocGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIG1vdmUgc3lzL3R5cGVzLmggdXAgZm9yIHVsdHJpeC4KICAgCjE5OTgtMDMtMTggMTQ6MDkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNSApCiAgIAoxOTk4LTAzLTE4IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgbWFuL21pYl9hcGkuMywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsCiAgICAgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtYWluLmMsIG1pYl9hcGkuMywKICAgICBjb25maWcuaCk6CiAgICAgLSBTTk1QTElCUEFUSCAtPiBTTk1QU0hBUkVQQVRICiAgICAgLSBhIHJlYWwgU05NUExJQlBBVEgKICAgICAtIG1ha2UgdGhlIGFnZW50IHJlYWQgLmNvbmYgZmlsZXMgZnJvbSBTTk1QU0hBUkVQQVRIOlNOTVBMSUJQQVRILgogICAKMTk5OC0wMy0xOCAxMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMKLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAoZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAtIHdhaXQgZm9yIHBpZCBhZnRlciBnZXRfZXhlY19vdXRwdXQoKSB3aXRoIG5ldyB3YWl0X29uX2V4ZWMoKSBmdW5jdGlvbi4KICAgCjE5OTgtMDMtMTggMTM6MTAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmUtbnVtYmVyaW5nIG9mIHRoZSBuZXcgdGFibGUgbW9kdWxlcy4KICAgCjE5OTgtMDMtMTggMDk6MTcgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKFJFQURNRSk6IGNoYW5nZWQgT1YgcGF0aCdzIHRvIG5ld2VyIHJlbGVhc2UgcGF0aHMuCiAgIAoxOTk4LTAzLTExIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgY2hvbXAgbmV3IGxpbmUgb24gcmVhZF9jb25maWcgdXRpbHMuCiAgIAoxOTk4LTAzLTExIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZGVwZW5kIHVwZGF0ZS4KICAgCjE5OTgtMDMtMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG5hbWUgdXBkYXRlLgogICAKMTk5OC0wMy0xMSAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKTogYmV0dGVyIGRlYnVnZ2luZyBwcmludGZzCiAgIAoxOTk4LTAzLTExIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYwosIHNubXBfdmFycy5jLCBzbm1wZC5jLCBtaWJncm91cC9ob3N0X3Jlcy5oCiwgbWliZ3JvdXAvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hyX2RldmljZS5oLAogICBtaWJncm91cC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hyX2Rpc2suaCwKICAgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ocl9maWxlc3lzLmgsCiAgIG1pYmdyb3VwL2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaHJfbmV0d29yay5oLAogICBtaWJncm91cC9ocl9vdGhlci5jLCBtaWJncm91cC9ocl9wYXJ0aXRpb24uYywKICAgbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgsIG1pYmdyb3VwL2hyX3ByaW50LmMsCiAgIG1pYmdyb3VwL2hyX3ByaW50LmgsIG1pYmdyb3VwL2hyX3Byb2MuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5oLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgbWliZ3JvdXAvaHJfc3dpbnN0LmMsCiAgIG1pYmdyb3VwL2hyX3N3aW5zdC5oLCBtaWJncm91cC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ocl9zd3J1bi5oLCBtaWJncm91cC9ocl9zeXN0ZW0uYywKICAgbWliZ3JvdXAvaHJfc3lzdGVtLmgsIG1pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvaXAuYywgbWliZ3JvdXAvbWliSUkuYywgbWliZ3JvdXAvbWliSUkuaAosIG1pYmdyb3VwL3N5c09SVGFibGUuYywgbWliZ3JvdXAvdjJwYXJ0eS5jLAogICBtaWJncm91cC92MnBhcnR5LmgsIG1pYmdyb3VwL3ZhY21fdmFycy5jLAogICBtaWJncm91cC92YWNtX3ZhcnMuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgaG9zdF9yZXMuaCwgaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLCBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgICBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsIGhyX290aGVyLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5jLCBocl9wcmludC5oLCBocl9wcm9jLmMsCiAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaCwgaW50ZXJmYWNlcy5jLAogICAgIGlwLmMsIG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgdjJwYXJ0eS5jLCB2MnBhcnR5LmgsCiAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIG1hc3NpdmUgcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBmaXhlcy4KICAgICAtIGZpeGVkIHRoaW5ncyBicm9rZW4gYnkgdGhlIGZyZWVic2QgcGF0Y2ggKG9ubHkgc29tZSBJJ20gc3VyZSkuCiAgIAoxOTk4LTAzLTExIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpY21wLmMsCiAgICAgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBHYXJyZXR0CiAgICAgV29sbG1hbjoKICAgICAtIGZyZWVic2QgMyBzeXNjdGwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5OC0wMy0xMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oOgoKICAgLSAoaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaCk6IFBhdGNoIGZyb20KICAgICBDcmFpZyBCZXZpbnM6CiAgICAgLSBwb3J0IHRvIE9wZW5CU0QuCiAgIAoxOTk4LTAzLTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYwosIHN5c3RlbS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgLSBmaXggdGltZSB2YWx1ZXMgYW5kIG1vdmUgc3lzT1JMYXN0Q2hhbmdlZCB0byB0aGUgc3lzdGVtIGdyb3VwLgogICAKMTk5OC0wMy0xMSAwOTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgKLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmgsCiAgIHN5c09SVGFibGUuaCwgdm1zdGF0Lmg6CgogICAtIChocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLAogICAgIHNubXBfcmlwMi5oLCBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oKToKICAgICAtIGZpbmlzaCBjb252ZXJ0aW5nIGEgZmV3IG9mIHRoZSBmaWxlcyB0aGF0IE5pZWxzIG1pc3NlZC4KICAgCjE5OTgtMDMtMTEgMDg6MDYgIGhhcmRha2VyCgogICAqIG1pYnMvLmluZGV4OgoKICAgLSAobWlicy8uaW5kZXgpOiB1cGRhdGUuLi4KICAgCjE5OTgtMDMtMTEgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovKi8qLyopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGF1dG9fbmxpc3Qgb24gcHJlY2VlZGluZyBfIGFyY2hpdGVjdHVyZXMuCiAgICAgLSBDaGFuZ2UgKmFsbCogZGVmaW5lIHVzYWdlIHRvIG5ldyBTTk1QXyBhbmQgQVNOXyBwcmVmaXhlcy4KICAgICAtIGxlYXZlIG1pYiBhY2Nlc3Mgb3BlbiBpZiBubyBjb20yc2VjIHN0YXRlbWVudHMgd2VyZSBmb3VuZCBpbiBzbm1wZC5jb25mLgogICAKMTk5OC0wMy0wOSAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMKLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIC0gKG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgdjJwYXJ0eS5jLAogICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgLSBpbXBsZW1lbnQgc3lzT1JUYWJsZS4KICAgICAtIHJlZ2lzdGVyIG1pYnMgdW5kZXIgaXQuCiAgIAoxOTk4LTAzLTA2IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlIHNlY3VyaXR5IHR5cGUgcHJvbXB0cy4KICAgCjE5OTgtMDMtMDYgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogbW92ZSBzbm1wX2FwaS5oIHVwIGFib3ZlIHNubXBfaW1wbC5oLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gKG1pYklJLmgpOiBhZGQgdmFjbV92YXJzLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKToKICAgICAtIHJlbW92ZSBHTE9CQUwtU0VDVVJJVFkgY2hlY2tzLgogICAKMTk5OC0wMy0wNiAxNDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXB0YWJsZS4xLCBtaWJzLy5pbmRleAosIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgbWlicy9TTk1QLU1QRC1NSUIudHh0LCBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQsCiAgIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuYwosIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKLCBzbm1wbGliL3ZpZXcuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWwuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLAogICAgIGV2ZW50LmMsIGV4dGVuc2libGUuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIG1pYmluY2wuaCwKICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCByb3V0ZV93cml0ZS5jLAogICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwKICAgICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICAgIGlmLmMsIGluZXQuYywgcm91dGUuYywgc25tcGQuY29uZi41LmRlZiwgc25tcHRhYmxlLjEsIC5pbmRleCwKICAgICBNYWtlZmlsZS5pbiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwKICAgICBNYWtlZmlsZS5pbiwgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgIG1pYi5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgc25tcF9pbXBsLmgsIHN5c3RlbS5jLCB2YWNtLmMsIHZhY20uaCwKICAgICB2aWV3LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gSW1wbGVtZW50IHRoZSBTTk1QdjMgVmlldyBCYXNlZCBBY2Nlc3MgQ29udHJvbCBNb2RlbCAoUkZDIDIyNzUpLgogICAgIC0gaGVhZGVyIGZpeGVzLgogICAgIC0gYmV0dGVyIGhlYWRlci1maWxlICNkZWZpbmUgbmFtZXMgdG8gaW5jbHVkZSBTTk1QXywgQVNOXywgZXRjLiBwcmVmaXhlcy4KICAgCjE5OTgtMDMtMDQgMTU6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogZG9jdW1lbnRhdGlvbiByZXF1aXJlbWVudCBjaGFuZ2UuCiAgIAoxOTk4LTAyLTI1IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCByZWFkX2NvbmZpZyBwYXJzZXIncyBlbmQgb2YgbGluZSBwcm9ibGVtcy4KICAgCjE5OTgtMDItMjAgMTE6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgogICAKMTk5OC0wMi0yMCAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KICAgCjE5OTgtMDItMjAgMDk6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gZml4IGluY2x1ZGUgZmlsZSBkZXBlbmRhbmNpZXMgb24gaXJpeCB3aXRoIF9LRVJORUwgZGVmaW5lZC4KICAgCjE5OTgtMDItMTggMTY6NTEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNCApCiAgIAoxOTk4LTAyLTE4IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTAyLTE4IDE2OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogb3BlbmJzZCBkZWZpbmVzLgogICAKMTk5OC0wMi0xOCAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYwosIHZhcl9yb3V0ZS5jOgoKICAgLSAoYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsCiAgICAgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oKToKICAgICAtIHRyaWVkIHRvIG1lcmdlIHNvbWUgdGhpbmdzIGludG8gcy8qLmggZGVmaW5lcyBpbnN0ZWFkLiAgVGhlcmUgaXMgYQogICAgICAgbG90IHRvIGdvIHN0aWxsLgogICAKMTk5OC0wMi0xOCAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZW1vdmVkIHVubmVlZGVkIHN0dWZmLgogICAgIC0gYWRkZWQgb3BlbmJzZC4KICAgCjE5OTgtMDItMTggMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IHByb3RvdHlwaW5nIGNoZWNrcy4KICAgCjE5OTgtMDItMTggMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGNoZWNrcy4KICAgCjE5OTgtMDItMTggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMKLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBocl91dGlscy5jLCBpY21wLmMsIGludGVyZmFjZXMuYwosIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsCiAgIG1pYmluY2wuaCwgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywKICAgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYwosIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsCiAgIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCB2bXN0YXQuYzoKCiAgIC0gKGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsCiAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsIG1pYmluY2wuaCwKICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsCiAgICAgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLAogICAgIHZtc3RhdC5jKToKICAgICAtIG1hc3NpdmUgLVdhbGwgYW5kIC0tc3RyaWN0LXByb3RvdHlwZXMgY2hlY2tpbmcuCiAgICAgLSBiemVybyAtPiBtZW1zZXQuCiAgIAoxOTk4LTAyLTE4IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGV4YW1wbGUuYywgaHB1eC5jLAogICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsCiAgIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCiwgaXAuYywgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMKLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jCiwgdmFyX3JvdXRlLmMsIHdvbWJhdC5jOgoKICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgLSBhbGwgYmNvcHlzIC0+IG1lbWNweS4KICAgICAtIGluY2x1ZGUgYSBmZXcgZXh0cmEgaGVhZGVycyBmb3IgREVCVUdQIHN0YXRlbWVudHMuCiAgIAoxOTk4LTAyLTE4IDEzOjM0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCiAgIAoxOTk4LTAyLTE4IDEzOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBsb2FkYXZlLmgsIHByb2MuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSB0dXJuIHRoZXNlIG1pYnMgaW50byByZWFsIHRhYmxlcy4gIFJlcXVpcmVkIGNoYW5naW5nIHRoZSBtaWIgdGhvdWdoLgogICAKMTk5OC0wMi0xOCAxMTo0NiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZik6IGNoYW5nZSB0byBEQVRBRElSIGZyb20gTElCRElSLgogICAKMTk5OC0wMi0xOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogZGVmaW5lIExJQkRJUiBhbmQgREFUQURJUi4KICAgCjE5OTgtMDItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIGlyaXguaCk6CiAgICAgUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBwb3J0IHRvIGlyaXguCiAgIAoxOTk4LTAyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGZpeCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQgKG1pc3NpbmcgYSB2YXJpYWJsZSkuCiAgIAoxOTk4LTAyLTE4IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGNoZWNrIGZvciBzeXMvc3lzbXAuaC4KICAgCjE5OTgtMDItMTggMDg6MDUgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5oOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgdm1zdGF0LmMsIHZtc3RhdC5oLCB1Y2Rfc25tcC5oLAogICAgIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAtIGltcGxtZW50IGEgdm1zdGF0IG1pYiBncm91cCBvbiBsaW51eC4KICAgCjE5OTgtMDItMTcgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLmMsIHVkcC5jOgoKICAgLSAodGNwLmMsIHVkcC5jKToKICAgICAtIG5saXN0IHN5bWJvbCBuYW1lIGVycm9ycy4KICAgCjE5OTgtMDItMTcgMDk6NTMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMKOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMpOgogICAgIC0gdXNlIGFwcHJvcHJpYXRlIG1hbGxvY3MsIGFuZCBOVUxMIGluaXRpYWxpemF0aW9uIG9mIHBvaW50ZXJzLgogICAgIC0gbWFsbG9jIHRoZSBzeW1ib2wgcmF0aGVyIHRoYW4gdXNpbmcgYSBmaXhlZCBsZW5ndGguCiAgICAgLSBpbnNlcnQgZGVidWdnaW5nIGNvZGUuCiAgICAgLSBlbmFibGUgcHJpbnRpbmcgb2YgdGhlIG5saXN0IHRyZWUgaWYgVEVTVElORyBpcyBkZWZpbmVkLgogICAKMTk5OC0wMi0xNyAwOTo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIHVzZSBzbm1wX2lwYWRkciBpbnN0ZWFkIG9mIGlwYWRkciB0byBhdm9pZCBocHV4IGNvbmZsaWN0cy4KICAgCjE5OTgtMDItMTMgMDk6MDcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHR5cG86IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KICAgCjE5OTgtMDItMTEgMTY6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzZWQgZG9lc24ndCBsaWtlIFthLXpdKyB0eXBlIGV4cHJlc3Npb25zLgogICAKMTk5OC0wMi0xMSAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jOgoKICAgLSAoaHJfbmV0d29yay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHNvbGFyaXMgZml4ZXMuCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkb24ndCBpbmNsdWRlIGNvbmZpZy5oCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHBzIGF1eCBzaG91bGQgZGVmaW5lIGF1eCBub3QgLWF1eC4KICAgCjE5OTgtMDItMTEgMDk6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvaHJfcHJvYy5jLAogICBtaWJncm91cC9ocl9zdG9yYWdlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdWRwLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYXV0b19ubGlzdC5jOgoKICAgLSAoZ2VuZXJpYy5oLCBhdXRvX25saXN0LmMsIGF0LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBtZW1vcnkuYywKICAgICB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGZpeCBhbGwgbXkgdHlwb3MgOy0pLgogICAgIC0gY3JlYXRlIGF1dG9fbmxpc3RfdmFsdWUgdG8gcmV0dXJuIHRoZSBsb29rZWQtdXAgdmFsdWUuCiAgIAoxOTk4LTAyLTA5IDExOjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBpb2N0bHMuaC4KICAgCjE5OTgtMDItMDkgMTE6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6ICBpbmNsdWRlIGlvY3Rscy5oIGlmIGF2YWlsYWJsZS4KICAgCjE5OTgtMDItMDkgMTE6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpb2N0bHMuaAogICAKMTk5OC0wMi0wOSAxMToxNyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUzICkKICAgCjE5OTgtMDItMDkgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IHByb3RvdHlwZXMgb24gbXkgYnJva2VuIHRhYmxlIHdhbGtpbmcgcm91dGluZXMuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoYW5nZWQgLS13aXRoLXNoYXJlZC1saWJyYXJpZXMgdG8gLS1lbmFibGUtc2hhcmVkIHRvIG1hdGNoIG90aGVyIHBrZ3MuCiAgICAgLSBkaXNwbGF5IGFyZ3VtZW50cyBmb3VuZCBmb3IgLS1lbmFibGUtc2hhcmVkLgogICAKMTk5OC0wMi0wOSAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgLSAoYXV0b19ubGlzdC5oKTogcHJvdG90eXBlIHdyYXBwZXIuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jCiwgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywKICAgaW50ZXJmYWNlcy5jLCBpcC5jLCBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYwosIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChhdC5jLCBkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaHB1eC5jLCBocl9wcm9jLmMsCiAgICAgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYyk6CiAgICAgLSB1c2UgYXV0b19ubGlzdC4KICAgCjE5OTgtMDItMDYgMTc6MTAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oLCBhdXRvbmxpc3QuaCwga2VybmVsLmMsIHNubXBfdmFycy5jLCBpcC5jKToKICAgICAtIGNyZWF0ZWQgYSBuZXcgYXV0b19ubGlzdCBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGlwLmMuCiAgIAoxOTk4LTAyLTA2IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9kaXNrLmM6CgogICAtIChocl9kaXNrLmMpOiBjbG9zZSgpIGdvdCBjYXVnaHQgaW5zaWRlIGFuIGVsc2UgaXQgc2hvdWxkbid0IGhhdmUgZHVlCiAgICAgdG8gYW4gaWZkZWYgZXJyb3IuCiAgIAoxOTk4LTAyLTA2IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKTogcHJvdGVjdCBhZ2FpbnN0IG5saXN0LmgKICAgCjE5OTgtMDItMDIgMDg6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gSGF3a2luc29uOgogICAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIGZvciBzaGFyZWQgbGlicmFyeSBleHRlbnNpb24gdy9vIHNoYXJlZCBsaWJyYXJpZXMuCiAgIAoxOTk4LTAxLTMwIDE1OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYyk6IGZpeCBkZWZhdWx0IHBvcnQgZm9yIHNubXB0cmFwLgogICAKMTk5OC0wMS0zMCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogZmluaXNoIGxpbnV4IHByb2JsZW1zIGFuZCB1c2UgaWZfc3BlZWQuCiAgIAoxOTk4LTAxLTMwIDE0OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaWZfc3BlZWQuCiAgIAoxOTk4LTAxLTMwIDEzOjUwICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUpOiBkZWZpbmUgaWZuZXQgZm9yIGxpbnV4LgogICAKMTk5OC0wMS0zMCAxMzo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogSSBjYW4ndCByZWFsbHkgaGF2ZSBmb3Jnb3R0ZW4gU2ltb24ncyBuYW1lIGluIHRoZSBsaXN0CiAgICAgY291bGQgST8KICAgCjE5OTgtMDEtMzAgMTA6NTUgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMiApCiAgIAoxOTk4LTAxLTMwIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGRpc2suYywgaG9zdF9yZXMuaCwgcGFzcy5jLCByZWdpc3RyeS5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywKICAgICB2ZXJzaW9uaW5mby5jLCBzbm1wX2FwaS5oKToKICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGZvciBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjE5OTgtMDEtMzAgMTA6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2UgbW9kdWxlIGluZGV4aW5nIHRvIHVzZSBvaWQgaW5zdGVhZCBvZiBhIG51bWVyaWMuCiAgIAoxOTk4LTAxLTMwIDEwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5Lmg6CgogICAtIChyZWdpc3RyeS5jLCByZWdpc3RyeS5oKTogYmVnaW4gbXVuZ2luZyBmb3IgbmV3IGhpZXJhcmNoeS4KICAgCjE5OTgtMDEtMzAgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgpOgogICAgIC0gbWVyZ2UgRGF2ZSdzIGNvZGUgd2l0aCBtaW5lLiAgU3RpbGwgYSBmZXcgYnVncyB0byB3b3JrIHRocm91Z2guCiAgIAoxOTk4LTAxLTMwIDEwOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBwdXQgcGFzc19jb21hcHJlIGhlcmUuCiAgIAoxOTk4LTAxLTMwIDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgIC0gcmVwb3J0IGNhY2hlZCwgYnVmZmVyLCBhbmQgc2hhcmVkIHN0YXRpc3RpY3MgZm9yIGxpbnV4LgogICAKMTk5OC0wMS0zMCAwODo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHRlc3QgZm9yICdwcyBhdXgnIChyZWRoYXQgNS4wKS4KICAgCjE5OTgtMDEtMjMgMTY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgsCiAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbWFrZSB0aGUgbWliIHJlZ2lzdHJ5IHJlY29yZCBhbmQgZGlzcGxheSBhIG1pYiBtb2R1bGUgbmFtZSBhcyB3ZWxsLgogICAKMTk5OC0wMS0yMyAxNjoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsCiAgIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsCiAgIHVkcC5jLCB2ZXJzaW9uaW5mby5jOgoKICAgLSAoYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsIHVkcC5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAtICNpbmNsdWRlICJzbm1wX2FwaS5oIgogICAKMTk5OC0wMS0yMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oOgoKICAgLSAocmVnaXN0cnkuW2NoXSwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGUgYSBuZXcgdGFibGUgYXQgdWNkYXZpcy4xMDMgdG8gZGlzcGxheSByZWdpc3RlcmVkIG1pYnMuCiAgIAoxOTk4LTAxLTIzIDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2V4dGVuc2libGUuYywgcmVhZF9jb25maWcuYywKICAgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9wYXNzLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMpOgogICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbnM6CiAgICAgICAtIHJlZ2lzdGVyX3N1YnRyZWUoKQogICAgICAgLSByZWdpc3Rlcl9taWIoKQogICAgICAgLSB1bnJlZ2lzdGVyX21pYigpLgogICAgIC0gZ2V0IHJpZCBvZiByZWFkX2NvbmZpZyBzcGVjaWFsIHN0dWZmIGZvciBleHRlbnNpYmlsaXR5IGFuZCBwdXQgaXQKICAgICAgIGluIHRoZWlyIG93biBzdWJtb2R1bGVzIHdoaWNoIG5vdyBjYWxsIHJlZ2lzdGVyX21pYigpLgogICAKMTk5OC0wMS0yMyAwODozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb24ndCBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgaW4gbGludXgncyBGSUxFX1RPX0JVRiBtYWNyby4KICAgCjE5OTgtMDEtMjEgMjI6MDUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjcmVhdGUgbS8gYW5kIHMvIGRpcmVjdG9yaWVzIGFuZCB1c2UgdGhlbSBmb3Igc3VwcGxlbWVudGFsIGNvbmZpZwogICAgICAgaW5jbHVkZSBmaWxlcyBiYXNlZCBvbiB0aGUgY29uZmlnLmd1ZXNzIG91dHB1dC4KICAgCjE5OTgtMDEtMjEgMTc6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgLSBEbyBhIGJldHRlciB2ZXJzaW9uIG9mIHNobGliIHN1cHBvcnQuICBTaG91bGQgYmUgdXNlYWJsZSBub3cgYXQgbGVhc3QuCiAgIAoxOTk4LTAxLTIxIDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jCiwgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICBwYXNzLmMsIHByb2MuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsCiAgICAgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICB2ZXJzaW9uaW5mby5jKToKICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KICAgCjE5OTgtMDEtMjEgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KICAgCjE5OTgtMDEtMjEgMTE6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBiZWdpbiBzdXBwb3J0IGZvciBjcmVhdGluZyBhbmQgdXNpbmcgc2hhcmVkIGxpYnJhcmllcy4KICAgICAtIGFsbCBNYWtlZmlsZXMgbm93IGluY2x1ZGUgYSBNYWtlZmlsZS50b3AgZm9yIGVhc2llciBmdXR1cmUgZ2xvYmFsIGNoYW5nZXMuCiAgIAoxOTk4LTAxLTIxIDExOjA4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IHVwZGF0ZS4KICAgCjE5OTgtMDEtMTYgMDk6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBTaGVzaGFkcmkgWWFnYXRpOgogICAgIC0gc2lnbmFsIGEgdHJhcCAoMikgd2hlbiB0aGUgYWdlbnQgaXMgc2h1dCBkb3duLgogICAKMTk5OC0wMS0xMiAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGluY3JlYXNlIGJ1ZmZlciBzaXplIHRvIGluY3JlYXNlIG1heCBpbnRlcmZhY2VzIHJlcG9ydGVkIG9uIFNvbGFyaXMuCiAgIAoxOTk4LTAxLTEyIDA5OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogVW5kaWQgYW5vbi1jaGlsZHJlbiBjaGFuZ2UuCiAgIAoxOTk4LTAxLTEyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwKICAgc25tcF9pbXBsLmgsIHN5c3RlbS5oOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwgc25tcF9pbXBsLmgsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscwogICAgIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIGNoYW5nZXMgYW5kIGJvb2xlYW4gY2hlY2sgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTAxLTEyIDA5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAtIHNubXBfcGVycm9yIHVzYWdlLgogICAKMTk5OC0wMS0xMiAwOTo0MCAgaGFyZGFrZXIKCiAgICogRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbjoKCiAgIC0gKEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gZml4IHBhdGhzIGZyb20gcmVjZW50IGNoYW5nZXMuCiAgIAoxOTk4LTAxLTEyIDA5OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jCiwgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBwcm9jLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGljbXAuYywKICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggaGVhZGVycyBmb3IgRnJlZUJTRCBhbmQgTmV0QlNELgogICAKMTk5OC0wMS0xMiAwOToxOSAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIHNubXB3YWxrLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHJlbW92ZSB1bnVzZWQgaGVhZGVycy4KICAgICAtIHNubXBfcGVycm9yIGNoYW5nZXMuCiAgIAoxOTk4LTAxLTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBsaW5rIGRpcmVjdGx5IHRvIGxpYi4KICAgCjE5OTgtMDEtMTIgMDk6MTggIGhhcmRha2VyCgogICAqIG1hbi86IG1pYl9hcGkuMywgc25tcF9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMywgc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2MgdXBkYXRlIHRvIHJlZmxlY3QgbW92ZWQgaGVhZGVycy4KICAgCjE5OTgtMDEtMTIgMDk6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgZml4IGFub25fY2hpbGRyZW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzLgogICAKMTk5OC0wMS0wNSAxNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHN3YXAgYXJncyB0byBtZXJnZV9hbm9uX2NoaWxkcmVuKCkuCiAgIAoxOTk4LTAxLTA1IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggYXNuMV9idWlsZF9vYmppZC4KICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogc25tcHYzCiAgIAoxOTk4LTAxLTA1IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHB1dCBpbml0X21pYiBiYWNrIGluIHBsYWNlIChvcHBzKS4KICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogYWRkIGEgZmluZF9tb2R1bGUoKSByb3V0aW5lLgogICAKMTk5OC0wMS0wNSAxMzoyNyAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IGNoYW5nZSAiYWxsIiB0byAiQUxMIi4KICAgCjE5OTctMTItMzAgMTc6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBDcmVhdGUgYSBncmFwaGluZyB3aWRnZXQuCiAgIAoxOTk3LTEyLTMwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKToKICAgICAtIG5ldyBjb21tYW5kOiB0YWJsZSB0byBkaXNwbGF5IHNubXB0YWJsZXMgYXMgYSB0YWJsZS4KICAgICAtIG1pc2MuLi4KICAgCjE5OTctMTItMjkgMDk6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBGaXJzdCBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTctMTItMjMgMTY6MzAgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMSApCiAgIAoxOTk3LTEyLTIzIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQgaWYgZGVidWdnaW5nCiAgICAgaXMgb24gb3Igb2ZmLgogICAKMTk5Ny0xMi0yMyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oOgoKICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0CiAgICAgaWYgZGVidWdnaW5nIGlzIG9uIG9yIG9mZi4KICAgCjE5OTctMTItMjMgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvYXQuaCwKICAgbWliZ3JvdXAvaG9zdF9yZXMuaCwgbWliZ3JvdXAvaWNtcC5oLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2ludGVyZmFjZXMuaCwKICAgbWliZ3JvdXAvaXAuaCwgbWliZ3JvdXAvdGNwLmMsIG1pYmdyb3VwL3RjcC5oLAogICBtaWJncm91cC91ZHAuYywgbWliZ3JvdXAvdWRwLmgsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfdmFycy5jOgoKICAgLSAoYXQuYywgYXQuaCwgaG9zdF9yZXMuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgICB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaCwgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgIC0gY2xlYW4gdXAgcmVxdWlyZWQgaGVhZGVycyBmb3IgbGludXguCiAgIAoxOTk3LTEyLTIzIDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2ljbXAuYywKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9zbm1wX21pYi5jLCBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvdGNwLmMKLCBtaWJncm91cC91ZHAuYywgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBicmVhayB1cCBjb21tb25faGVhZGVyLmguCiAgIAoxOTk3LTEyLTIzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjg6CgogICAtIChzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjgpOiBkZWJ1Z2dpbmcgZmxhZyBhZGRpdGlvbnMuCiAgIAoxOTk3LTEyLTIzIDE0OjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ocHV4LmMsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYwosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX29zcGYuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoKik6IFR1cm4gYWxsIGRlYnVnZ2luZyByb3V0aW5lcyBpbnRvIGxpYnJhcnkgY2FsbHMgdGhhdCBjYW4gYmUKICAgICB0dXJuZWQgb24gYW5kIG9mZiBhdCBydW4gdGltZS4KICAgICAtIERFQlVHUCgpIGlzIG5vdyBhIHR5cGljYWwgcHJpbnRmIHN0eWxlIGZ1bmN0aW9uIGFuZCBpcyB1c2VkIGV2ZXJ5d2hlcmUuCiAgICAgLSB2b2lkIHNubXBfc2V0X2RvX2RlYnVnZ2luZyhpbnQpLgogICAgIC0gaW50IHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgogICAKMTk5Ny0xMi0yMyAxNDo0MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkIFRlZCBSdWxlIHRvIGNvZGVycyBsaXN0LgogICAKMTk5Ny0xMi0yMyAxMjo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKToKICAgICAtIENoYW5nZSAtZiBmbGFnIHRvIC1sIGFuZCBtYWtlIC1mIG5vLWZvcmsuCiAgICAgLSBmaXggcGF0Y2ggd2hpY2ggbXVuZ2VkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYm90aCAtUCBhbmQgLXMgc2ltdWx0YW5lb3VzbHkuCiAgIAoxOTk3LTEyLTIzIDEyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gVXNlIHN5c2xvZyBvcHRpb24gTE9HX1BJRCBvbiBzdGFydHVwLgogICAgIC0gZm9yayBpZiBzeXNsb2cgZW5hYmxlZC4KICAgICAtIEVuYWJsZSBsb2dnaW5nIHRvIG90aGVyIHN5c2xvZyBmYWNpbGl0aWVzLgogICAgIC0gcHJpbnQgYWxsIHRyYXAgZGF0YSB0byBhIHNpbmdsZSBzeXNsb2cgbGluZS4KICAgCjE5OTctMTItMjMgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6ICNpZmRlZidlZCBvdXQgdW51c2VkIHdyaXRlSFAgZnVuY3Rpb24uCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9lcnJvcm1pYi5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5jLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9sb2FkYXZlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBjb21tb25faGVhZGVyLmg6CgogICAtIChtaWJncm91cC8qLmMsIGNvbW1vbl9oZWFkZXIuaCk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTozNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4pOiBCU0RJIGRlZmluaXRpb24gZml4ZXMuCiAgIAoxOTk3LTEyLTIzIDExOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBTb2xhcmlzIHNwZWNpZmljIGZpeGVzLgogICAKMTk5Ny0xMi0yMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBDb3JyZWN0IGEgbm9uLWNhc3RlZCBtYWxsb2MuCiAgIAoxOTk3LTEyLTE1IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBhY2NvbmZpZy5oKToKICAgICAtIFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgogICAKMTk5Ny0xMi0xNSAxNTowNyAgaGFyZGFrZXIKCiAgICogb3YvOiBVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbjoKCiAgIC0gKFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluKTogUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCiAgIAoxOTk3LTEyLTE1IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5jLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9pY21wLmMsIG1pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9sb2FkYXZlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC9yb3V0ZV93cml0ZS5jLCBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdWRwLmMKLCBtaWJncm91cC92YXJfcm91dGUuYywgbWliZ3JvdXAvd29tYmF0LmMsCiAgIGNvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGF0LmMsIGV4YW1wbGUuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMsIGNvbW1vbl9oZWFkZXIuaCk6CiAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbiB0byBpbXByb3ZlIGlyaXggNi4yIHN1cHBvcnQuCiAgIAoxOTk3LTEyLTE1IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oOgoKICAgLSAoaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5LmgpOgogICAgIC0gdXNlIGNvbmZpZ19hZGRfbWliKCkuCiAgIAoxOTk3LTEyLTE1IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbmV3IG1hY3JvIHRvIGNoYW5nZSBkZWZhdWx0IE1JQlMgd2hlbiBtb2R1bGVzIGFyZSBjb21waWxlZDoKICAgICAgIGNvbmZpZ19hZGRfbWliKCkuCiAgIAoxOTk3LTEyLTA1IDE0OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBpbnN0ZWFkIG9mIGVycm9yIGZvciBjb25maWdfcmVxdWlyZSBtYWNybydzLgogICAKMTk5Ny0xMi0wNSAxMTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IHN1cHBvcnQgcmFuZG9tIGFjY2VzcyByZXF1ZXN0cyBvbiBhbGwgYXBwcyB2aWEgLVIgc3dpdGNoLgogICAKMTk5Ny0xMi0wNSAwODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtYWtlIHRyYXAgdmFyaWFibGVzIGxvbmcncyBub3QgaW50cyBmb3IgNjRiaXQgbWFjaGluZXMgdG8gbWF0Y2gKICAgICAgIGFzbl9idWlsZF9pbnQgZnVuY3Rpb25zLgogICAKMTk5Ny0xMi0wMSAxMjo0NCAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMi0wMSAxMjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBfYXBpLjMKLCBtaWJzL1JGQzEyNzEtTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMi0wMSAxMjozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBJTlNUQUxMLCBORVdTLCBSRUFETUUsCiAgIGFjY29uZmlnLmgsIGJ1Zy1yZXBvcnQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMS0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBwYXJ0eV92YXJzLmMgKEV4dC0zLTMtcGF0Y2hlcy4xKSwgcGFydHlfdmFycy5jCjoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IHVzZSBzdHJpbmdzLmggZGVmaW5lIG5vdCBzdHJpbmcuaC4KICAgCjE5OTctMTEtMTQgMTI6MzYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMgKQogICAKMTk5Ny0xMS0xNCAxMjozNiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdmVyc2lvbiB1cGRhdGUuCiAgIAoxOTk3LTExLTE0IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRToKCiAgIC0gKEZBUSwgTkVXUywgUkVBRE1FKTogbGFzdCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCiAgIAoxOTk3LTExLTE0IDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuYzoKCiAgIC0gKHdvbWJhdC5jKTogcXVpY2sgZG9jIGNoYW5nZS4KICAgCjE5OTctMTEtMTQgMDg6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGNvZGVyIGxpc3QgdXBkYXRlLgogICAKMTk5Ny0xMS0xNCAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0LmM6CgogICAtICh3b21iYXQuYyk6IGNvZGUgY29tbWVudHMgZnJvbSBBbGFuIEJhdGllLgogICAKMTk5Ny0xMS0xMiAyMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC92YXJfcm91dGUuYywgcmVhZF9jb25maWcuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogU1REQyB0eXBvcy4KICAgCjE5OTctMTEtMTIgMjA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IGZpeCBxc29ydCBwYXJhbXMgZm9yIFNUREMuCiAgIAoxOTk3LTExLTEyIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgIC0gRml4ZXMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMjA6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtICgpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAtIEZpeGVzIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDIwOjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBmdW5jdGlvbiBjaGFuZ2VzLgogICAKMTk5Ny0xMS0xMiAxNjowNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMSApCiAgIAoxOTk3LTExLTEyIDE1OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTExLTEyIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYzoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDE1OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoc3lzdGVtLmgpOiBEb24ndCBpbmNsdWRlIGNvbmZpZy5oIQogICAKMTk5Ny0xMS0xMiAxMTo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkZWQgc25tcHRhYmxlLgogICAKMTk5Ny0xMS0xMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBkb2MgdXBkYXRlLgogICAKMTk5Ny0xMS0xMiAxMDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmM6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHBhcnNlciBpbXByb3ZlbWVudHMuCiAgICAgLSBwYXJzZXIgZGlyZWN0b3J5IGNhY2hpbmcuCiAgICAgLSBzYXZlX2Rlc2NyaXB0aW9ucy9taWJfd2FybmluZ3Mgc2V0IGZ1bmN0aW9ucy4KICAgCjE5OTctMTEtMTIgMTA6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkZWx0YS4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXBkLjg6CgogICAtIChtYW4vc25tcGRlbHRhLjEsc25tcHRhYmxlLjEsc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMuCiAgIAoxOTk3LTExLTEyIDEwOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdjJjIHN1cHBvcnQgYW5kIGFyZ3VtZW50IHBhcnNpbmcgY2hhbmdlcy4KICAgCjE5OTctMTEtMTIgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jCiwgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6CgogICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB2YXJpb3VzIChyZW1vdmUgdW5uZWVkZWQgdmFycywgZXRjKS4KICAgICAtIGFkZCBzbm1wdGFibGUuCiAgICAgLSBtYWtlIHNubXB0cmFwZCBtdWx0aS1saW5ndWFsLgogICAKMTk5Ny0xMS0xMiAxMDoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KICAgCjE5OTctMTEtMTIgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYzoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBpZiBhdmFpbGFibGUuCiAgIAoxOTk3LTExLTEyIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc29sYXJpcyBwYXRjaGVzLgogICAKMTk5Ny0xMS0xMiAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCiAgIAoxOTk3LTExLTEyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBORVdTLCBUT0RPOgoKICAgLSAoTkVXUywgVE9ETyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2MgdXBkYXRlLgogICAKMTk5Ny0xMS0xMiAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIGZvciBsaW51eC9ocHV4MTAgcHJvYmxlbXMuCiAgIAoxOTk3LTExLTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0xMS0xMiAwOToxNyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0xMS0xMiAwODoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIEZyZWUgYSBwZHUgaW4gYSBzcG90IHRoYXQgc2hvdWxkIHRlY2huaWNhbGx5IG5ldmVyIGJlIG5lZWRlZCwgYnV0CiAgICAgICBpcyBuaWNlIGZvciBwZW9wbGUgcmVhZGluZyB0aGUgY29kZS4KICAgCjE5OTctMTEtMTIgMDc6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBXMzIgc3BlY2lmaWMgZml4ZXMuCiAgIAoxOTk3LTExLTA3IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTEwICkKICAgCjE5OTctMTEtMDcgMTY6MzcgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRSwgVE9ETzoKCiAgIC0gKE5FV1MsIFJFQURNRSwgVE9ETyk6IERvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTctMTEtMDcgMTY6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHdhdGNoIG91dCBmb3IgL3Vzci91Y2IvY2Mgb24gc29sYXJpcyBhbmQgZG9uJ3QgdXNlIGl0LgogICAKMTk5Ny0xMS0wNyAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcGdldG5leHQuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgd2luMzIvY29uZmlnLmgsIHdpbjMyL3dpbjMyLm9wdAosIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGcsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLAogICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAosIHdpbjMyL3NubXBzZXQvc25tcHNldC5wbGcsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsucGxnCjoKCiAgIC0gKCopOiBtZXJnZSB0byBtYWluIGJyYW5jaDogIHBhdGNoZXMgZnJvbSBKb2UgTWFyem90LgogICAKMTk5Ny0xMS0wNyAxMzozOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6IHN0b3Agb24gbm8gcmVzcG9uc2UgZnJvbSBob3N0LgogICAKMTk5Ny0xMS0wNyAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jOgoKICAgLSAoaHJfbmV0d29yay5jKTogZG9uJ3QgcGFzcyBjaGFyICoqIHRvIGludGVyZmFjZXNfc2Nhbl9uZXh0KCkuCiAgIAoxOTk3LTExLTA3IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFVTSU5HLipfTUlCX01PRFVMRSAtPiBVU0lORy4qX01PRFVMRS4KICAgCjE5OTctMTEtMDcgMTI6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHBhdGNoIGZyb20gTmllbHMgZm9yIHNvbGFyaXMgPjIuNi4KICAgCjE5OTctMTEtMDcgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogZG9uJ3QgcHJpbnQgYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgdW5kZXIgbGludXguCiAgIAoxOTk3LTExLTA3IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGludXgvaGRyZWcuaAogICAKMTk5Ny0xMS0wNSAxNToyOSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU5ICkKICAgCjE5OTctMTEtMDUgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBwcm90ZWN0IHZtbWV0ZXIuaCBmcm9tIG11bHRpcGxlIGluY2x1c2lvbnMgb24gbmV0YnNkLgogICAKMTk5Ny0xMS0wNSAxMzo1OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIHNubXBsaWIvbWliLmM6CgogICAtIChNYWtlZmlsZS5pbiwga2VybmVsX3N1bm9zNS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBvY3RldCBjb3VudGVycyBmb3Igc29sYXJpcy4KICAgICAtIE1ha2VmaWxlLmluIHBhdGNoZXMuCiAgIAoxOTk3LTExLTA1IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKToKICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIgogICAKMTk5Ny0xMS0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL3Byb2MuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgZGlzay5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYyk6CiAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIuCiAgIAoxOTk3LTExLTA1IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGNvbW1vbl9oZWFkZXIuaCwgbWliZ3JvdXAvaHJfZGlzay5jLAogICBtaWJncm91cC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hyX3V0aWxzLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoKik6IG1lcmdlIGZyb20gRGF2ZSdzIHByZTYgcGF0Y2hlcy4KICAgCjE5OTctMTEtMDUgMTM6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogcHV0IHNubXB0cmFwZCBpbiBAc2JpbmRpckAKICAgCjE5OTctMTEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIENoZWNrIGZvciAkcHJlZml4IGJlaW5nIGRlZmluZWQgYXMgTk9ORSBmb3Igb3RoZXIgdmFycy4KICAgCjE5OTctMTEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtICNpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgICAtIFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRSAtPiBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUKICAgCjE5OTctMTAtMjkgMTQ6MDAgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOCApCiAgIAoxOTk3LTEwLTI5IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IGRvbid0IGluY2x1ZGUgY29uZmlnLmggdHdpY2UuCiAgIAoxOTk3LTEwLTI5IDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgYW5kIGluY2x1ZGUgc3lzL2NkZWZzLmggaW4gY29uZmlnLmguCiAgIAoxOTk3LTEwLTI5IDEyOjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwKICAgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvcmVhZF9jb25maWcuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgYWdlbnQvdmlld19wYXJzZS5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5oLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5oLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgsIGFnZW50L21pYmdyb3VwL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaAosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXguaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgKLCBhZ2VudC9taWJncm91cC93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmgKLCBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmgKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKCouKi4qKTogX19VQ0RfUCAtPiBfX1AsIGFuZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBsb29rIGZvciBpdC4KICAgCjE5OTctMTAtMjkgMTI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmgpOiBTVEFUVVNfS1dfT1BUSU9OQUwgLT4gU1RBVFVTX09QVElPTkFMCiAgIAoxOTk3LTEwLTI5IDExOjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZGVsdGEuMQosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAoYWNjb25maWcuaCwgYXNuMS5jLCBtaWIuW2NoXSwgcGFyc2UuaCxhcHBzLyosZXJyb3JtaWIuYyxsb2FkYXZlLmMsCiAgICAgIGV4dGVuc2libGUuYywgZGlzay5jLCBzbm1wZGVsdGEqKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRoZSBub3cgd2VsbGtub3duIE5ldEJTRCBmaXgsCiAgICAgLSBTdW5PUzQgY2MgZG9lc24ndCBsaWtlIHVuc2lnbmVkIGxpdGVyYWxzIG9yIHN0cnRvdWwsCiAgICAgLSBhZGRlZCBhIGNoYXIgdmVyc2lvbiBvZiAiOyIsCiAgICAgLSBhZGRlZCBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBldGMKICAgICAtIGNoYW5nZWQgdGhlIGFwcHMgdG8gcHJpbnQgYWxsIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyciwKICAgICAtIGNvbXBsZXRlZCB0aGUgYWNjZXNzIGFuZCBzdGF0dXMgdmFsdWVzIGluIHNubXBsaWIvcGFyc2UuaAogICAgIC0gYWRkZWQgYSByb3VnaGx5IHBhdGNoZWQgdmVyc2lvbiBvZiBzbm1wZGVsdGEuCiAgIAoxOTk3LTEwLTI5IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogb3BwcywgZm9yZ290IHRvIHB1dCBpbiBAZXhlY19wYXRoQC4KICAgCjE5OTctMTAtMjkgMTA6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluCiwgb3YvTWFrZWZpbGUuaW46CgogICAtIChjb25maWcqLCAqL01ha2VmaWxlLmluKToKICAgICAtIE1vdmUgc25tcGxpYnBhdGggdG8gQGRhdGFkaXJAIHdoaWNoIGRlZmF1bHRzIHRvIC91c3IvbG9jYWwvc2hhcmUvc25tcC4KICAgCjE5OTctMTAtMjkgMTA6MjUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIG1hbi9taWJfYXBpLjMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtaWJzL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4sIG1hbi8qKToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBwYXRocy4KICAgICAgIC0gKG1vZGlmaWVkIHRvIHBvaW50IGFnZW50IHRvIHNiaW5kaXIgaW5zdGVhZCBvZiBldGNkaXIpLgogICAKMTk5Ny0xMC0yOSAxMDowNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogcmVtb3ZlIHNwYWNlIGJlZm9yZSAlIHNpZ24uCiAgIAoxOTk3LTEwLTI5IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBmaXggcG9pbnRlciBwcm9ibGVtcyBmcm9tIG9sZCByZWFkX2NvbmZpZyBmb3JtIHRvIG5ldy4KICAgCjE5OTctMTAtMjkgMDk6NTcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoZGlzay5bY2hdLCBzdHJ1Y3QuaCwgc2Vkc2NyaXB0LmluLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gYWxsb3cgYSBtaW5pbXVtIHBlcmNlbnRhZ2Ugb24gZGlzayBzcGFjZS4KICAgICAgIC0gKHdhcyBvcmlnaW5hbGx5IGEgbWF4aW11bSwgYnV0IEkgY2hhbmdlZCBpdCB0byBtaW5pbXVtIGluc3RlYWQpLgogICAKMTk5Ny0xMC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHN5cy9zZWxlY3QuaCBmb3IgYWl4LgogICAKMTk5Ny0xMC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IHJlbW92ZSB1bnVzZWQgbmxpc3Qgc3RydWN0LgogICAKMTk5Ny0xMC0yOCAxNzoxMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU3ICkKICAgCjE5OTctMTAtMjggMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IFBhdGNoIGZyb20gTm9idW9fT2thYmVAeW9rb2dhd2EuY28uanA6CiAgICAgLSBmaXggdW53cmFwcGVkIGZvcGVuKCkgYnkgYWRkaW5nIHJldHVybiBOVUxMIGNoZWNrLgogICAKMTk5Ny0xMC0yOCAxNzowOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KTogZGVmaW5lIGJzZGkgYWdlbnQgdHlwZS4KICAgCjE5OTctMTAtMjggMTU6NDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtIChjb25maWcqLCByb3V0ZV93cml0ZS5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSBmaXggcnRlbnRyeSBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgcHJvYmFibHkgbmV2ZXIuCiAgIAoxOTk3LTEwLTI4IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQva2VybmVsLmgsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgKLCBhZ2VudC92YXJfc3RydWN0LmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hwdXguaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgKLCBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuaAosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmgKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKCouKi4qLiopOiByZW5hbWUgbWFjcm8gX19QIC0+IF9fVUNEX1AgdG8gcmVkdWNlIHN0dXBpZCBjb25mbGljdHMuCiAgIAoxOTk3LTEwLTI4IDE0OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgY2hlY2tzIGZvciB0aGUgKmJzZCBncm91cHMuCiAgIAoxOTk3LTEwLTI4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGFjY29uZmlnLmgsIG1pYi5jKTogdXNlICc7J3MgZm9yIERPUyBlbnYgcGF0aHMuCiAgIAoxOTk3LTEwLTI4IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zeXN0ZW0uYwosIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChhY2NvbmZpZy5oLCBzeXN0ZW0uW2NoXSwgc25tcC5jKTogbW92ZSBzdHJkdXAgZGVmIHRvIHN5c3RlbS5bY2hdLgogICAKMTk5Ny0xMC0yNyAxODozMSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU2ICkKICAgCjE5OTctMTAtMjcgMTg6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUgbWFjcm8gdG8gYWN0dWFsbHkgd29yay4KICAgCjE5OTctMTAtMjcgMTg6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBsaWIvKi5jKTogdXNlIHNubXBfc2V0X2RldGFpbCB0byBoYW5kbGUgbWFsbG9jL2ZyZWUgb2Ygc25tcF9kZXRhaWwuCiAgIAoxOTk3LTEwLTI3IDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogcmVtb3ZlIGdvdHJvb3QgdmFyLgogICAKMTk5Ny0xMC0yNyAxODowNSAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wL2xpYnNubXAucGxnLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5kc3AKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5kc3AKLCBzbm1wc2V0L3NubXBzZXQucGxnLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwCiwgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAod2luMzIpOiAgYWRkIGZpbGVzIG9uIG1haW4gYnJhbmNoLgogICAKMTk5Ny0xMC0yNyAxODowMiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCB3aW4zMi5vcHQ6CgogICB3aW4zMiBmaWxlcwogICAKMTk5Ny0xMC0yNyAxNzo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IG1lcmdlIGJ1Z3M6IGVsc2UgY2hlY2sgYWdhaW5zdCBwZHUgY29tbWFuZCB0eXBlLgogICAKMTk5Ny0xMC0yNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogbWVyZ2UgYnVncy4gIE1pc3NpbmcgYnJhY2tldHMuCiAgIAoxOTk3LTEwLTI3IDE3OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtaXNzaW5nIGEgZWxzZSBzdGF0ZW1lbnQgKHNpZ2gpLgogICAKMTk5Ny0xMC0yNyAxNzo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kZXZpY2UuaCwgaHJfZGlzay5oLCBocl9maWxlc3lzLmgKLCBocl9uZXR3b3JrLmgsIGhyX3ByaW50LmgsIGhyX3Byb2MuaCwKICAgaHJfc3dpbnN0LmgsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvaHJfKi5oKTogcHJvcGVyIGluaXRfIHByb3RvdHlwZXMuCiAgIAoxOTk3LTEwLTI3IDE3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogdHdvIG1vZHVsZXMgZm9yIGV4dGVuc2libGUgY291bnQuCiAgIAoxOTk3LTEwLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFpcmF0aW9uLgogICAKMTk5Ny0xMC0yNyAxNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMKLCBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLAogICBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMKLCBocl9zeXN0ZW0uYzoKCiAgIC0gKGhyXyouYyk6IEVSUk9SIC0+IEVSUk9SX01TRy4KICAgCjE5OTctMTAtMjcgMTY6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuW2NoXSk6IGZpeCBwZXJyb3IgbG9zc2VzIGZyb20gbWVyZ2UuCiAgIAoxOTk3LTEwLTI3IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHNubXBsaWIvdmlldy5jOgoKICAgLSAoKik6IG1lcmdlIG9mIFczMiBwb3J0IGFuZCBtYWluIHZlcnNpb24gYnJhbmNoLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgZmlsZSBzbm1wd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZmlsZSBzbm1wd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIGZpbGUgc25tcHRyYW5zbGF0ZS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZzoKCiAgIGZpbGUgc25tcHRyYW5zbGF0ZS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcDoKCiAgIGZpbGUgc25tcHN0YXR1cy5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZzoKCiAgIGZpbGUgc25tcHN0YXR1cy5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHNldC9zbm1wc2V0LnBsZzoKCiAgIGZpbGUgc25tcHNldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcDoKCiAgIGZpbGUgc25tcHNldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwOgoKICAgZmlsZSBzbm1wZ2V0bmV4dC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQucGxnOgoKICAgZmlsZSBzbm1wZ2V0bmV4dC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcDoKCiAgIGZpbGUgc25tcGdldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZzoKCiAgIGZpbGUgc25tcGdldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGc6CgogICBmaWxlIHNubXBidWxrd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3A6CgogICBmaWxlIHNubXBidWxrd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBmaWxlIGxpYnNubXAuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIGZpbGUgbGlic25tcF9kbGwuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZzoKCiAgIGZpbGUgbGlic25tcF9kbGwucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBmaWxlIGxpYnNubXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGc6CgogICBmaWxlIGxpYnNubXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIGZpbGUgd2luMzIuZHN3IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgZmlsZSBjb25maWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBmaWxlIHdpbjMyLm9wdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvKi5oKToKICAgICAtIG5ldyBjb25maWcgbWFjcm86ICBjb25maWdfYXJjaF9yZXF1aXJlKGFyY2gsIG1vZHVsZSkuCiAgICAgLSBtb3ZlZCBhcmNoIGRlcGVuZGFudCBtb2R1bGVzIChtZW1vcnksIGhwdXgsIGtlcm5lbF9zdW5vczUpIGxvYWRzCiAgICAgICBmcm9tIHRoZSBjb25maWd1cmUgaW50byB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgIC0gKGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gdHlwZWNhc3Qga2xvb2t1cCBjYWxscyBmb3IgZnJlZWJzZDIuCiAgIAoxOTk3LTEwLTIyIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCwgcmVhZF9jb25maWcuYywgZGlzay5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgLSBUeXBvJ3MgZml4ZWQgYnkgTmllbHMuCiAgIAoxOTk3LTEwLTIxIDEyOjM2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTUgKQogICAKMTk5Ny0xMC0yMSAxMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGRpZCBhIG1ha2UgZGVwZW5kLgogICAKMTk5Ny0xMC0yMSAxMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQuLgogICAKMTk5Ny0xMC0yMSAxMjozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQgc2V0dXAuCiAgIAoxOTk3LTEwLTIxIDEyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCiwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvZGlzay5oLCBtaWJncm91cC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuaCwgbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBtaWJncm91cC9wYXNzLmgsIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oCiwgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAoYWdlbnQvcmVhZF9jb25maWcuW2NoXSwgc25tcGQuYywgc25tcF92YXJzLmMsIG1pYmdyb3VwLyopOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcuW2NoXSB1cCBhIGxldmVsIHRvIGFsd2F5cyBiZSBjb21waWxlZCBpbi4KICAgCjE5OTctMTAtMjEgMTE6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNCApCiAgIAoxOTk3LTEwLTIxIDExOjAxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGJlZ2lubmluZ3Mgb2YgTkVXUyB1cGRhdGVzLgogICAKMTk5Ny0xMC0yMSAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIG1lbW9yeS5jCjoKCiAgIC0gKGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMpOiBjbG9zZSBvcGVuIGZpbGVzIG9uIGxpbnV4LgogICAKMTk5Ny0xMC0yMSAxMDo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWxsb3cgLXYgMmggYW5kIDJwIGZvciBwYXJ0eSBjb2RlLgogICAKMTk5Ny0xMC0yMSAxMDoxNSAgaGFyZGFrZXIKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KICAgCjE5OTctMTAtMjAgMTk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkZWZpbmUgYXQgbGVhc3QgYmxhbmsgZnVuYyBubGlzdF9pbml0KCkgb24gbGludXguCiAgIAoxOTk3LTEwLTIwIDE5OjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIGxpbnV4J3MgT1MgdHlwZS4KICAgCjE5OTctMTAtMjAgMTg6MDEgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCBhZ2VudC9taWJncm91cC93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIHVjZF9zbm1wLmgsIHNtdXhfZ2F0ZWQuaCk6CiAgICAgLSBjcmVhdGVkIG5ldyB3cmFwcGVycyBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlcyB0byBtYWtlIHRoZW0gZWFzeSB0bwogICAgICAgYWRkIGFuZCByZW1vdmUgYXMgbmVlZGVkLgogICAKMTk5Ny0xMC0yMCAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0LmMsIGhvc3QuaCwgaHJfZGV2aWNlLmMsCiAgIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMKLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLAogICBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLAogICBocl9zeXN0ZW0uYzoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgogICAKMTk5Ny0xMC0yMCAxNzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUsIHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSwgd29tYmF0LltjaF0pOgogICAgIC0gZG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gcmVmbGVjdCBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB1c2FnZS4KICAgCjE5OTctMTAtMjAgMTc6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCiAgIAoxOTk3LTEwLTIwIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBwYXRjaCBhbGwgb3RoZXIgZW52LXZhcnMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCiAgIAoxOTk3LTEwLTIwIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBGcm9tIERhdmU6ICBwYXRjaCBERUZBVUxUX01JQlMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCiAgIAoxOTk3LTEwLTIwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBkb24ndCByZXBvcnQgYW4gZXJyb3IgaWYgeW91IGNhbid0IGZpbmQgYSBzbm1wZC5jb25mIGZpbGUuCiAgICAgLSBkb24ndCByZXBvcnQgYWxsIGxpbmVzIGFzIGFuIGVycm9yIChvcHBzKS4KICAgCjE5OTctMTAtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYykgZG9uJ3QgbnVsbCBsYXN0IGNoYXIgaW4gY29tbWFuZCBsaW5lLgogICAKMTk5Ny0xMC0yMCAxMTo1MSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaAosIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsCiAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmgsIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgKOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvc25tcCosIGFnZW50L21pYmdyb3VwLyouW2NoXSk6CiAgICAgLSBDcmVhdGVkIGEgbmV3IG1pYm1vZHVsZS5oIGNvbmZpZ3VyYXRpb24gbWFjcm8gY2FsbGVkCiAgICAgICBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB3aGljaCBjYW4gYmUgY2FsbGVkIHRvIHJlcXVlc3QgcGFyc2luZyBvZgogICAgICAgdGhlIHNubXBkLmNvbmYgZmlsZShzKSBvbiBhIHBlciBtb2R1bGUgYmFzaXMuCiAgICAgLSBBbGwgcmVsYXRlZCBwYXJzaW5nIGhhcyBiZWVuIHN0cmlwZWQgZnJvbSByZWFkX2NvbmZpZy5jIGFuZCBtb3ZlCiAgICAgICB0byB0aGVpciBjb3JyZWN0IG1vZHVsZSBpbnN0ZWFkLgogICAgIC0gTmV3IGZ1bmN0aW9uOiBjb25maWdfcGVycm9yKGNoYXIgKik6IHByaW50IGVycm9yIHdpdGggZmlsZSAmIGxpbmUgIy4KICAgICAtIGJhc2ljIC1XYWxsIGNsZWFudXBzIGluIGhyKiBhcyB3ZWxsIChub3QgbmVhcmx5IGRvbmUgeWV0KS4KICAgCjE5OTctMTAtMjAgMTE6NDUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0xMC0xNSAxODo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuYwosIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgKLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCjoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyKik6IEhvc3QgcmVzb3VyY2VzIG1pYiBmcm9tIERhdmUgU2hpZWxkLgogICAgIC0gbWlub3IgcGF0Y2hlcyBieSBtZSwgbW9zdGx5IHBvaW50ZXIgZXJyb3JzLgogICAtIChtZW1vcnkuYyk6IGZpeGVkIGEgbnVsbCBwb2ludGVyIHByb2JsZW0gdW5kZXIgbGludXguCiAgIAoxOTk3LTEwLTE1IDEyOjEyICBoYXJkYWtlcgoKICAgKiBtaWJzLy5jdnNpZ25vcmU6CgogICAtIChtaWJzLy5jdnNpZ25vcmUpOiAgYWRkZWQgTWFrZWZpbGUuCiAgIAoxOTk3LTEwLTE1IDEyOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwo6CgogICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOgogICAgIC0gY3JlYXRlIGFuZCB1c2UgbmV3IGZ1bmN0aW9uOiAgc25tcF9wZXJyb3IoY2hhciAqKQogICAgIC0gZnJlZSBhbGxvY2F0ZWQgc3BhY2Ugb2Ygc25tcF9kZXRhaWwgdXBvbiB1c2FnZSBieSBzbm1wX2FwaV9lcnJzdHJpbmcoKS4KICAgCjE5OTctMTAtMTUgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvdmlldy5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKTogUGF0Y2ggZnJvbSBOaWVsczoKICAgICAtIHdhcm5pbmcgZml4ZXMuCiAgICAgLSByZW1vdmUgdGhlIHByaW50ZidzIGZyb20gdGhlIGxpYnJhcnkgYW5kIHNldCBhIHNubXAgJ2Vycm5vJyBlcXVpdmFsZW50LgogICAKMTk5Ny0xMC0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jOgoKICAgLSAodmlld19wYXJzZS5jLCBzbm1wX3ZhcnMuYyk6IEZyb20gTmllbHM6IHdhcm5pbmcgcmVtb3ZhbHMgYW5kIHN0YW5kYXJkaXphdGlvbi4KICAgCjE5OTctMTAtMTQgMTU6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMKLCBldmVudC5jLCBldmVudC5oLCBpbnRlcmZhY2VzLmMsCiAgIGtlcm5lbF9zdW5vczUuYywgbWVtb3J5LmMsIG1lbW9yeS5oLCBwYXJ0eV92YXJzLmMKLCByZWFkX2NvbmZpZy5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYwosIHZpZXdfdmFycy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKTogWU1XUkFNRlNGTjoKICAgICAtICh5ZXQgbW9yZSB3YXJuaW5nIHJlbW92YWxzIGFuZCBtZW1vcnkgZnVuY3Rpb24gc3RhbmRhcmRpemF0aW9ucyBmcm9tIE5pZWxzKS4KICAgICAtIG1pbm9yIGxpbnV4L25ldGJzZC9ic2RpIGNsZWFuIHVwcy4KICAgCjE5OTctMTAtMTQgMTU6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEZyb20gRGF2ZSBTaGllbGRzOiByZWZlciByZWFkZXIgdG8gYW5vdGhlciBhbnN3ZXIgYXMgd2VsbC4KICAgCjE5OTctMTAtMTQgMTU6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oKTogZHluaXggZG9lc24ndCBoYXZlIG5ldC9yb3V0ZS5oLgogICAKMTk5Ny0xMC0xNCAxNToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IEZyb20gRGF2ZSBTaGllbGRzOgogICAgIC0gc2VsZiBjb250YWluZWQgbWliIC50eHQgZmlsZXMgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLgogICAKMTk5Ny0xMC0xNCAxNToxNSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IGRvYyBhZGRpdGlvbjogIGFkZF9taWJkaXIoKSByZXR1cm4gdmFsdWUuCiAgIAoxOTk3LTA4LTI1IDAwOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgbmV0YnNkLgogICAKMTk5Ny0wOC0yNSAwMDoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiBjaGVja2luIHZlcnNpb24uaC4KICAgCjE5OTctMDgtMjUgMDA6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiB0eXBvIGluIGlmZGVmLgogICAKMTk5Ny0wOC0xNSAwNjo0NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0LCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUzICkKICAgCjE5OTctMDgtMTUgMDI6MzAgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc3lzdGVtLmMsIGFnZW50L3NubXBkLmMKLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoY29uZmlnKiwgc25tcGQuYywgc25tcF9jbGllbnQuW2NoXSwgc3lzdGVtLltjaF0pOgogICAgIC0gZml4IG1vcmUgbG9uZy9pbnQgcHJvYmxlbXMgb24gNjQgYml0IG1hY2hpbmVzIHVfbG9uZyAtPiBpbl9hZGRyX3QuCiAgICAgLSBDaGVjayBmb3IgU0lPQ0dJRkFERFIgaW4gc3lzL2lvY3RsLmggYW5kIHVzZSBpdCBpbiBnZXRfbXlhZGRyKCkgaWYKICAgICAgIGRlZmluZWQuCiAgIAoxOTk3LTA4LTE0IDA4OjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmlkIEMuIExhd3JlbmNlIGZvciBuZXRic2QgKiBic2Qvb3MgMi4wLgogICAKMTk5Ny0wOC0xNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvcHJvYy5jOgoKICAgLSAocHJvYy5jKTogZG9uJ3QgdXNlIHNldGVycm9yc3RhdHVzKCkgaWYgbm90IHVzaW5nIHRoZSBlcnJvcm1pYi4KICAgCjE5OTctMDgtMTQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IFBvaW50IG91dCB0aGF0IG1pYiBsaXN0IG11c3QgYmUgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgCjE5OTctMDgtMTQgMDg6MTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKik6CiAgICAgLSBUeXBvJ3Mgd2hlbiBjb3B5aW5nIGluIGEgYXV0b2NvbmYgdGVzdC4KICAgICAtIEFkZCBlcnJvcm1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IChzaW5jZSBpdHMgbm8gbG9uZ2VyIHJlcXVpcmVkKS4KICAgICAtIGJhY2txdW90ZSBhIC4gaW4gYSBzZWQgcmVnZXhwIHRvIHdhdGNoIG91dCBmb3IgbW9kdWxlIG5hbWVzCiAgICAgICBiZWdpbm5pbmcgd2l0aCB0aGUgbGV0dGVyIG8uCiAgIAoxOTk3LTA4LTE0IDA3OjM3ICB3aGFyZGFrZQoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChjb25maWcqLCBGQVEsIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvKi5jLCBhcHBzLyouYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmlkIFBhdWwgWmltbWVybWFuOgogICAgICAgLSBwb3J0IHRvIEFJWCA0LjEuNS4KICAgICAgIC0gZml4IG1vcmUgdHlwZSBjYXN0aW5nIHByb2JsZW1zLgogICAKMTk5Ny0wOC0xNCAwMDo0NiAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYwosIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgbWFpbi5jKToKICAgICAtIGFkZCAtViB2ZXJzaW9uIGZsYWdlLgogICAKMTk5Ny0wOC0xMyAwODoxMCAgd2hhcmRha2UKCiAgICogdmVyc2lvbi5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgKLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oLCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnCiwgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvcGFydHkuaDoKCiAgIC0gKHZlcnNpb24uaCwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlIHZlcnNpb24gc3RyaW5nIHRvIGEgZ2xvYmFsIGhlYWRlci4KICAgICAtIGluc2VydCBVU0lOR18qX01PRFVMRSBtYWNybydzIGluIG1hbnkgcGxhY2VzIHRvIG1ha2UgbW9kdWxlCiAgICAgICByZW1vdmFsIG1vcmUgcG9zc2libGUuICBZb3UgY2FuIG5vdyBjb21waWxlIHdpdGggYWxtb3N0IG5vIG1vZHVsZXMKICAgICAgIGluc3RhbGxlZC4KICAgCjE5OTctMDgtMTMgMDQ6NDcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogb3B0YXJnL29wdGluZCBuZWVkIHRvIGJlIGRlY2xhaXJlZCB1bmRlciB1bHRyaXg0LgogICAKMTk5Ny0wOC0wNyAwMjozNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKToKICAgIC0gZml4IHN3YXAgb24gSFBVWCAxMC4yMAogICAKMTk5Ny0wOC0wNyAwMTozMyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgbWliZ3JvdXAvcHJvYy5jOgoKICAgLSAoa2VybmVsLmMsIHByb2MuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgLSBJbXBsZW1lbnQgcmVhbCBwcm9jZXNzIHRhYmxlIHdhbGtzIG9uIFVsdHJpeC4KICAgCjE5OTctMDgtMDcgMDE6MTAgIHdoYXJkYWtlCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmM6CgogICAtIChjb25maWcqLCBsb2FkLmMsIGRpc2suYywgcGFyc2UuYywgc25tcC5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIFVsdHJpeCBmaXhlcyBmb3Igc3RhdGZzLCBsb2FkYXZlLgogICAgIC0gaW1wbGVtZW50IHN0cmR1cCBpZiBub3QgZm91bmQgaW4gc3lzdGVtLgogICAgIC0gdGVzdCBmb3IgdGVzdCBmbGFncyBmb3Iga2VybmVsIGNoZWNraW5nLgogICAgIC0gd2F0Y2ggb3V0IGZvciBwcydlcyB0aGF0IHJldHVybiBlZ3JlcCB3aXRoIHRoZSBwcyBhcmcgb24gdGhlIGxpbmUuCiAgICAgLSB1cCBtYXhpbXVtIGRpc2tzIHRvIDUwLgogICAKMTk5Ny0wOC0wNyAwMDoyOSAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgYnkgYXBwcy4KICAgCjE5OTctMDctMjQgMjM6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEVkZHkgSi4gR3VybmV5OiAgdW5jb21tZW50IGdldHRpbWVvZmRheSgpIGNhbGwuCiAgIAoxOTk3LTA3LTAzIDIzOjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUyICkKICAgCjE5OTctMDctMDMgMjM6MzMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChzbm1wdHJhbnNsYXRlLmMsIG1pYi5bY2hdLCBwYXJzZS5bY2hdKToKICAgICAtIE5ldyBvcHRpb24gdG8gc25tcHRyYW5zbGF0ZSAoLWEpIHRvIG91dHB1dCBhIGFzY2lpIGR1bXAgb2YgdGhlIG1pYgogICAgICAgZGF0YWJhc2UgY2FwYWJsZSBvZiBiZWluZyB1c2VkIGJ5IHRoZSBwYXJzZXIgZm9yIHF1aWNrIE9JRCB0cmFuc2xhdGlvbnMuCiAgIAoxOTk3LTA3LTAxIDA4OjM3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxICkKICAgCjE5OTctMDctMDEgMDc6MjAgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgogICAKMTk5Ny0wNy0wMSAwNjo0MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgogICAKMTk5Ny0wNy0wMSAwNjowMiAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IEJldHRlciB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgdXNhZ2UoKSBzdGFuZGFyaXphdGlvbi4KICAgCjE5OTctMDctMDEgMDU6NDEgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oLCBpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGZpeCBmcmVlYnNkMyBzcGVjaWZpYyBwcm9ibGVtcyAoYmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBCaWxsIEZlbm5lcikuCiAgIAoxOTk3LTA3LTAxIDAxOjEwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBmaXggcHJvdG90eXBpbmcgZmFpbHVyZXMuCiAgIAoxOTk3LTA2LTMwIDA3OjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmM6CgogICAtIChtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYyk6IFN1Z2dlc3Rpb25zIGZyb20gTGF1a2thbmVuIE1hcmtrdSBOUkMvSGtpOgogICAgIC0gTWFsbG9jIHR5cGVjYXN0cyBhbmQgb3RoZXIgY29ycmVjdGlvbnMgaW4gY2FzdGluZy4KICAgCjE5OTctMDYtMzAgMDY6NTggIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCjoKCiAgIC0gKG1pYl9hcGkuMywgcGFyc2UuW2NoXSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBIYW5kbGUgbWliIG1vZHVsZSByZXBsYWNlbWVudHMgdGhyb3VnaCBuZXcgZnVuY3Rpb24gYW5kIHJlcGxhY2VtZW50IHRhYmxlLgogICAKMTk5Ny0wNi0zMCAwNjo0OSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKTogUGF0Y2ggZnJvbSB2bGFkQG1pc2VyeS5yb3NwcmludC5ydToKICAgICAtIGltcGxlbWVudCBtZW1vcnkgc2VjdGlvbiBvZiB1Y2QgbWliIG9uIGxpbnV4LgogICAKMTk5Ny0wNi0zMCAwNjozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtICh3b21iYXQuaCk6IGJldHRlciBkb2N1bWVudCBjb25maWdfbG9hZF9taWIoKSBleGFtcGxlLgogICAKMTk5Ny0wNi0zMCAwNjozMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgLSAoc25tcHRlc3QuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IGdldCAtPiBmZ2V0ICdcbicgcHJvYmxlbS4KICAgICAtIEFsc28gbWFrZXMgc3VyZSBpdCBoYW5kbGVzIHVwIGFuZCBsb3dlciBjYXNlcy4KICAgCjE5OTctMDYtMzAgMDU6NTQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYyk6IERvbid0IHB1dCAmIGluIGZyb250IG9mIG9zZjQgYWNfZW5hZGRyLgogICAKMTk5Ny0wNi0zMCAwNTo1MyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoYWdlbnQvc25tcF97YWdlbnQsdmFyc30uYywgYWxhcm0uYywgZXZlbnQuYywgYXBwcy8qLAogICAgICBzbm1wbGliL3NubXB7LF9hcGksX2F1dGh9LmMpOgogICAgICAtIEFkZGVkIGJhc2ljIChtb3N0bHkgY29uZm9ybWluZz8pIHYyYyBzdXBwb3J0LgogICAgICAtIE1lcmdlZCBhcmcgcGFyc2luZyBvZiBhcHBzLyogY2xpZW50cyBpbnRvIG9uZSBmaWxlLgogICAKMTk5Ny0wNi0yNiAyMzozOSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoc211eC5jKTogX19QIG1hY3JvcyB3ZXJlIGNhbGxlZCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cyAobmVlZGVkIChhcmdzKSkuCiAgIAoxOTk3LTA2LTIzIDIzOjQyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBuZWVkIDIgbGVhZGluZyAnLSdzIG9uIC0td2l0aC1taWItbW9kdWxlcyBmbGFnLgogICAKMTk5Ny0wNi0yMyAyMzo0MSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKTogYnNkaTMgbmVlZHMgdG8gZGVmaW5lIGJzZGkyLCBub3QgaXRzZWxmIChkdWgpLgogICAKMTk5Ny0wNi0yMyAyMzo0MCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9obiBDaGFybHRvbiB0byBmaXggbGVhZGluZyBzcGFjZXMgaW4gc2Vkc2NyaXB0LgogICAKMTk5Ny0wNi0xMSAwNTo0NiAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogd2hvb3BzLgogICAKMTk5Ny0wNi0xMSAwNDo1MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBtYWtlIE1JQkZJTEVTIGVudiB2YXIgd29yayBjb3JyZWN0bHkuCiAgIAoxOTk3LTA1LTI2IDAyOjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBuaWVscyBCYWdnZXNlbiB0bzoKICAgICAtIGNsb3NlIG1pYmZpbGVzIGZvciBNSUJTPUFMTC4KICAgICAtIEFsbG93IFNZTlRBWCBEaXNwbGF5U3RyaW5nIChTSVpFKSBpbnNpZGUgT0JKRUNULVRZUEUuCiAgIAoxOTk3LTA1LTI2IDAxOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMiApCiAgIAoxOTk3LTA1LTI2IDAxOjU3ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDMuMi4KICAgCjE5OTctMDUtMjYgMDE6NTYgIHdoYXJkYWtlCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2suZGVmKTogbmV3IHZhcmlhYmxlcyB0byBzZXQgd2Fsay9nZXQvc2V0IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjE5OTctMDUtMjYgMDE6NTIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiB0cmFwIGxvbmcncyBiYWNrIHRvIGludHMsIGJhZCBzb2x1dGlvbi4KICAgCjE5OTctMDUtMjYgMDE6NTAgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoSU5TVEFMTCwgY29uZmlndXJlKTogZGVmYXVsdCBtaWJzIGxpc3RlZCBjb3JyZWN0bHkuCiAgIAoxOTk3LTA1LTIzIDA3OjM0ICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogTW9kaWZpeSB0byBub3RlIGRlZmF1bHQgbWlicy4KICAgCjE5OTctMDUtMjMgMDc6MjMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlOCApCiAgIAoxOTk3LTA1LTIzIDA0OjQwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogQ2hhbmdlIHRyYXAgdHlwZXMgZnJvbSBpbnQgdG8gbG9uZy4KICAgCjE5OTctMDUtMjMgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBTTk1QIHBlcmwgYWdhaW4uCiAgIAoxOTk3LTA1LTIzIDA0OjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggbXVsdGlwbGUgZnJlZXMgaW4gdjIgcGR1J3MuCiAgIAoxOTk3LTA1LTIzIDA0OjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggZW5kaWVubmVzIHByb2JsZW1zLgogICAKMTk5Ny0wNS0yMyAwNDozNiAgd2hhcmRha2UKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQ6CgogICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0LCBTTk1QdjItVEMudHh0KTogRnJvbSBOaWVsczogY2hhbmdlIGltcG9ydCBjbGF1c2VzLgogICAKMTk5Ny0wNS0yMyAwNDozNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpYW5uZXMgcHJvYmxlbXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogU2V0IGRlZmF1bHQgTUlCIGxpc3QuCiAgIAoxOTk3LTA1LTIyIDA0OjEzICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NMk0tTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IHJlc3RvcmVkLiAgR290IHRydW5jYXRlZC4KICAgCjE5OTctMDUtMjEgMDY6NDAgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0wNS0yMSAwNjozOCAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KICAgCjE5OTctMDUtMjEgMDE6MTMgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKTogVXBkYXRlIGZvciAzLjIuCiAgIAoxOTk3LTA1LTIwIDA3OjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogY29kZSBmcm9tIERhdmUgU2hpZWxkOiBhZGQgYmFjayBpbiBmaW5kX25vZGUoKSBmb3IgcGVybCB1c2FnZS4KICAgCjE5OTctMDUtMjAgMDc6NTAgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogc25tcHNldCBzaG91bGQgY2hlY2sgYWdhaW5zdCBzaXplIGRlZmluZWQgaW4gbWliLgogICAKMTk5Ny0wNS0yMCAwMjoyNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjogIEZpeCBteSBjcHAgc3R1cGlkaXR5LgogICAKMTk5Ny0wNS0yMCAwMTowOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU3ICkKICAgCjE5OTctMDUtMTkgMjM6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hdXRoLmM6CgogICAtIChtaWIuYywgc25tcF9hdXRoLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgogICAKMTk5Ny0wNS0xOSAyMzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGltcG9ydCBjYWxscy4KICAgCjE5OTctMDUtMTkgMjM6MTggIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBDb21tZW50IG91dCBPYmplY3RTeW50YXggaW1wb3J0LgogICAKMTk5Ny0wNS0xOSAyMzowMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IE9ubHkgZG8gTWFydGluIEphY29ic3NlbidzIGZpeGVzIGZvciBmcmVlYnNkMi4KICAgCjE5OTctMDUtMTYgMDI6MjUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQcm90ZWN0IG1hbGxvYyBhZ2FpbnN0IDAgZXh0ZXJuYWwgaW1wb3J0cy4KICAgCjE5OTctMDUtMTUgMDc6NDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC5jOgoKICAgLSAodWRwLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzZW46CiAgICAgLSBGaXggdWRwX2lucGNiIHN0cnVjdHVyZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjI2ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgIC0gV29yZGluZyBhbmQgb3JkZXIgY2hhbmdlcyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgogICAKMTk5Ny0wNS0xNSAwNzoyMiAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAtIERpc3BsYXkgZGVmYXVsdHMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KICAgCjE5OTctMDUtMTUgMDc6MDEgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGNvbmZpZyosIG1pYi5jKToKICAgICAtIENoYW5nZWQgZW52IHZhcmlhYmxlIE1JQkZJTEUgLT4gTUlCRklMRVMgKHNpbmNlIGl0IGlzIGEgbGlzdCBub3cpLgogICAgICAgKHdpbGwgYWNjZXB0IE1JQkZJTEUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KS4KICAgICAtIEJ5IGRlZmF1bHQsICpubyogYWRkaXRpb25hbCBtaWJmaWxlcyBhcmUgbG9hZGVkIChpZSwgbWliLnR4dCBpcyBubwogICAgICAgbG9uZ2VyIGxvYWRlZCkgYW5kIG11c3QgYmUgdHVybmVkIG9uIHRocm91Z2ggY29uZmlndXJlIG9yIHRoZSBlbnYgdmFyLgogICAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zIHRvIHNldCBkZWZhdWx0IE1JQlMsIE1JQkZJTEVTLCBNSUJESVJTLgogICAKMTk5Ny0wNS0xNSAwNjoyMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBBZGQgbmV3IG5vZGUgc3RydWN0dXJlIGVudHJpZXMuCiAgIAoxOTk3LTA1LTE1IDA1OjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogcGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRlYWwgd2l0aCBtdWx0aXBsZSBtb2R1bGUgSUQncyBiZWluZyByZWZlcmVuY2VkIG9yIG5vZGVzIGRlZmluZWQuCiAgICAgLSBzdXByZXNzICJuYW1lIGNsYXNoIiB3YXJuaW5ncyBmb3IgYW5vbnltb3VzIG5vZGVzLgogICAKMTk5Ny0wNS0xNSAwMjozMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcHJvdG90eXBpbmcgYW5kIG51bGwgY2hlY2tpbmcuCiAgICAgLSBpZiBNSUJTIGlzIHNldCB0byBBTEwsIHBhcnNlIGV2ZXJ5dGhpbmcgZm91bmQuCiAgIAoxOTk3LTA1LTE1IDAyOjMxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1TTUkudHh0OgoKICAgLSAoU05NUHYyLVNNSS50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgY2NpdHQgLT4gMC4KICAgCjE5OTctMDUtMTUgMDI6MzAgIHdoYXJkYWtlCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgaW1wb3J0IGluZGVudGlmaWVycy4KICAgCjE5OTctMDUtMTUgMDI6MjkgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgTUlCUyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIEFMTC4KICAgCjE5OTctMDUtMTUgMDI6MjggIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byByZWZlcmVuY2UgdGhlIG1ha2V0YXJnZXQgc2NyaXB0LgogICAKMTk5Ny0wNS0xNSAwMjoyMyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IHB1cmVseSBudW1lcmljIE9JRHMuCiAgIAoxOTk3LTA1LTE1IDAyOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBwYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gZm9yIEZyZWVCU0QKICAgCjE5OTctMDUtMTQgMDY6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNiApCiAgIAoxOTk3LTA1LTE0IDA0OjQ1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6ICBUeXBlY2FzdCBtYWxsb2MuCiAgIAoxOTk3LTA1LTE0IDA0OjE3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gT2RkYmpvcm4gU3RlZmZlbnNlbjoKICAgICAtIFByb3RlY3QgYWdhaW5zdCBiYXNoIG5lZWRpbmcgJzsncyBvbiBtdWx0aXBsZSBzdWJkaXIgbWFrZXMuCiAgIAoxOTk3LTA1LTE0IDA0OjEzICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogd2FybiBpZiBtaWIudHh0IGlzIGluc3RhbGxlZCBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4KICAgCjE5OTctMDUtMTQgMDI6NDEgIHdoYXJkYWtlCgogICAqIG1pYi50eHQsIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYi50eHQpOiByZW1vdmVkIG1pYi50eHQgZnJvbSBkaXN0cmlidXRpb24uICBObyBsb25nZXIgbmVlZGVkLgogICAKMTk5Ny0wNS0xMyAwNzoyMiAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoY29uZmlnKixtaWIuYyk6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWZhdWx0LW1pYnM9Imxpc3Q6bGlzdCIuCiAgIAoxOTk3LTA1LTEzIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHVjZC1zbm1wLnR4dCAtPiBVQ0QtU05NUC1NSUIudHh0LgogICAKMTk5Ny0wNS0xMyAwNjozNiAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBVQ0QtU05NUC1NSUIudHh0CiAgIAoxOTk3LTA1LTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW92ZWQgZnJvbSB1Y2Qtc25tcC50eHQuCiAgIAoxOTk3LTA1LTEzIDA2OjA1ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhcmNoaXRlY3R1cmUgbGlzdCB1cGRhdGUuCiAgIAoxOTk3LTA1LTEzIDA2OjA1ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIElOU1RBTEwpOiBOZXcgZmxhZ3MgdG8gc2V0IHByb21wdGVkIHZhbHVlcyBpbnN0ZWFkIG9mIHByb21wdGluZy4KICAgCjE5OTctMDUtMTMgMDU6NDggIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogQ2hhbmdlZCBJRCB0byBVQ0QtU05NUAogICAKMTk5Ny0wNS0xMyAwMzowMyAgd2hhcmRha2UKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiByZW1vdmVkIHNubXB2Mi50eHQsIHJmYzEyNzEudHh0LgogICAKMTk5Ny0wNS0xMyAwMzowMiAgd2hhcmRha2UKCiAgICogbWlicy9zbm1wdjIudHh0OgoKICAgLSAoc25tcHYyLnR4dCk6IHJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAyOjU3ICB3aGFyZGFrZQoKICAgKiBtaWJzL3JmYzEyNzEudHh0OgoKICAgLSAocmZjMTI3MS50eHQpOiByZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMTo1MiAgd2hhcmRha2UKCiAgICogbWlicy86IHVjZC1zbm1wLnR4dCwgdWNkLnR4dDoKCiAgIC0gKHVjZC50eHQpOiB3aG9vcHMuICBSZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMjEzLU1JQi50eHQ6CgogICAtIChSRkMxMjEzLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTE1NS1TTUkudHh0OgoKICAgLSAoUkZDMTE1NS1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzEyNzEtTUlCLnR4dDoKCiAgIC0gKFJGQzEyNzEtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTTJNLU1JQi50eHQ6CgogICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVBBUlRZLU1JQi50eHQ6CgogICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9VRFAtTUlCLnR4dDoKCiAgIC0gKFVEUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1RDUC1NSUIudHh0OgoKICAgLSAoVENQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRNLnR4dDoKCiAgIC0gKFNOTVB2Mi1UTS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVNNSS50eHQ6CgogICAtIChTTk1QdjItU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JUC1NSUIudHh0OgoKICAgLSAoSVAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dDoKCiAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvRXRoZXJMaWtlLU1JQi50eHQ6CgogICAtIChFdGhlckxpa2UtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy91Y2QudHh0OgoKICAgLSAodWNkLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JRi1NSUIudHh0OgoKICAgLSAoSUYtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMSAyMzo1MiAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtIChtaWJzL3VjZC1zbm1wLnR4dCk6IFBhdGNoIGZyb20gTWFyaW8gRGVGYXppbyB0byBmaXggdHlwb3MuCiAgICAgLSBjb21waWxlcyB1bmRlciBTTk1QYyA0LjFnLgogICAKMTk5Ny0wNS0xMSAyMzo0OSAgd2hhcmRha2UKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBtaWJfYXBpLjMuCiAgIAoxOTk3LTA1LTExIDIzOjQ4ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBSRUFETUUsIFRPRE86CgogICAtIChJTlNUQUxMLCBSRUFETUUsIFRPRE8pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KICAgCjE5OTctMDUtMTEgMjM6NDQgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiByZW1vdmVkIENDSEFDSyA/Pz8uCiAgIAoxOTk3LTA1LTExIDIzOjQzICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYzoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6ICBCU0RJMyBzcGVjaWZpYyBoZWFkZXJzIGFuZCBkZWZpbmVzLgogICAKMTk5Ny0wNS0xMCAwODoyMyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5jLAogICBtaWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHNubXBkLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRlZmF1bHQgdHJhcCBjb21tdW5pdHkuCiAgICAgLSBtdWx0aXBsZSB0cmFwIHNpbmtzLgogICAKMTk5Ny0wNS0xMCAwNzo1MiAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IE5ldyBmaWxlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTA1LTEwIDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIHVwZGF0ZS4KICAgCjE5OTctMDUtMTAgMDc6NDEgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkb24ndCBzdWJtaXQgYmxhbmsgYnVnLXJlcG9ydHMuCiAgIAoxOTk3LTA1LTA5IDE1OjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcyAoZXZlbiBiZXR0ZXIpLgogICAKMTk5Ny0wNS0wOSAxNTo0NiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMuCiAgIAoxOTk3LTA1LTA5IDE1OjI4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBuZWdhdGl2ZSBudW1iZXJzIGluIG1pYnMuCiAgIAoxOTk3LTA1LTA5IDE1OjAzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcgKG1vc3RseSkuCiAgIAoxOTk3LTA1LTA5IDE0OjUyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5bY2hdKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZy4KICAgCjE5OTctMDUtMDkgMTM6NDYgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogVXBkYXRlLgogICAKMTk5Ny0wNS0wOSAxMzo0NiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZQosIGNvbmZpZy5oLmluOgoKICAgLSAoc211eC5jLCBjb25maWcqKToKICAgICAtIGNoZWNrIGZvciBzZ3R0eS5oIGFuZCBwcm90b3R5cGUgYmV0dGVyLgogICAKMTk5Ny0wNS0wOSAxMzozOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBtaWIuYywgbWliLmgsIHBhcnNlLmMKLCBwYXJzZS5oOgoKICAgLSAobWliLltjaF0sIHBhcnNlLltjaF0sIE1ha2VmaWxlLmluKTogTmV3IHBhcnNlciBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gUnVuLXRpbWUgY29udHJvbCBvZiBpbml0aWFsIG1vZHVsZSBsb2FkaW5nCiAgICAgICAgICAgICAodXNlcyBlbnYgdmFyaWFibGVzIE1JQkRJUlMsIE1JQlMsIGFuZCBNSUJGSUxFKQogICAgIC0gRGVmaW5lZCBpbnRlcmZhY2VzIGZvciBsb2FkaW5nIG1vZHVsZXMgYW5kIHJldHJlaXZpbmcgZW50cmllcwogICAgIC0gTW9kdWxlIHNjb3Bpbmcgbm93IGluY2x1ZGVzIFRleHR1YWwgQ29udmVudGlvbnMKICAgICAtIFRva2VucyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5IG5vIGxvbmdlciByZXF1aXJlIGltcG9ydGluZyB0aGUKICAgICAgIGNvcnJlc3BvbmRpbmcgbW9kdWxlcwogICAKMTk5Ny0wNC0yMiAxMTo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU1ICkKICAgCjE5OTctMDQtMjIgMDg6NDMgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoY29uZmlnKiwgc211eC5jKTogQ2hlY2sgZm9yIGhlYWRlcnMgYW5kIGRlZmluZSBGRF9DT1BZIGlmIG5vdCBkZWZpbmVkLgogICAKMTk5Ny0wNC0yMiAwNzo0MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jOgoKICAgLSAoc25tcF9iZ3AuYywgc25tcF9yaXAyLmMsIHNubXBfb3NwZi5jLCBzbXV4LltjaF0pOgogICAgIC0gc3RhbmRhcmRpemUgaGVhZGVycyBmb3IgYXV0b2NvbmYuCiAgICAgLSBzbXV4X2luaXQoKSAtPiBpbml0X3NtdXgoKS4KICAgICAtIFNNVVhERUJVRyAtPiBET0RFQlVHICgtLWVuYWJsZS1kZWJ1Z2dpbmcgdHVybnMgdGhpcyBvbiBhdXRvbWF0aWNhbGx5KS4KICAgCjE5OTctMDQtMjIgMDY6NTEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMKLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oOgoKICAgLSAoc25tcF9iZ3AuW2NoXSwgc25tcF9yaXAyLltjaF0sIHNubXBfb3NwZi5bY2hdKToKICAgICAtIGNvbmZvcm0gdG8gbmV3IG1vZHVsZSBzdGFuZGFyZHMgb2YgY29kaW5nLgogICAKMTk5Ny0wNC0yMiAwNjo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogcmVtb3ZlIGR1cGxpY2F0ZSAod2FybmluZykgVENQIGRlZmluZXMgb24gb3NmNCBzeXN0ZW1zLgogICAKMTk5Ny0wNC0yMiAwNjoyMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsCiAgIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYzoKCiAgIC0gKFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jKToKICAgICAtIHNtdXggc3VwcG9ydCBmb3IgZ2F0ZWQgZnJvbSBSb2hpdCBEdWJlLgogICAKMTk5Ny0wNC0yMiAwNjowMiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgogICAKMTk5Ny0wNC0yMiAwNTo1OSAgd2hhcmRha2UKCiAgICogbWFrZXRhcmdldCwgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmxpbnV4LmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3RjcC5oLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgogICAKMTk5Ny0wNC0yMSAyMzo0MiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmFyaW91cyB1cGRhdGVzLgogICAKMTk5Ny0wMy0yNiAwODowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmM6CgogICAtIChtaWJncm91cC9zeXN0ZW0uYyk6IHJlcG9ydCBhZ2VudCB1cHRpbWUgcmF0aGVyIHRoYW4gc3lzdGVtIHVwdGltZS4KICAgCjE5OTctMDMtMjUgMDQ6MzAgIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogbWlub3IgZG9jIHVwZGF0ZSBmb3IgbmV3IGZsYWdzLgogICAKMTk5Ny0wMy0yNSAwMDozOSAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCBzeXNsb2NhdGlvbiBhbmQgc3lzY29udGFjdCBleGFtcGxlcy4KICAgCjE5OTctMDMtMjQgMDQ6NTYgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTI0IDAwOjUxICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBydW5zIG9uIGJzZGkgMi4xLgogICAKMTk5Ny0wMy0yNCAwMDo1MSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFdhdGNoIG91dCBmb3IgbXVsdGlwbGUgc3BhY2VzIGluIEMgZGVmcy4KICAgCjE5OTctMDMtMjQgMDA6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChleGFtcGxlLmMsLmgpOiBOZXcgZXhhbXBsZSBtaWIgbW9kdWxlIGR1cGxpY2F0aW5nIHRoZSBwYXNzdGVzdAogICAgIHNjcmlwdCBpbiBDIGNvZGUuCiAgIAoxOTk3LTAzLTI0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogcHJvdG90eXBlIHdyaXRlIGZ1bmN0aW9uIGJldHRlci4KICAgCjE5OTctMDMtMTggMDc6NTMgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHNubXAuY29uZiAtPiBzbm1wZC5jb25mCiAgIAoxOTk3LTAzLTE4IDA3OjUyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTQgMDc6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xNCAwNDo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc2Vkc2NyaXB0LmluLAogICBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU0ICkKICAgCjE5OTctMDMtMTQgMDQ6NTQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIHVjZC1zbm1wLnR4dCk6IHJlY29nbml6ZSBuZXcgaG9zdHMgZm9yIHN5c09iamVjdElkLgogICAKMTk5Ny0wMy0xNCAwNDo1MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgYWdlbnQvc25tcGQuYwo6CgogICAtIChzbm1wZC5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHN5c3RlbS5bY2hdKToKICAgICAtIDY0Yml0IGZpeDogZ2V0X215YWRkcigpIHNob3VsZCByZXR1cm4gaW50IG5vdCBsb25nLgogICAKMTk5Ny0wMy0xNCAwNDo1MSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pOiBmaXggdHJhcCBieSBpbmNsdWRpbmcgb3B0aW9uYWwgLm8gZmlsZXMuCiAgIAoxOTk3LTAzLTE0IDAyOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2dyb3VwdmFycy5oOgoKICAgLSAoc25tcF9ncm91cHZhcnMuaCk6IGF4ZS4KICAgCjE5OTctMDMtMTQgMDI6MjAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyc19ldmVudC5oOgoKICAgLSAoc25tcF92YXJzX2V2ZW50LmgpOiBheGUuCiAgIAoxOTk3LTAzLTE0IDAyOjE4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTAzLTE0IDAyOjE3ICB3aGFyZGFrZQoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IHJ1biBvbiBzbm1wbmV0c3RhdCBkaXIgYWxzby4KICAgCjE5OTctMDMtMTQgMDI6MDcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggc2Vkc2NyaXB0IHRvIGluY2x1ZGUgcyMgYXMgd2VsbCBhcyBzLyBjb21tYW5kcy4KICAgCjE5OTctMDMtMTQgMDI6MDEgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogVXBkYXRlZCB0byBpbmNsdWRlIC1jLy1DIGFuZCBTTk1QQ09ORlBBVEggZW52IHZhci4KICAgCjE5OTctMDMtMTQgMDE6NDkgIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogcmVtb3ZlIHRoZSBsYXN0IG9mIHRoZSBzZWQgc2NyaXB0IGRlZnMuCiAgIAoxOTk3LTAzLTE0IDAxOjQ4ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgY29uZmlnKiwgbWlicy9NYWtlZmlsZS5pbik6IGVuYWJsZSBtaWJzLyBtYWtlIGluc3RhbGwuCiAgIAoxOTk3LTAzLTE0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBtaWJzLzogcmZjMTI3MS50eHQsIHNubXB2Mi50eHQsIHVjZC1zbm1wLnR4dDoKCiAgIC0gKG1pYnMve3JmYzEyNzEsc25tcHYyLHVjZC1zbm1wfS50eHQpOiBOZXcgbWlicyBkaXJlY3RvcnkgZm9yIHN1Yi1taWJzLgogICAKMTk5Ny0wMy0xNCAwMDo0NyAgd2hhcmRha2UKCiAgICogbWliLnR4dDoKCiAgIC0gKG1pYi50eHQpOiBzdHJlYW1lZCBkb3duLgogICAKMTk5Ny0wMy0xNCAwMDo0NiAgd2hhcmRha2UKCiAgICogdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gbWlicy8uCiAgIAoxOTk3LTAzLTE0IDAwOjM4ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgZWNlLW1pYi5kZWYsIG1pYi50eHQsIG1pYklJLnR4dAosIHVjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCwgbWliLnR4dCwgTWFrZWZpbGUuaW4pOiBEb24ndCBidWlsZCBtaWIgZmlsZXMgYW55bW9yZS4KICAgCjE5OTctMDMtMTMgMDg6NDUgIHdoYXJkYWtlCgogICAqIG1ha2V0YXJnZXQsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBuZXRzdGF0LjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAtIEEgbGFyZ2UgbnVtYmVyIG9mIHByb2JsZW1zIHdpdGggdGhlIExpbnV4IHBvcnQKICAgICAtIFNvbWUgcHJvYmxlbXMgd2l0aCBOZXRCU0QgMS4yQywgYnV0IGl0J3Mgc3RpbGwgbm90IHBlcmZlY3QKICAgICAtIE1vcmUgKHN5bWJvbGljKSBkZWJ1ZyBvdXRwdXQgZnJvbSBzbm1wZCwgd2hlbiB1c2luZyAtVi4gLWQgaW1wbGllcyAtVgogICAgICAgU2hvd3MgeW91IHZhcmlhYmxlIHJlcXVlc3RlZCBhbmQgdmFsdWUgcmV0dXJuZWQKICAgICAtIFJldHVybiBpcFJvdXRlTWFzayB1bmRlciBTb2xhcmlzCiAgICAgLSBzbm1wbmV0c3RhdCAtciBzaG93cyBub24tc3RhbmRhcmQgbmV0bWFza3MKICAgICAtIHNubXBuZXRzdGF0IC1vIChuZXcpIHNob3dzIGludGVyZmFjZSBvY3RldHMsIHdpdGhvdXQgZW5xdWlyaW5nIGZvciBtdHUKICAgICAgIGFuZCBvdGhlciB2YXJpYWJsZXMgbm90IHByZXNlbnQgZm9yIGEgQ2lzY28gRnJhbWUtUmVsYXkgdmlydHVhbCBjaXJjdWl0CiAgICAgICBpbnRlcmZhY2UKICAgICAtIHNubXBuZXRzdGF0IHRjcC91ZHAgcHJpbnQtb3V0IGhhZCBudG9ocy9odG9ucyBpbiB3cm9uZyBwbGFjZXMgZm9yIHBvcnQKICAgICAgIG51bWJlcnMgKHNob3dzIHVwIG9uIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlcykKICAgICAtIGFkZHMgYSBtYWtldGFyZ2V0IHNjcmlwdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhcmFsbGVsIHN5bWxpbmtlZAogICAgICAgc291cmNlIGRpcmVjdG9yeS4gVXNlZnVsIGlmIHlvdXIgbWFrZSBkb2VzIG5vdCBzdXBwb3J0IFZQQVRICiAgIAoxOTk3LTAzLTEzIDA4OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiBmaXggcGF0aCB0byBhbGFybS5oLgogICAKMTk5Ny0wMy0xMyAwNzoxNyAgd2hhcmRha2UKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvKi9NYWtlZmlsZS5pbik6IGRlcGVuZCBwcm9ibGVtcyBmaXguCiAgIAoxOTk3LTAzLTEzIDA3OjEwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiByZW1vdmUgZHVwbGljYXRlIGdldGhvc3RuYW1lIGNoZWNrLgogICAKMTk5Ny0wMy0xMyAwNzowNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgcnVsZSBmaXhlcyBhcyB3ZWxsLgogICAKMTk5Ny0wMy0xMyAwNjo0NSAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IE5ldyBtYWtlIGRlcGVuZCBydWxlcyB0byBzZXBlcmF0ZSBzeXN0ZW0vbm9uIGRlcGVuZGVudCBzdHVmZi4KICAgCjE5OTctMDMtMTMgMDY6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBzeXN0ZW0gZGVwZW5kZW50IG1vZHVsZXMuCiAgIAoxOTk3LTAzLTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywKICAgYWNsX3ZhcnMuYzoKCiAgIC0gKHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywgYWNsX3ZhcnMuYyk6IGRvbid0IGluY2x1ZGUgc25tcHYyX3ZhcnMuaC4KICAgCjE5OTctMDMtMTMgMDY6MzUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5jLCBtZW1vcnkuYywgbWVtb3J5Lmg6CgogICAtIChocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBtaW5vciBwcm9ibGVtcy4KICAgCjE5OTctMDMtMTMgMDU6NDQgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFjbC5jb25mLCBrZXJuZWxfc3Vub3M1LmMKLCBrZXJuZWxfc3Vub3M1LmgsIHJvdXRlX3dyaXRlLmMsCiAgIHNubXBfdmFyX3JvdXRlLmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5bY2hdKTogbW92ZWQgdG8gbWliZ3JvdXAvLgogICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jKTogZGVsZXRlIGZyb20gYWdlbnQgZGlyLgogICAKMTk5Ny0wMy0xMyAwNTozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWNsX3ZhcnMuYywgYWxhcm0uYywKICAgYWxhcm0uaCwgY29tbW9uX2hlYWRlci5oLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYwosIGV2ZW50LmgsIHBhcnR5X3ZhcnMuYywgc25tcF92YXJzLmMsCiAgIHNubXBkLmMsIHZpZXdfdmFycy5jLCBtaWJncm91cC9hY2xfdmFycy5jLAogICBtaWJncm91cC9hY2xfdmFycy5oLCBtaWJncm91cC9hbGFybS5jLCBtaWJncm91cC9hbGFybS5oCiwgbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIG1pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgbWliZ3JvdXAvZXZlbnQuYywgbWliZ3JvdXAvZXZlbnQuaCwKICAgbWliZ3JvdXAvcGFydHlfdmFycy5jLCBtaWJncm91cC9wYXJ0eV92YXJzLmgsCiAgIG1pYmdyb3VwL3NubXB2Ml9zdWJ0cmVlcy5oLCBtaWJncm91cC9zbm1wdjJfdmFycy5oLAogICBtaWJncm91cC92aWV3X3ZhcnMuYywgbWliZ3JvdXAvdmlld192YXJzLmg6CgogICAtIChhZ2VudC8qLCBtaWJncm91cC8qKTogbW92ZWQgYWxhcm0sIGNvbnRleHQsIHZpZXdzLCBldmVudCwgcGFydHksCiAgICAgYW5kIGFjbCB2YXJpYWJsZSBncm91cHMgdG8gbWliZ3JvdXAvLgogICAKMTk5Ny0wMy0xMyAwMToxNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oOgoKICAgLSAoZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oKTogUmVtb3ZlZCBmaWxlLgogICAKMTk5Ny0wMy0xMyAwMDozNyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYzoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KICAgCjE5OTctMDMtMTMgMDA6MzIgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB3YWxrLmM6CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCiAgIAoxOTk3LTAzLTEyIDA4OjE1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmV0dXJucyBmcm9tIGluZXRfYWRkciBhcmUgaW5fYWRkcl90ICh1X2ludCkgbm90IHVfbG9uZy4KICAgCjE5OTctMDMtMTIgMDY6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IGRvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTIgMDY6NDggIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIHVwZGF0ZS4KICAgCjE5OTctMDMtMTIgMDY6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oCiwgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgc25tcGQuYywgc25tcF9hZ2VudC5jLCByb3V0ZV93cml0ZS5bY2hdLAogICAgIHZhcl9yb3V0ZS5bY2hdLCBpcC5bY2hdLCBzbm1wLltjaF0gLT4gc25tcF9taWIuW2NoXSk6CiAgICAgLSBNb3ZlZCBzbm1wIG1pYiBtb2R1bGUgLT4gc25tcF9taWIgZm9yIG5hbWluZyBjb25mbGljdHMgd2l0aCBzbm1wbGliLgogICAgIC0gTW92ZWQgc25tcF92YXJfcm91dGUuYyAtPiBtaWJncm91cC92YXJfcm91dGUuYwogICAgIC0gTW92ZWQgd3JpdGVfcm91dGUuYyAtPiBtaWJncm91cC93cml0ZV9yb3V0ZS5jCiAgIAoxOTk3LTAzLTEyIDAwOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXBfbWliLmMsIHNubXBfbWliLmg6CgogICAtIChtaWJncm91cC9zbm1wLltoY10gLT4gbWliZ3JvdXAvc25tcF9taWIuW2hjXSk6IE1vdmVkIGR1ZSB0byBuYW1lIGNsYXNoZXMuCiAgIAoxOTk3LTAzLTExIDA4OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIHNubXBsaWIvbWliLmM6CgogICAtIChtaWJncm91cC8qKToKICAgICAtIHJlbW92ZSB0cmFpbGluZyA7cyBvbiBidW5jaGVzIG9mIGZ1bmN0aW9ucy4KICAgICAtIG1ha2UgZXZlcnl0aGluZyBidXQgaW50ZXJmYWNlcy5jIGNvbXBpbGUgb24gaXJpeDYuMy4KICAgLSAoY29uZmlnKixzeXN0ZW0uYyk6IHVzZSB1bmFtZSBhbmQgZ2V0aG9zdG5hbWUgaWYgYXZhaWxhYmxlLgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IERvbid0IGNoZWNrIF9LRVJORUwgaWYgaWZuZXQuaWZfbXR1IGFscmVhZHkgd29ya3MuCiAgIAoxOTk3LTAzLTExIDAwOjA0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IGZyZWVic2QyIHBhdGNoLgogICAKMTk5Ny0wMy0xMCAwODoyOCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBzcGFjZSBwcm90ZWN0IG1vZHVsZXMgd2hlbiBjaGVja2luZyBmb3Igd2l0aCBncmVwLgogICAKMTk5Ny0wMy0xMCAwNzo1NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBOZXcgY29uZmlndXJlIG9wdGlvbjogIC0td2l0aC1vdXQtbWliLW1vZHVsZXM9Imxpc3QiLgogICAKMTk5Ny0wMy0wNyAwNzoxMSAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogY29tbWVudCBvdXQgZW5kIG9mICNlbmRpZi4KICAgCjE5OTctMDMtMDcgMDc6MDkgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBtYWtlIG5ldyBjb25maWd1cmUgb3B0aW9ucyByZXNwZWN0ICQoc3JjZGlyKS4KICAgCjE5OTctMDMtMDcgMDY6MDIgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgogICAKMTk5Ny0wMy0wNyAwNjowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5oLCBkaXNrLmgsIGVycm9ybWliLmgsCiAgIGV4dGVuc2libGUuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIHByb2MuaCwgc25tcC5oLAogICBzeXN0ZW0uaCwgdGNwLmgsIHVkcC5oLCB2ZXJzaW9uaW5mby5oLAogICB3b21iYXQuaDoKCiAgIC0gKG1pYmdyb3VwLyopOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCiAgIAoxOTk3LTAzLTA3IDA1OjAxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTMgKQogICAKMTk5Ny0wMy0wNyAwNDo1MSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtIChzbm1wbGliL3NubXAuYyk6IHJlbW92ZSBzZWNvbmQgY3R5cGUuaCBpbmNsdWRlLgogICAKMTk5Ny0wMy0wNyAwNDo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogaWZkZWYgYSBmZXcgaGVhZGVycyBmb3IgY29ycmVjdCBtYWtlIGRlcGVuZC4KICAgCjE5OTctMDMtMDcgMDQ6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAobWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOiBkZXBlbmQuCiAgIAoxOTk3LTAzLTA3IDA0OjQ4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogcmVtb3ZlIGV4dHByb3RvLmggaW5jbHVkZS4KICAgCjE5OTctMDMtMDcgMDQ6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgZXh0ZW5zaWJsZS8gcmVtb3Zlcy4KICAgCjE5OTctMDMtMDcgMDQ6NDYgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IEZpeCBzZWRzY3JpcHQgZ2VuZXJhdGlvbi4gIHNpZ2guCiAgIAoxOTk3LTAzLTA3IDA0OjQ0ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoxOTk3LTAzLTA3IDA0OjQwICB3aGFyZGFrZQoKICAgKiByZW1vdmUtZmlsZXM6CgogICAtIChyZW1vdmUtZmlsZXMpOiBhZGQgbWFrZWRlcGVuZC5pbgogICAKMTk5Ny0wMy0wNyAwNDozOSAgd2hhcmRha2UKCiAgICogbWFrZWRlcGVuZC5pbjoKCiAgIC0gKG1ha2VkZXBlbmQuaW4pOiBuZXcgbWFrZSBkZXBlbmQgc2NyaXB0CiAgIAoxOTk3LTAzLTA3IDAyOjQyICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBnZW5lcmF0ZSBhIG1pYl9tb2R1bGVfY29uZmlnLmggd2l0aCBkZWZpbmVzIG9mIHdoYXRzIGJlaW5nIHVzZWQuCiAgIAoxOTk3LTAzLTA3IDAxOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIC0gKG1pYmdyb3VwL3N0cnVjdC5oKTogbW92ZWQgdG8gaGVyZS4KICAgCjE5OTctMDMtMDcgMDE6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5jLCBocHV4Lmg6CgogICAtIChocHV4LltjaF0pOiBBZGRlZCBocHV4IHNwZWNpZmljIGZpbGVzIGZyb20gZXh0ZW5zaWJsZSBkaXIuCiAgIAoxOTk3LTAzLTA3IDAxOjA3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAobWlibW9kdWxlL3ZlcnNpb250YWcpOiBtb3ZlZCBpbnRvIHBsYWNlIGZyb20gZXh0ZW5zaWJsZS8KICAgCjE5OTctMDMtMDcgMDA6NTggIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvZGlzay5oCiwgbWliZ3JvdXAvZXJyb3JtaWIuYywgbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBtaWJncm91cC9leHRlbnNpYmxlLmgsCiAgIG1pYmdyb3VwL2lwLmMsIG1pYmdyb3VwL2lwLmgsIG1pYmdyb3VwL2xvYWRhdmUuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5oLCBtaWJncm91cC9wYXNzLmMsIG1pYmdyb3VwL3Bhc3MuaAosIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oLAogICBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zbm1wLmMsIG1pYmdyb3VwL3N5c3RlbS5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHNubXBfdmFycy5oLCBtaWJncm91cC8qKTogc3RyaWN0LXByb3RvdHlwaW5nIGFuZCBjb25maWdfcmVxdWlyZSgpcy4KICAgCjE5OTctMDMtMDcgMDA6MDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1vcmUgbm9uLW1pYmdyb3VwIHNwZWNpZmljIGNhbGxzIGFuZCBoZWFkZXJzLgogICAKMTk5Ny0wMy0wNyAwMDowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBtaWJncm91cC9NYWtlZmlsZS5pbiwgbWliZ3JvdXAvZGlzay5jLAogICBtaWJncm91cC9kaXNrLmgsIG1pYmdyb3VwL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL2Vycm9ybWliLmgsIG1pYmdyb3VwL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC9sb2FkYXZlLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuaCwgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL21lbW9yeS5oLCBtaWJncm91cC9taWJkZWZzLmgsCiAgIG1pYmdyb3VwL21pYmluY2wuaCwgbWliZ3JvdXAvcGFzcy5jLCBtaWJncm91cC9wYXNzLmgKLCBtaWJncm91cC9wcm9jLmMsIG1pYmdyb3VwL3Byb2MuaCwKICAgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3N5c3RlbS5oLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwKICAgTWFrZWZpbGUuaW46CgogICAtIChleHRlbnNpYmxlLyogLT4gbWliZ3JvdXAvKik6IG1vdmVkIGV4dGVuc2libGUgc3R1ZmYgdG8gbWliIG1vZHVsZXMuCiAgIAoxOTk3LTAzLTA1IDA3OjI5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogWWVwLiBJdCB3YXMgd3JvbmcuICBUZXN0ZWQgYW5kIHdvcmtzIG5vdy4KICAgCjE5OTctMDMtMDUgMDc6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgaW4gc25tcF9wYXJzZS4gIFBvc3NpYmx5IHdyb25nLgogICAKMTk5Ny0wMy0wNSAwNzoxMyAgd2hhcmRha2UKCiAgICogYWdlbnQvYWNsX3ZhcnMuYzoKCiAgIC0gKGFjbF92YXJzLmMpOiBpbmNvcnJlY3RseSBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgZm9yIHdyaXRlX2FjbCgpLgogICAKMTk5Ny0wMy0wNSAwNjowNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IGFjbC5jLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYwosIGFzbjEuaCwgY29udGV4dC5jLCBjb250ZXh0LmgsCiAgIGNvbnRleHRfcGFyc2UuYywgbWQ1LmMsIG1kNS5oLCBtaWIuYywKICAgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgsIHBhcnR5LmMsIHBhcnR5LmgKLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLAogICBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHN5c3RlbS5oCiwgdmlldy5jLCB2aWV3Lmg6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDY6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjJfdmFycy5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwNTo1OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L2FjbF92YXJzLmMsCiAgIGFnZW50L2FsYXJtLmMsIGFnZW50L2FsYXJtLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L2NvbnRleHRfdmFycy5jLCBhZ2VudC9ldmVudC5jLAogICBhZ2VudC9ldmVudC5oLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvcGFydHlfdmFycy5jCiwgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBfdmFyc19ldmVudC5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L3ZpZXdfdmFycy5jOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDAyOjM3ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBDb250cmlidXRlciBuYW1lIGFkZGl0aW9uLgogICAKMTk5Ny0wMy0wNSAwMjoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuaDoKCiAgIGZpbGUgc25tcGQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KICAgCjE5OTctMDMtMDUgMDI6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgZmlsZSBrZXJuZWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KICAgCjE5OTctMDMtMDUgMDI6MTcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEVsd3luIEIgRGF2aWVzOgogICAgIC0gRml4IGEgUERVIGNsb25pbmcgYnVnLgogICAKMTk5Ny0wMy0wNSAwMTowNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKG1pYmdyb3VwLy5jdnNpZ25vcmUpOiBuZXcgdG8gaWdub3JlIGNyZWF0ZWQgLmggZmlsZXMuCiAgIAoxOTk3LTAzLTA1IDAxOjAzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogcmVtb3ZlZCBzeXN0ZW0gbmxpc3QgKHVudXNlZCkuCiAgIAoxOTk3LTAzLTA1IDAwOjQ4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBBZGRlZCAubyBmaWxlIGxpc3QgdG8gYWdlbnQvTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KICAgICAtIG5ldyBmaWxlcyBnZW5lcmF0ZWQgYnkgY29uZmlndXJlOgogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmg6ICBBIGxpc3Qgb2YgbWliIC5oIGZpbGVzIGZvciBzbm1wX3ZhcnMuaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgbW9kdWxlICptdXN0KiBoYXZlIGEgLmggZmlsZSkKICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbml0cy5oOiBBIGxpc3Qgb2YgaW5pdF93b21iYXQoKSB0eXBlIGZ1bmN0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25seSBwcmVzZW50IGlmIGV4aXN0IGluIHdvbWJhdC5jKS4KICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9sb2Fkcy5oOiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgbmV3IG1hY3JvIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1pYi5oIGZpbGVzIGNhbGxlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19sb2FkX21pYigpLCB3aGljaCBzaW1wbGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvYWRpbmcgb2YgdGhlIG1pYiBzZWN0aW9ucy4KICAgCjE5OTctMDMtMDQgMDY6NDQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChjb25maWcqLCBtaWJncm91cC9NYWtlZmlsZS5pbik6CiAgICAgLSBtaWJncm91cCBjb21waWxlIGxpc3QgaXMgYnVpbGQgYnkgY29uZmlndXJlIGFuZCBjYW4gYmUgYXVnbWVudGVkCiAgICAgICBieSB0aGUgLS13aXRoLW1pYi1tb2R1bGVzPSJsaXN0IG9mIG1vZHVsZXMiIGNvbW1hbmQgbGluZSB0byBjb25maWd1cmUuCiAgIAoxOTk3LTAyLTE3IDA3OjExICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTIgKQogICAKMTk5Ny0wMi0xNyAwNjozMiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUmVtb3ZlIE1BWF9OQU1FX0xFTkdUSCByZXF1aXJlbWVudHMuCiAgIAoxOTk3LTAyLTE3IDA2OjMxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pY21wLmM6CgogICAtIChpY21wLmMpOiBkb24ndCB1c2UgcmV0IHZhcmlhYmxlLCBzaW5jZSBpdCdzIG5vdCBkZWZpbmVkLgogICAKMTk5Ny0wMi0xNyAwNjozMCAgd2hhcmRha2UKCiAgICogYWdlbnQvZXZlbnQuYzoKCiAgIC0gKGV2ZW50LmMpOiBXYXMgcGFzc2luZyBhbiBpbnQgdG8gYmNvcHkgaW5zdGVhZCBvZiAmaW50LgogICAKMTk5Ny0wMi0xNyAwNjozMCAgd2hhcmRha2UKCiAgICogYWdlbnQvYWxhcm0uYzoKCiAgIC0gKGFsYXJtLmMpOiB0eXBlZGVmIGZvciBnZXRTdGF0UHRyKCkuCiAgIAoxOTk3LTAyLTE3IDA1OjUzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6ICBNYWtlIGRlcGVuZC4KICAgCjE5OTctMDItMTcgMDU6NDcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byByZW1vdmUKICAgICBBTlNJIHNwZWNpZmljIHJlcXVpcmVtZW50cy4KICAgCjE5OTctMDItMTcgMDU6NDYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtIChhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlKTogQWRkZWQuCiAgIAoxOTk3LTAyLTE3IDA1OjM4ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SRUFETUUKLCBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlX3N1YnRyZWVzLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvc25tcC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3NubXB2Ml9zdWJ0cmVlcy5oCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGFnZW50L3NubXBfdmFycywgYWdlbnQvbWliZ3JvdXApOiBEYXZlIFNoaWVsZCBzcGxpdCB1cCB0aGUKICAgICBzbm1wX3ZhcnMuYyBhbmQgcmVsYXRlZCBmaWxlcyBpbnRvIHBpZWNlcyBmb3IgZWFzaWVyIG1hbmFnZW1lbnQuCiAgICAgVGhlIHJlc3VsdHMgb2YgaGlzIHdvcmsgYXJlIGluIHRoZSBuZXcgYWdlbnQvbWliZ3JvdXAgZGlyZWN0b3J5LgogICAKMTk5Ny0wMi0xMSAwODowMCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFJlc3Qgb2YgUGhpbGlwJ3MgcGF0Y2ggdG8gZml4IHNyY2RpciBwcm9ibGVtcyAoc2ggdmFycykuCiAgIAoxOTk3LTAyLTExIDA3OjQ0ICB3aGFyZGFrZQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBmaXggc3JjZGlyIHByb2JsZW1zLgogICAKMTk5Ny0wMi0xMSAwNzo0MiAgd2hhcmRha2UKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBkZXNjZW5kIHdoZW4gbWFrZSBjbGVhbmluZy4KICAgCjE5OTctMDItMTEgMDU6MTQgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMSApCiAgIAoxOTk3LTAyLTExIDA1OjEzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmUgbm9uLXN0YXRpYyBtZDVkaWdlc3QgcHJvdG90eXBlLgogICAKMTk5Ny0wMi0xMSAwNToxMSAgd2hhcmRha2UKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwgb3YvTWFrZWZpbGUuaW4KOgoKICAgLSAoe2xvY2FsLG1hbixvdn0vTWFrZWZpbGUuaW4pOiBSZW1vdmUgc3BhY2VzIGluIGZyb250IG9mIHRhYnMuCiAgIAoxOTk3LTAyLTExIDA1OjEwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5saW51eC5oKTogRml4ICNpZmRlZi4KICAgCjE5OTctMDItMTEgMDQ6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoYWxsIC5jIHdpdGggbWFpbigpLCBzbm1wbGliLyopOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAtIE1ha2UgYmV0dGVyIHN1cHBvcnQgZm9yIHNoYXJlZCBsaWIgcG9zc2liaWxpdGllcy4KICAgCjE5OTctMDItMTEgMDQ6MTIgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZSBwZW9wbGUgc3VwcGx5aW5nIHBhdGNoZXMgbGlzdC4KICAgCjE5OTctMDItMTEgMDQ6MTAgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCiwgbWFuL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCpNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgIC0gRml4IGFsbCBNYWtlZmlsZS5pbidzIHRvIHN1cHBvcnQgYSBkaWZmZXJlbnQgc3JjIGRpci4KICAgCjE5OTctMDItMTEgMDM6NTQgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgRml4IGhwdXggc3BlY2lmaWMgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTExIDAzOjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5saW51eC5oKTogUmVtb3ZlZCBub24tbGludXggc3BlY2lmaWMgc3R1ZmYuCiAgIAoxOTk3LTAyLTExIDAzOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLAogICBzbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMubGludXguaCk6IFBhdGNoIGZyb20gSmVubmlmZXIgQnJheToKICAgICAtIEdldCBhZ2VudCB3b3JraW5nIG9uIGxpbnV4LgogICAKMTk5Ny0wMi0xMCAwMDo1NCAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBXaG9vcHMuCiAgIAoxOTk3LTAyLTEwIDAwOjUxICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zICkKICAgCjE5OTctMDItMTAgMDA6NTAgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgMy4xLjMKICAgCjE5OTctMDItMTAgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUmVtb3ZlIG1hbGxvYyBwcm90b3R5cGUsIG5vdyBpbiBzdGRsaWIuaC4KICAgCjE5OTctMDItMTAgMDA6MjIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERhdmUgU2hpZWxkcycgYWRkaXRpb25zOiAgZmluZGluZyBtb3JlIGluZm8uCiAgIAoxOTk3LTAyLTA1IDA4OjQxICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTQgKQogICAKMTk5Ny0wMi0wNSAwODoyOSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdGNsIHN0dWZmLgogICAKMTk5Ny0wMi0wNSAwODoyNCAgd2hhcmRha2UKCiAgICogTkVXUywgbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKE5FV1MpOiByZW1vdmVkIHRjbCBzdHVmZi4KICAgCjE5OTctMDItMDUgMDg6MjAgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogQ2hhbmdlIHN1YmplY3QgbGluZSB0byBzaG9ydGVuIGFuZCBmb3JjZSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoxOTk3LTAyLTA1IDA4OjEzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBubGlzdCBwcm9ibGVtcy4KICAgCjE5OTctMDItMDUgMDg6MDkgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9ncm91cHZhcnMuaCwKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wIG1pYiBncm91cCBjbGVhbnVwcy4KICAgICAtIHRyYXAgZ2VuZXJhdGlvbiBjbGVhbnVwcy4KICAgICAtIGFkZGVkIG1hbiBlbnRyaWVzIGZvciB0cmFwIGdlbmVyYXRpb24uCiAgICAgLSBpbXByb3ZlZCBhZ2VudCBkZWJ1Z2dpbmcgb3V0cHV0IHdpdGggYWdlbnQncyAtZCBmbGFnLgogICAKMTk5Ny0wMi0wNSAwODowNyAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFB1dCAvZGV2L2tzeW1zIGFoZWFkIG9mIC9rZXJuZWwvdW5peC4KICAgCjE5OTctMDItMDUgMDc6MzMgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogbWlzYyByZXF1ZXN0ZWQgYWRkaXRpb25zLgogICAKMTk5Ny0wMi0wNSAwNzozMyAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSB1cGRhdGVkIGFyY2hpdGVjdHVyZSBsaXN0cy4KICAgCjE5OTctMDItMDQgMDA6NDEgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEFkZGVkIFRPQyBhbmQgYXV0b3Igbm90ZXMgOy0pLgogICAKMTk5Ny0wMi0wNCAwMDozNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBTaW1vbjogY29tbWVudCAjaWZkZWYgZW5kaW5ncyBmb3IgQU5TSSBjb21wbGllcnMuCiAgIAoxOTk3LTAyLTA0IDAwOjM2ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRml4IGhwdXggcHJvYmxlbXMsICphZ2FpbiouCiAgIAoxOTk3LTAyLTA0IDAwOjM1ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IEFkZGVkIHN1Z2dlc3Rpb25zIGZyb20gdWNkLXNubXAtY29kZXJzLgogICAKMTk5Ny0wMi0wNCAwMDozNSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSdzIGxhdGVzdCByZXZpc2lvbi4KICAgCjE5OTctMDItMDMgMDQ6NTUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMyApCiAgIAoxOTk3LTAyLTAzIDA0OjUzICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IG1vdmUgY29uZmlnLmNhY2hlIHRvIGVuZCBvZiBtZXNzYWdlLgogICAKMTk5Ny0wMi0wMyAwNDozMyAgd2hhcmRha2UKCiAgICogTkVXUywgUkVBRE1FLCBUT0RPOgoKICAgLSAoUkVBRE1FLCBORVdTLCBUT0RPKTogVXBkYXRlIGZvciAzLjEuMy4KICAgCjE5OTctMDItMDMgMDQ6MTUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6CiAgICAgLSBhZGRlZCBGQVEgcG9pbnRlci4KICAgICAtIERhdmUncyBFbmdsaXNoIHBvaW50ZXJzIChpZSwgaGUgcHJvb2ZlZCBpdCBhbmQgSSwgdWgsIGRvbid0Li4uKS4KICAgICAtIHN3aXRjaCBmdHAgbWlycm9yLgogICAgIC0gYnVnLXJlcG9ydCBzY3JpcHQgbWVudGlvbmVkLgogICAgIC0gSSAtPiBXZSwgbWUgLT4gdXMuLi4KICAgCjE5OTctMDItMDMgMDM6NTEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHJlbW92ZSBwcm9qZWN0IGhpc3RvcnkuCiAgIAoxOTk3LTAyLTAzIDAzOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogYWRkIHNvbWUgaXJpeCBhcHByb3ByaWF0ZSBpbmNsdWRlcy4KICAgCjE5OTctMDItMDMgMDM6NDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogdHlwbzogIG5lZWRzIGEgc3BhY2UgYmV0d2VlbiAnc3RhdGljJyBhbmQgJ3N0cnVjdCcuCiAgIAoxOTk3LTAyLTAzIDAyOjUwICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKToKICAgICAtIENoZWNrIGZvciBpcml4IDYuMiBoZWFkZXJzLgogICAgIC0gQ2hlY2sgaWYgX0tFUk5FTCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBpcml4IGFuZCBpZm5ldCB1c2FnZS4KICAgICAtIFVzZSB0aGUgZm91bmQgVU5BTUUgcHJvZ3JhbSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHdlIGhhdmUgaXQuCiAgIAoxOTk3LTAyLTAzIDAxOjQ4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6ICBVc2UgQ0FOX1VTRV9TWVNDVEwgaW5zdGVhZCBvZiBic2RsaWtlLgogICAKMTk5Ny0wMi0wMyAwMTo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQKICAgICAtIE1hcmsgc3R1ZmYgZm9yIGxhdGVyIGNoYW5nZXMuCiAgIAoxOTk3LTAyLTAzIDAxOjQ1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSBDaGVjayBmb3Igd2hvYW1pLCBsb2duYW1lLgogICAgIC0gRG9uJ3QgcGFzcyBudWxsIGFyZ3MgdG8ga3NoLgogICAKMTk5Ny0wMi0wMyAwMTowMyAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjb21tZW50IG91dCBwb3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtIGxpbmVzLgogICAKMTk5Ny0wMi0wMyAwMTowMiAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZG9tYWluIG5hbWUgZml4IGFuZCBlZGl0b3IgYm9tYiBvdXQuCiAgIAoxOTk3LTAxLTMxIDAyOjAzICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyB1cGRhdGUKICAgCjE5OTctMDEtMzEgMDE6NTkgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBjaGFuZ2VkIGFyY2ggdG8gaHBwYSBhbmQgbWFrZSBzdXJlIC9iaW4va3NoIGV4aXN0cy4KICAgCjE5OTctMDEtMzEgMDE6NDkgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXJlIG9mZiBrc2ggaWYgaHB1eCAmJiBzaC4KICAgCjE5OTctMDEtMzEgMDE6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjoKICAgICAtIENoYW5nZSBzb21lIHN5c3RlbSBzcGVjaWZpYyBpZmRlZnMgdG8gQ0FOX1VTRV9TWVNDVEwuCiAgICAgLSBGaXggY29tcGxpYXRpb24gZXJyb3JzIG9uIGJzZGkyLgogICAgIC0gRml4IHJvdXRpbmcgdGFibGVzIGZvciBzaW1pbGFyLgogICAKMTk5Ny0wMS0zMSAwMDo1NyAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGNvbmZpZy5oLmluLAogICBhY2NvbmZpZy5oOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBrc3RhdC5oIGFuZCBpZiBzeXNjdGwgY2FuIHJlYWQgdGhlIGJvb3R0aW1lLgogICAKMTk5Ny0wMS0yOSAwNDowOCAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgIC0gY2hhbmdlIHRvIGFkZHJlc3MgKGJhY2spIHRvIHVjZC1zbm1wLWNvZGVycy4KICAgICAtIEFkZCBhIHRyYXAgb24gc2lnbmFscyB0byByZW1vdmUgdG1wIGZpbGVzLgogICAKMTk5Ny0wMS0yOSAwMzo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAoa2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggdmFyaW91cyB3YXJuaW5ncy9lcnJvcnMuCiAgICAgLSBJbXBsZW1lbnQgcmVhbCB0cmFwcy4KICAgCjE5OTctMDEtMjkgMDM6MTEgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogdXBkYXRlCiAgIAoxOTk3LTAxLTI5IDAzOjExICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiByZXZpc2lvbiBvbmUhCiAgIAoxOTk3LTAxLTI5IDAzOjEwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBOZXcgcHMgb3B0aW9ucyB0byBjaGVjayBmb3IuCiAgIAoxOTk3LTAxLTI5IDAzOjA5ICB3aGFyZGFrZQoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IEZpeCBjaGVja19zdHJ1Y3RfZm9yIHRvIGRlZmluZSB0aGluZ3MgY29ycmVjdGx5LgogICAKMTk5Ny0wMS0yOSAwMzowOCAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgLnNvZnR3YXJlLmRiLnNoCiAgIAoxOTk3LTAxLTI5IDAzOjA3ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6CiAgICAtIFNOTVBCTE9DSyA9ICFTTk1QQkxPQ0sKICAgCjE5OTctMDEtMjkgMDM6MDcgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KToKICAgIC0gQWx3YXlzIHVzZSBtdWx0aXBhcnQ6IHZlcnNpb24gaW5mbyBhbmQgY29uZmlnLmNhY2hlIGFyZSBvbmUuCiAgICAtIHJlLWFycmFuZ2VkIGEgYml0LgogICAgLSBBZGRlZCBpbnRyb2R1Y3Rpb24uCiAgICAtIEd1ZXNzIGF0IGRvbWFpbiBuYW1lIGlmIHBvc3NpYmxlLgogICAKMTk5Ny0wMS0yOSAwMTo0NyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIGJ1ZyByZXBvcnRpbmcgc2NyaXB0IGFkZAogICAKMTk5Ny0wMS0yMSAwMDoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKToKICAgICAtIFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPgogICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgaW50ZXJmYWNlIG5hbWVzID4gMTAgcHJvcGVybHkuCiAgIAoxOTk3LTAxLTIwIDIzOjM0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtIChzbm1wX2NsaWVudC5oKTogcmVtb3ZlIHNlY29uZCAod3JvbmcpIGZ1bmN0aW9uIHByb3RvdHlwZS4KICAgCjE5OTctMDEtMjAgMjM6MzMgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcmVtb3ZlIHNlY29uZCBjaGFyIGRlZmluaXRpb24uCiAgIAoxOTk3LTAxLTIwIDA3OjU5ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTEgKQogICAKMTk5Ny0wMS0yMCAwNzo0MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9jbGllbnQuW2NoXSk6CiAgICAgLSBQYXRjaCBmcm9tIFBhdHJpY2UgVkFOQUNLRVIgPHZhbmFja2VyQHdvcmxkbmV0LmZyPjoKICAgICAgIC0gZml4IHJlcXVlc3QgZGVsZXRpb25zIGluIHNubXBfcmVhZCgpLgogICAgICAgLSBhZGRlZCByZXR1cm4gYXJndW1lbnQgdG8gc25tcF9hZGRfbnVsbF92YXIoKS4KICAgCjE5OTctMDEtMjAgMDY6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgIC0gYWRkIGJzZGkgdG8gc29tZSAjaWZkZWZzLgogICAKMTk5Ny0wMS0yMCAwNjozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogUmVtb3ZlIEFOU0kgY3BwICNlbGlmJ3MuCiAgIAoxOTk3LTAxLTIwIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQXV0b2hlYWRlciBpcyBkdW1iOiAgUHV0IG1hY3JvIGRlZmluZXMgYmVsb3dlIEBCT1RUT01AIHN5bWJvbC4KICAgCjE5OTctMDEtMjAgMDY6MjIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAtIChzbm1wX2NsaWVudC5jKTogV2FpdCAxMjAgc2Vjb25kcyBiZWZvcmUgcmV0dXJuaW5nLgogICAKMTk5Ny0wMS0yMCAwNjowOCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wdHJhcGQuOCwgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZpZXcuaDoKCiAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgIC0gaXBOZXRUb01lZGlhLgogICAKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgogICAKMTk5Ny0wMS0yMCAwNjowNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hbGFybS5oLCBhZ2VudC9ldmVudC5jLAogICBhZ2VudC9ldmVudC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2dyb3VwdmFycy5oLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCjoKCiAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgIC0gaXBOZXRUb01lZGlhLgogICAKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgogICAKMTk5Ny0wMS0xNyAwMjo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOgogICAgIC0gVXNhZ2UoKSB1cGRhdGUgYW5kIHZlcnNpb24gcHJpbnRvdXQgdXBkYXRlLgogICAKMTk5Ny0wMS0xNyAwMjo1MSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMsIGV4dGVuc2libGUuYyk6CiAgICAgLSBOZXcgYXJnIC1jIEZJTEU6ICAJICAgUmVhZCBGSUxFIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGFzIHdlbGwuCiAgICAgLSBOZXcgYXJnIC1DOiAgICAgICAJICAgRG9uJ3QgcmVhZCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgICAgLSBOZXcgZW52IFNOTVBDT05GUEFUSDogIFJlYWQgc25tcGR7LC5sb2NhbH0uY29uZiBmaWxlcyBpbjogc2VwZXJhdGVkIHBhdGguCiAgIAoxOTk3LTAxLTE0IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUUsIFRPRE86CgogICAtIChQT1JUSU5HLCBSRUFETUUsIFRPRE8pOiAgQWRkZWQgdWNkLXNubXAtY29kZXJzIGFzIGRlZmF1bHQgbWFpbCBhZGRyZXNzLgogICAKMTk5Ny0wMS0wOSAyMzo0NiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUmVtb3ZlIGJyb2tlbiBGRF9TRVQgY29kZS4KICAgCjE5OTctMDEtMDkgMjM6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciAvZGV2L2tzeW1zIGZvciBzb2xhcmlzIGtlcm5lbC4KICAgCjE5OTctMDEtMDkgMjM6NDMgIHdoYXJkYWtlCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogIFVwZGF0ZSBmb3IgOTcuCiAgIAoxOTk2LTEyLTA1IDAwOjE5ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yLjEgKQogICAKMTk5Ni0xMi0wNSAwMDoxOSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlLgogICAKMTk5Ni0xMi0wNSAwMDoxNCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogcmVtb3ZlIGFuc2kgc3BlY2lmaWMgQyBmZWF0dXJlcyAodW5zaWduZWQgY29uc3RhbnRzKS4KICAgCjE5OTYtMTItMDUgMDA6MTMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiAjaWZuZGVmIC0+ICNpZmRlZiBmb3Igc2lnc2V0LgogICAKMTk5Ni0xMi0wNCAwMTowMyAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMiApCiAgIAoxOTk2LTEyLTA0IDAxOjAxICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgogICAKMTk5Ni0xMi0wNCAwMDo0OSAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORywgUkVBRE1FKTogIFVwZGF0ZSBmb3IgcmVsZWFzZSAzLjEuMi4KICAgCjE5OTYtMTItMDQgMDA6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmM6CgogICAtIChhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgICAgLSBQYXJzZXIgZml4ZXMgZm9yIG11bHRpcGxlIG5vZGVzLgogICAgICAgLSBtZW1tb3ZlL2NvcHkgZGVsZXRlcy4KICAgCjE5OTYtMTItMDMgMDU6NTEgIHdoYXJkYWtlCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpOiBVc2VkIC0+IEF2YWlsIGluIG1lbW9yeSBzZXF1ZW5jZS4KICAgCjE5OTYtMTItMDMgMDI6MTQgIHdoYXJkYWtlCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIGxvY2FsL3Bhc3N0ZXN0OgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgcGFzc3Rlc3QpOiBNb3ZlIHBhc3N0ZXN0IHRvIHVjZGF2aXMgc3VidHJlZS4KICAgCjE5OTYtMTItMDMgMDI6MDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogRnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIEZpeCBhcnAgdGFibGUgZm9yIGhwdXguCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3IgYXJwaGQuYXRfbmV4dCBhbmQgdXNlIGluIGFib3ZlLgogICAKMTk5Ni0xMi0wMyAwMTowNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogUHV0ICdVJ25zaWduZWQgbWFya2VyIGF0IGVuZCBvZiBjb25zdGFudHMgdG8gcmVtb3ZlIGdjYyB3YXJucy4KICAgCjE5OTYtMTItMDMgMDE6MDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBXcm90ZSBBQ19DSEVDS19TVFJVQ1RfRk9SIGFuZCB1c2UgaXQuCiAgICAgLSBNYWtlIEFDX0NIRUNLX0lGTkVUX0ZPUiB1c2UgYWJvdmUuCiAgICAgLSBDaGFuZ2VxdW90ZSAnW10nIC0+ICcnIGFyb3VuZCBzZWQgZXhwcmVzc2lvbiB3aXRoIFtdcyAoLURvc3R5cGUpLgogICAKMTk5Ni0xMi0wMSAyMzo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBpZlBoeXNBZGRyIC0gaW4gSW50ZXJmYWNlX0dldF9FdGhlcl9CeV9JbmRleCwgSFAtVVggaGFzIHRoZSBzYW1lCiAgICAgICAgICAgRXRoZXJBZGRyIHN0cnVjdXJlIGFzIE1JUFMuCiAgIAogICAgIC0gaXBBZEVudElmSW5kZXggLSBpbiB2YXJfaXBBZGRyRW50cnksIHRoZXJlIGlzIGEgZmFsc2UgbWF0Y2ggb24KICAgICAgICAgICB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlLCBnaXZpbmcgdGhlIHdyb25nIGFuc3dlciBvZiB0aGUgZmlyc3QKICAgICAgICAgICBpbnRlcmZhY2UgaW5kZXguCiAgIAogICAgIC0gdWRwSW5FcnJvcnMgLSBpbiB2YXJfdWRwLCB0aGUgY291bnQgb2YgVURQIGVycm9ycyBvbWl0cyBkaXNjYXJkZWQKICAgICAgICAgICBwYWNrZXRzLiAgU29tZSBzeXN0ZW1zIChpLmUuIEhQLVVYKSBoYXZlIGV4dGVuZGVkIHRoZSB1ZHBzdGF0CiAgICAgICAgICAgc3RydWN0dXJlIHRvIGluY2x1ZGUgdGhlc2UuICBJJ3YgdHdlYWtlZCB0aGlzIGFuYWxvZ291cyB0byBhCiAgICAgICAgICAgc2ltaWxhciBhZGRpdGlvbiBpbiB0aGUgdGNwc3RhdCBzdHJ1Y3R1cmUuCiAgIAogICAgIC0gdGNwQ29ublN0YXRlIC0gSFAtVVggaGFzIGFkZGVkIGFuIGV4dHJhIHN0YXRlIGludG8gdGhlIGxpc3QsIHdoaWNoCiAgICAgICAgICAgdGhyb3dzIHRoZSByZXN0IG9mIHRoZW0gb3V0LgogICAKMTk5Ni0xMS0yNiAyMzo1NiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IFRydW5jYXRlIHN5c3RlbSBuYW1lcyBiZXlvbmQgWy1fXS4qLgogICAKMTk5Ni0xMS0yNiAyMzo0NSAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFJlc2V0IHNpZ25hbCBvbiBhbGwgdHlwZXMgb2Ygc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTYtMTEtMjYgMjM6MzQgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gV2F0Y2ggb3V0IGZvciBpbnRlcmZhY2UgbmFtZXMgd2l0aCAnICcgaW4gdGhlbS4KICAgICAtIFJlc2V0IHNpZ25hbCBvbiBCU0Qgc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTYtMTEtMjYgMjM6MjEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZS4KICAgCjE5OTYtMTEtMjYgMjM6MjEgIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogVHlwbzogIDMuMS4zIC0+IDMuMC4zLgogICAKMTk5Ni0xMS0yNiAyMzowNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERlZmF1bHQgc3lzbG9jIFVDRGF2aXMgLT4gVW5rbm93bi4KICAgCjE5OTYtMTEtMjYgMjM6MDIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gQ2hhbmdlIGNvbW1lbnRzIHRvIHJlZmxlY3Qgd2hhdCBpdHMgYWN0dWFsbHkgbG9va2luZyBhdC4KICAgICAtIFJlbW92ZSBpZmRlZiBhcm91bmQgaWZuZXQgZGVjbGFyYXRpb25zLgogICAKMTk5Ni0xMS0yNSAwMDoxNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoY29uZmlnKiwgc25tcF9pbXBsLmgpOiBNb3ZlZCB2b2lkIC0+IGNoYXIgZGVmaW5lIHRvIGEgY29uZmlndXJlIHRlc3QuCiAgIAoxOTk2LTExLTI0IDIzOjQzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKHthZ2VudCxhcHBzfS9NYWtlZmlsZS5pbik6IFB1dCBsaWJzbm1wLmEgaW4gZnJvbnQgb2YgLWwgbGlicy4KICAgCjE5OTYtMTEtMjQgMDc6NDUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIucHJlMSApCiAgIAoxOTk2LTExLTI0IDA3OjI0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuYywgSU5TVEFMTCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoa2VybmVsLmMsIGNvbmZpZyosIElOU1RBTEwpOiAgTmV3IGNvbmZpZ3VyZSBzd2l0Y2g6ICAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MuCiAgICAgLSBUaGUgYWdlbnQgZG9lc24ndCBleGl0IGlmIGl0IGNhbid0IG9wZW4gL2Rldi9rbWVtLgogICAKMTk5Ni0xMS0yMiAwNTozNyAgd2hhcmRha2UKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzOgoKICAgLSAoY29uZmlnKiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IFVwZ3JhZGVkIHRvIGF1dG9jb25mIDIuMTEuCiAgIAoxOTk2LTExLTIyIDAwOjE0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgogICAKMTk5Ni0xMS0yMiAwMDowNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1lcmdlIGZyb20gRnJlZUJTRDItMy0xLTEuCiAgICAgLSBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCiAgIAoxOTk2LTExLTIxIDIzOjE4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogVHJhc2ggaW50ZXJmYWNlIGNhY2hpbmcuCiAgIAoxOTk2LTExLTE1IDA3OjQ0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIEFkZCBiYWNrIGluICJyZWFkaW5nIG1pYi4uLiIgZGVidWdnaW5nIHN0YXRtZW50cy4KICAgCjE5OTYtMTEtMTUgMDc6NDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IE1ha2UgdW5hbWUgY2FsbHMgd29yayBjb3JyZWN0bHkuCiAgIAoxOTk2LTExLTE0IDA2OjI0ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcHRyYXAuYywgc25tcG5ldHN0YXQvaW5ldC5jLAogICBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoc25tcHRyYXAuYywgaW5ldC5jLCByb3V0ZS5jKTogdHlwZWNhc3Rpbmcgd2FybmluZyBmaXhlcy4KICAgCjE5OTYtMTEtMTQgMDY6MTcgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOgogICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcC4KICAgICAtIENoZWNrIGZvciBzeXMvdmZzLmguCiAgIAoxOTk2LTExLTE0IDA2OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKToKICAgICAtICNpZmRlZiB0eXBvLgogICAgIC0gcHJvdG90eXBlIGZvciBJbnRlcmZhY2VfU2Nhbl9Jbml0KCkuCiAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wIGJlZm9yZSB1c2luZy4KICAgCjE5OTYtMTEtMDggMDg6MDYgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXhlZCAndG91Y2hpdCcuCiAgIAoxOTk2LTExLTA4IDA4OjAzICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogQ3JlYXRlZCBhICd0b3VjaGl0JyB0byB0b3VjaCBjb25maWcgZmlsZXMgcHJvcGVybHkuCiAgIAoxOTk2LTExLTA3IDA1OjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiB0eXBlY2FzdCBmb3Igc3ByaW50X29iamlkKCkuCiAgIAoxOTk2LTExLTA3IDA1OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogaWZkZWYgdHlwb3MuCiAgIAoxOTk2LTExLTA3IDA1OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGlmZGVmJ3MgYXJvdW5kIHN0cmluZ3MuaC4KICAgCjE5OTYtMTEtMDcgMDU6MTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBDaGFuZ2VkIGRlZmF1bHQgU05NUFYyQVVUSCB0byBTTk1QVjEuCiAgIAoxOTk2LTExLTA3IDAwOjM0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBCU0RpMiAzLjEuMSBicmFuY2ggbWVyZ2UuCiAgIAoxOTk2LTExLTA3IDAwOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMSwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIE5pZWxzIDMuMS4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDcgMDA6MTUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmg6CgogICAtIE5ldEJTRCAzLjEuMC4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDQgMDE6MDggIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Igbmxpc3QgaW4gLWxtbGQgKGlyaXgpLgogICAKMTk5Ni0xMS0wNCAwMDozMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiAgTW9yZSBpbmNsdWRlIGNoZWNrcyBmb3IgbGludXguCiAgIAoxOTk2LTEwLTMxIDIzOjU0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuICA8c2ltb25Ac3dpdGNoLmNoPjoKICAgICAtIGFzbl9idWlsZF91bnNpZ25lZF9pbnQsIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NDoKICAgICAgIC0gRG9uJ3QgdHJ5IHRvIHN0cmlwIEZGcyBmcm9tIHRoZSBoaWdoIGVuZCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgICAgICAtIFNraXAgdGhlIHN0cmlwcGluZyBjb2RlIGVudGlyZWx5IGlmIHdlIGhhdmUgdG8gYWRkIGEgbnVsbCBieXRlLgogICAKMTk5Ni0xMC0zMCAwNDo0OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZjoKCiAgIC0gKGNvbmZpZyosIGVjZS1taWIuZGVmKToKICAgICAtIENoYW5nZSBleHRlbnNpYmxlIG1pYiBsb2NhdGlvbiB0byB1Y2RhdmlzIGVudGVycHJpc2UgbWliOiAyMDIxLgogICAgIC0gUmVtb3ZlIGFzc29jaWF0ZWQgcHJvbXB0aW5nIGZyb20gY29uZmlndXJlIHNjcmlwdCBhbmQgZXRjLgogICAKMTk5Ni0xMC0zMCAwNDo0NyAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORyxSRUFETUUpOiBBZGQgYSBuZXcgUE9SVElORyBmaWxlIHRvIHJlZmVyZW5jZSBhdXRvY29uZiBwbGVlLgogICAKMTk5Ni0xMC0xNiAyMzowMiAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMS5CU0RJICkKICAgCjE5OTYtMTAtMDkgMDc6NDYgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjEgKQogICAKMTk5Ni0xMC0wOSAwNzo0NSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogdXBkYXRlIGZvciAzLjEuMS4KICAgCjE5OTYtMTAtMDkgMDc6MjIgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIHRoYW5rcyBuYW1lLgogICAKMTk5Ni0xMC0wOSAwNzoxOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZyb206IGdhaEBiZWxsY29yZS5jb20gKEdhcnkgQS4gSGF5d2FyZCkKICAgICAtIEZyZWUgcGR1IGNvbW11bml0eSB0byBxdWVsY2ggcHVyaWZ5LgogICAKMTk5Ni0xMC0wOSAwMDozMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6CiAgICAgLSBwcmludCBhIG5ldyBsaW5lIGluIHByaW50X2Vycm9yKCkgaWYgZGVidWdnaW5nIGlzIHR1cm5lZCBvbi4KICAgICAtIHRvc3NPYmplY3RJZGVudGlmaWVyKCk6IGNhdGNoIG11bHRpcGxlIGJyYWNrZXQgY2xhdXNlcyAoSUUgeyB7MCAwfSB9ICkuCiAgIAoxOTk2LTEwLTA5IDAwOjA0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKToKICAgICAtIFBhcnNlIE9CSkVDVC1JREVOVFkgYXMgT0JKRUNULUdST1VQIChzYXZlcyBvbmx5IGRlc2NyaXB0aW9uKS4KICAgICAtIENoYW5nZSBwcmludF9lcnJvcigpLCByZWFkX21pYigpIHRvIHJlZmxlY3QgZmlsZSBhbmQgY29ycmVjdCBsaW5lIG51bWJlci4KICAgCjE5OTYtMTAtMDcgMDQ6MjMgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IEFkZGVkIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uLgogICAKMTk5Ni0xMC0wNyAwNDoyMyAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBDaGFuZ2VkIHRvIHJlZmxlY3QgU05NUExJQi9taWJzLgogICAKMTk5Ni0xMC0wNyAwMzowNiAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiAgQWRkZWQgdWNkLXNubXAudHh0CiAgIAoxOTk2LTEwLTA3IDAzOjAwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgogICAKMTk5Ni0xMC0wNyAwMjoyMiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBhZGRlZCAtLXJlY2hlY2sgdG8gY29uZmlnLnN0YXR1cyBjYWxsIHRvIHJlZ2VuZXJhdGUgc2VsZi4KICAgICAtIENoYW5nZWQgZWNlLW1pYi50eHQgLT4gdWNkLXNubXAudHh0IGFuZCBpbnN0YWxsIChhbmQgZ2VuZXJhdGUpIHByb3Blcmx5LgogICAKMTk5Ni0xMC0wNyAwMToxMSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBzbm1wIHZlcnNpb24gY2hlY2sgb24gZXJyb3IgcmV0dXJuIGZyb20gc2V0LgogICAKMTk5Ni0xMC0wNyAwMDo1MiAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGNvcnJlY3RseSBmb3IgZ2V0L3NldG1udGVudC4KICAgCjE5OTYtMTAtMDcgMDA6MDEgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBNaWIgaW5zdGFsbGF0aW9uIGNoYW5nZWQgdG8gcmVmbGVjdCBuZXcgbWliIGRpcmVjdG9yeS4KICAgCjE5OTYtMTAtMDYgMjM6NDkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgUHJvcGVyIGF1dG9jb25mIGRpcmVudCBoZWFkZXJzLgogICAKMTk5Ni0xMC0wNiAyMzo0MSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBOb3cgbG9hZHMgYWxsIG1pYnMgKGZpbGVzKSBpbiB0aGUgZGlyZWN0b3J5IFNOTVBMSUIvbWlicy4KICAgCjE5OTYtMTAtMDQgMDI6MDEgIHdoYXJkYWtlCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGxpYiAtPiBsaWIvc25tcCBwYXRoIGNvcnJlY3Rpb24gaW4gRklMRVMgc2VjdGlvbi4KICAgLSAoc25tcGQuMS5kZWYpOgogICAgIC0gQWRkZWQgYSBGSUxFUyBzZWN0aW9uLgogICAgIC0gR2VuZXJhbCBjbGVhbiB1cC4KICAgCjE5OTYtMTAtMDQgMDE6NDYgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6CiAgICAgLSBDbGVhbmVkIHVwIG1hbiBwYWdlIGZvcm1hdHRpbmcuCiAgICAgLSBBZGRlZCBub3RlIGFib3V0IFNOTVBzZXQgY29tbXVuaXR5IHN0cmluZ3MuCiAgICAgLSBtaW5vciBwcm9vZi1yZWFkaW5nIChtYWpvciBwcm9vZmluZyBuZWVkZWQgc3RpbGwpLgogICAgIC0gUmUtb3JnYW5pemVkIGEgYml0LgogICAKMTk5Ni0xMC0wNCAwMTo0NCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgZnJvbSBzZWRzY3JpcHQgd2hlbiB1c2luZyBicm9rZW4gY3BwIChnY2MpLgogICAKMTk5Ni0xMC0wNCAwMTo0MyAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBBZGRlZCBzbm1wZ2V0L3NldCB0byBwYXNzIGV4YW1wbGUuCiAgIAoxOTk2LTEwLTAzIDA4OjEwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9pbXBsLmgpOiAgVHVybiBvbiBvbGQgQ01VIGRlYnVnZ2luZyBzdGF0bWVudHMgd2l0aCAtLWVuYWJsZS1kZWJ1Z2dpbmcuCiAgIAoxOTk2LTEwLTAzIDA4OjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOgogICAgIC0gTWFrZSBhZ2VudCBwcm9wZXJseSBjaGVjayBzbm1wc2V0IGV4aXQgY29kZXMgYW5kIHVzZSB0aGVtIChvbiBDT01NSVQpLgogICAKMTk5Ni0xMC0wMSAwODoyOCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBDaGVjayBmb3IgbW50ZW50LmggYW5kIGluY2x1ZGUgaXQuCiAgICAgLSBDaGVjayBmb3IgL2V0Yy9tbnR0YWIgb3IgL2V0Yy9tdGFiIGFuZCB1c2UgYXBwcm9wcmlhdGVseS4KICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBwaWNrIGdldG1udGVudCBvdmVyIGdldGZzZmlsZSBpZiBib3RoIGFyZSBhdmFpbGFibGUuCiAgICAgLSBkZWJ1ZyBjbGVhbnVwIChvZmlsZSAtPiBzdGRlcnIsIGNoZWNrIGZvciBET0RFQlVHIGluc3RlYWQgb2YgY29uc3QgdmFyKS4KICAgCjE5OTYtMTAtMDEgMDc6MzAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IEZyb20gSm9lIE1hcnpvdDoKICAgICAtIGFsbG93cyB0aGUgQ01VIGxpYiB0byByZXRhaW4gdGhlIFRDIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBhCiAgICAgICBwYXJ0aWN1bGFyIG9iamVjdC4gSW4gcGFydGljdWxhciB0aGlzIGFsbG93cyBEaXNwbGF5U3RyaW5ncyB0byBiZQogICAgICAgZGlmZmVyZW50aWF0ZWQgZnJvbSBPY3RldFN0cmluZ3Mgd2hlbiB0aGV5IGFyZSBsb29rZWQgdXAgaW4gdGhlCiAgICAgICBNaWIgVHJlZS4KICAgCjE5OTYtMDktMjUgMDU6MTQgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogZnJlZWJzZDIgdHlwZWNhc3QuCiAgIAoxOTk2LTA5LTI0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IHR5cG8gZml4aW5nIGEgdHlwbyAoc2lnaC4uKS4KICAgCjE5OTYtMDktMjQgMDg6MDIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNb3ZlZCBhIHZhcmlhYmxlIGRlY2xhaXJhdGlvbi4KICAgCjE5OTYtMDktMjQgMDc6NTkgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IHR5cG9zLgogICAKMTk5Ni0wOS0yNCAwNzo1NCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOiBBZGRlZCBzeXMvc2VsZWN0LmggZm9yIEFJWC4KICAgCjE5OTYtMDgtMzAgMDI6NTEgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IE1vcmUgbWlub3IgYnVncyBsaXN0ZWQKICAgCjE5OTYtMDgtMzAgMDI6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1hbGxvYyBwcm90b3R5cGUgZHVlIHRvIGNvbmZsaWN0aW9ucy4KICAgCjE5OTYtMDgtMzAgMDE6MTUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKICAgCjE5OTYtMDgtMzAgMDA6MzQgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjAuMSApCiAgIAoxOTk2LTA4LTMwIDAwOjM0ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChORVdTLCBDaGFuZ2VMb2cpOiBVcGRhdGVkIGZvciAzLjEuMC4xCiAgIAoxOTk2LTA4LTMwIDAwOjI0ICB3aGFyZGFrZQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6ICBBZGRlZCBrZXJuZWxfc3Vub3M1Lm8gdG8gc25tcHRyYXAgZm9yIGdldEtzdGF0LgogICAKMTk5Ni0wOC0zMCAwMDoyMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IHBhdGNoIHNjcmV3ZWQgdXAuCiAgIAoxOTk2LTA4LTMwIDAwOjIyICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHJlbW92ZWQgLVhzIGZsYWcgZm9yIGdjYyBvbiBzb2xhcmlzLgogICAgIC0gbG9nZmlsZSBjaGVja3MgZm9yIGV4aXN0YW5jZSBvZiAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgIAoxOTk2LTA4LTI5IDA3OjI5ICB3aGFyZGFrZQoKICAgKiBSRUFETUUsIFRPRE86CgogICAtIENoYW5nZWQgbXkgZW1haWwgYWRkcmVzcyB0byBteSBuZXcgb25lLgogICAKMTk5Ni0wOC0yOSAwNzoyMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGF1dG9jb25mKiwgc25tcF92YXJzLmMpOiBSZW1vdmVkIHNvbWUgc29sYXJpcyBpZmRlZnMuCiAgIAoxOTk2LTA4LTI5IDA3OjAzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogUmVtb3ZlZCBTVlI0IGlmZGVmcwogICAKMTk5Ni0wOC0yOSAwNjo1OCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiBQYXRjaCBmcm9tIFRyZXZvciBCb3VyZ2V0IDx0Ym91cmdldEBxdWFsY29tbS5jb20+CiAgICAgLSBtYWxsb2Mgc3lzZGVzYyBpbnN0ZWFkIG9mIGFzc3VtaW5nIDwgMTI4IGJ5dGVzLgogICAKMTk5Ni0wOC0yOSAwNjowOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIGdjYyB3YXJuaW5ncyBOVUxMIC0+IDAKICAgCjE5OTYtMDgtMjkgMDY6MDcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIHNubXB0cmFuc2xhdGUgYW5kIG90aGVyIGFwcHMgdGhhdCBuZWVkIGl0LgogICAKMTk5Ni0wOC0yOSAwNjowNiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gcHJvdG90eXBlcyBmb3IgZ2NjIHdhcm5pbmdzCiAgIAoxOTk2LTA4LTI5IDA2OjA2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHVjaGFyKHMpIGNhbid0IGJlIGxlc3MgdGhhbiAwLgogICAKMTk5Ni0wOC0yOSAwNjowMyAgd2hhcmRha2UKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwLjE6CgogICAtIChtYW4vc25tcHRyYXAuMSk6ICBhZGRlZCBieSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAKMTk5Ni0wOC0yOSAwNTo1OSAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHNldCBleGl0IGNvZGVzIG9mIDAgZm9yIGFsbCBhcHBzLgogICAgIC0gUmVtb3ZlZCBTVlI0ICNpZmRlZnMuCiAgICAgLSBHcmVhdGx5IGltcHJvdmVkIHNubXB0cmFwLgogICAKMTk5Ni0wOC0yNyAwMTowNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYXV0b2NvbmYqKToKICAgICAtIEZyZWVCU0QgYWRkaXRpb25zLgogICAgIC0gTmV3IGtlcm5lbCBsb2NhdGlvbjogIC9rZXJuZWwgKGljaykuCiAgICAgLSBMb2cgZmlsZSBkZWZhdWx0IGludGVsbGlnZW50bHkgY2hlY2tzIGZvciAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgICAgLSBDaGVja3MgZm9yIGdldGxvYWRhdmcoKS4KICAgCjE5OTYtMDgtMjcgMDE6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNb3JlIHdhcnBlZCBGcmVlQlNEIGNoYW5nZXMKICAgCjE5OTYtMDgtMjcgMDA6MzggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAKMTk5Ni0wOC0yNyAwMDowMSAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6CiAgICAgLSBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgICAgLSBtb3JlIGF1dG9jb25mIGNvbXBsZXRlOiBwYXRocyB0byBsaWJyYXJpZXMgYW5kIGtlcm5lbCBsb2NhdGlvbi4KICAgCjE5OTYtMDgtMjYgMjM6NDcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IEZpeCBieXRlIG9yZGVyIHByb2JsZW0gKGNvbnZlcnQgdG8gbmV0d29yayBiZWZvcmUgc2VuZGluZykuCiAgIAoxOTk2LTA4LTI2IDA3OjU3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jOgoKICAgLSAoZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmMpOiBGcmVlQlNEIG1vZGlmaWNhdGlvbnMKICAgCjE5OTYtMDgtMjYgMDc6NTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXhlZCBhIGdjYy9GcmVlQlNEIG9wdGltaXphdGlvbiBidWcgKHN0dXBpZCBjb21waWxlcikKICAgCjE5OTYtMDgtMjYgMDE6MzcgIHdoYXJkYWtlCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpOiAgY29tbWFzIG91dCBvZiBwbGFjZS4KICAgCjE5OTYtMDgtMjYgMDE6MzcgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKSBFeHRyYSBtaWIgcGFyc2luZyBpZGVhcyBhZGRlZC4KICAgCjE5OTYtMDgtMjYgMDE6MzYgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKSBUeXBvLCBleHRyYSBxdW90YXRpb24gbWFyay4KICAgCjE5OTYtMDgtMjEgMDY6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3N0ZXN0OgoKICAgQWRkZWQgcGFzc3Rlc3QhCiAgIAoxOTk2LTA1LTI0IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMSApCiAgIAoxOTk2LTA1LTI0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHVwZGF0ZQogICAKMTk5Ni0wNS0yNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogMy4xIHJlbGVhc2UgaW5mbyB1cGRhdGUuCiAgIAoxOTk2LTA1LTI0IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBzb21lIGlmZGVmIHJlcXVpcmVtZW50cy4KICAgCjE5OTYtMDUtMjQgMTU6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogI2lmZGVmIHR5cG9zCiAgIAoxOTk2LTA1LTI0IDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIG1lbW1vdmUgYmVmb3JlIHlvdSBkZWZpbmUgaXQuCiAgIAoxOTk2LTA1LTI0IDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgcm91dGUuYzoKCiAgIC0gKGlmLmMsIHJvdXRlLmMpOiBjYXN0IHJldHVybnMgZnJvbSBpbmRleCB0byBjaGFyICouCiAgIAoxOTk2LTA1LTI0IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogIGRlZmluZSBtZW1tb3ZlIGlmIG5vdCBkZWZpbmVkIGFuZCBtZW1jcHkgaXMuCiAgIAoxOTk2LTA1LTI0IDEzOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiAgbm90ZSBvbiBjcmVhdGluZyBjb21tZW50cyBhZGRlZC4KICAgCjE5OTYtMDUtMjQgMTM6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBkZWNsYXJhdGlvbnMgY2xlYW51cAogICAKMTk5Ni0wNS0yNCAxMzowOSAgaGFyZGFrZXIKCiAgICogbWliSUkudHh0OgoKICAgLSAobWliSUkudHh0KTogcmVtb3ZlZCA7cyBhdCB0aGUgZW5kIG9mIHRoZSBCRUdJTiBsaW5lcy4KICAgCjE5OTYtMDUtMjQgMTM6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZyopOiAgQ2hlY2sgZm9yIHN5cy9tbnR0YWIuaAogICAKMTk5Ni0wNS0yNCAxMzowOCAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBleGFtcGxlIGZpbGUgY2hhbmdlcy4KICAgCjE5OTYtMDUtMjQgMTI6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIGEgdGhhbmtzIHNlY3Rpb24uCiAgIAoxOTk2LTA1LTI0IDEyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiAgcGFyc2luZyBmaXhlcyBmcm9tIE1pa2UgUGVyaWsgPG1pa2VwQGNydC5jb20+CiAgIAoxOTk2LTA1LTIzIDE3OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGdldG1udGVudC4KICAgCjE5OTYtMDUtMjMgMTc6MDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IGZpeGVkIGRpc2sgY2hlY2tzIG9uIFNvbGFyaXMgYW5kIGFscGhhJ3MKICAgICAtIHVzZSBzdGF0dmZzIG92ZXIgZnN0YWIgaWYgYm90aCBwcmVzZW50LgogICAKMTk5Ni0wNS0yMyAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmM6CgogICAtIChhY2wuYywgcGFydHkuYyk6IGluY2x1ZGUgc3RkaW8uaAogICAKMTk5Ni0wNS0yMyAxNDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IHR5cGUgY2FzdGluZyBidWdzLgogICAKMTk5Ni0wNS0yMyAxNDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmM6CgogICAtIChhY2wuYywgcGFydHkuYywgdmlldy5jKTogcmVtb3ZlZCBOVUxMIGRlZmluZXMuCiAgIAoxOTk2LTA1LTIzIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9uJ3QgZGVmaW5lIHJhbmRvbSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KICAgCjE5OTYtMDUtMjIgMTI6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHJld29ya2VkIHRoZSB3YXkgc25tcG5ldHN0YXQgLWkgd29ya3MuCiAgIAoxOTk2LTA1LTIyIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jLAogICAgICBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyxyZWFkY29uZmlnLmMsc25tcF92YXJzLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgIC0gZmluYWxseSBuYWlsZWQgdGhhdCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIHRoYXQgZ2F2ZSBwcm9ibGVtcwogICAgICAgICB3aXRoIHRoZSBBVCBzdWJ0cmVlCiAgICAgICAtIEkgYWxzbyBpbXBsZW1lbnRlZCB0aGUgZGlzayBwYXJ0IG9mIHRoZSBleHRlbnNpYmlsaXR5IGluIHRoZQogICAgICAgICBhdHRhY2hlZCBwYXRjaC4KICAgCjE5OTYtMDUtMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLAogICBta2luc3RhbGxkaXJzOgoKICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMpOiBBdXRvY29uZi0yLjEwCiAgIAoxOTk2LTA1LTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pIFVwZGF0ZWQgdGhlIHdheSBzZWRzY3JpcHQgaXMgdXNlZC4KICAgCjE5OTYtMDUtMTUgMTI6MzUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbikgRml4ZWQgYSBob3JyaWJsZSB0eXBvLiAgUCAtPiBQUkVGSVgKICAgCjE5OTYtMDUtMTUgMTI6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYykgcmVtb3ZlZCAmIGluIGZyb250IG9mIGFycmF5IHBhc3NlZCBhcyBhcmcuCiAgIAoxOTk2LTA1LTE1IDEyOjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIEFkZGVkIGEgbm90ZSAocG9pbnRlciB0byBkb2NzKSBvbiB0aGUgYWdlbnQncyBleHRlbnNpYmxpdHkuCiAgIAoxOTk2LTA1LTE1IDEyOjAwICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoxOTk2LTA1LTE1IDA5OjUxICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS5BMSApCiAgIAoxOTk2LTA1LTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIHBhdGNoIG1pc3Rha2UuCiAgIAoxOTk2LTA1LTE1IDA5OjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBSRUFETUUsIFRPRE86CgogICAtIChDT1BZSU5HLCBSRUFETUUsIFRPRE8pIFJlbGVhc2UgZG9jcyB1cGRhdGVkLgogICAKMTk5Ni0wNS0xNSAwOTowNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50ZWQgcGFzcyB0aHJ1IG1pYnMuCiAgIAoxOTk2LTA1LTE1IDA5OjA2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sc2Vkc2NyaXB0LmluKSBBZGRlZCBQUkVGSVggdG8gdGhlIHNlZHNjcmlwdC4KICAgCjE5OTYtMDUtMTUgMDk6MDUgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZSwKICAgbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKCovLmN2c2lnbm9yZSkgaWdub3JlIGZpbGUgdXBkYXRlLgogICAKMTk5Ni0wNS0xNSAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgUGF0Y2ggZnJvbSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgICAgLSBCZXR0ZXIgY2FjaGluZyBhbGdvcml0aG0gZm9yIGltcHJvdmVkIHNwZWVkLgogICAKMTk5Ni0wNS0xNSAwODo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9wYXNzLmMpIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIEltcGxlbWVudGVkIG1pc3NpbmcgcGFydHMgb2YgaW50ZXJmYWNlIGFkZHJlc3MgYW5kIG5ldHdvcmsgb3V0cHV0ICgtaSkKICAgCjE5OTYtMDUtMTMgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wbGliL3NubXBfaW1wbC5oKTogQ2hhbmdlIFJXUklURSB0byBpbmNsdWRlIFdyaXRlIGZvciBWMiBiaXRzLgogICAKMTk5Ni0wNS0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgIC0gQnVnIGZpeDogR0xPQkFMU0VDVVJJVFkgYnVnOiAgc2F2ZSByaWdodG1vc3QgdHdvIGJpdHMgaW4gYWNsLgogICAKMTk5Ni0wNS0xMCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wc3RhdHVzLjEsIHNubXBsaWIvcGFyc2UuYwo6CgogICAtIChtYW55KTogTWVyZWdlZCBiYWdnZXNlbi0zLTAtNy0yIGJyYW5jaCBpbnRvIG1haW4gdHJ1bmsuCiAgIAoxOTk2LTA1LTEwIDE3OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHN0YXR1cy4xOgoKICAgZmlsZSBzbm1wc3RhdHVzLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQmFnZ2VzZW4tMy0wLTctMi4KICAgCjE5OTYtMDUtMTAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgZmlsZSBzbm1wc3RhdHVzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQmFnZ2VzZW4tMy0wLTctMi4KICAgCjE5OTYtMDUtMTAgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEEgcGF0Y2ggdG8gZml4IGEgdmlydHVhbCBpbnRlcmZhY2UgcHJvYmxlbS4KICAgICAtIHBhdGNoIHN1cHBsaWVkIGJ5ICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgCjE5OTYtMDUtMDkgMTY6MTMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IFNvbGFyaXMgc3BlY2lmaWMgY3BwIGZsYWdzIGFkZGVkIGZvciBTVU5zcHJvJ3MgY3BwLgogICAtIChhZ2VudC97c25tcF92YXJzLHNubXBkfS5jLGFnZW50L2V4dGVuc2libGUve2V4dGVuc2libGUsbWlzYyxwYXNzfS5jLAogICAgICBzbm1wbGliL3ttaWIsc25tcF9jbGllbnR9LmMpOgogICAgIC0gQ2xlYW5lZCB1cCBwcm90b3R5cGVzIHRvIG1hdGNoIG1vcmUgY2FyZWZ1bGx5ICh3aXRoIFNvbGFyaXMncyBzcHJvIGNjKS4KICAgCjE5OTYtMDUtMDkgMTM6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhY2NvbmZpZy5oLGFnZW50L3tNYWtlZmlsZSxzbm1wX3ZhcnMuY30sYWdlbnQvZXh0ZW5zaWJsZS9tYW55KToKICAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIHBhc3N0aHJ1IG1pYnMuICBUb3RhbCBjb250cm9sIGlzIGhhbmRlZCB0byBleGVjJ3MuCiAgIAoxOTk2LTA1LTA5IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KICAgCjE5OTYtMDUtMDkgMTM6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgLSAoYXBwcy9zbm1wc2V0LmMpIEFkZGVkICcuJyBhcyBhIGRlbGltaXRlciBmb3IgZGVjaW1hbCBlbmNvZGVkIHN0cmluZ3MuCiAgIAoxOTk2LTA1LTAzIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChhcHBzL3NubXB0cmFwLmMpIEFkZGVkICNpbmNsdWRlPHN5cy9zb2NraW8uaD4KICAgCjE5OTYtMDUtMDMgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIFNvbGFyaXMgZml4IGZvciBpbnRlcmZhY2VzLgogICAgIC0gRnJvbSBEYW4gQS4gRGlja2V5IDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAKMTk5Ni0wNS0wMyAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpCiAgICAgLSBDaGFuZ2VkIHRoZSBpbnRlcmZhY2UgY291bnRlciB0byBhIHNob3J0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyAoYnVzIGVycikKICAgICAtIFVuZGVmZWQgYSBmdW5jdGlvbiB0aGF0IGlzIG5ldmVyIHVzZWQuCiAgIAoxOTk2LTA1LTAzIDE0OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCiAgIAoxOTk2LTA1LTAxIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43LjIgKQogICAKMTk5Ni0wNS0wMSAxNDo1OSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpIHZlcnNpb24gdXBkYXRlIDMuMC43LjIKICAgCjE5OTYtMDUtMDEgMTQ6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oKTogcmVtb3ZlZCBjb21lbnRzL3NwYWNlcyBmcm9tIGRlZmluZXMuCiAgIAoxOTk2LTA1LTAxIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pIGZvcmdvdCBORVRCU0QxSUQgZGVmLgogICAKMTk5Ni0wNS0wMSAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykgVGstYjEwIGZpeGVzLgogICAKMTk5Ni0wNS0wMSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvcm91dGVfd3JpdGUuYzoKCiAgIC0gKGFnZW50L3JvdXRlX3dyaXRlLmMsYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgIC0gbmV0YnNkMS4xQiBzcGVjaWZpYyBmaXhlczogY2xhc2ggd2l0aCBzeXNfZXJybGlzdCBhbmQgcnRfZHN0IGRlZmluZXMuCiAgIAoxOTk2LTA1LTAxIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKG1hbi9zbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmKSAuQyAtPiAuQiwgdG8gaW5jcmVhc2UgbnJvZmYgcG9ydGFiaWxpdHkuCiAgIAoxOTk2LTA1LTAxIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBhZ2VudC9leHRlbnNpYmxlL3tyZWFkX2NvbmZpZyxleHRlbmlzYmxlfS5jKToKICAgICAtIGNvbmZpZ3VyaWZpZWQgKG5ldyB3b3JkKSBzb21lIG9mIE5pZWxzJyBjaGFuZ2VzIGFuZCB0aGUgYmNvcHkvbWVtbW92ZSBzdHVmZi4KICAgCjE5OTYtMDUtMDEgMTI6MzcgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIGtlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMKLCBzbm1wZC5jOgoKICAgLSAobWFueSkgRml4ZXMgZm9yIFNvbGFyaXMgKDIuNSkgc3VibWl0dGVkIGJ5CiAgICAgICAgICAgIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgIlNvbWUgYXJlIG15IG93biwgb3RoZXJzIGFyZSBmcm9tIFl1cmkgUmFib3ZlciB3aG8gb3JpZ2luYWxseQogICAgICAgIGNyZWF0ZWQgdGhlIHBhdGNoLiBTb21lIG9mIHRoaXMgaXMgdGhlcmUgdG8gZWxpbWluYXRlIHRoZQogICAgICAgIGRlcGVuZGVuY3kgb24gdGhlIHVjYmxpYiBjb21wYXRpYmlsaXR5IHN0dWZmLCBzb21lIGlzICJjb3NtZXRpYyIsCiAgICAgICAgYnV0IGl0IGFsc28gZml4ZXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhlIGFnZW50LCB3aGVyZSB3YWxraW5nCiAgICAgICAgdGhlIG1pYiB0cmVlIGNhbiBsb29wIGVuZGxlc3NseSBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBuZXR3b3JrCiAgICAgICAgaW50ZXJmYWNlcy4iCiAgIAoxOTk2LTA0LTI1IDEyOjE5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43LjEgKQogICAKMTk5Ni0wNC0yNSAxMjoxOCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW4pIERlZmluZWQgREVCVUdQIGlmIERPREVCVUcgaXMgbm90IGRlZmluZWQuCiAgIAoxOTk2LTA0LTI0IDE0OjU0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43ICkKICAgCjE5OTYtMDQtMjQgMTQ6NTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZyxORVdTKSB1cGRhdGUgZm9yIDMuMC43CiAgIAoxOTk2LTA0LTI0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKSBuZXcgcHJlZjogIGRvbid0IHBvcCBmb3J3YXJkIG9uIG5ldyBwcm9ibGVtcy4KICAgCjE5OTYtMDQtMjQgMTM6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosYWdlbnQvc25tcF92YXJfcm91dGUuYykgY29uZmlnIGNoZWNraW5nIGZvciBydGVudHJ5LnJ0X25leHQKICAgCjE5OTYtMDQtMjQgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBAIyQlaW5nIHNvbGFyaXMKICAgCjE5OTYtMDQtMjQgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBDaGVja2VkIGZvciBzeXMvbWJ1ZiBmb3IgZGV0ZXJtaW5pbmcgcnRlbnRyeS5ydF9uZXh0CiAgIAoxOTk2LTA0LTI0IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgdXBkYXRlZAogICAKMTk5Ni0wNC0yNCAwOTowMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSB1cGRhdGVkCiAgIAoxOTk2LTA0LTI0IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKG1hbi8uY3ZzaWdub3JlKSBhZGRlZCBzbm1wZC4xCiAgIAoxOTk2LTA0LTI0IDA4OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsCiAgIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwgb3YvKikgQWRkZWQgTmV0QlNEIHRvIHN5cy1PSUQgcmV0dXJuZWQuCiAgIAoxOTk2LTA0LTI0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykgbW9yZSBjb25maWcgZmlsZXMgZm9yIE5ldEJTRC4KICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIHJlbW92ZWQgYXJwIHRhYmxlcyBmb3IgbmV0YnNkLgogICAKMTk5Ni0wNC0yNCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWxhcm0uYzoKCiAgIC0gKGFnZW50L2FsYXJtLmMpIEZpeGVkIHNvbWUgZGVmaW5lIG5hbWluZyBjb25mbGljdHMgZm9yIE5ldEJTRCAodGltZXJhZGQoKSkuCiAgIAoxOTk2LTA0LTI0IDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKSBGb3Jnb3QgYSBxdW90ZS4gICh3aHkgaGFzbid0IHRoaXMgYXBwZWFyZWQgYmVmb3JlPykKICAgCjE5OTYtMDQtMjQgMDg6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBoZWFkZXIgZmlsZSBjaGVja3MgKHZtL3ZtLmggKCsgb3RoZXJzKSBhbmQgdWZzL2Zmcy9mcy5oKQogICAKMTk5Ni0wNC0xNiAxODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIGZmbHVzaCBjYWxscyBhZnRlciBwcmludGluZyBwYWNrZXQgZHVtcHMKICAgCjE5OTYtMDQtMTYgMDk6NDggIGhhcmRha2VyCgogICAqIGFnZW50Lzogcm91dGVfd3JpdGUuYywgc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3tyb3V0ZV93cml0ZS5jLHNubXBfdmFyX3JvdXRlLmN9KSBPU0YzLjIgc3BlY2lmaWMgY2hhbmdlcy4gIGFyZy4KICAgCjE5OTYtMDQtMTYgMDk6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBJIGZvcmdvdCBETUVNX0xPQyBuZWVkcyB0byBiZSAjdW5kZWYnZWQgaWYgbm90IGZvdW5kCiAgIAoxOTk2LTA0LTE1IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYykgRml4ZWQgMiBnZXR0aW1lb2ZkYXkgY2FsbHMgLS0gYWRkZWQgYSBOVUxMIHRpbWV6b25lIHB0ci4KICAgCjE5OTYtMDQtMTUgMTQ6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLXdpdGgtZGVmYXVsdHMuICBEb24ndCBwcm9tcHQgdGhlIHVzZXIuCiAgIC0gKGNvbmZpZ3VyZSkgYnVnIGZpeGVzOiAgd2Fzbid0IHF1b3Rpbmcga2VybmVsIGFuZCBkbWVtIGxvY2F0aW9uLgogICAtIChjb25maWd1cmUpIGdjYyBjcHAgcmVxdWlyZXMgLXggYyB0byBhY2NlcHQgLmluIGZpbGUgc3VmZml4LgogICAKMTk5Ni0wNC0xNSAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0tZW5hYmxlLWRlYnVnZ2luZy4gIFR1cm5zIG9uIGRlYnVnZ2luZy4KICAgLSAoY29uZmlndXJlKSBGaXhlcyBmb3IgdHlwZSBjaGVja2luZyBvZiA0LjQgcnRlbnRyeSBzdHJ1Y3R1cmVzIG9uIGFscGhhcy4KICAgCjE5OTYtMDQtMTIgMTY6NDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWYsCiAgIHNlZHNjcmlwdC5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgb3YvVUNELWZpZWxkcywKICAgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4sCiAgIG92L2JpdG1hcHMvVUNELmZpZWxkczoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpCiAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgIC0gKG1hbnkpIEFkZGVkIHN1cHBvcnQgZm9yIGhwcGExLjEtaHAtaHB1eDEwLjAxCiAgICAgLSB0b3RhbGx5ISByZWRpZCB0aGUgcm91dGluZyB0YWJsZXMgZm9yIEJTRCA0LjQgZGVyaXZlZCBzeXN0ZW1zCiAgICAgICAoYWxwaGEsIGhwdXgxMC4wMSssIG5ldGJzZCkgc2luY2UgaHB1eDEwIGRvZXNuJ3QgaGF2ZSA0LjMgY29tcGF0IHN0cnVjdHMuCiAgIC0gKGVjZS1taWIuZGVmKSBDYXBpdGFsaXphdGlvbiBwcm9ibGVtLgogICAtIChjb25maWd1cmUuaW4pCiAgICAgLSBDbGVhbmVkIHVwIGtlcm5lbCBjaGVja2luZwogICAgIC0gU3RhcnRlZCB1c2luZyBhIGF1dG9jb25mIDIuOCBmZWF0dXJlIHRvIGNoZWNrIGZvciBjYWNoZSB2YWx1ZXMuCiAgIAoxOTk2LTA0LTEyIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlLmMpCiAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgIAoxOTk2LTA0LTA1IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pIEFkZGVkIGEgJ2NsZWFuJyBkZWZpbml0aW9uIHRvIHRoZSBNYWtlZmlsZS4KICAgCjE5OTYtMDQtMDUgMTY6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMpIHJlbW92ZWQgYSByZXF1aXJlZCAndW5peCcgZGVmaW5lIHN1cnJvdW5kaW5nIGEgaGVhZGVyIGZpbGUuCiAgIAoxOTk2LTA0LTA1IDE2OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpIGF1dG9jb25mLTIuNyAtPiBhdXRvY29uZi0yLjkKICAgCjE5OTYtMDQtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2suZGVmKSBUay1iOCA9PiBUay1iMTAgY2hhbmdlcwogICAKMTk5Ni0wMy0xMSAxNTo1OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgc21hbGwgQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5Ni0wMy0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogZml4ZWQgYSB0aW1lb3V0IGJ1ZyBjYXVzZWQgYnkgYXJjaGl0ZWN0dXJlcwogICAgIHdpdGggYW4gdW5zaWduZWQgdGltZXZhbC50dl9zZWMgdmFsdWUuCiAgICAgLSBUaGFua3MgZ29lcyB0byBHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiBmb3IKICAgICAgIHRoZSBwYXRjaCEKICAgCjE5OTYtMDMtMTEgMTU6NDEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjYgKQogICAKMTk5Ni0wMy0xMSAxNTo0MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nL05FV1MpOiB1cGRhdGVkIGZvciAzLjAuNgogICAKMTk5Ni0wMy0xMSAxNTozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbW9yZSBjbGVhbiB1cCBhbmQgYWRkZWQgcmVmZXJlbmNlIHRvIHRoZSB1Y2Qtc25tcCBtYWlsaW5nIGxpc3QuCiAgIAoxOTk2LTAzLTExIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBjbGVhbmVkIHVwLCByZS1hcnJhbmdlZCwgc2hvcnRlbmVkIChzZWN0aW9ucyBtb3ZlZCB0byBtYW4vKiBkb2NzKS4KICAgCjE5OTYtMDMtMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgLSAobWFuL3tNYWtlZmlsZS5pbixzbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmfSx2ZXJzaW9udGFnLHNlZHNjcmlwdC5pbik6CiAgICAgLSBjbGVhbmVkIHVwIGRvY3VtZW50YXRpb24gbW9yZSBhbmQgYWRkZWQgdGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSB0cmFpbGVycy4KICAgCjE5OTYtMDMtMTEgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogY29tbWVudGVkIG91dCBubGlzdCB3YXJuaW5ncy4KICAgCjE5OTYtMDMtMDggMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCkgZml4ZWQgYSBmaXggdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGZpeGVkLgogICAKMTk5Ni0wMy0wOCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5jKSBDaGVjayBpZiB2YXJpYWJsZSBjb250ZW50IGlzIE5VTEwgYmVmb3JlIHVzaW5nLgogICAKMTk5Ni0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBsaWIvbWliLmMpIHByaW50ZWQgdmFsdWVzIGZvciB0aW1ldGlja3MgYXJlIG5vIGxvbmdlciBuZWdhdGl2ZS4KICAgCjE5OTYtMDMtMDYgMTY6MzggIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpCiAgICAgLSBDaGFuZ2VkIGNhcGl0YWxpemF0aW9uIHNjaGVtZXMgdG8gYmUgbW9zeSBjb21wbGlhbnQuCiAgICAgLSBNYWRlIHRoZSBtZW1vcnkgbWliIFNZTlRBWCBwb2ludCB0byB0aGUgTWVtb3J5IHNlcXVlbmNlIGxpa2UgaXQgc2hvdWxkLgogICAKMTk5Ni0wMy0wNiAwOTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpIEFkZGVkIE9fVFJVTkMgdG8gdGhlIGxvZ2ZpbGUgb3BlbigpIGNhbGwuCiAgIAoxOTk2LTAyLTIxIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpCiAgICAgLSBDaGFuZ2VkIHRyYXBfdHlwZSAmIHNwZWNpZmljX3R5cGUgdG8gbG9uZyBmcm9tIGludCBmb3IgNjQgYml0IGFyY2hpdGVjdHVyZXMuCiAgICAgICAtIHN1Z2dlc3RlZCBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAKMTk5Ni0wMi0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBzbm1wdHJhcC5jOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jKQogICAgIC0gQWRkZWQgYXBwcy9zbm1wdHJhcAogICAgICAgLSBjb2RlIHRha2VuIGZyb20gMi4wLjEgYW5kIHN1Ym1pdHRlZCB0byBtZSBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAgICAgLSBJIGhhdmUgeWV0IHRvIHRlc3QgaXQuCiAgIAoxOTk2LTAyLTIxIDE2OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vLmN2c2lnbm9yZSwKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpCiAgICAgLSBBZGRlZCB0aGUgYmVnaW5uaW5ncyBvZiBhIHNubXBkLmNvbmYgbWFudWFsIHBhZ2UuCiAgIAoxOTk2LTAyLTE2IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWNjb25maWcuaCxjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpCiAgICAgLSAuY29uZiBmaWxlIGFkZGl0aW9uOiAgImNvbW11bml0eSBOIFNUUklORyIgdG8gY2hhbmdlIGNvbW11bml0eSBuYW1lcwogICAKMTk5Ni0wMi0xMiAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaGluLCBhZ2VudC9leHRlbnNpYmxlL21pc2MuYykKICAgICAtIFRoZSBhZ2VudCBub3cgc2V0cyBhbiBhbGFybSB0byByZXN0YXJ0IHJhdGhlciB0aGFuIGRvaW5nIGF0IHRoZQogICAgICAgc25tcHNldCB0aW1lIHRvIHJldHVybiBhIHZhbHVlIHRvIHRoZSBzbm1wc2V0IHJlcXVlc3QuCiAgIAoxOTk2LTAyLTA5IDE3OjA0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBlY2UtbWliLmRlZiwgc2Vkc2NyaXB0LmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgb3YvLmN2c2lnbm9yZSwgb3YvTWFrZWZpbGUuaW4sIG92L1JFQURNRSwKICAgb3YvVUNELUNvbXB1dGVyLCBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLAogICBvdi9vaWRfdG9fdHlwZS5pbiwgb3YvYml0bWFwcy9VQ0QuMjAubSwKICAgb3YvYml0bWFwcy9VQ0QuMjAucCwgb3YvYml0bWFwcy9VQ0QuMjYubSwKICAgb3YvYml0bWFwcy9VQ0QuMjYucCwgb3YvYml0bWFwcy9VQ0QuMzIubSwKICAgb3YvYml0bWFwcy9VQ0QuMzIucCwgb3YvYml0bWFwcy9VQ0QuMzgubSwKICAgb3YvYml0bWFwcy9VQ0QuMzgucCwgb3YvYml0bWFwcy9VQ0QuNDQubSwKICAgb3YvYml0bWFwcy9VQ0QuNDQucCwgb3YvYml0bWFwcy9VQ0QuNTAubSwKICAgb3YvYml0bWFwcy9VQ0QuNTAucCwgb3YvYml0bWFwcy9VQ0QuZmllbGRzOgoKICAgLSBCZXR0ZXIgT3BlblZpZXcgc3VwcG9ydAogICAgIC0gUmV0dXJucyBkaWZmZXJlbnQgc3lzT2JqZWN0SUQncyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUKICAgICAtIEFkZGVkIGEgJ292JyBkaXJlY3RvcnkgZm9yIE9wZW5WaWV3IHN1cHBvcnQgZmlsZXMKICAgICAgIC0gY3VycmVudGx5IGNvbnRhaW5zIG5lY2Vzc2FyeSBmaWxlcyB0byBzdXBwb3J0IGEgVUNEIGJpdG1hcCBmaWxlCiAgICAgICAgIGZvciBob3N0cyB1c2luZyB0aGUgdWNkLXNubXAgYWdlbnQuICBTZWUgdGhlIG92L1JFQURNRSBmaWxlIGZvciBkZXRhaWxzLgogICAKMTk5Ni0wMS0yNiAwODoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIFRoZSBTb2xhcmlzIDIuNSBrZXJuZWwgaGFzIG1vdmVkIHRvIC9rZXJuZWwvZ2VudW5peAogICAgIC0gVGhhbmtzIGdvZXMgdG8gcG9tbWllckB2b2xuYXkuc3RvcnRlay5jb20gKFZpbmNlbnQgUG9tbWllciAoVG91bG91c2UpKQogICAKMTk5Ni0wMS0yNCAxNjozNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBlY2UtbWliLmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUsIGNvbmZpZy5oLCBlY2UtbWliLiosIHNlZHNjcmlwdC5pbikKICAgICAtIGNoYW5nZWQgdGhlIHdheSBtaWIudHh0IGlzIGJ1aWx0CiAgICAgICAtIHNwbGl0IHRoZSBjb21tYW5kIGludG8gdHdvIHBhcnRzIHRvIGJ1aWxkIGEgZWNlLW1pYi50eHQgYXMgd2VsbAogICAgIC0gYWRkZWQgYSBuZXcgT2JqZWN0SUQgYWRkaXRpb24gdG8gZWNlLW1pYi50eHQKICAgICAtIERFRk1BWExPQURBVkUgLT4gRFJFTU9WRU1FRUZNQVhMT0FEQVZFCiAgIAoxOTk2LTAxLTI0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+CiAgICAgLSBmaXhlcyAtcCBQT1JUIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIHRoZSByZXF1ZXN0ZWQgcG9ydC4KICAgICAtIGZpeGVzIHRoZSAtbCBMT0dGSUxFIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIGl0LgogICAKMTk5Ni0wMS0yNCAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIFJldHVybmluZyBFWFRFTlNJQkxFRE9UTUlCLkFHRU5USUQgYXMgdGhlIG5ldyBvYmplY3RpZAogICAKMTk5Ni0wMS0yMiAxNzozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpCiAgICAgLSBQcmVwZWQgZm9yIDMuMC41IHJlbGVhc2UKICAgCjE5OTYtMDEtMjIgMTc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spCiAgICAgLSBhZGRlZCBhZ2VudCBjb250cm9sczogIHJlc3RhcnQsIHVwZGF0ZWNvbmZpZywgY2xlYXJjYWNoZS4KICAgICAtIHJlbW92ZWQgYW4gb2xkIGRlYnVnZ2luZyBwcmludGYuCiAgICAgLSBjdHJsLWYgPT4gZml4YWxsLgogICAgIC0gQWRkZWQga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIHRvIHRoZSBhc3NvY2lhdGVkIG1lbnUgaXRlbXMuCiAgICAgLSBNYWRlIGhpZ2hsaWdodFRoaWNrbmVzcyBhIGdsb2JhbCBwYXJhbWV0ZXIgdmlhICR3aW5kb3ctPm9wdGlvbignYWRkJykuCiAgICAgLSBBZGRlZCBhIGVudHJ5IGJveCB0byB0aGUgZXhlY3V0YWJsZSBjb21tYW5kcyB3aXRoIHRoZSBjb21tYW5kIHRvIHJ1bi4KICAgCjE5OTYtMDEtMjIgMTc6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pIEFkZGVkIGEgY2htb2QgdG8gbWFrZSB0aGUgc25tcGNoZWNrIHNjcmlwdCBleGVjdXRhYmxlCiAgIAoxOTk2LTAxLTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgIC0gQWRkZWQgbmV3IGRlZmluZXMgdG8gdHVybiBvbi9vZmYgc2VjdGlvbnMgb2YgdGhlIGV4dGVuc2libGUgbWliLgogICAgIC0gVGhpcyBhbHNvIGZpeGVzIHRoZSBtaWIudHh0IGZpbGUgZGVmaW5pdGlvbnMgaWYgc29tZXRoaW5nIGlzIHR1cm5lZCBvZmYuCiAgIC0gKE1ha2VmaWxlLmluKSByZW1vdmVkICR7c3JjZGlyfSBmcm9tIHRoZSBmcm9udCBvZiBzdGFtcC1oLmluCiAgIAoxOTk2LTAxLTE5IDE3OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHJlbW92ZS1maWxlczoKCiAgIC0gKGNvbmZpZ3VyZSopCiAgICAgLSB1cGRhdGVkIHRvIGF1dG9jb25mIHYyLjcKICAgICAtIEhvcGVmdWxseSBub3cgdXNpbmcgY29ycmVjdCAnbWFrZScgZGVmaW5pdGlvbnMKICAgCjE5OTUtMTItMjggMTU6MjQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbikgTWlub3IgY2xlYW51cHMuCiAgIAoxOTk1LTEyLTI4IDEyOjE0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChDaGFuZ2VMb2csRVhBTVBMRS5jb25mLmRlZikgc3BlbGwgY2hlY2sgKHNpZ2gpCiAgIAoxOTk1LTEyLTI4IDEyOjA5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsCiAgIE1ha2VmaWxlLmluLCBORVdTLCBSRUFETUUsIHNlZHNjcmlwdC5pbjoKCiAgIC0gQ3JlYXRlZCBhIEVYQU1QTEUuY29uZiBmaWxlIGZvciBleGFtcGxlIHVzYWdlLgogICAKMTk5NS0xMi0yOCAxMDo0NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogIFVwZGF0ZWQgdGhlc2UgZm9yIDMuMC40IHJlbGVhc2UuCiAgIAoxOTk1LTEyLTI4IDEwOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogIE5ldmVyIGZpbmlzaGVkIHRoZSBpbnN0YWxsIGl0ZW0uCiAgIAoxOTk1LTEyLTI4IDEwOjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgVE9ETywgYWNjb25maWcuaCwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWYsCiAgIHNlZHNjcmlwdC5pbiwgbG9jYWwvLmN2c2lnbm9yZSwgbG9jYWwvTWFrZWZpbGUuaW4KLCBsb2NhbC9zbm1wY2hlY2suZGVmLCBUT0RPOgoKICAgLSBBZGRlZCBhIHNlZHNjcmlwdCB3aGljaCBpcyBidWlsdCBmcm9tIGNvbmZpZy5oIGFuZCBhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaAogICAgIC0gdXNlZCB0byBkeW5hbWljYWxseSBidWlsZCBtaWIudHh0IGFuZCBsb2NhbC9zbm1wY2hlY2suCiAgIAoxOTk1LTEyLTI4IDEwOjAxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSBBZGRlZCBzZWRzY3JpcHQgdG8gdGhlIC5jdnNpZ25vcmUgZmlsZS4KICAgCjE5OTUtMTItMjAgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIEZvdW5kIGFuZCBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSByb3V0aW5nIHRhYmxlIG1pYi4KICAgCjE5OTUtMTItMjAgMDk6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9vcGVuIGNhbGxzIGdldHNlcnZieW5hbWUgb25seSBvbmNlIG5vdywgYXQgdGhlIHJlcXVlc3Qgb2YgR2FyeQogICAgIEhheXdhcmQgPGdhaEBkaXJhYy5iZWxsY29yZS5jb20+LgogICAKMTk5NS0xMi0wNSAxNTowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjaykKICAgICAtIE5ldyBmbGFnOiAgLWQsIGRvbid0IHN0YXJ0IGNoZWNraW5nIGFueXRoaW5nLiAgSnVzdCBicmluZyB1cCBpbnRlcmZhY2UuCiAgICAgLSBjaGVjayBmb3IgYmxhbmsgb3V0cHV0IG9mIHNubXBnZXQgYmVmb3JlIHBhcnNpbmcgd2l0aCBzLy8vZwogICAgICAgY29uc3RydWN0cy4KICAgCjE5OTUtMTItMDUgMTQ6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopIGFkZGVkIEFDX1RZUEVfUElEX1QgdG8gdGhlIGNvbmZpZ3VyZSBjaGVja3MKICAgCjE5OTUtMTItMDEgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIGxvY2FsL3NubXBjaGVjazogICAgICAgKm5ldyBmZWF0dXJlcyoKICAgICAtIGhhbmRsZXMgZmFpbGVkIHNubXB3YWxrL2dldC9zZXRzIG11Y2ggbW9yZSBncmFjZWZ1bGx5IG5vdwogICAgIC0gbmV3IHByZWZlcmVuY2U6ICBZb3UgY2FuIHBpY2sgd2hhdCB0eXBlcyBvZiBwcm9ibGVtcyB0byBjaGVjayBmb3IKICAgICAgIC0gLWYgb24gdGhlIGNvbW1hbmQgbGluZSBvbmx5IGNoZWNrcyBmb3IgZml4YWJsZSBwcm9ibGVtcwogICAgIC0gbm8gbG9uZ2VyIHBpbmc6OmVjaG9zIGhvc3RzIGJlZm9yZSBjaGVja2luZyB0aGVtCiAgICAgICAtIGluc3RlYWQgcmVsaWVzIG9uICdObyBSZXNwb25zZScgdHlwZSByZXBsaWVzIGZyb20gc25tcHdhbGsvZ2V0IHRvCiAgICAgICAgIGRldGVybWluZSBpZiBhIGhvc3QgaXMgdXAuCiAgICAgICAtIHBpbmcgdGhlIGhvc3QgaXMgc3RpbGwgYW4gb3B0aW9uICh0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUgYW5kIG1lbnVzKQogICAgIC0gY29udmVydGVkIGZyb20gVGstYjQgdG8gVGstYjgKICAgICAtIEFkZGVkIGEgbG9nZ2luZyB3aW5kb3cgZm9yIGRlYnVnZ2luZyBhbmQgdHJhY2tpbmcgb2YgYWN0aW9ucy4KICAgICAgIC0gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOiAgLVYgTlVNICBpbml0aWFsIGxvZyB2ZXJib3NpdHkgbGV2ZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUwgICAgICBzaG93IHRoZSBsb2cgd2luZG93IGF0IHN0YXJ0dXAKICAgICAtIE5vdyB0cmFuc2xhdGVzIG1pYiBudW1iZXJzIGludG8gbW9yZSByZWFzb25hYmxlIG5hbWVzCiAgIAoxOTk1LTExLTIwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICAtICh0cmFwbm90aWYpIExvZ3Mgbm8tcmVzcG9uY2UgZXJyb3JzLgogICAtICh0cmFwbm90aWYpIEJldHRlciBzdHJpbmcgY2hlY2tpbmcgKHF1b3RlcyBhbGwgdmFyaWFibGVzIG5vdykKICAgCjE5OTUtMTEtMjAgMTY6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLAogICBta2luc3RhbGxkaXJzOgoKICAgLSAoYWxsIGF1dG9jb25mIGJ1aWx0IGZpbGVzKSBVcGRhdGVkIGV2ZXJ5dGhpbmcgdG8gYXV0b2NvbmYgMi41CiAgIAoxOTk1LTExLTIwIDE2OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgIAoxOTk1LTExLTIwIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgLSAoY29uZmlndXJlLmluKSBNb3JlIHNvbGFyaXMgc3BlY2lmaWNzOiAgLURTVlI0CiAgIC0gKGNvbmZpZ3VyZS5pbikgQ2FjaGVzIGluaXRpYWwgcHJvbXB0IGluIHRoZSBjb25maWd1cmUgc2NyaXB0IHNvIHlvdQogICAgIHdvbid0IGJlIGJ1Z2dlZCB0d2ljZSBieSB0aGUgaW5pdGlhbCBxdWVzdGlvbi4KICAgCjE5OTUtMTEtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKSBGaW5kIGFuZCBmaXggbWVtb3J5IGxlYWsgc29tZXRpbWUKICAgCjE5OTUtMTEtMjAgMTY6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgQWRkZWQgcG9pbnRlciB0byB0aGlzIGZpbGUgdmlhIGZ0cAogICAKMTk5NS0xMC0xNyAxNzoyNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5NS0xMC0xNyAxNzoxMCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlLWZpbGVzIG5lZWRzIHRvICdjZCcgdG8gdGhlIGNvcnJlY3QgZGlyZWN0b3J5IGZpcnN0CiAgIAoxOTk1LTEwLTE3IDE2OjU3ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBhZGRlZCB0aGUgcmVtb3ZlLWZpbGVzIGV4cG9ydCBjb21tYW5kCiAgIAoxOTk1LTEwLTE2IDE3OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE9uZSBsYXN0IGVjaG8gLW4gdnMgXGMgZml4CiAgIAoxOTk1LTEwLTE2IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXBkLmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChhcHBzKSBhbGwgYXBwcyB3ZXJlIHN0aWxsIGxvb2tpbmcgaW4gL2V0Yy8gZm9yIC5jb25mIGZpbGVzCiAgIAoxOTk1LTEwLTE2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpIGZpeGVkIFxjIHZzIC1uIGRlcGVuZGVuY3kKICAgCjE5OTUtMTAtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSB3YXMgc3RpbGwgbG9va2luZyBpbiAvZXRjIGZvciB0d28gLmNvbmYgZmlsZXMuCiAgIAoxOTk1LTEwLTE2IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSBBZGRlZCBpbmZvIHJlcXVlc3QgdG8gYm90dG9tIG9mIFRPRE8KICAgCjE5OTUtMTAtMTYgMTU6NTUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5NS0xMC0xNiAxNTowNSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIG1hcmtlZCBpbnN0YWxsIGFzIGZpbmlzaGVkIGFuZCBzb2xhcmlzIHBvcnQgYXMgY2xvc2UKICAgCjE5OTUtMTAtMTYgMTU6MDEgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIE1ha2VmaWxlLmluLCBSRUFETUUsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGVzKSBtYWtlIGluc3RhbGwgZWNob3Mgd2hhdCBpdHMgZG9pbmcgaW4gYSBtb3JlIGNsZWFyIGZhc2hpb24KICAgLSAoSU5TVEFMTCkgYWRkZWQgYmV0dGVyIGluc3RydWN0aW9ucyB0byB0aGUgSU5TVEFMTCBmaWxlLgogICAtIChSRUFETUUpIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwogICAKMTk5NS0xMC0xNiAxMzowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIG1hbi8uY3ZzaWdub3JlLCBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZXMpIEZhaXJseSBkZWNlbnQgJ21ha2UgaW5zdGFsbCcgbm93IHBvc3NpYmxlLiAgSW5zdGFsbHMKICAgICBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IC0tcHJlZml4IGZvciB0aGUgLi9jb25maWd1cmUgc2NyaXB0LgogICAtIChleHRlbnNpYmxlLmMpIGNvbmZpZyBmaWxlIHJlLWxvY2F0aW9uOiBub3cgdXNlcyB0aGUgU05NUExJQlBBVEgKICAgICBkZWZpbmVkIGxvb3NlbHkgYXMgJChwcmVmaXgpL2xpYi9zbm1wLy4KICAgCjE5OTUtMTAtMTMgMTU6NDQgIGhhcmRha2VyCgogICAqIFRPRE8sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHN0YW1wLWgsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCAtcCBwb3J0IHRvIC0taGVscCBvdXRwdXQKICAgLSAoY29uZmlnKSBTZXR1cCB0byB1c2UgLS1wcmVmaXggdG8gbG9vayBmb3IgY29uZmlnIGZpbGVzLgogICAKMTk5NS0xMC0xMSAxNzozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIFRoZSBjb25maWd1cmUgc2NyaXB0IG5vdyBwcm9tcHRzIGZvciBpbXBvcnRhbnQgdmFsdWVzIHRvIGJlIHB1dCBpbgogICAgIGNvbmZpZy5oLiAgU29tZSB0aGluZ3MgbmVlZCB0byB1c2UgJChwcmVmaXgpIGluc3RlYWQgaG93ZXZlci4KICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluKQogICAgICsgbGlua2luZyB0byAuLi9zbm1wbGliL2xpYnNubXAuYSBpbnN0ZWFkIG9mIC4uL2xpYi9saWJzbm1wLmEgdG8KICAgICAgIHJlbW92ZSBpbnN0YWxsIHJlcXVpcmVtZW50LgogICAgICsgIHB1dCAuLi9saWIvbGlic25tcC5hIGluIGFwcGxpY2F0aW9uCiAgIAoxOTk1LTEwLTA2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBORVdTLCBUT0RPOgoKICAgLSAoTkVXUy8tVE9ETykgLWgvLS1oZWxwLCAtdi8tLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbnMKICAgCjE5OTUtMTAtMDYgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBVc2FnZSBvZiAtLWhlbHAgYW5kIC0tdmVyc2lvbiBzaG91bGQgd29yayBub3cuLi4gIEdOVSBzdGFuZGFyZC4KICAgCjE5OTUtMTAtMDYgMTY6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jOgoKICAgLSAocGFyc2UuYywgc25tcC5jKSBhZGRlZCBjb25maWcuaCB0byB0aGUgbGlzdCBvZiBpbmNsdWRlcy4KICAgCjE5OTUtMTAtMDYgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCB0d28gbmV3IGZsYWdzOgogICAgIC1oIGZvciBoZWxwCiAgICAgLXYgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24KICAgCjE5OTUtMTAtMDYgMTE6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgTW92ZWQgSU5TVEFMTEFUSU9OIGluc3RydWN0aW9ucyB0byBJTlNUQUxMCiAgICAgICAgICAgICAgQ2hhbmdlZCBsaXN0aW5nIG9mIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzCiAgICAgICAgICAgICAgVXBkYXRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbgogICAKMTk5NS0xMC0wNiAxMToyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbikgbm93IGNhY2hlcyBtb3JlIHZhbHVlcyAocHMgYXJncywgZXRjKSBhbmQKICAgICBjaGVja3MgZm9yIHRoZSBsb2NhdGlvbiBvZiBwcyAobm8gbG9uZ2VyIGFzc3VtaW5nIHRvIGJlIC9iaW4vcHMpCiAgIAoxOTk1LTEwLTA2IDExOjI0ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBtb3ZlZCB0byBoZXJlCiAgIAoxOTk1LTEwLTA1IDE1OjIyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBUT0RPLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHN0YW1wLWguaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF92YXJfcm91dGUuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIE1vcmUgU29sYXJpcyBwb3J0aW5nLgogICAgIC0gTW9zdCBtaWJJSSBlbnRyaWVzIG5vdyB3b3JrLgogICAgICAgIC0gSGF2ZW4ndCBjaGVja2VkIHJldHVybmVkIGluZm9ybWF0aW9uIGZvciBhY2N1cmFjeQogICAgIC0gc3lzVXBUaW1lIHN0aWxsIGZhaWxzLgogICAgIC0gY2MgYW5kIGdjYyBib3RoIGNvbXBpbGUgZXZlcnl0aGluZyBub3cuCiAgIAoxOTk1LTEwLTAzIDA5OjQyICBoYXJkYWtlcgoKICAgKiBzdGFtcC1oLCBzdGFtcC1oLmluOgoKICAgKC5jdnNpZ25vcmUpIHJlbW92ZWQgZmlsZXMgc3RhbXAtaCBzdGFtcC1oLmluIGZpbGVzIHNpbmNlIG1ha2VmaWxlIG5lZWRlZCB0aGVtLgogICAKMTk5NS0xMC0wMyAwOTozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAoTWFrZWZpbGUuaW4pIFJlbW92ZWQgLi9jb25maWd1cmUgYW5kIC4vY29uZmlnLmguaW4gZnJvbSAiYWxsOiIgZGVwZW5kZW5jaWVzCiAgIAoxOTk1LTEwLTAzIDA5OjMxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgKC5jdnNpZ25vcmUpIHJlbW92ZWQgY29uZmlnLmguaW4gZnJvbSBjdnMgaWdub3JlIGxpc3QgKGJhZCBiYWQpCiAgIAoxOTk1LTEwLTAzIDA5OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIChjb25maWcuaC5pbikgQWRkZWQgZmlsZS4KICAgCjE5OTUtMTAtMDMgMDk6MjQgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAoVE9ETykgVXBkYXRlIG9mIHRoZSBUT0RPIGxpc3Q6ICBpbmNsdWRlZCBzbm1wdjEgY29uZmlnIGlkZWFzCiAgIAoxOTk1LTEwLTAzIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgKGFjY29uZmlnLmgpIE1pbm9yIGJ1ZzogIHJlY3Vyc2l2ZSBjb21tZW50cyBub3QgY29ycmVjdCBmb3IgY29tcGlsZXJzIChBSVgpCiAgIAoxOTk1LTA5LTI5IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUykgdXBkYXRlZCB0aGUgbmV3cyBmaWxlLgogICAKMTk5NS0wOS0yOSAxMzo0MSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIFRPRE8sIGFjY29uZmlnLmgKLCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzLAogICBhZ2VudC8uY3ZzaWdub3JlLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWNsX3ZhcnMuYwosIGFnZW50L2FsYXJtLmMsIGFnZW50L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9ldmVudC5jLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcGFydHlfdmFycy5jCiwgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3ZpZXdfcGFyc2UuYwosIGFnZW50L3ZpZXdfdmFycy5jLCBhcHBzLy5jdnNpZ25vcmUsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliLy5jdnNpZ25vcmUsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMKLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdmlldy5jOgoKICAgLSBwb3J0ZWQgdG8gR05VJ3MgYXV0b2NvbmZpZzIuNAogICAgIC0gdG8gaW5zdGFsbCwgeW91IG11c3Qgbm93IHJ1biAuL2NvbmZpZ3VyZSBmaXJzdCB0byBnZW5lcmF0ZSB0aGUKICAgICAgIE1ha2VmaWxlcyBhbmQgY29uZmlnLmgKICAgICAtIGFsbW9zdCBhbGwgb2YgdGhlIGNvZGUgaXMgbm93IGR5bmFtaWNhbGx5IGNoZWNrZWQgZm9yIHByb2JsZW1zCiAgICAgICByYXRoZXIgdGhhbiBiZWluZyBkZXBlbmRhbnQgb24gYXJjaGl0ZWN0dXJlIG5hbWVzLgogICAtIHN5c3RlbSBuYW1lIG5vdyBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGF0IHJ1biB0aW1lIChmcm9tIHVuYW1lIC1uKQogICAtIGNyZWF0ZWQgYSAnbWFrZSBkZXBlbmQnIGNhbGwgKGZpbmFsbHkpLgogICAtIChhZ2VudC9zbm1wX3ZhcnMuaCkgY2hhbmdlZCBTWVNOQU1FIGRlZmluZSB0byBTWVNURU1OQU1FIGRlZmluZSB0bwogICAgIGF2b2lkIGEgY29uZmxpY3Qgd2l0aCBhIHNvbGFyaXMgaGVhZGVyIGZpbGUuCiAgIC0gcHJvdGVjdGluZyBiZXR0ZXIgYWdhaW5zdCBpbmNsdWRlIGhlYWRlciBmaWxlcyB0d2ljZS4KICAgLSBNb3N0IG9mIHBvcnQgdG8gU29sYXJpcyAyLjQgZmluaXNoZWQuICBUaGUga2VybmVsIHJlYWRzIHN0aWxsIG5lZWQgd29yay4KICAgCjE5OTUtMDktMjEgMDk6MjkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIDMuMC4yLjEgcmVsZWFzZSAoY29tcGlsYXRpb24gYnVnIGZpeCkKICAgCjE5OTUtMDktMjEgMDk6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAoc25tcGxpYi9tZDUuYykgRm9yZ290IHRvIGluY2x1ZGUgc3lzL3R5cGVzLmggZm9yIHVfbG9uZyBkZWZpbml0aW9uLgogICAKMTk5NS0wOS0xOCAxNjoyNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgTmV3cy9DaGFuZ2Vsb2cgdXBkYXRlcwogICAKMTk5NS0wOS0xOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgQmVnaW5uaW5ncyBvZiBhIG1hbnVhbCBwYWdlIGZvciBzbm1wZAogICAKMTk5NS0wOS0xOCAxNjowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTWlub3IgbW9kcyB0byBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDktMDEgMTQ6NTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBBZGRlZCBhIE5FV1MgZmlsZSB0byByZXBvcnQvcmVjb3JkIG1ham9yIGNoYW5nZXMKICAgCjE5OTUtMDktMDEgMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jCjoKCiAgIC0gRml4ZWQgYWxwaGEncyBrZXJuZWwgbG9va3VwczoKICAgICAqIENNVSBjb2RlIHdhcyBwYXNzaW5nIGludHMgaW50byBsc2VlayAobmVlZHMgbG9uZykuCiAgIAoxOTk1LTA3LTMxIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBzbm1wY2hlY2sgY2hhbmdlczoKICAgICAtIHRlcm1pbmFsIChhc2NpaSkgYmFzZWQgc3VwcG9ydGVkIGZpeGVkLgogICAgICAgLSBEZXRlY3RzIHByZXNlbmNlIG9mIGEgRElTUExBWSB2YXJpYWJsZS4KICAgICAgIC0gTm93IHJlcXVpcmVzIHRoZSBUZXJtOjpSZWFka2V5IHBhY2thZ2UuCiAgICAgICAtIGFza3MgdXNlcnMgd2VhdGhlciB0byBmaXggcHJvYmxlbXMKICAgICAtIHJhaXNlcyBhbmQgZGVpY29uaWZpZXMgd2hlbiBuZXcgcHJvYmxlbXMgYXJlIGZvdW5kCiAgICAgLSBzZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIG5ldyBwcm9ibGVtcyB0byBwaW5raXNoCiAgICAgLSBuZXcgcHJlZmVuY2U6ICBwaW5nIGhvc3Q/CiAgICAgLSBnbG9iYWwga2V5IGJpbmRpbmdzOgogICAgICAgICBjdHJsLXEgPSBxdWl0OyBjdHJsLWggPSBoaWRlOyBjdHJsLXMgPSBzZWVuIGFsbAogICAKMTk5NS0wNy0yOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBZZXQgbW9yZSBwcm9ibGVtcyBmaXhlZCBpbiB0aGUgYWxwaGEgcG9ydC4KICAgICAtLSBtb3JlIGludCAtPiBsb25nIGNoZWNraW5nLgogICAKMTk5NS0wNy0yNiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWQ1LmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIEFkZGVkIGEgbmV3ICNkZWZpbmU6IEVYSVRfT05fQkFEX0tMUkVBRCB0byBjb25maWcuaAogICAgIElmIGRlZmluZWQsIGFuZCBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUga2VybmVsIGNvbnRlbnRzLAogICAgIHRoZSBhZ2VudCB3aWxsIGV4aXQuICBUaGlzIHdhcyB0aGUgZGVmYXVsdC4gIEkgd2FudGVkIGl0IHRvCiAgICAgY29udGludWUuCiAgIAogICAtIFBvcnQgdG8gZGVjLWFscGhhL09TRiAzLjEKICAgICAtIGFscGhhJ3MgbG9uZyBpcyA4IGJ5dGVzLCBub3QgNC4KICAgICAtIHNob3VsZCBiZSAobW9zdGx5KSA2NCBiaXQgY2xlYW4gbm93LgogICAgIC0gY2xlYW5lZCB1cCBhIExPVCBvZiBidWdzIENNVSBjb2RlIGluIHRoZSBwcm9jZXNzLgogICAKMTk5NS0wNy0xNCAxNToyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlbG9nIHVwZGF0ZQogICAKMTk5NS0wNy0xNCAxNToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gc25tcGNoZWNrICh0ay1wZXJsLWI0IHNjcmlwdCkgaXMgcHJldHR5IHN0YWJsZSBhdCB0aGlzIHBvaW50LiAgSQogICAgIGxvc3QgY3Vyc2VzIHN1cHBvcnQsIGFuZCBuZWVkIHRvIHJlLWFkZCBpdCBzdGlsbCwgc28gaXQgaXMgc3RpbGwKICAgICBiZXRhLiAgSXQgZG9lcyBleHBlY3QgYSBsb2cgZmlsZSBvZiBwcm9ibGVtcyB0byBleGlzdCAocG9pbnQgaXQgdG8KICAgICAvZGV2L251bGwpLCBhbmQgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb25zIG9mIHRoZSBtaWJzIHRvIGNoZWNrCiAgICAgKHdoaWNoIGFyZW4ndCBjb25maWd1cmVkIGJ5ICdtYWtlJyksIHNvIGl0IG5lZWRzIHNvbWUgd29yay4KICAgICBIb3dldmVyLCBpdCB3aWxsIHF1ZXJ5IGFuIGFnZW50LCBjaGVjayBpdHMgcHJvYmxlbXMgYmFzZWQgb24gdGhlCiAgICAgc3RhdHVzIG9mIHRoZSBlcnJvciBmbGFnIChvciByZXR1cm4gY29kZSkgYmVpbmcgPjEgYW5kIHJlcG9ydCB0aGVtCiAgICAgd2l0aCBuZWF0IEdVSS1idXR0b25zIGFuZCBzdHVmZiAob2ggd293KS4gIE5vIGRvY3VtZW50YXRpb24gb24gaXQgdGhvdWdoLgogICAKMTk5NS0wNy0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gRmluaXNoZWQgdGhlIHJlc3RhcnQgbWliLiAgVGhpcyBpcyBhIHNldGFibGUgc3ViLW1pYiBvZiB0aGUgdmVyc2lvbgogICAgIG1pYiwgZGVmYXVsdCB0byBWRVJTSU9OLjEyKC4xKS4gIElmIHNubXAtc2V0IHRvICcxJywgaXQgd2lsbCByZXN0YXJ0CiAgICAgdGhlIGFnZW50LgogICAKICAgICAqICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgaXMgdGhhdCBpdCByZXN0YXJ0cyAzIHRpbWVzIG9yIHNvLCBzaW5jZSBpdAogICAgICAgIG5ldmVyIHJldHVybnMgYSByZXNwb25jZSB0byB0aGUgcHJvZ3JhbSBnZW5lcmF0aW5nIHRoZSByZXF1ZXN0LgogICAgICAgIElmIHNhaWQgcHJvZ3JhbSB0cmllcyB0byByZXNlbmQgdGhlIHJlcXVlc3QgKHdoaWNoIG1vc3QgZG8pLCBpdAogICAgICAgIHdpbGwgQUdBSU4gcmVzdGFydCB0aGUgYWdlbnQuLi4gIG9oIHdlbGwuCiAgIAoxOTk1LTA3LTEwIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgTWlub3IgY29tbWVudCBjaGFuZ2UgaW4gY29uZmlnLmgKICAgCjE5OTUtMDctMTAgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBUd28gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOgogICAgIC1sIExPR0ZJTEUgICAgICAgT3V0cHV0cyBzdGRlcnIvb3V0IHRvIExPR0ZJTEUgKG92ZXJyaWRlcyBjb25maWcuaCBkZWYpCiAgICAgLUwgICAgICAgICAgICAgICBEbyBOT1Qgd3JpdGUgdG8gYSBsb2cgZmlsZSAob3ZlcnJpZGVzIGNvbmZpZy5oKQogICAKMTk5NS0wNi0yMSAwOToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgc25tcGxpYjoKICAgICBCdWcgZml4OiAgZmRzZXQgLT4gKGludCAqKSBmZHNldCBpbiBzZWxlY3QgY2FsbC4KICAgCjE5OTUtMDYtMjEgMDk6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDaGFuZ2VkIGRlZmF1bHQgQ0MgdG8gY2MgYWdhaW4uCiAgIAoxOTk1LTA2LTIxIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIGVjZS1taWIuZGVmOgogICBCdWcgRml4OgogICAgIExvYWRhdmUgbWliOiAgSW50ZWdlciAtPiBEaXNwbGF5U3RyaW5nCiAgICAgdmVyc2lvbkNsZWFyQ2FjaGU6ICAtPiByZWFkLXdyaXRlICh3YXMgcmVhZC1vbmx5KQogICAKICAgRmVhdHVyZToKICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KICAgCjE5OTUtMDYtMjEgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENoYW5nZWQgYW5vdGhlciAiZW1wdHkiIGVycm9yIG1lc3NhZ2UgaW4gdGhlIENNVSBjb2RlIHRvIGEgcmVhbCB3YXJuaW5nLgogICAKMTk5NS0wNi0xNiAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBIb3VzZSBDbGVhbmluZzoKICAgICBNaXNzZWQgYSBWRVJTSU9OX0lECiAgIAoxOTk1LTA2LTE2IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEhvdXNlIENsZWFuaW5nOgogICAgIFRvb2sgb3V0IGdjYy9hbnNpIHJlcXVpcmVtZW50IGZvciB0aGUgYWdlbnQuCiAgICAgcGVycm9yKCkgaXMgY2FsbGVkIG1vcmUgZnJlcXVlbnRseSBmb3IgbG9nIGFyY2hpdmFsCiAgIAogICBOZXcgQnVnL0hhdmVuJ3Qgc29sdmVkOgogICAgIEhQLVVYOiAgaWYgYWdlbnQvKi5jIGFuZCBhZ2VudC9leHRlbnNpYmxlLyouYyBhcmUgYnVpbHQgd2l0aCBnY2MsCiAgIAkgIERpc3BsYXlTdHJpbmdzIHJldHVybiBnYXJiYWdlLiAgTm8gY2x1ZSBhcyB0byB3aHkuCiAgIAoxOTk1LTA2LTE2IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHNubXBkLmM6CgogICBIb3VzZSBjbGVhbmluZwogICAgIC0gQ29tcGlsZXMgY2xlYW5seSBvbiBocHV4L2djYwogICAJKGV4Y2VwdCBvbmUgaW5jbHVkZSBmaWxlIGVycm9yIEkgZG9uJ3QgaGF2ZSBjb250cm9sIG92ZXIuKQogICAgIC0gQ2hhbmdlIFZFUlNJT05fSUQgLT4gVkVSU0lPTklEIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIEhQJ3MgaW5jbHVkZXMuCiAgIAoxOTk1LTA2LTE2IDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgJ2dtYWtlJyAtPiAnbWFrZScgaW4gYWdlbnQvTWFrZWZpbGUKICAgCjE5OTUtMDYtMTQgMTQ6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDYtMTQgMTM6NTYgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgUkVBRE1FOgoKICAgVXBkYXRlZCB0aGUgQ2hhbmdlTG9nCiAgIEFkZGVkIGEgInJlYWwiIGRpc2NsYWltZXIgdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMTk5NS0wNi0xNCAxMzo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAtIENyZWF0ZWQgYSBtYWlsaW5nIGxpc3QgdG8gaGFuZGxlIGFubm91bmNlbWVudHMKICAgICAodWNkLXNubXAtYW5ub3VuY2VAZWNlLnVjZGF2aXMuZWR1KQogICAKMTk5NS0wNi0xNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIENsZWFuZWQgdXAvQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGNvbmZpZy5oCiAgIC0gR0xPQkFMU0VDVVJJVFkgbm93IHVzZXMgdGhlIGxlZnQgbW9zdCBmb3VyIGJpdHMgaW4gdGhlIE1JQiBhY2wuCiAgICAgVGhpcyBpcyBtb3JlIGNvbXBhdGlibGUgd2l0aCB0aGUgQ01VIGNvZGUgdGhhbiB1c2luZyB0aGUgbGVmdCBtb3N0CiAgICAgMiwgd2hpY2ggd2FzIGRvbmUgcHJldmlvdXNseS4KICAgCjE5OTUtMDYtMTQgMTE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgYWdlbnQ6CiAgIC0gTWliIHRhYmxlIGlzIG5vdyBxc29ydGVkIGF0IHJ1biB0aW1lIGFuZCB0aGUgZXh0ZW5zaWJsZSB2YXJpYWJsZXMgYXJlCiAgICAgc29ydGVkIGluIGF0IHRoaXMgdGltZS4gIFRoaXMgYnJpbmdzIHRoZSBhZ2VudCB1cCB0byBjb3JyZWN0CiAgICAgU05NUHdhbGsvZ2V0bmV4dCBwcm90b2NvbHMuICBZb3UgY2FuIG5vdyB3YWxrIHRoZSBlbnRpcmUgdHJlZQogICAgIGluY2x1ZGluZyB0aGUgZXh0ZW5zaWJsZSBzZWN0aW9ucyBhbmQgaXQgd29uJ3Qgc3RvcC4KICAgICAqIFRoaXMgaGFzIGFuIGFkZGVkIGJvbnVzIG9mIGNoZWNraW5nIHRoZSBtaWIgdGFibGUKICAgICAgIChhZ2VudC9zbm1wX3ZhcnMuYykgZm9yIGNvcnJlY3Qgb3JkZXIuICBJIGhhdmUgYWRkZWQgdGhpbmdzIHRvIHRoZQogICAgICAgd3JvbmcgbG9jYXRpb24gdG9vIG1hbnkgdGltZXMgYW5kIGNhdXNlZCB0aGUgYWdlbnQgdG8gZnVuY3Rpb24KICAgICAgIGluY29ycmVjdGx5LiAgTWFqb3Igd2luLgogICAKMTk5NS0wNi0xMiAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgbG9jYWwvdHJhcG5vdGlmOgogICAgIC0tIHVzZXMgc25tcHYyIG5vdyAoY29ycmVjdGx5KQogICAKMTk5NS0wNi0wOSAxNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZWQgdGVzdCAteCB0byB0ZXN0IC1mIGluIHNubXBsaWIvTWFrZWZpbGUuICBOb3QgYWxsIE9TZXMKICAgICAoaWUgdWx0cml4KSBoYW5kbGUgdGhpcy4KICAgCjE5OTUtMDYtMDkgMTM6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBGaXhlZCBBdXRoZW50aWNhdGlvbiBlcnJvciAoYWdhaW4pIChjb3JyZWN0IHRoaXMgdGltZSkgYmV0d2VlbgogICAgICAgICByZXZlcnNlZCBieXRlIG9yZGVyIG1hY2hpbmVzLgogICAgIC0tICAjaWZkZWYgaHB1eC9TWVNWL3N1biBpbiBtZDUuYyByZXZlcnNlcyBieXRlIG9yZGVyCiAgIAoxOTk1LTA2LTA5IDEyOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgRml4ZWQgQXV0aGVudGljYXRpb24gZXJyb3IgYmV0d2VlbiByZXZlcnNlZCBieXRlIG9yZGVyIG1hY2hpbmVzLgogICAgIC0tICAjaWZkZWYgaHB1eC9TWVNWIGluIG1kNS5jIHJldmVyc2VzIGJ5dGUgb3JkZXIKICAgCjE5OTUtMDYtMDkgMTA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQ29ycmVjdGx5IG9yZGVyZWQgdGhlIG1pYiB0YWJsZSBsaXN0LgogICAgIC0tICBOZWVkIHRvIHdyaXRlIGEgZHluYW1pYyBjaGVja2VyL3JlLW9yZGVyZXIuCiAgIAoxOTk1LTA2LTA5IDEwOjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBBZGRlZCBhIFNOTVBCTE9DSyBvcHRpb24gdG8gdGhlIGNvbmZpZy5oIGZpbGUuICBTdXBwb3NlZGlseSBzZXR0aW5nCiAgICAgdGhpcyB0byB6ZXJvIChub3cgdGhlIGRlZmF1bHQpIHdpbGwgYWxsb3cgc25tcCByZXF1ZXN0cyB0byB0aW1lIG91dC4KICAgICBIYXZlbid0IHRlc3RlZCBpdCB0aHJvdWdobHkuCiAgICAgICAtLSBDb250cmlidXRlZCBieSBTYW5qYWkgTmFyYWluIDxuYXJhaW5AdGh1bXBlci5iZWxsY29yZS5jb20+CiAgIAoxOTk1LTA2LTA1IDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIFJFQURNRSwgYWdlbnQvc25tcF92YXJzLmM6CgogICAqIGFnZW50L2V4dGVuc2libGUvTWFrZWZpbGU6CiAgICAgICAtLSAgbm8gbG9uZ2VyIHJlcXVpcmVzIEdOVSBtYWtlCiAgICAgICAtLSAgZXRhZ3Mgbm8gbG9uZ2VyIHJ1biBieSBkZWZhdWx0CiAgIAogICAqIFN1bk9TIGFkZGl0aW9uczoKICAgICAgIC0tIGxvYWRhdmVyYWdlIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgICAgICAtLSBkaXNrIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgIAoxOTk1LTA2LTAyIDE2OjIxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBGaW5hbCBtb2RpZmljYXRpb24gZm9yIGluaXRhbCByZWxlYXNlCiAgIAoxOTk1LTA2LTAyIDE1OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICNpZmRlZiBocHV4IGFyb3VuZCBocHV4IHNwZWNpZmljIG1pYnMKICAgCjE5OTUtMDYtMDIgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICBFUlJPUigpIGRlZmluZSBub3cgZmx1c2hlcyBzdGRvdXQKICAgCjE5OTUtMDYtMDIgMTU6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIE5vdyB1c2VzIHYyIHJlcXVlc3QgcHJvdG9jb2wuCiAgIAoxOTk1LTA2LTAyIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcmludHMgTUlCIHRvIHN0ZG91dCBmb3IgZXhpc3RlbnQgbWlicwogICAKMTk5NS0wNi0wMiAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBhIGNoZWNrIGZvciBTTk1QVjIvU05NUFYyQVVUSCB0eXBlIGF1dGhvcml6YXRpb24uCiAgIAoxOTk1LTA2LTAyIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgUmVvcmdhbml6ZWQgY29uZmlnLmggaW4gbW9yZSBvciBsZXNzIG9yZGVyIG9mIGltcG9ydGFuY2UKICAgQWRkZWQgZGVmaW5pdGlvbnMgZm9yIFNOTVBWMk9OTFkgdHlwZSBhdXRob3JpemF0aW9uLgogICAKMTk5NS0wNi0wMiAxNToyNiAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICByZW1vdmVkIGJvZ3VzIHR3byBsaW5lcwogICAKMTk5NS0wNS0zMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBOZXc6CiAgIAogICAgIEFkZGVkIHR3byBuZXcgQUNMIHR5cGVzOiAgUFJJVkFVVEhSVyBhbmQgUFJJVkFVVEhSTyB3aGljaCB3aWxsIG9ubHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmsgaWYgdGhlIHJlcXVlc3QgaXMgYXV0aGVudGljYXRlZCAoYnkgYW55dGhpbmcpLgogICAKMTk5NS0wNS0zMSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTmV3OgogICAKICAgICBBZGRlZCAtZiBvcHRpb24gdG8gUkVBRE1FCiAgIAoxOTk1LTA1LTMxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIE5ldzoKICAgCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgIAoxOTk1LTA1LTMxIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIE5ldzoKICAgCiAgICAgTmV3IGRlZmluaXRpb24gaW5jbHVkZWQgZm9yIGEgZGVmYXVsdCBwbGFjZSB0byBsb2cgbWVzc2FnZXM6IExPR0ZJTEUKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgICBGb3JrcyBhd2F5IGZyb20gY2FsbGluZyBzaGVsbCBieSBkZWZhdWx0IG5vdyB1bmxlc3MgLWYgc3BlY2lmaWVkLgogICAKICAgTWlzYzoKICAgCiAgICAgSWZkZWZzIGFyb3VuZCBhbGwgYWRkZWQgc2VjdGlvbnMgb2YgY29kZSB0byBkaXNhYmxlIGR1cm5pbmcgY29tcGlsYXRpb24KICAgCjE5OTUtMDUtMzEgMTQ6NDUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBOZXc6CiAgIAogICAgIE5ldyBkZWZpbml0aW9uIGluY2x1ZGVkIGZvciBhIGRlZmF1bHQgcGxhY2UgdG8gbG9nIG1lc3NhZ2VzOiBMT0dGSUxFCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgIAogICBCdWdzOgogICAKICAgICBocHV4IGNvbXBsaWVycyBkb24ndCBkZWZpbmUgU1lTViBieSBkZWZhdWx0Li4uCiAgIAoxOTk1LTA1LTE5IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgbWVudXMgYW5kIG1vdmVkIHNvbWUgY29tbWFuZHMgdGhlcmUgYXMgd2VsbCBhcyBwcmVmcmVuY2VzLgogICBOb3cgcmVzY2FucyBhZnRlciA1IG1pbnV0ZXMgYW5kIGNoZWNrcyB0aGUgbG9nLgogICAKMTk5NS0wNS0xOSAxNTo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgZWdyZXBpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIGZvciBob3N0cyBub3cuCiAgIAoxOTk1LTA1LTE5IDE1OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1vcmUgZGVmaW5lcyBtb3ZlZCB0byBjb25maWcuaAogICAKMTk5NS0wNS0xOSAxNTo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBlY2UtbWliLmRlZjoKCiAgIFdvcmtpbmcgdG93YXJkIGFuIGV4cG9ydGFibGUgdmVyc2lvbi4KICAgCjE5OTUtMDUtMTcgMTI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXb3JraW5nIHZlcnNpb24uCiAgICAgLS0gIG5vdyBvcGVyYXRlcyBvbiBhIHNlbGVjdGlvbgogICAgIC0tICBzdGlsbCBoYXMgYSBsb3Qgb2Ygcm9vbSBmb3IgaW1wcm92ZW1lbnQuCiAgIAoxOTk1LTA1LTA4IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRmFpcmx5IGZ1bmN0aW9uaW5nIHZlcnNpb24uCiAgIE5lZWQgdG8gcG9ydCB0byBwZXJsNS4wMDEgJiB0azRiMwogICAKMTk5NS0wNS0wNSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBPcHBzLiAgU2V0IHRwLT5uYW1lbGVuIHRvIGJlIC0xLCB3aGVuIGl0IGlzIGEgdW5zaWduZWQgY2hhci4gIFVzaW5nIDAgbm93LgogICAKMTk5NS0wNS0wNSAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfdmFycy5jCjoKCiAgIFJlLWFycmFuZ2luZyBhbmQgUmUtbmFtaW5nIHN0dWZmIGZvciBleHRlcm5hbCBkaXN0cmlidXRpb24KICAgCjE5OTUtMDUtMDMgMTM6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTWFqb3IgYnVnOgogICAgIENoYW5naW5nIHRyZWUgc2l6ZSBjYXVzZWQgcHJvYmxlbXMuCiAgICAgZXh0ZW5zaWJsZSB0cmVlIG5vdyBhZGRzIGEgaGFsdCBjb25kaXRpb24gKG5hbWVsZW4gPSAtMSkgdG8gY2hlY2sgZm9yCiAgIAoxOTk1LTA1LTAzIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHByb3RvdHlwZSBkZWNsYWlyYXRpb24gZm9yIGZpbmRfZXh0ZW5zaWJsZSgpCiAgIAoxOTk1LTA1LTAzIDA5OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBDaGFuZ2VkIHRpbWVvdXQgdG8gYmUgMzAgc2Vjb25kcy4KICAgCjE5OTUtMDUtMDMgMDk6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgTmV3IHNjcmlwdDoKICAgICB3YWxrcyBhbiBleHRlbnNpYmxlIChvciBhbnkpIG1pYiB0cmVlLiAgSGFzIGJ1aWx0IGluIGtub3dsZWRnZSBvZgogICAgIHRoZSBtaWJzIGZvciBsYXktcGVvcGxlcyB1c2VhZ2UuCiAgIAoxOTk1LTA1LTAzIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgRml4ZWQgYnVnOiAgVXNpbmcgYSB3cm9uZyB2YXJpYWJsZQogICAKMTk5NS0wNS0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBleHRlbnNpYmxlIG1pYiBlbnRyeS4KICAgICAtLSBmaW5kX2V4dGVuc2libGUgbm93IHJldHVybnMgdGhlIGRlZmF1bHQgbWliIHRyZWUgb3IgYW4KICAgICAgICBhcHByb3ByaWF0ZSBtaWIgdHJlZSB3aXRoIHRoZSBjcmVhdGVkIGV4dGVuc2libGUgZW50cnkgaW4gaXQuCiAgIAoxOTk1LTA1LTAzIDA5OjEwICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIGxvYWQgYXZlcmFnZSBtaWIgZW50cnkKICAgCjE5OTUtMDQtMTcgMTI6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBTdGFydGVkIHdyaXR0aW5nIGEgVGsgaW50ZXJmYWNlLi4uICBDb2RlIGlzIHN0aWxsIHZlcnkgdmVyeSB1Z2x5LCBidXQgd29ya3MuCiAgIAoxOTk1LTA0LTE3IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBOb3cgbG9ncyBpdHNlbGYgY29ycmVjdGx5LgogICAKMTk5NS0wNC0xMyAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGRlcGVuZGFuY3kgZm9yIHdlcy9taWJkZWZzLmggdG8gc25tcF92YXJzLmMKICAgCjE5OTUtMDQtMDcgMTI6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICAtLSBQb3J0ZWQgdG8gZGVjIDUwMDAvMjAwIFVsdHJpeCA0LjIgYXJjaGl0ZWN0dXJlcwogICAgICAgICBUT0RPOiAgbWVtb3J5L3N3YXAgaW4gd2VzLmMKICAgCjE5OTUtMDMtMzEgMTU6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBCdWdzOgogICAgIFdhcyBhY3Rpbmcgc2xvdyBzaW5jZSBpdCB3YXMgY2hlY2tpbmcgZWFjaCBtaWIgbG9jYXRpb24gdHdpY2UuCiAgICAgUmVtb3ZlZCBwZXJsIC13IHdhcm5pbmdzCiAgIAoxOTk1LTAzLTE1IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgc25tcGNoZWNrIGlzIG5vdyB3cml0dGVuIHVzaW5nIHBlcmw1J3Mgb2JqZWN0IG9yaWVudGVkIHJvdXRpbmVzLgogICAKMTk5NS0wMy0xNSAxNDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ01VIEJ1ZyBmaXhlczoKICAgICAtLSBiZXR0ZXIgam9iIHRoYW4gbXkgcHJldmlvdXMgaGFjayBmaXhpbmcgZ2V0X3Rva2VuLgogICAgICAgICsgZ2V0X3Rva2VuIG5vdyByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50IGRpY3RhdGluZyB0aGUgbWF4IHN0cmluZwogICAgICAgICAgbGVuZ3RoIHRoZSB0b2tlbiBjYW4gaG9sZC4KICAgCjE5OTUtMDMtMTUgMDk6MjYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZWQgUkVBRE1FLmhwdXggZmlsZSBmcm9tIEhQLXBvcnQtMS0xLTEuLi4KICAgCjE5OTUtMDMtMTUgMDk6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBwZXJsIC0+IHBlcmw1CiAgIE5vIGxvbmdlciBkZXBlbmRzIG9uIE9WcyBzbm1wc2V0LCBjYW4gbm93IHVzZSBDTVVzIHNubXBzZXQgKC91c3IvbG9jYWwvZXRjKQogICAKMTk5NS0wMy0xMCAxMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFkZGVkIC9ldGMgYXMgYW5vdGhlciBwYXRoIHRvIHNlYXJjaCB3aGVuIGxvb2tpbmcgZm9yIG1pYi50eHQKICAgCjE5OTUtMDMtMTAgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1ham9yIGhhY2tpbmcgdG8gcGFyc2UoKSB0byB3b3JrIGF0IGFsbC4KICAgICAtLSBOb3cgSSBkb24ndCB1bnN0YW5kIHdoeSBpdCBldmVyIHN1Y2Nlc3NmdWxseSBwYXJzZWQgdGhlIG1pYi50eHQgZmlsZS4KICAgICAtLSBnZXRfdG9rZW4gd2FzIGNvbnN0YW50bHkgY2FsbGVkIHRvIHJlYWQgREVTQ1JJUFRJT04gc3RyaW5ncyBpbnRvCiAgICAgICAgYSBjaGFyIGFycmF5IG9mIGVpdGhlciA2NCAoTUFYVE9LRU4pIG9yIDQwOTYgKE1BWFFVT1RFU1RSKSBpbgogICAgICAgIGxlbmd0aC4gIE1BTlkgb2YgdGhlIERFU0NSSVBUSU9OIHN0cmluZ3MgYXJlIGxvbmdlciB0aGFuIHRoaXMuCiAgICAgLS0gSGFja2VkIHBhcnNlUXVvdGVkU3RyaW5nIHRvIG1ha2Ugc3VyZSByZXR1cm5lZCBhcmUgc3RyaW5ncyA8IE1BWFFVT1RFU1RSCiAgIAoxOTk1LTAzLTEwIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgI2luY2x1ZGUgPHNvY2tldGlvLmg+IGlzIG5vdCBuZWVkZWQgb24gSFBVWAogICAKMTk5NS0wMy0xMCAxMzoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgQWRkZWQgc25tcGdldG5leHQgYW5kIHNubXBzZXQgdG8gLmN2c2lnbm9yZQogICAKMTk5NS0wMy0wOSAxMzoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBkLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENNVSAyLjEuMiAtPiAyLjEuMi4xIE1lcmdlLgogICAKMTk5NS0wMy0wOCAxNjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgbWFuL3NubXBidWxrd2Fsay4xLCBtYW4vc25tcGdldC4xLCBtYW4vc25tcGdldG5leHQuMQosIG1hbi9zbm1wbmV0c3RhdC4xLCBtYW4vc25tcHNldC4xLAogICBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjg6CgogICBJbml0aWFsIHJldmlzaW9uCiAgIAoxOTk1LTAzLTA4IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwosIG1hbi9SRUFETUUsIG1hbi9zbm1wdGVzdC4xLAogICBtYW4vc25tcHdhbGsuMSwgbWFuL3NubXBidWxrd2Fsay4xLAogICBtYW4vc25tcGdldC4xLCBtYW4vc25tcGdldG5leHQuMSwKICAgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEsCiAgIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuOCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZpZXcuYywKICAgc25tcGxpYi92aWV3Lmg6CgogICBOZXcgcmVsZWFzZSBvZiBDTVUncyBjb2RlOgogICAgIC0tIFNlZSBSRUFETUUgZm9yIHNwZWNpZmljIGRldGFpbHMKICAgICAtLSBzbm1wc2V0LHNubXBnZXRuZXh0IGFkZGVkCiAgICAgLS0gLXEgZmxhZyBhZGRlZCAicXVpY2sgcHJpbnQiCiAgICAgLS0gYnVnIGZpeGVzCiAgICAgLS0gTWFuIHBhZ2VzIHVwZGF0ZWQKICAgCjE5OTUtMDMtMDIgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBNaW5vciBiYWNrc3BhY2UgY2hhbmdlcy4uLgogICBSZW1vdmVkIC13IHN3aXRjaCBmb3IgcGVybAogICAKMTk5NS0wMy0wMiAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIEZpeCBmcm9tIFRpbTogY29ycmVjdGx5IGZpbmRzIHBpZCBub3cKICAgCjE5OTUtMDItMDkgMTI6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBwZXJsIC13IHByb2R1Y2VzIG5vIHdhcm5pbmdzIG5vdyBpZiBubyBjbWQgbGluZSBhcmdzIGFyZSBnaXZlbi4KICAgQWRkZWQgdHdvIG1vcmUgc3RhdHVzIGluZGljYXRvcnMgKHNsZWVwaW5nLCBjaGVja2luZykgZm9yIGZpeCByb3V0aW5lLgogICBOb3cgc2xlZXBzIGZvciAyIHNlY29uZHMgaW5zdGVhZCBvZiAxIChub3QgcXVpY2sgZW5vdWdoIHRvIGNhdGNoIFggcmVzdGFydHMpCiAgIAoxOTk1LTAyLTA5IDEyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgQ2hhbmdlZCBwcyAtZWwgdG8gcHMgLWU6ICBwcyAtZWwgcmVwb3J0ZWQgWCBhcyBiZWluZyBhbGl2ZSBpbnN0ZWFkIG9mIDxkZWZ1bmN0PgogICAKMTk5NS0wMi0wOCAxNToyMCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBhIG1pYiB0byBwcm92aWRlIGNhcGFiaWxpdHkgZm9yIGlnbm9yaW5nIHRoZSBleGVjIGNhY2hlLgogICAgIC0tICBOZWVkZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGEgJ2ZpeCcgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZSAnZml4JyB3b3JrZWQuCiAgIAoxOTk1LTAyLTA4IDE1OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgUG9rZXMgdGhlIHJlc2V0LWNhY2hlIG1pYiB0byBlbnN1cmUgYSBuZXcgJ3BzJyBvdXRwdXQgZm9yIGZpeGVkIHByb2JsZW1zLgogICAKMTk5NS0wMi0wOCAxNDo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIE5ldyBvcHRpb25zOgogICAgIC15OiAgYWx3YXlzIHRyeSB0byBmaXggdGhlIHByb2JsZW1zCiAgICAgLW46ICBuZXZlciB0cnkgdG8gZml4IHRoZSBwcm9ibGVtcwogICBDdXJyZW50bHkgZGVmYXVsdHMgdG8gbmV2ZXIgKHNob3VsZCBwcm9tcHQpIHRpbGwgSSBjYW4gZ2V0IHBlcmwncwogICAgIGdldGMoU1RESU4pIHRvIHdvcmsuLi4KICAgVXNlcyBzbm1wc2V0IHRvIGFjY29tcGxpc2ggdGhpcywgd2hpY2ggaXMgT1ZzIGFuZCBvbmx5IGxpY2VuY2VkIGZvciBvbmUgaG9zdC4KICAgCjE5OTUtMDItMDggMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBkLmM6CgogICBBZGRlZCAnY2xvc2Ugb24gZXhlYycgZmxhZ3MgdG8gb3BlbiBmaWxlcyAoL2Rldi8qbWVtKikgYW5kIHNvY2tldHMuCiAgICAgLS0gIFByZXZlbnRzIHNwYXduZWQgcHJvY2Vzc2VzIGZyb20ga2VlcGluZyBzbm1wZCBmcm9tIHJlc3RhcnRpbmcuCiAgICAgICAgIChFcnJvcnMgd2VyZTogIENhbid0IGJpbmQgc29ja2V0IChpbiB1c2UpIGFuZCBDYW4ndCBvcGVuIC9kZXYvZG1lbSkKICAgU2V0IE9fUkRPTkxZIGZsYWcgb24gL2Rldi8qbWVtKiBmaWxlcywgcmVxdWlyZWQgYnkgdGhlICdtYW4gcGFnZScgKGVsc2UgdW5kZWYpCiAgIAoxOTk1LTAyLTAzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIHdlcy9leGVjLm8KICAgCjE5OTUtMDItMDMgMTM6NDkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgbWliIGRlZnMgZm9yIHRoZSByZWFkL3dyaXRlIGZpeCBmb3IgcHJvY3MgYW5kIGV4ZWMgZnVuY3Rpb25zCiAgIAoxOTk1LTAyLTAzIDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLCBmaXhwcm9jLmNvbmY6CgogICBBZGRlZCBmaXhwcm9jIGFuZCBpdHMgZGF0YWJhc2UgKGluc3RhbGxlZCBpbiAvbG9jYWwvc2NyaXB0cyBhbmQgL2xvY2FsL2V0YykKICAgQ29waWVkIHRoZSBjdXJyZW50IC9ldGMvZWNlLXNubXBkLmNvbmYgdG8gdGhpcyBkaXJlY3RvcnksIGZvcgogICBhcmNoaXZpbmcuCiAgIAoxOTk1LTAyLTAxIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX2FnZW50LmM6CgogICBBZGRlZCB3cml0ZS1taWIgYWJpbGl0eSB0byBmaXggYSBnaXZlbiBwcm9jZXNzCiAgICAgLS0gd2lsbCBldmVudHVhbGx5IGNhbGwgVGltJ3Mgc2NyaXB0IHRvIGZpeCB0aGUgcHJvY2VzcwogICAgIC0tIERlZmluZWQgaW4gd2VzLmgKICAgCjE5OTUtMDItMDEgMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4ZWQgTWFrZWZpbGUgYnVnOiAgY2FsbGVzICQoTUFLRSkgbm93IGluc3RlYWQgb2YgZXhwbGljaXQgbWFrZS4KICAgCjE5OTUtMDEtMzAgMTM6MzMgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgVmVyc2lvbiBpbmZvcm1hdGlvbiBub3cgY29udGFpbnMgYSBDVlMgdGFnIGluZm8gbWliCiAgIFZFUkNEQVRFIG5vdyB3b3JrcyBwcm9wZXJseS4KICAgCjE5OTUtMDEtMzAgMTE6MTkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgdmVyc2lvbiBtaWIgdG8gZGVmaW5pdGlvbnMuCiAgIAoxOTk1LTAxLTMwIDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHZlcnNpb24gbWliIChWRVJJREVOVCxWRVJEQVRFLFZFUkNEQVRFKQogICBBZGRlZCBtaWJpbmNsLmggYW5kIG1pYmRlZnMuaCB0byBzdGFydCBzcGxpdHRpbmcgdXAgbWlicyBpbiB3ZXMuYyBpbnRvCiAgICAgc2VwZXJhdGUgZmlsZXMuICBJbmNsdWRlIHRoZXNlIHR3byBmaWxlcyB0byBpbmNsdWRlIG5lY2Vzc2FyeSBkZWZzCiAgIEVSUk9STVNHIGRlZnMgbm93IEFMTCByZXR1cm4gY3VycmVudCBudW1lcmljYWwgcmVzdWx0IHdpdGggdGhlIG1zZy4KICAgCjE5OTUtMDEtMjcgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUHV0IGluIGRlZmluZXMgZm9yIHRoZSBzdWIgbWliIG51bXMge3NubXBfdmFycy5jLCB3ZXMuaH0KICAgCjE5OTUtMDEtMjcgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBwYXRocyAoL3Vzci9sb2NhbC9ldGMpIHRvIHNubXB7Z2V0LHdhbGt9CiAgIAoxOTk1LTAxLTI3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1hZGUgbmxpc3QgZW50cnkgY2hhbmdlcy4gIG5vIGxvbmdlciBkaWVzIGZyb20gYSBBcnBUYWJsZSBxdWVyeS4KICAgCjE5OTUtMDEtMjcgMTI6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTW92ZWQga2VybmVsL25saXN0IHByaW50b3V0IG9mIG5vdCBmb3VuZCBubGlzdCBlbnRyaWVzIG91dCBvZiAjaWZkZWYgaHB1eAogICAKMTk5NS0wMS0yNyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBjcHAgTWlzdGFrZSBmaXg6ICNpZmRlZiBIUFVYIC0+ICNpZmRlZiBocHV4CiAgIAoxOTk1LTAxLTI1IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFBvcnRlZCAoYmFjaykgdG8gU3VuNDoKICAgICAtLSBzd2FwIGFuZCBkaXNrIG1pYnMgbm90IHN1cHBvcnRlZCB5ZXQKICAgICAtLSBmb3VuZCBudW1lcm91cyBidWdzIEkgaGFkbid0IG5vdGljZWQgdW5kZXIgSFBVWCwgbW9zdGx5IHR5cGUKICAgICAgICBjYXN0aW5nLgogICAKMTk5NS0wMS0yNSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIFN3YXAvTWVtb3J5IG1pYiBjaGVjayAoLjQpLCBub3cgdGhhdCBpdCBjb25mb3JtcyB0byAuezEsMiwxMDAsMTAxfSBzcGVjcy4KICAgQ2hhbmdlZCBmb3JtYXRpbmcgdG8gdXNlICUtbi5ucyBzcGVjaWZpY2F0aW9ucyBpbnN0ZWFkIG9mIHRhYiBzZXBlcmF0aW9ucy4KICAgCjE5OTUtMDEtMjMgMTY6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIEJ1ZyBmaXg6ICBQb2xsZWQgd3JvbmcgbWliICgxMDAgaW5zdGVhZCBvZiAxMDEpIGZvciBlcnJtc2cgc3RyaW5nLgogICAKMTk5NS0wMS0yMyAxMjo1NyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBUeXBvIGZpeGVzIGluIHRoZSBtaWIgZGVmIGZpbGUgZm9yIE9WLgogICAKMTk5NS0wMS0yMyAxMjowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdvbid0IGNoZWNrIGRvd24gaG9zdHM6LSkKICAgCjE5OTUtMDEtMjMgMTA6NTcgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWxsICh3YXRjaGVkKSBtaWJzIG5vdyB1c2U6CiAgICAgMTogIE1JQklOREVYLCBqdXN0IGFuIGluZGV4IHRvIHRoZSBudW1iZXIgb2YgdmFycwogICAgIDI6ICBFUlJPUk5BTUUsIGEgZ2VuZXJpYyBvbmUgd29yZCBuYW1lIGZvciB0aGUgY2F1c2Ugb2YgRVJST1J7RkxBRyxNU0d9LgogICAKMTk5NS0wMS0yMyAxMDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQWRkZWQgLzEvT1YvYmluIHRvIHRoZSBwYXRoIHRvIGZpbmQgdGhlIHNubXAgdXRpbHMgd2l0aG91dCBwYXRoIGV4dGVuc2lvbnMuCiAgIE1vcmUgdmFyaWFibGUgdXNhZ2U6IHJlbW92ZWQgdXNlIG9mIGNvbW1hbmQgbGluZSBhcmdzIGRpcmVjdGx5LgogICBJZiB0aGUgZXJyb3IgZmxhZyBoYXMgY2hhbmdlZCBiYWNrIHRvIG5vcm1hbCwgb25seSBsb2cgaXQgaW4gdGhlCiAgICAgZWNlLXRvdGFsIGxvZyBmaWxlIGluc3RlYWQuCiAgIAoxOTk1LTAxLTIzIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV2lsbCB0YWtlIGhvc3RzIGZyb20gdGhlIGxvZyBmaWxlIGlmIG5vbmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgICAgLS0gIG9yIGlmIHRoZSBmaXJzdCBhcmcgaXMgYSAnLWEnIHdpbGwgKEEpZGQgdG8gdGhlIGNvbW1hbmQgbGluZSBsaXN0LgogICBEaXNwbGF5cyB3aGF0IGhvc3QgaXQgaXMgY2hlY2tpbmcgYXMgaXQgY2hlY2tzIGl0LgogICBDaGFuZ2VkIHRoZSBvdXRwdXQgZm9ybWF0IChJJ3ZlIHlldCB0byBzZWUgaWYgaXQgYWN0dWFsbHkgbG9va3MgZ29vZCB0aG91Z2gpLgogICAKMTk5NS0wMS0xOCAxNToyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEJlZ2lubmluZyBvZiBhIHNjcmlwdCB0byBjaGVjayBlcnJvcnMgd2l0aCBhIG1hY2hpbmUgYW5kIHJlcG9ydCB0aGVtCiAgICAgdmlhIHNubXAKICAgVE9ETzogIG9wdGlvbiB0byBmaXggdGhlIGVycm9ycyBpZiByb290IG9uIGNsb3ZlciAobmVlZCB0byByc2ggdG8gdGhlIG1hY2hpbmUpCiAgIAoxOTk1LTAxLTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBDaGFuZ2VkIHRoZSB0cmFwbm90aWYgZmlsZSB0byByZWZsZWN0IHJlY2VudCBzb3VyY2UgY2hhbmdlczoKICAgICAtLSByZW1vdmVkIG1lbSBlcnJvciBzZWN0aW9uLi4uICBUaGV5IGFyZSBoYW5kbGVkIHZpYSB0aGUgbm9ybWFsIGVycgogICAgICAgIHJvdXRlIHNpbmNlIHRoZXkgbm93IGhhdmUgYW4gZXJyb3IgbXNnIGxpa2UgdGhlIHJlc3QKICAgICAtLSBFcnJvciBmbGFnIGlzIG5vdyBhdCAxMDAsIGFuZCBlcnJvciBtZXNzYWdlIGlzIGF0IDEwMS4KICAgCjE5OTUtMDEtMDUgMTQ6NDUgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQ2hhbmdlZCB0aGUgbWliIGZpbGUgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBzb3VyY2UgY29kZS4KICAgQWxsIG1pYnMgbm93IGhhdmUgRXJyb3JGbGFnIGFuZCBFcnJvck1zZyBhcyAxMDAsMTAxCiAgIAoxOTk1LTAxLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRyYXBub3RpZiwgd2VzcmVzdGFydDoKCiAgIGNvcGllZCB0aGUgcmVzdGFydCBhbmQgdHJhcG5vdGlmIHNjcmlwdHMgdG8gdGhlIHNyYyB0cmVlIGZvciBjdnMgYXJjaGl2aW5nLgogICAKMTk5NS0wMS0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBJbml0aWFsIHJlbGVhc2UuCiAgIE5lZWRzIHRvIGJlIHVwZGF0ZWQuCiAgIAoxOTk1LTAxLTA0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogLmN2c2lnbm9yZSwgc25tcG5ldHN0YXQvLmN2c2lnbm9yZToKCiAgIEp1c3QgYSAuY3ZzaWdub3JlIGZpbGUKICAgCjE5OTUtMDEtMDQgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogLmN2c2lnbm9yZSwgc25tcF92YXJzLmM6CgogICBGZWF0dXJlOgogICAgIEFkZGVkIHRoZSBkaXNrIHdhdGNoaW5nIGZhY2lsaXRpZXMgdG8gcmVwb3J0IGRpc2sgc3BhY2UKICAgICAgIC0tIG5ldyBjb25maWcgb3B0aW9uICdkaXNrIERJU0sgTUlOQVZBSUwnCiAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYSBzZWNvbmQgY29uZmlnIGZpbGUgYXMgQ09ORklHRklMRVRXTwogICAgICAgLS0gZGVmYXVsdHMgdG8gL2V0Yy9lY2Utc25tcGQubG9jYWwuY29uZgogICAgICAgLS0gaW50ZW50OiAgb25lIGlzIHJkaXN0ZWQgYW5kIG9uZSBpcyBtYWNoaW5lIHNwZWNpZmljCiAgICAgICAtLSBUT0RPOiAgTmVlZHMgdG8gZXJhc2UgcHJldmlvdXMgZGVmaW5pdGlvbnMgcmF0aGVyIHRoYW4gYWRkaW5nCiAgICAgICAgICB0d28gd2l0IHRoZSBzYW1lIG5hbWUKICAgCiAgIENoYW5nZToKICAgICBNSUIgZGVmaW5pdGlvbiBjaGFuZ2U6CiAgICAgICAtLSBBbGwgbWlicyB3aXRoIGVycm9yIGZsYWdzIG5vdyB1c2UgRVJST1JGTEFHL0VSUk9STVNHIGluc3RlYWQuCiAgICAgICAtLSBUaGVzZSBkZWZhdWx0IHRvIDEwMCBhbmQgMTAxLCBhbmQgYXJlIHNldCBieSBvbmx5IHR3byBkZWZpbmVzCiAgICAgU2hvcnRlbmVkIGVycm9yIG1lc3NhZ2UgZm9yIHByb2Nlc3MgZXJyb3JzIHRvIGZpdCBvbiB0aGUgc2NyZWVuLgogICAgIFN3YXAgbWliIGNvZGUgY2xlYW51cAogICAKICAgVE9ETzoKICAgICBBZGRlZCBiZWdpbm5pbmdzIG9mIGtlcm5hbCBsb2NraW5nIHRlc3RzLiAgTmVlZCB0byBmaW5kIGEgbWFjaGluZQogICAgIHdpdGggYSBicm9rZW4gcnBjLmxvY2tkIHRvIHRlc3QgdGhlIGNvZGUgdGhvdWdoLgogICAKICAgQnVnczoKICAgICBNeSBubGlzdCBhcnJheSBkaWRuJ3QgaGF2ZSBhIE5VTEwgZW5kaW5nLgogICAKMTk5NC0xMi0xNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIFJFQURNRSBmaWxlCiAgIAoxOTk0LTEyLTE0IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2hwdXguYzoKCiAgIEFkZGVkIGhwdXguYwogICAKMTk5NC0xMi0xNCAxNjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2NsaWVudC5jCjoKCiAgIEhQLVVYIHBvcnQgb2YgdGhlIENNVSBjb2RlCiAgIAoxOTk0LTEyLTE0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgbWliSUkudHh0LAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9hc24xLmgsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3ZpZXcuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaAosIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi92aWV3LmgsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGdldC5jLCBzbm1wbGliLy5wdXJlCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wX2FwaS4zCiwgbWFuL3NubXB0ZXN0LjEsIG1hbi9zbm1wd2Fsay4xLAogICBtYW4vdmFyaWFibGVzLjUsIG1hbi9SRUFETUUsIG1hbi9kZXMuMQosIG1hbi9kZXMuMzoKCiAgIEluaXRpYWwgQ01VIHNubXAgY29kZSwgdmVyc2lvbiAyLjEuMgogICAKMTk5NC0xMi0xNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIFJFQURNRS5jbXUsIG1pYklJLnR4dCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYwosIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmgKLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmgKLCBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvcGFydHkuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvdmlldy5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvdmlldy5oLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBnZXQuYwosIHNubXBsaWIvLnB1cmUsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcF9hcGkuMywKICAgbWFuL3NubXB0ZXN0LjEsIG1hbi9zbm1wd2Fsay4xLCBtYW4vdmFyaWFibGVzLjUsCiAgIG1hbi9SRUFETUUsIG1hbi9kZXMuMSwgbWFuL2Rlcy4zOgoKICAgSW5pdGlhbCByZXZpc2lvbgogICAKMTk5NC0xMS0xOCAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywKICAgc25tcGQuYzoKCiAgIEFkZGVkIHNvbWUgaHAtbWlicwogICAKMTk5NC0xMS0wNCAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBWaXJ0dWFsIE1lbW9yeSBtaWIgKGN1cnJlbnRseSBvbmx5IHRvdGFsIGFuZCB1c2VkKQogICAKMTk5NC0xMC0yOCAxMzozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIGhwLXV4IG1hY2hpbmVzIG5vdyByZXR1cm4gdGhlIGNvcnJlY3QgbWliIGxvY2F0aW9uIGZvciB0aGVpciBhcmNoIHR5cGUuCiAgIEFkZGVkIGhwLXV4IHRvIHRoZSBpZmRlZnMgZm9yIFJvdXRlX1NjYW5fUmVsb2FkKCkgZnVuY3Rpb24gZm9yIGNvcnJlY3QKICAgICAga2VybmFsIHJlYWRpbmcuCiAgIAoxOTk0LTEwLTI2IDEzOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHBhcnR5X3ZhcnMuYywgc25tcF92YXJzLmM6CgogICBEZWMgY29tcGlsYXRpb24gYWNoaXZlZCwgdGhvdWdoIGl0cyBub3Qgb3BlbmluZyBhbnkgcG9ydHMgd2hlbiBydW4uCiAgIAoxOTk0LTEwLTI0IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHRoZSBleHRlbnNpYmxlIG1pYiBzZWN0aW9uLgogICAKMTk5NC0xMC0yMCAxNjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF92YXJzLmMsIHZhcl9zdHJ1Y3QuaDoKCiAgIEFkZGVkIHRoZSByZW1haW5pbmcgaHAtdXggc3ltYm9scwogICBwdXQgYWxsIGRlcGVuZGFuY2llcyBmb3IgbXkgc3R1ZmYgdW5kZXIgd2VzLwogICBtb3ZlZCB0aGUgdmFyaWFibGUgZGVjbGFpcmF0aW9ucyAoc3RydWN0cykgdG8gdmFyX3N0cnVjdHMuaCBzbyB0aGV5IGNvdWxkIGJlCiAgIHJlZmVyZW5jZWQgYnkgb3RoZXIgZmlsZXMuCiAgIENoYW5nZWQgdGhlIGRlZmF1bHQgdmFsdWVzIHRvIGhwLXV4IGZyb20gQlNEIGFuZCBvdGhlciBtaXNjIHN0cmluZ3MKICAgQWRkZWQgYXBwcm9wcmlhdGUgZGVwZW5kYW5jaWVzIHRvIHRoZSBtYWtlZmlsZQogICBDaGFuZ2VkIGVycm9ycyBhbmQgYWRkZWQgc3R1ZmYgdG8gdGhlIHZhcmlhYmxlIGRlY2xhaXJhdGlvbnMgZm9yIG15IHN0dWZmCiAgIAoxOTk0LTEwLTE0IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBrZXJuZWwuYywgc25tcF92YXJfcm91dGUuYwosIHNubXBfdmFycy5jOgoKICAgZml4ZWQgbmxpc3QgZm9yIHRoZSBocHMuICBOb3Qgc3VyZSBvZiB0aHJlZSBwYXJ0aWN1bGFyIG5saXN0CiAgIHJlZmVyZW5jZXMgKGZvciB0aGUgYXJwIHRhYmxlKS4gIFRoZSByZXN0IGFyZSB3b3JraW5nLgogICBBbHNvIGFkZGVkIHdlcy8qIGRvIHRoZSBkZXBlbmRhbmNlcyBmb3Igc25tcF92YXJzLmMKICAgCjE5OTQtMTAtMTQgMDg6MzkgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfdmFycy5jOgoKICAgSSBmaXhlZCB0aGUgc291cmNlIGZvciBjb21waWxhdGlvbiBhbmQgYmVnYW4gYWRkaW5nIG15IG93biBtaWIgZGVmcy4KICAgQW55IGluY2x1ZGVkIG1pYnMgd2hpY2ggbWFrZSBrZXJuYWwgcmVhZHMgc3RpbGwgZmFpbC4KICAgCjE5OTQtMTAtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGhpc3RvcnkuaCwga2VybmVsLmMKLCBzbm1wX2FnZW50LmMsIHNubXBfdmFyX3JvdXRlLmMsCiAgIHNubXBfdmFycy5oLCBzbm1wZC5jLCBhbGFybS5jLAogICBldmVudC5jLCBoaXN0b3J5LmMsIHBhcnR5X3ZhcnMuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFyc19ldmVudC5oLCB2aWV3X3ZhcnMuYwosIGFjbC5jb25mLCBhY2xfdmFycy5jLCBhbGFybS5oCiwgY29udGV4dF92YXJzLmMsIGV2ZW50LmgsIG0ybS5oCiwgc25tcF92YXJzX20ybS5oLCB2aWV3X3BhcnNlLmMsIC5wdXJlCiwgcm91dGVfd3JpdGUuYzoKCiAgIEluaXRhbCBDTVUgc291cmNlLgogICAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjggLT4gVjUuMC45CgoyMDAzLTA5LTA1IDIzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTA5LTA1IDIzOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZvcmdvdCBhIHRlc3QgYWZ0ZXIgdGhlIGlmCiAgIAoyMDAzLTA5LTA1IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDktMDUgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMwosIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMKLCBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zCiwgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMwosIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zLAogICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlCiAgIAoyMDAzLTA5LTA1IDIzOjI1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC45CiAgIAoyMDAzLTA5LTA1IDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM4MDA1NjEgZnJvbSBCb2IgUm93bGFuZHMgdG8gZml4IDY0Yml0IHByb2JsZW1zICgtPiBzaXplX3QpCiAgIAoyMDAzLTA5LTA1IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFBhdGNoICM4MDA0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIDY0IGJpdCBhZ2VudHggcHJvYmxlbXMKICAgCjIwMDMtMDktMDUgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUGF0Y2ggIzc5MjAwOCBmcm9tIFRob21hcz8gdG8gYWxsb3cgdXNtVXNlciB0b2tlbnMgdG8gb3ZlcnJpZGUgcHJldmlvdXMgZW50cmllcwogICAKMjAwMy0wOS0wNSAyMjowNCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBjbWQuMS5kZWYsCiAgIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcG5ldHN0YXQuMSwKICAgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLAogICBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZjoKCiAgIFBhdGNoICM3ODk0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIGEgbG9uZyBuZWVkZWQgb3ZlcmhhdWwgb2YgdGhlIG1hbnVhbCBwYWdlcy4KICAgCjIwMDMtMDktMDUgMjI6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgb25lIHJ1bi1hd2F5IHBhdGNoCiAgIAoyMDAzLTA5LTA1IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmM6CgogICBoaWdoIGxldmVsIGNvbW1lbnRzIGFib3V0IGNvbnRhaW5lZCBjb3B5cmlnaHRzIG1vdmVkIGZyb20gdGhlIG1haW4gYnJhbmNoCiAgIAoyMDAzLTA5LTA1IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgdXBkYXRlcwogICAKMjAwMy0wOS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIEFkZCBvcHRpb25hbCBhcmd1bWVudHMgdG8gdGhlIC0td2l0aC1wZXJsLW1vZHVsZXMgZmxhZyBmb3IgcGFzc2luZyBkb3duCiAgIAoyMDAzLTA5LTA1IDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggYSBnZXRidWxrIGJ1ZyBwb2ludGVkIG91dCBieSBKdXJpaiBTbWFrb3YuCiAgIAoyMDAzLTA3LTI3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggZmlsZW5hbWUgaW4gZXJyb3IgbXNnLCBhcyBub3RlZCBpbiBjb2RlcnMKICAgCjIwMDMtMDctMjQgMTg6MTQgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBhY2Nlc3MgdG8gYXVnbWVudHMgdGFnIChmaXggYnVnIDc0MDA4MjogbWliMmMgaGFuZGxlcyBBVUdNRU5UaW5nIHRhYmxlcwogICBpbmNvcnJlY3RseSkKICAgCjIwMDMtMDctMjQgMTg6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBpbmRleGVzIGZyb20gYXVnbWVudGVkIHRhYmxlIGZvciB0YWJsZXMgdXNpbmcgYXVnbWVudHMgKGZpeAogICBidWcgNzQwMDgyOiBtaWIyYyBoYW5kbGVzIEFVR01FTlRpbmcgdGFibGVzIGluY29ycmVjdGx5KQogICAKMjAwMy0wNy0yNCAwNToyNyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgYXMgZW1wdHkgaWYgbm90IGRlZmluZWQKICAgCjIwMDMtMDctMTAgMDk6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdHlwbzsgdXNlIHdoaWNoIHRvIGZpbmQgc2NwOyBhZGQgZXh0cmEgY29uZmlnIHRvIG90aGVyIGNvbmZpZwogICAKMjAwMy0wNy0wOSAyMDo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBob3N0L3BhdGggdXBsb2FkOyB0cnkgdG8gZXh0cmFjdCBtb3JlIGluZm8gZnJvbSBtYWtlIGxvZyBvbiBlcnJvcgogICAKMjAwMy0wNy0wOSAyMDo1NCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSwgbnNiLW5pZ2h0bHk6CgogICBhZGQgaG9zdC9wYXRoIHVwbG9hZCBwYXJhbXM7IHVzZSBuZXcgbnNiLWRlZmF1bHQtcGF0aHMKICAgCjIwMDMtMDctMDMgMjA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBjb250YWluZXJfbnVsbC5jCjoKCiAgIG9vcHMgLSBubyBuZXcgZmVhdHVyZXMgZm9yIDUuMC44CiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9saXN0X3NzbGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBjb250YWluZXJfbnVsbC5jCjoKCiAgIG5ldyBjb250YWluZXJzCiAgIAoyMDAzLTA3LTAyIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZml4IG5ldHNubXBfc3VidHJlZV91bmxvYWQoKSB0byB1cGRhdGUgdGhlIHJvb3QgcG9pbnRlcgogICAKMjAwMy0wNy0wMiAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmMKOgoKICAgUGF0Y2ggIzc2MDQ0OCBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gdG8gZml4IGJ1ZyAjNzUxOTEzIHRvIHByb3RlY3QgYSBmZXcgbWlub3Igc2VjdXJpdHkgdmlvbGF0aW9ucwogICAKMjAwMy0wNy0wMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zdHJsY3B5LmM6CgogICBmaWxlIHN0cmxjcHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zdHJsY3B5LmM6CgogICBQYXRjaCAjNzYwNDE3IGZyb20gQm9iIFJvd2xhbmRzL1N1biBmb3IgZml4aW5nIEJ1ZyAjNzUxOTIwIGZvciBtaW5vciBzZWN1cml0eSBwcm9ibGVtcyAoUElEIGZpbGUgdW5saWtlZCBmaXJzdCwgYW5kIHVzZSBzdHJsY3B5IGluc3RlYWQgb2Ygc3RyY3B5LiAgQSBuZXcgc3RybGNweSBmaWxlIHdhcyBkZWZpbmVkIGlmIG5vdCBkZWZpbmVkIGZvciBhIHN5c3RlbS4KICAgCjIwMDMtMDctMDIgMTA6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBkb24ndCB1c2UgaXNzcGFjZSBhbmQgaXNwcmludCBzaW11bHRhbmlvdXNseQogICAKMjAwMy0wNy0wMiAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgY29tbWVudCBjaGFuZ2UgZm9yIGNsYXJpZmljYXRpb24KICAgCjIwMDMtMDctMDIgMTA6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBQYXRjaCAjNzY0MDQ3IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24gZnJvbSBzbm1wX2RlYnVnLmggYW5kIGZpeCBhIGZldyBjb21tZW50cwogICAKMjAwMy0wNy0wMiAxMDoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNzU5MzA5IGZyb20gU3RlcGhlbiBGcmllZGwgdG8gYWRkIHByb21wdCBvdmVyLXJpZGUgZmxhZyBkZXNjcmlwdGlvbnMgdG8gcHJvbXB0IG91dHB1dAogICAKMjAwMy0wNy0wMiAxMDoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNzU5Mjk4OiBmaXggc3BlbGxpbmcgZXJyb3IKICAgCjIwMDMtMDYtMjUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcHJveHlpbmcgZm9yIGdldGJ1bGsKICAgCjIwMDMtMDYtMjIgMDc6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCB1c2FnZSBmb3IgZmxhZyBvcmRlcmluZwogICAKMjAwMy0wNi0xNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvbW1lbnQgYWJvdXQgaXQgYmVpbmcgYnJva2VuLCBhcyBwb2ludGVkIG91dAogICBieSBCcnVjZS4KICAgCjIwMDMtMDYtMTYgMTQ6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBzdXBwb3J0ICwgc2VwYXJhdGVkIGFyZ3VtZW50cyB0byAtVCBsaWtlIC1oIHNheXMgaXQgd2lsbC4KICAgCjIwMDMtMDYtMTYgMTQ6NTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCcnVjZSBTaGF3J3MgcGF0Y2ggNzU1NTUzIHRvIGZpeCBSVU5URVNUUyB0ZXN0IG51bWJlciByZXBvcnRpbmcgd2hlbgogICB0ZXN0aW5nIHN1YnNldHMgYXJlIHVzZWQuCiAgIAoyMDAzLTA2LTE2IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzU1NTQwIGZyb20gQnJ1Y2UgU2hhdyBhbmQgSVJDOlNlYk5vYiB0byBmaXggYnVnICM3MDE0MzkgZm9yIDY0IGJpdCBzb2xhcmlzIHN5c3RlbXMgYW5kIDY0IGJpdCBpbnRlZ2VycyByZXR1cm5lZCBieSBnZXRLc3RhdAogICAKMjAwMy0wNi0xNiAxNDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBQYXRjaCAjNzU0MTA1IGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggc29tZSBzcGVsbGluZyBlcnJvcnMKICAgCjIwMDMtMDYtMTAgMTU6NDggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCZXdhcmUgb2YgZGVyZWZlcmVuY2luZyBhIE5VTEwgcG9pbnRlcgogICAKMjAwMy0wNi0xMCAxMDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSB1bnVzZWQgZnVuY3Rpb24gYXMgcG9pbnRlZCBvdXQgYnkgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA2LTA5IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBMb25nIG92ZXJkdWUgcGF0Y2ggIzY5NTE5MiBmcm9tIFJvbiBUYWJvciB0byBmaXggdGhlIFZBQ00gc3Bpbm5pbmcgcHJvYmxlbSB0aGF0IEkgZGlkbid0IHF1aXRlIGZpeCBiZWZvcmUKICAgCjIwMDMtMDYtMDkgMTY6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTCiwgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgZml4IGJ1ZyAjNzA2NzEwIHRvIHNob3cgd2hlbiBwcml2YWN5IGhhcyBiZWVuIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA5IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBidWcgIzc0ODQzMSBmcm9tIEpvaG4gU2hpdmVyOiBmaXggdGhyZWFkLXNhZmUgcHJvYmxlbXMgd2l0aCBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbiAod2hpY2ggd2FzIG1pc3NpbmcgaW4gdGhlIDUueCBsaW5lIGFueXdheSkKICAgCjIwMDMtMDYtMDkgMTQ6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5NYXRzdXNoaXRhLnR4dCwgUkVBRE1FLk1hdHN1c2hpdGEudHh0OgoKICAgUGF0Y2ggIzc0ODMwNSBmcm9tIHNyaW5pdmFzYSByYW8gZ3VydXN1IGRlc2NyaWJpbmcgaG93IHRvIGJ1aWxkIG5ldC1zbm1wIG9uIE1hdHN1c2hpdGEgZW1iZWRkZWQgc3lzdGVtcwogICAKMjAwMy0wNi0wOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQYXRjaCA3NDYzMzk6IE90dG8gU29sYXJlcyBmaXhlcyBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGxpbnV4CiAgIAoyMDAzLTA2LTA5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBwYXRjaCAjNzQwOTE4IGZyb20gRXJpYyBFLiBCb3dsZXM6IGZpeCBwYXNzIHRocm91Z2ggaW52b2NhdGlvbiBmb3IgU0VUcwogICAKMjAwMy0wNi0wOSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc0OTA2MiB0byBmaXggY2FjaGluZyBjcmFzaGluZyBhbmQgY2xhc2hpbmcgdW5kZXIgU29sYXJpcwogICAKMjAwMy0wNi0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHBhdGNoICM3NDkxMDMgZnJvbSBHYXJyeSBDIE1hcnNoYWxsIHRvIGZpeCB0aGUgcHJveHkgd2hlbiBhIHRpbWVvdXQgb2NjdXJzIGZyb20gdGhlIHRhcmdldAogICAKMjAwMy0wNi0wNiAyMzoxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggbWlzc2luZyBsZW5ndGggYnl0ZSB3aGVuIHNldHRpbmcgaW5kZXggd2l0aCBjaGVja3MgZGlzYWJsZWQKICAgCjIwMDMtMDUtMjggMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIHVudXNlZCBjb2RlIGFzIHBvaW50ZWQgb3V0IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDUtMjggMTQ6MjkgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIGFkZGVkIFY0L1Y1IG5vdGUgZnJvbSBtYWluIGJyYW5jaCB0byBwYXRjaGVzCiAgIAoyMDAzLTA1LTIzIDExOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmcmVlIGNvbnRhaW5lciBhZnRlciBmcmVlaW5nIGNvbnRlbnRzCiAgIAoyMDAzLTA1LTIzIDExOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGNvbnRhaW5lciBmcmVlIG1hY3JvL2NvZGUgdG8gZGVhbCB3L3BvaW50ZXIgYmVpbmcgZGVsZXRlZAogICAKMjAwMy0wNS0yMyAxMToyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBFWFRFTlNJQkxFTUlCIC0+IFVDREFWSVNfTUlCCiAgIAoyMDAzLTA1LTE0IDEwOjMwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wNS0xNCAxMDoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgY2htb2QgdG8gd29yayBmcm9tIGNvbmZpZ3VyZSBhbmQgY29uZmlnLnN0YXR1cwogICAKMjAwMy0wNS0xMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM3MzU1MTEgZnJvbSBBbGV4IEJ1cmdlcjogZml4IHNubXB0cmFwZCB0byBlbnN1cmUgdGhlcmUgYXJlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2YXJiaW5kcwogICAKMjAwMy0wNS0xMiAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIFBhdGNoICM3MzY3ODQgZnJvbSBSb24gVGFib3I6IGZpeCBwcm94aWVzIGZvciByZXN0YXJ0ZWQgTlNNUHYzIHN1Yi1hZ2VudHMKICAgCjIwMDMtMDUtMDggMTY6MTYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gQW5kcmV3IEZpbmRsYXkKICAgCjIwMDMtMDUtMDggMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAoZXhjZWxsZW50KSBwYXRjaCAjNzA1NTY2IGZyb20gQW5kcmV3IEZpbmRsYXkgb24gcGVybCBhZ2VudCBzdXBwb3J0OgogICAKICAgMSkgQWdlbnQgY2Fubm90IHJldHVybiBNQUMgYWRkcmVzc2VzIGNvbnRhaW5pbmcgemVybyBvY3RldC4KICAgCiAgIDIpIEFnZW50IGNvcmVkdW1wcyB3aGVuIHRyeWluZyB0byByZXR1cm4gSVAgYWRkcmVzc2VzCiAgIGlmIHRoZXNlIGFyZSBzdXBwbGllZCBhcyBkb3R0ZWQtcXVhZCBvciBhcyBhIGhvc3RuYW1lCiAgIHRoYXQgZmFpbHMgdG8gcmVzb2x2ZS4KICAgCiAgIDMpIEFnZW50IGNvcnJ1cHRzIE9JRCB2YWx1ZXMuCiAgIAogICA0KSBBZ2VudCB0cnVuY2F0ZXMgYW55IE9DVEVUX1NUUklORyBvciBCSVRfU1RSSU5HIHRoYXQKICAgY29udGFpbnMgYSB6ZXJvIG9jdGV0ICh0aGlzIGlzIHRoZSByb290IGNhdXNlIG9mICgxKSBhYm92ZSkKICAgCiAgIEFQSSBjaGFuZ2VzIGludHJvZHVjZWQ6CiAgIAogICBhKSBJUCBhZGRyZXNzZXMgbm93IHBhc3NlZCBhcyBiaW5hcnkgc3RyaW5ncyAoNCBvY3RldHMKICAgZm9yIElQdjQpIHJhdGhlciB0aGFuIGRvdHRlZC1xdWFkIG9yIG5hbWUuIFRoaXMKICAgc2lkZXN0ZXBzIHRoZSBJUHY0L0lQdjYgcHJvYmxlbSBhbmQgbGVhdmVzIHRoZSBjYWxsaW5nCiAgIHNjcmlwdCB0byBkZWFsIHdpdGggbmFtZS0+YWRkcmVzcyByZXNvbHV0aW9uIGFuZAogICBhc3NvY2lhdGVkIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMy0wNS0wOCAwOTo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBBbGV4IEJ1cmdlciwgd2hvIHN1Ym1pdHRlZCB0aGUgcGVybCB3aW4zMiBwYXRjaGVzCiAgIAoyMDAzLTA1LTA4IDA5OjMyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIFN0ZXBoZW4KICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIHBhdGNoICM3MTAyNzUgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogY29uc3QgZml4ZXMgZm9yIEFQSXMgdGhhdCBkb24ndCBtb2RpZnkgdGhlaXIgYXJndW1lbnRzCiAgIAoyMDAzLTA1LTA4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBtaXNzZWQgYSBjb21taXQgZm9yIGEgcGVybCBwYXRjaAogICAKMjAwMy0wNS0wOCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBBcHBsaWVkIHBhdGNoICM3MTIxMDE6IG1pbm9yIGlyaXggZml4CiAgIAoyMDAzLTA1LTA4IDA5OjIxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTWVudGlvbiBwYXRjaCAjNzE1NjAzCiAgIAoyMDAzLTA1LTA4IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1JFQURNRSwgU05NUC9TTk1QLnhzCiwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBwYXRjaCAjNzE1NjAzOiBmaXggcGVybCBtb2R1bGUgYnVpbGRzIHVuZGVyIHdpbmRvd3MKICAgCjIwMDMtMDUtMDggMDc6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB0cnkgdG8gdXNlIGRlZmF1bHQgY29udGFpbmVyIGlmIG5vbmUgc3BlY2lmaWVkOyBub24tZXhpc3RlbnQgcm93IHN0YXR1cyBub3QKICAgbGVnYWwgZm9yIGEgbmV3IHJvdzsgc2FuaXR5IGNoZWNrIGFzc2VydHM7IHJlbW92ZSB1bnVzZWQgY29vcGVyYXRpdmUKICAgbm90aWZpY2F0aW9uIGNvZGU7IGNoZWNrIGZvciBudWxsIHRhYmxlIGNvbnRhaW5lcgogICAKMjAwMy0wNS0wOCAwNzowNiAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIG9iamVjdF9tb25pdG9yIGFzIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcgYW5kIHdvdWxkIGJlIGEgbmV3IGZlYXR1cmUgaWYKICAgaXQgZGlkCiAgIAoyMDAzLTA1LTA4IDA3OjA1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHN5c25hbWUgdHJhbnNsYXRpb24gZm9yIC87IGFsbG93IGV4dHJhIGNvbmZpZyB0byBiZSBzcGVjaWZpZWQgaW4KICAgZW52aXJvbm1lbnQgdmFyCiAgIAoyMDAzLTA1LTA4IDA3OjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBjaGcgTkVUX1NOTVBfVVNFX0FTU0VSVCBkZWZpbmUgdG8gTkVUU05NUF9VU0VfQVNTRVJUIHRvIGJlIGNvbnNpc3RlbnQKICAgCjIwMDMtMDUtMDggMDY6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBhcHBseSBwYXRjaCBbIDcyNDkyNyBdIHRvIGZpeCBsb2cgbXNnOyBhZGQgXG4gdG8gbG9nIG1zZ3MKICAgCjIwMDMtMDUtMDUgMTU6MzUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAzLTA1LTA1IDEwOjM1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wNS0wNSAxMDoyOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW46CgogICBjaG1vZCBuZXQtc25tcC1jb25maWcgYWZ0ZXIgY29uZmlndXJlLCBpbnN0ZWFkIGluIG1ha2UKICAgCjIwMDMtMDQtMDMgMTU6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIHdyYXAgU05NUF9GUkVFIG1hY3JvIHcvZG8gd2hpbGUsIHNvIGl0IHdvbid0IGFmZmVjdCBpZi90aGVuIGZsb3cKICAgCjIwMDMtMDMtMjggMDY6NDggIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1OgoKICAgS2VuIEhvcm5zdGVpbiBub3RlZCB0aGF0IHRoZSByd3VzZXIgLXMgZmxhZyB3YXMgbWlzc2luZyBpdCdzIGFyZ3VtZW50CiAgIAoyMDAzLTAzLTI4IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIGZvciBtaXNjIGtyYjUgZml4ZXMgKGVuY3J5cHRpb24gdHlwZXMsIE5ldyBjcnlwdG8gc3VwcG9ydCwuLi4KICAgCjIwMDMtMDMtMTkgMTE6NDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB0cmFpbGluZyBcIGZyb20gcGVybCBydWxlcwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC43IC0+IFY1LjAuOAoKMjAwMy0wMy0xNyAxNzozMyAgcnN0b3J5CgogICAqIE5FV1MsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywKICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zOgoKICAgdXBkYXRlIGZvciA1LjAuOAogICAKMjAwMy0wMy0xNyAxNzoyMCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRCiwgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuOCApCiAgIAoyMDAzLTAzLTE0IDE0OjU1ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgcGVybC9TTk1QL1NOTVAucG0sIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxNDo0MCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxMzo1MyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMKOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDEzOjQ1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0cmFpbGluZyBzbGFzaCBvbiBzcmNkaXIgZm9yIGNvbW1lbnQgY2hlY2tzCiAgIAoyMDAzLTAzLTE0IDEzOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBleHRyYSBtb2R1bGVzIGFuZCB0cmFuc3BvcnRzCiAgIAoyMDAzLTAzLTE0IDEyOjQ0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICB1c2UgbmV3IG1hY3JvIGZvciBpbmxpbmluZzsgZml4IHNvbWUgaW5kZW50IG1hZG5lc3MKICAgCjIwMDMtMDMtMTQgMTI6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1c2UgbmV3IG1hY3JvIGZvciB0ZXN0aW5nIGlmIGlubGluaW5nIGlzIG9uCiAgIAoyMDAzLTAzLTE0IDEyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgaHB1eC5oLAogICBpcml4Lmg6CgogICBkb24ndCB1bmRlZiBpbmxpbmUKICAgCjIwMDMtMDMtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVuYW1lIG1hY3JvIHVzZWQgdG8gdGVzdCBmb3IgaW5saW5pbmcKICAgCjIwMDMtMDMtMTQgMTI6MzkgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGlmIGlubGluZSBtYWNybyBub3QgZGVmaW5lZCwgZGVmaW5lIGFzIGVtcHR5CiAgIAoyMDAzLTAzLTE0IDEyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCiwgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCiwgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIHJlcGxhY2UgaW5saW5lIHcvbWFjcm8KICAgCjIwMDMtMDMtMTMgMTk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4gdG8gZml4IHNvbWUgQWdlbnRYIChtb3N0bHkpIG1lbW9yeSBsZWFrcwogICAKMjAwMy0wMy0xMiAxMzo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgcGF0Y2ggIzY5OTM4MDogRnJvbSBDaHJpc3RvcGhlIEthbHQ6IG1ha2UgbmV0LXNubXAtY29uZmlnIGRvIHdoYXQgaXQncyBkb2N1bWVudCB0byBkbyAoYWRkIC1MQGxpYmRpckApCiAgIAoyMDAzLTAzLTEyIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCAjNzAwNjcyOiByZXNldCBpdG1wIHRvIHRoZSBuZXcgdmFsdWUgbGVuZ3RoIGFmdGVyIGRlY29kaW5nIGEgaGV4IHN0cmluZwogICAKMjAwMy0wMy0xMSAxNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgQXBwbGllZCBvcGVuc3NsIGR5bmFtaWMgdmVyc2lvbiBoYWNrL2ZpeAogICAKMjAwMy0wMy0xMSAxNToxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIFdSQVBMSUJTIHZhciBpbnN0ZWFkIG9mIGRpcmVjdCBzdWJzdGl0dXRpb24KICAgCjIwMDMtMDMtMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgV1JBUExJQlMgdG8gLS1hZ2VudC1saWJzIGFuZCAtLWV4dGVybmFsLWFnZW50LWxpYnMKICAgCjIwMDMtMDMtMTEgMDA6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICByZXZlcnQgdG8gMi4xMwogICAKMjAwMy0wMy0wNiAwMTo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wMy0wNiAwMTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBsaWJ3cmFwIHcvbnNsOyBtYWtlIHN1cmUgYWxsIHF1b3RlcyByZXN0b3JlZCBiZWZvcmUgdXNpbmcgQUMgbWFjcm9zLiBUaGlzCiAgIHNlZW1zIHRvIG1lc3MgdXAgdGhlIGNvbmZpZyBvdXRwdXQgd2hpbGUgY2hlY2tpbmcgZm9yIG1vZHVsZXMsIGJ1dCB3L291dCBpdCwKICAgSSBnZXQgZXJyb3JzIGZyb20gbTQgd2hlbiBydW5uaW5nIGF1dG9jb25mLgogICAKMjAwMy0wMy0wNSAyMDo1MSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgbmV0LXNubXAtY29uZmlnLXgKICAgCjIwMDMtMDMtMDUgMjA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIGFuIG9wdGlvbmFsIDNyZCBwYXJhbSwgbm9jdnMsIHRvIG5vdCBjb21taXQgYWZ0ZXIgdXBkYXRpbmcgdmVyc2lvbgogICAKMjAwMy0wMy0wNSAyMDo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBwdXQgYWxsIHRoZSB2ZXJzaW9uIG51bWJlciBjaGFuZ2VzIGluIHRoZSBzYW1lIHN0ZXAKICAgCjIwMDMtMDMtMDUgMjA6MjEgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuOC5wcmUxICkKICAgCjIwMDMtMDMtMDUgMjA6MDAgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4wLjgucHJlMQogICAKMjAwMy0wMy0wNSAxOTowNCAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgYmFjayBvdXQgZG9jcyBmb3IgbmV3IGZ1bmN0aW9uYWxpdHkgYWNjaWRlbnRhbGx5IGFkZGVkIHdoZW4gYXBwbHlpbmcgcGF0Y2gKICAgCjIwMDMtMDMtMDUgMTg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBiYWNrIG91dCBuZXcgZnVuY3Rpb25hbGl0eSBhY2NpZGVudGFsbHkgYWRkZWQgd2hlbiBhcHBseWluZyBwYXRjaAogICAKMjAwMy0wMy0wNSAxODoyMCAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDMtMDMtMDUgMTg6MTggIHJzdG9yeQoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIGFkZCBzbm1wZC44CiAgIAoyMDAzLTAzLTA1IDE4OjEyICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMzoKCiAgIHVwZGF0ZXMgZm9yIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE4OjA0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHRvIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE3OjU4ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBhcmd1bWVudDsgZml4IHR5cG8KICAgCjIwMDMtMDMtMDUgMTc6NTggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGV4Y2x1ZGUgZnRwIGZyb20gY29tbWVudCBjaGVjazsgdXNlIGVncmVwCiAgIAoyMDAzLTAzLTA1IDE3OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBjaGcgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMDMtMDUgMTc6NTAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYXJnaCEgRnJlZUJTRCBpcyBkcml2aW5nIG1lIGNyYXp5ISAgc2V0IFJBTkRPTT0yIGlmIFJBTkRPTSBub3QgZGVmaW5lZDsgdXNlIHRlc3QKICAgCjIwMDMtMDMtMDUgMTc6MjIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2ltcGxpZnkgbmV0c3RhdCBhcmdzICYgdHdlYWsgZ3JlcCByZWdleCBmb3IgbXVsdGkgcGxhdGZvcm0gY29tcGF0YWJpbGl0eQogICAKMjAwMy0wMy0wNSAxNzoxMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBjaGVjayAvYmluIGFuZCAvdXNyL2JpbiBmb3IgbmV0c3RhdCAocHJvYmFibHkgYSBnb29kIGpvYiBmb3IgY29uZmlndXJlKQogICAKMjAwMy0wMy0wNSAxNzowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBtaXNzZWQgb25lLCByZTogKCggKSkgLT4gZXhwcgogICAKMjAwMy0wMy0wNSAxNjo1OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICB1c2UgbW9yZSBwb3J0YWJsZSBleHByIGluc3RlYWQgb2YgICgoICkpIGZvciBhcml0aG1ldGljIGV4cHJlc3Npb25zCiAgIAoyMDAzLTAzLTA1IDE2OjE2ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGZvciBzeXN0ZW1zIHdpdGggL2Jpbi9uZXRzdGF0LCBjaGVjayB0aGF0IHNubXBkIHBvcnQgaXMgbm90IGluIHVzZS4gSWYgaXQgaXMsCiAgIHRyeSB1cCB0byB0aHJlZSByYW5kb20gb3RoZXJzIGJlZm9yZSBnaXZpbmcgdXAuCiAgIAoyMDAzLTAzLTA1IDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZG9uJ3QgcHJvbXB0IGJldHdlZW4gc3RlcHMgYnkgZGVmYXVsdAogICAKMjAwMy0wMy0wNSAxNToxMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBpbXBvcnQgU05NUF9TTEVFUCB0aW1lIGZyb20gZW52aXJvbm1lbnQsIGlmIGF2YWlsYWJsZQogICAKMjAwMy0wMy0wNSAxNToxMCAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZG9uJ3QgcmVkZWZpbmUgaW5saW5lCiAgIAoyMDAzLTAzLTA1IDE1OjA4ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiA1LjAuOAogICAKMjAwMy0wMy0wNSAxNTowNyAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgc29tZSBmaWxlcyBhdXRvY29uZiBtYXkgY3JlYXRlCiAgIAoyMDAzLTAzLTA1IDEzOjQyICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViCiwgbHRtYWluLnNoLCBjb25maWd1cmU6CgogICBVcGRhdGUgbGlidG9vbCB0byB2ZXJzaW9uIDEuNC4zLCBmb3IgdGhlIGJlbmVmaXQgb2YgRGFyd2luCiAgIAoyMDAzLTAzLTA1IDEzOjM5ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRG9udCBmb3JjZSAtSS91c3IvbG9jYWwvaW5jbHVkZSBmb3IgLS13aXRoLWRtYWxsb2MKICAgCjIwMDMtMDMtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHdyb25nIHR5cGUgcmV0dXJuZWQgZm9yIG5zTW9kdWxlTW9kZXMgYXMgcmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtCiAgIAoyMDAzLTAzLTAzIDE1OjAzICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNZW50aW9uIHRoZSBBZ2VudFhBZGRyZXNzLCBBZ2VudHNSZXRyaWVzIGFuZCBBZ2VudFhUaW1lb3V0IHBhcmFtZXRlcnMKICAgCjIwMDMtMDMtMDMgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgQWRkIHN1cHBvcnQgZm9yIE9wZW5CU0QgMy4gU29ydCBzb21lIGxpbmVzIGZvciBlYXNpZXIgcmVmZXJlbmNlLgogICAKMjAwMy0wMy0wMSAxMDoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGJldHRlciBlcnJvciBjaGVja2luZwogICAKMjAwMy0wMy0wMSAwOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBkb24ndCBjcmVhdGUgZGVsZWdhdGVkIGNhY2hlIGZvciBDTEVBTlVQU0VUCiAgIAoyMDAzLTAyLTI4IDIzOjQ2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0eXBvCiAgIAoyMDAzLTAyLTI4IDIzOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBQYXRjaCAjNTk3NjI5IGZyb20gTWF0dCBTZWxza3kgdG8gZml4IG1hbiBwYWdlIGluc3RhbGxhdGlvbgogICAKMjAwMy0wMi0yOCAxMzoxOCAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW5ub3QgY3JlYXRlIHBpZCBmaWxlCiAgIAoyMDAzLTAyLTI4IDEzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgRlMgdHlwZXMgd2l0aCBMaW51eAogICAKMjAwMy0wMi0yNyAwMDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHN5bmMgdy9tYWluCiAgIAoyMDAzLTAyLTI2IDE4OjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgc3luYyB3L21haW46IHB1dCBpbiBtaXNzaW5nIElOU1RBTExfREFUQQogICAKMjAwMy0wMi0yNiAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgSW1wbGVtZW50IHN5c1Jhd0ludGVycnVwdHMgYW5kIHN5c1Jhd0NvbnRleHQgZm9yIFNvbGFyaXMKICAgCjIwMDMtMDItMjYgMTQ6MzAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGEgQyBwcmVjZWRlbmNlIGJvdGNoLXVwLCB0aGFua3MgdG8gRmFicu1jaW8gTGFzIENhc2FzIDxGYWJyaWNpb0BhdGFuLmNvbS5icj4KICAgCjIwMDMtMDItMjYgMTQ6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEltcGxlbWVudCB0aGUgc3NSYXdJbnRlcnJ1cHRzIGFuZCBzc1Jhd0NvbnRleHQgY291bnRlcnMgaW4gTGludXgKICAgCjIwMDMtMDItMjYgMTQ6MTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IHRoZSAtUyBvcHRpb24KICAgCjIwMDMtMDItMjUgMTQ6MzggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBsb2dpYyBvZiB0ZXN0IG9wZXJhdGlvbgogICAKMjAwMy0wMi0yNSAxNDozMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICB1c2UgQVVUTyhDT05GfEhFQURFUikgZnJvbSBjb25maWd1cmUsIGluc3RlYWQgb2YgaGFyZGNvZGVkOyBkb24ndCB0cnkgYW5kIHJ1bgogICBBVVRPKENPTkZ8SEVBREVSKSBpZiBub3QgZm91bmQKICAgCjIwMDMtMDItMjUgMTQ6MTEgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IG5ldyBmaWxlCiAgIAoyMDAzLTAyLTI1IDE0OjAzICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaCAoY29ycmVjdGx5LCB0aGlzIHRpbWUpCiAgIAoyMDAzLTAyLTI1IDEzOjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IGFkZCBOT0FVVE9ERVBTCiAgIAoyMDAzLTAyLTI1IDEzOjM4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBhZGQgc211eCB0byBkaXN0IG1vZHVsZXM7IG1vdmUgbWFrZSB0ZXN0IGludG8gbnNiLW1ha2U7CiAgIHJlbW92ZSB0ZWUgc28gcmMgaXMgcHJlc2VydmVkOyB1c2UgbmV3IE5PQVVUT0RFUFMKICAgCjIwMDMtMDItMjUgMTM6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBSZWNvZ25pc2UgImRlZlZlcnNpb24gdjMiIGFzIHdlbGwgYXMgImRlZlZlcnNpb24gMyIgYXMgZG9jdW1lbnRlZAogICBpbiB0aGUgbWFuIHBhZ2VzIChwcmlvciB0byBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29ycmVjdGlvbikKICAgW1dlIG1pZ2h0IGFzIHdlbGwgc3VwcG9ydCBib3RoIHN0eWxlcy4uLi5dCiAgIAoyMDAzLTAyLTI1IDEzOjIwICByc3RvcnkKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgc2Vkc2NyaXB0LmluLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9taWIyYy4xLmRlZiwKICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtaWJzL01ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiAoSSBob3BlIEkgZ290IHRoaXMgcmlnaHQpCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTI1IDEzOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC0gSXJmYW4gU2hlcmlmZiBwb2ludGVkIG91dCBhIGJ1ZyB3aXRoIGdldG5leHQgcmVxdWVzdHMgZGlyZWN0bHkgdG8gYSBjb2x1bW4uCiAgIC0gY2hlY2sgZW50cnkgbm9kZSBhcyBzdWdnZXN0ZWQgYnkgSXJmYW4gU2hlcmlmZgogICAKMjAwMy0wMi0yNSAxMzoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFJlbW92ZSBsYXN0IHJlbWFpbmluZyB1c2Ugb2YgJ25saXN0JyB1bmRlciBIUC1VWCAxMCAmIDExLgogICBBcyBwZXIgcGF0Y2ggIzY1Njc3MyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMy0wMi0yNSAxMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBDaGVja2luZyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIGJ1ZmZlciBvbmNlIGlzIHN1ZmZpY2llbnQuCiAgIFVzaW5nICdzdHJubmNweScgW3NpY10gdG8gY2hlY2sgdGhpcyBsZW5ndGggdHdpY2UgaXMgdW5uZWNlc3NhcnkuLi4KICAgCjIwMDMtMDItMjUgMTM6MTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLSBNZXNzIHdpdGggb3V0cHV0IG9mIGRveHlnZW4gdG8gYWRkIHNmIGxvZ29zLCBldGMsIHRvIHRoZSBib3R0b20gb2YgdGhlCiAgICAgZ2VuZXJhdGVkIGh0bWwgZmlsZXMuCiAgIC0gQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIG5ldC1zbm1wLWNvbmZpZyBwYXRjaCAoIzY5MjM3MykKICAgCjIwMDMtMDItMjUgMTM6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCAjNjU1MTU0IGZyb20gSm9lbCBSb3NkYWhsOiBtb3JlIHByb3BlciBkZW1vbml6YXRpb246CiAgICAgLSBjbG9zZSBzdGRpbi9zdGRvdXQvc3RkZXJyIGlmIGFwcHJvcHJpYXRlLgogICAgIC0gZG91YmxlIGZvcmsuCiAgICAgLSBjaGRpciAvICAgW2V4Y2VwdCB1bmRlciB3aW5kb3dzXQogICAKMjAwMy0wMi0yNSAxMzoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCAjNjYyMTY5IGZyb20gSmFuIFdpbGxlbSBMdWl0ZW46IGRpc2tpbyBzdXBwb3J0IGZvciBEYXJ3aW4KICAgCjIwMDMtMDItMjUgMTM6MTAgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIHNldC50OgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBGaXggdGVzdHMgZm9yIGJ1bGt3YWxrIChkdXBsaWNhdGUgaGVhZGVyKSBhbmQgc2V0IChpbnZhbGlkIE9JRCBjb25zdGFudCkKICAgCjIwMDMtMDItMjUgMTM6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQWNjb21tb2RhdGUgYSBmdXNzeSBJUklYIGVudmlyb25tZW50LCB3aGljaCBpcyBwaWNreSBhYm91dCA8dW5pc3RkLmg+CiAgIFNlZSBidWcgIzY2NzcyNgogICAKMjAwMy0wMi0yNSAxMzowNCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMjUgMTM6MDIgIHJzdG9yeQoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBmaXggbXkgZGVjbGFyYXRpb25zIGFzIHBvaW50ZWQgb3V0IGJ5IEFuZHJldyBQYWdlCiAgIAoyMDAzLTAyLTI1IDEzOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQW4gYWRkaXRpb25hbCBjaGFuZ2UgdG8gc3VwcG9ydCAndCcgaGludHMKICAgCjIwMDMtMDItMjUgMTM6MDAgIHJzdG9yeQoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtZG9jdW1lbnQgcGF0Y2ggIzY3NDIxODogcmVvcGVuIGxvZyBmaWxlcyBvbiBIVVAuCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMjo1OSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtZG9jdW1lbnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEyOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCBmcm9tIENocmlzdG9waGUgdG8gc3VwcG9ydCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0yNSAxMjo1NSAgcnN0b3J5CgogICAqIEZBUToKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQ2xhcmlmeSB0aGUgbG9jYWwtb25seSBhY2Nlc3MgZm9yIG5vbi1zdGFuZGFyZCBwb3J0IEFnZW50WCBjb25uZWN0aW9ucwogICAKMjAwMy0wMi0yNSAxMjo1NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgICAgLSAgY2xvc2UgYW5kIHJlLW9wZW4gbG9nIGZpbGUgb24gcmVjZWl2aW5nIGEgSFVQIChwYXRjaCA2NzQyMTgsIHN1Ym1pdHRlZAogICAgICAgIGJ5IGFub255bW91cykKICAgCjIwMDMtMDItMjUgMTI6NTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMjUgMDk6MDQgIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb25maWd1cmF0aW9uLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIGNoYW5nZXMuCiAgIChwYXRjaGVzICM2OTIzNzIsICA2OTIzNzcsICA2OTIzNzkgYW5kIDY5MjM4NikKICAgCjIwMDMtMDItMTMgMjA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUGF0Y2ggIzY1NDMyOTogZG91YmxlIGNoZWNrIGxlbmd0aHMgd2hlbiBjb3B5aW5nCiAgIAoyMDAzLTAyLTEyIDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmg6CgogICB1cGRhdGUKICAgCjIwMDMtMDItMTEgMTE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYwo6CgogICBwYXRjaCAjNjY3Njk0IChhbm9uKSB0byBhZGQgYmFjayBuZXdsaW5lcyB0byBwYXNzIGNvZGUKICAgCjIwMDMtMDItMDMgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZyb20gUmljaGFyZCBMYWluZzogY2hhbmdlIHZhbHVlIGNoZWNrIG9mIGEgc3RyaW5nIHRvIHVzZSBhIHByb3BlciBsZW5ndGguCiAgIAoyMDAzLTAxLTI0IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICM2NzIwMjEgZnJvbSBKb3NodWEgR2lsZXM6IGxhcmdlIHNldCByZXF1ZXN0IGZpeGVzCiAgIAoyMDAzLTAxLTIwIDIzOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbWlzc2luZyBicmFjZQogICAKMjAwMy0wMS0yMCAyMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgYmFjayAoYWNjaWRlbnRhbGx5IGRlbGV0ZWQpIGNyZWF0aW9uIG9mIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0yMCAyMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBzdHJpbmcgdGVzdCBjYXNlCiAgIAoyMDAzLTAxLTIwIDIzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggYXJyYXlfcXNvcnQ7IGZpeCBiaW5hcnkgc2VhcmNoOyBjb24ndCByZWN1cnNlIG9uIGluc2VydCwgZGVsLCBldGMgc2luY2UKICAgdGhlIElOU0VSVC9ERUxFVEUgbWFjcm9zIGFscmVhZHkgaGFuZGxlIG11bHRpcGxlIGluZGV4ZXMKICAgCjIwMDMtMDEtMjAgMjI6NTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBvZmZpY2lhbCBwYXRjaCBbIDY2OTcwNyBdIDUuMC43OiAxNi1CaXQgUmVxdWVzdCBJRHMKICAgCjIwMDMtMDEtMjAgMjI6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbWVzc2FnZTsgYWRkIG5ldHNubXBfY29tcGFyZV9tZW0KICAgCjIwMDMtMDEtMjAgMjI6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY3JlYXRlIG1kNXN1bXMgYWZ0ZXIgY3JlYXRpbmcgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTIwIDIyOjUxICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgYW5vdGhlciBsZXZlbCBvZiBkaXJlY3RvcmllcyB0byBtYWtlIGRlcGVuZCwgcGVyIGR0cyBvbiBjb2RlcnMKICAgKHRob3VnaHQgdGhpcyB3YXMgaW4gNS4wLjcsIGJ1dCBhcHBhcmVudGx5IG5vdCEpCiAgIAoyMDAzLTAxLTE0IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYwosIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb3h5Z2VuIGNoYW5nZXMKICAgCjIwMDMtMDEtMTMgMjE6NDkgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMyAyMDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZWNvZ25pemUgbmV3ICd0JyBjb2RlIGluIGRpc3BsYXkgaGludHMKICAgCjIwMDMtMDEtMTMgMjA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXRjaCBmb3IgbWVtb3J5IGxlYWtzIHNlbnQgdG8gY29kZXJzIGJ5IEpheSBQYXJsYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNiAtPiBWNS4wLjcKCjIwMDMtMDEtMTEgMDE6MTUgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGNvbmZpZ3VyZS1zdW1tYXJ5CiAgIAoyMDAzLTAxLTExIDAxOjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0wMS0xMSAwMTowOCAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgdmFyaWF0aW9ucyBvZiBjaGFuZ2Vsb2cuYWRkCiAgIAoyMDAzLTAxLTEwIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBkb3h5Z2VuIG91dHB1dCB0YWdzIHRvIHB1dCB0aGUgcmVjZW50bHkgZGVmaW5lZCBmdW5jdGlvbnMgaW50byBncm91cHMuCiAgIAoyMDAzLTAxLTEwIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlcwogICAKMjAwMy0wMS0xMCAxNzozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBvcHBzCiAgIAoyMDAzLTAxLTEwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBkb3VibGUgY2hlY2tpbmcgb3V0cHV0CiAgIAoyMDAzLTAxLTEwIDE0OjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQ6CgogICBmaXggcG9zaXRpb25hbCBhcmd1bWVudHMKICAgCjIwMDMtMDEtMTAgMDk6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIFJlZmVyZW5jZSBCcnVjZSBTaGF3J3MgZGlzY3Vzc2lvbiBvZiB0aGUgcGVybCBjb21waWxhdGlvbiBwcm9ibGVtcwogICAoc2VlIFJFQURNRS5zb2xhcmlzKQogICAKMjAwMy0wMS0xMCAwODozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiBBZ2VudFggdW5kZXIgd2luZG93cywgYW5kIGJlZWYgdXAgdGhlIHBlcmwgc3R1ZmYgYSBiaXQuCiAgIEFkZCBhIG1pc3NpbmcgZW50cnkgaW4gdGhlIGNvbnRlbnRzIGxpc3QuCiAgIChUaGlzIG1heSBwcm92ZSB0b28gbGF0ZSBmb3IgNS4wLjgsIGJ1dCBhdCBsZWFzdCBpdCdsbCBiZSByZWFkeSBmb3IgbmV4dCB0aW1lISkKICAgCjIwMDMtMDEtMDkgMTg6NDEgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTg6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaDoKCiAgIGVuZC1vZi1tb2RlIGhlbHBlciB0byBjYWxsIG1vcmUgaGFuZGxlcnMgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgbWFpbgogICBsaW5lLiAgRnVuY3Rpb25hbGx5IGFsbG93cyBwYXJhbGxlbCBoYW5kbGVyIHRyZWVzIGFuZCBjYWxsYmFja3MgYWZ0ZXIKICAgYSBwYXJ0aWN1bGFyIG1vZGUgaXMgY29tcGxldGVkICh1c2VmdWwgZm9yIHRoaW5ncyByZWdpc3RlcmVkIHVuZGVyIGEKICAgc2VyaWFsaXplIGhhbmRsZXIgd2hlbiB5b3UgZG9uJ3Qga25vdyB3aGVuIHRoZSBtb2RlIGlzIG92ZXIpLgogICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gcHJvZHVjdGlvbiBjb2RlIHlldC4pLgogICAKMjAwMy0wMS0wOSAxMTo1NSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgcGVybCBzaGFyZWQvc3RhdGljIGxpYnJhcnkgcHJvYmxlbSwKICAgdGhlIHVucmVzcG9uc2l2ZSBhZ2VudCBwcm9ibGVtIChhbmQgZml4KSwgYW5kCiAgIGRpc2NsYWltIGFsbCBrbm93bGVkZ2Ugb2YgRGF2aWQgVG93bidzIE5ldDo6U05NUCBtb2R1bGUsCiAgIAoyMDAzLTAxLTA5IDEwOjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNjBzbm1wdjJjYnVsa2dldCwgVDAyMjBzbm1wdjNidWxrZ2V0CjoKCiAgIEdldEJ1bGsgdGVzdGluZyBzdXBwbGllZCBieSBYaWFvZmVuZyBMaW5nCiAgIAoyMDAzLTAxLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQWRkIC14IGZsYWcgZm9yIGNhbGxpbmcgc3VidGVzdHMgd2l0aCAic2ggLXgiLgogICBGaXggbnVtYmVyIGNvdW50aW5nIGZvciBpbnRlcmFjdGl2ZSBvdXRwdXQuCiAgIAoyMDAzLTAxLTA3IDE4OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuOCksIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQogICAKMjAwMy0wMS0wNyAxMzoxOCAgaGFyZGFrZXIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTgpLCBGQVE6CgogICBpcmMgc2VydmVyIG5hbWUgY2hhbmdlCiAgIAoyMDAzLTAxLTA3IDExOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYnVnICM2NjM2MjggYW5kIHBhdGNoOiBmaXggaXAgYWRkcmVzcyBpbmRleCBwYXJzaW5nIGZyb20gT0lEcwogICAKMjAwMy0wMS0wNyAwNDo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlIHRvIGZyZWUgJ2NhbGxiYWNrX2RhdGFfa2VlcCcgZGF0YS4KICAgVGhpcyBicmFuY2ggd291bGQgbmV2ZXIgYmUgaW52b2tlZCwgYW5kIGlzIGluIHRoZSB3cm9uZwogICBwbGFjZSBhbnl3YXkuICBQYXRjaCBzdXBwbGllZCBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTA2IDExOjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIFNvbGFyaXMgOSBoZWFkZXIKICAgCjIwMDMtMDEtMDUgMTg6MTQgIG5iYQoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE3OjI4ICBuYmEKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCB3aW4zMi5vcHQKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTU6NDUgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBTTk1QLU1QRC1NSUIudHh0LCBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LAogICBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQKLCBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVRNLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9ucwogICAKMjAwMy0wMS0wMyAxNTo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2FsbCBBQ19ESVNBQkxFX1NIQVJFRCwgYXMgc2V0cyB0aGUgZGVmYXVsdCB0byBkaXNhYmxlZCAoaXQncyB2ZXJ5CiAgIHByZXNlbmNlIGluIGNvbmZpZ3VyZS5pbiBnZW5lcmF0ZXMgYSBjb25maWd1cmUgd2l0aCBzaGFyZWQgZGlzYWJsZWQsIGV2ZW4KICAgaWYgaXQgd2FzIGluIGFuIGlmIGJsb2NrOyBmb3IgZGV2ZWxvcGVyIGRlZmF1bHQsIHNldCBlbmFibGVfc2hhcmVkIGRpcmVjdGx5CiAgIHVubGVzcyBpdCB3YXMgcHJldmlvdXNseSBzZXQ7IHRlc3QgdGhhdCBlbmFibGVfc2hhcmVkPXllcyBmb3IgZW1iZWRkZWQtcGVybAogICAKMjAwMy0wMS0wMyAwODowMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTcpLCBGQVE6CgogICBNZW50aW9uIHRoZSBTdHJhdHVzIFZPUyBwb3J0LiAoVGhhbmtzIHRvIEJyYW5kb24gSGFsbCkKICAgCjIwMDMtMDEtMDIgMTg6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBwYXJlbnMgYXJvdW5kIHggaW4gbWFjcm8gaW4gY2FzZSB4IGlzIG11bHRpcGxlIEMgdG9rZW5zCiAgIAoyMDAyLTEyLTIyIDEyOjMyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIFJFQURNRSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMiApCiAgIAoyMDAyLTEyLTIyIDEyOjMxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUyCiAgIAoyMDAyLTEyLTIyIDEyOjIwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0yMCAwNzo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gYXdheSBuZXQtc25tcC1jb25maWcgb24gbWFrZSBjbGVhbgogICAKMjAwMi0xMi0yMCAwNzo1NyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc3Rhc2ggdGhlIG9pZF9zdGFzaCAuLi4KICAgCjIwMDItMTItMjAgMDQ6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBIHBhdGNoIGZyb20gVjQgdGhhdCBkaWRuJ3QgbWFrZSBpdCAuLi4gYWxsb3cgbGlzdCBvZiBudW1lcmljIGJpdHMgc2V0dGluZyBCSVRTCiAgIAoyMDAyLTEyLTIwIDAyOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgYWRkIGEgZ2xvYmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciByZWdpc3RlcmluZyBkaXJlY3RseSB2aWEgYSBjYWxsYmFjay4KICAgCjIwMDItMTItMjAgMDI6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBhZGQgY2FsbGJhY2suaAogICAKMjAwMi0xMi0yMCAwMjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlIHJlbmFtaW5nLiAgKHNucHJpbnRmIGNoYW5nZSBtaXN0YWtlKQogICAKMjAwMi0xMi0yMCAwMjoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHNvbWUgbmV3IHJvdXRpbmVzIGZvciBzYXZpbmcgb2lkIHN0YXNoIGRhdGEgdG8gcGVyc2lzdGVudCBzdG9yYWdlLgogICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBjdXJyZW50IHByb2R1Y3Rpb24gY29kZSkKICAgCjIwMDItMTItMTkgMTc6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSB3YXRjaCBmb3IgdW5kZWZzIHBhc3NlZCBpbiBhcyBhIHZhbHVlIHRvIGEgU0VUIGNsYXVzZS4KICAgLSBjaGFuZ2UgQklUUyB0byBhIE9jdGV0IFN0cmluZyBhcyBpdCBzaG91bGQgYmUuCiAgICAgLSBvbiBhIHNpZGUgbm90ZSwgZG8geW91IGtub3cgdGhhdCB0aGUgTmV0LVNOTVAgcGFyc2VyIGRvZXNuJ3QKICAgICAgIGRpc3Rpbmd1aXNoIGJldHdlZW4gQklUUyBhbmQgQklUIFNUUklORyBpbiBpdCdzIGxpc3Qgb2YgdHlwZXM/ICBJCiAgICAgICBkb24ndCB0aGluayBpdCdzIHBvc3NpYmxlIHRvIHVzZSBib3RoIHR5cGVzIGluIHRoZSBjb2RlIHRvZGF5CiAgICAgICAod2hpY2ggaXMgZmluZSwgc2luY2UgQklUIFNUUklORyBpcyBub3QgdXNlZCBpbiBTTk1QdjIgYW5kIGJleW9uZCkuCiAgIAoyMDAyLTEyLTE5IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBwcmludCBhIHdhcm5pbmcgd2hlbiB5b3UgY2FuJ3QgcGFyc2UgYW4gT0lEIChlcnIsIG5vdCBpZGVhbCkKICAgCjIwMDItMTItMTkgMTc6NDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIHNraXAgU0VUaW5nIGNvbHVtbnMgd2l0aCBubyB2YWx1ZSBwYXNzZWQgaW4uCiAgIAoyMDAyLTEyLTE5IDE0OjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy9leGFtcGxlLmMsIGhvc3QvaHJfbmV0d29yay5jCiwgaG9zdC9ocl9zd2luc3QuYzoKCiAgIEJlaW5nIGEgYml0IHF1aWNrLCBlaCwgRGF2ZSAuLi4KICAgCjIwMDItMTItMTkgMTE6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMi1wYXRjaGVzLjEyKSwgYXQuYzoKCiAgIEVuc3VyZSB0aGUgaWZuYW1lIGJ1ZmZlciBpcyBiaWcgZW5vdWdoIHRvIHJlYWQgaW4gYSBmdWxsLWxlbmd0aCBuYW1lLgogICAoRnJvbSB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAxMTowNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYwogICAoVjQtMi1wYXRjaGVzLlsyOCw5LDMsMywzMF0pLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYzoKCiAgIERldGVjdCB3aGVuIG1lbW9yeSBhbGxvY2F0aW9ucyBmYWlsLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MuCiAgIChCYXNlZCBvbiBjaGFuZ2VzIHdpdGhpbiB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAxMDowNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgVGhlIEdyZWF0IFNVU0UgJ3NwcmludGYnIEh1bnQuLi4uLgogICAKMjAwMi0xMi0xOSAwNjowMiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIGNvZGUgd2l0aCBCU0RpNAogICAKMjAwMi0xMi0xOSAwNTo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hhbmdlIGEgY29tbWVudCB0aGF0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIHRyYW5zcG9ydCBzdHVmZgogICAgIC0gZml4IHNvbWUgcGFydGljdWxhcmx5IGJhZCBmb3JtYXR0aW5nIGluIHNubXBfb3Blbl9leAogICAKMjAwMi0xMi0xOCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgcmVtb3ZlIG1lbS1sZWFrIGNvbW1lbnQuICBPdXQgb2YgZGF0ZSBhbmQgd2FzIGZpeGVkCiAgIAoyMDAyLTEyLTE4IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBkZWxldGUgZXhwZXJpbWVudGFsIHdhcm5pbmcgYWJvdXQgYWdlbnR4CiAgIAoyMDAyLTEyLTE4IDEzOjQwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBmaXggYnVnIzY1NTQ4ODogZGVzY3JpcHRpb25zIG9mIHNzSU9SYXdSZWNlaXZlZCBhbmQgc3NSYXdJbnRlcnJ1cHRzIHdlcmUgcmV2ZXJzZWQKICAgCjIwMDItMTItMTggMDg6MTkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHN0ZGVyciBsb2dnaW5nIG9uIEhVUCAoaWYgLUwgd2FzIGdpdmVuIG9uIGNvbW1hbmQgbGluZSkKICAgCjIwMDItMTItMTcgMTk6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgJzsnIGZyb20gZGVmaW5lOyBpZiB0YWJsZSBoYXMgYSBzdG9yYWdlIHR5cGUsIGNoZWNrIHRoYXQgaXQncyBub3QKICAgcmVhZCBvbmx5IGJlZm9yZSBhbGxvd2luZyBzZXRzCiAgIAoyMDAyLTEyLTE3IDE5OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgbmV2ZXIgbWluZAogICAKMjAwMi0xMi0xNyAxOTowMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERvbid0IGNoZWNrIGZvciBwcmVmaXhlcyBpbiB0ZXN0LiAgVGhleSBkb24ndCBleGlzdC4gIEhvd2V2ZXIsIGRvIHNldCBTTk1QQ09ORlBBVEggaW4gdGVzdCBpbml0aWFsaXphdGlvbiB0byBhIGJvZ3VzIHZhbHVlCiAgIAoyMDAyLTEyLTE3IDE4OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZW1vdmUgZGlyZWN0IGNhbGwgdG8gaW5pdF9zbm1wKCkuICBUaGlzIGlzIGFscmVhZHkgY2FsbGVkIGJ5IHRoZSAucG0gZmlsZQogICAKMjAwMi0xMi0xNyAxMDoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIHBlcnNpc3RlbmNlIGZvciBhcnJheS10YWJsZXMKICAgCjIwMDItMTItMTcgMTA6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4OyBhZGQgQVNOX1RJTUVUSUNLUyB3L0FTTl9VTlNJR05FRCBjYXNlcwogICAKMjAwMi0xMi0xNyAwOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZG9uJ3QgdXNlIFNPX1JFVVNFX0FERFIgc28gYWdlbnQgcG9ydCBjYW4ndCBiZSBoaWphY2tlZAogICAKMjAwMi0xMi0xNyAwOTo0MyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSBsb2NhbCB2YXIgZm9yIGJhc2UgYWdlbnQgbGliczsgcmVvcmRlciBiYXNlIGFnZW50IGxpYnMgc28gc3RhdGljIGxpbmtpbmcKICAgd29ya3MKICAgCjIwMDItMTItMTYgMTg6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIFlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcgLi4uCiAgIAoyMDAyLTEyLTE2IDE3OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICByZW1vdmUgYm9ndXMgY29tbWVudCByZWZlcmVuY2UgdG8gdGFibGVfZGF0YXNldCBoZWxwZXIuCiAgIAoyMDAyLTEyLTE2IDE3OjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIGFwcHMvc25tcHRyYXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jCjoKCiAgIFNwcmVhZCBzb21lIG1hZ2ljIGR1c3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MgKHdoeSBpc24ndCAtLWVuYWJsZS1zbGllbnQtbGlidG9vbCB0aGUgZGVmYXVsdCAuLi4pCiAgIAoyMDAyLTEyLTE2IDExOjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsgKHBlZXJuYW1lIGlzIGNvcGllZCBieSBzbm1wX29wZW5fZXgpCiAgIAoyMDAyLTEyLTE2IDExOjMxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDExOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMTA6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlIChjYXVzZWQgcHJvYmxlbXMgb24gU3VuIDUuNywgcmVwb3J0ZWQgYnkgamJwbikKICAgCjIwMDItMTItMTYgMDg6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgdy9vdXQgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDA4OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBERVZGTEFHUz0iIiBpZiBub3QgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDAyOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG9pZF9zdGFzaC5jLCBzY2FwaS5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5jCiwgc25tcElQWERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTE2IDAyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQb3NzaWJsZSBsZWFrIG9mIGZkIG9uIGVycm9yIHJldHVybgogICAKMjAwMi0xMi0xNCAxMDoyMiAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUxICkKICAgCjIwMDItMTItMTQgMTA6MjEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC42IC0+IFY1LjAuN3ByZTEKCjIwMDItMTItMTQgMDk6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYWdlbnQvbWliZ3JvdXA7IGZpeCBtb2R1bGVzIGZvciBjb25maWdfZGlzdAogICAKMjAwMi0xMi0xNCAwOTo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwOTo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgcmV2IHRvIDUuMC43CiAgIAoyMDAyLTEyLTE0IDA5OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLW4gdG8gZ3JlcCBmb3IgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA5OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMTQgMDk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDk6MzAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50cyB0byBzb21lIHN0cnVjdHVyZSBtZW1iZXJzCiAgIAoyMDAyLTEyLTE0IDA5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZXJyb3JzIGR1cmluZyBjb21taXQgdW5kbyBzaG91bGQgYmUgeHhGQUlMRUQ7IHVzZSBzZXRfcmVxdWVzdF9lcnJvciBpbnN0ZWFkIG9mCiAgIHNldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudDsgbW9yZSBkZWJ1Z2dpbmc7IGNoZWNrIGZvcgogICBhbmQgY2FsbCBsb3dlciBoYW5kbGVycwogICAKMjAwMi0xMi0xNCAwOToyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFsd2F5cyBwcm9jZXNzIGxhdGVyIHBhc3NlcyBvZiBhIHNldCByZXF1ZXN0CiAgIAoyMDAyLTEyLTEzIDE2OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDE1OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDE1OjQwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IGluY29tcGxldGUgemVyb2luZyBvZiBzZWN1cml0eSBkYXRhCiAgIAoyMDAyLTEyLTEzIDE1OjM5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IGEgcG9zc2libGUgZnJlZWluZyBvZiBhIE5VTEwgcG9pbnRlcgogICAKMjAwMi0xMi0xMyAxNTozOCAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMTozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2xlYXIgdGhlICdwcm9jZXNzZWQnIGZsYWcgYmV0d2VlbiBwYXNzZXMsIHNvIHRoYXQgaGFuZGxlcnMKICAgY2FuIGNvcnJlY3RseSBjbGVhbiB1cCBhZnRlciBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkLgogICAKMjAwMi0xMi0xMyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWRkIGFzc2VyIHRvIHRyeSBhbmQgY2F0aCBpbnRlcm1pdHRlbnQgY3Jhc2ggaSd2ZSBiZWVuIHNlZWluZwogICAKMjAwMi0xMi0xMyAxMTowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGxvZyB1bmtub3duIGFnZW50eCBvcGVyYXRpb24KICAgCjIwMDItMTItMTMgMTA6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZiBubyByb3cgY3JlYXRlIGNhbGxiYWNrIG9uIHNldCwgdXNlIE5PVFdSSVRBQkxFIGluc3RlYWQgb2YgTk9TVUNISU5TVEFOQ0UKICAgCjIwMDItMTItMTMgMTA6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBzbyBkZWxlZ2F0ZWQgZmxhZyBkaXNwbGF5ZWQgcHJvcGVybHkKICAgCjIwMDItMTItMTMgMTA6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGxvZyB0ZXh0IChBUFB8TElCfFRPSykgaW5zdGVhZCBvZiBzdG9yZSBpZCBpbiBkZWJ1ZyBtc2dzCiAgIAoyMDAyLTEyLTEzIDA5OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIC0td2l0aC1saWJ3cmFwCiAgIAoyMDAyLTEyLTEzIDA5OjQ5ICByc3RvcnkKCiAgICogRkFROgoKICAgZ3JhbW1hci9pbmRlbnRpb24gdHdlYWsgKyBtZW50aW9uIHN0cmlwIGZvciBtZW1vcnkgZm9vdHByaW50IHF1ZXN0aW9uCiAgIAoyMDAyLTEyLTEzIDA5OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgZXhwbGljaXQgbWVudGlvbiBvZiBTTk1QIG1vZHVsZSBkb2N1bWVudGF0aW9uLgogICBUaGlzIHNldHRpbmcgZG9lc24ndCBzZWVtIHRvIGJlIG5lY2Vzc2FyeSwgYW5kIHdpdGhvdXQgaXQsCiAgIHRoZSBtYW4gcGFnZSBpcyBpbnN0YWxsZWQgYXV0b21hdGljYWxseS4KICAgCjIwMDItMTItMTMgMDc6NDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIC1TIGRvIHRoZSBzYW1lIGFzIHNubXBkIC1TIChzZXQgdGhlIHN5c2xvZyBmYWNpbGl0eSkKICAgICAtIG1ha2UgLWwgcHJpbnQgYSB3YXJuaW5nIHNheWluZyB0aGF0IGl0IGlzIGRlcHJlY2F0ZWQgYW5kIC1TIHNob3VsZAogICAgICAgYmUgdXNlZCBpbnN0ZWFkCiAgIAoyMDAyLTEyLTEzIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBpbmNyZWFzZSB3aWR0aCBvZiB0b2tlbiBmaWVsZCB0byBpbXByb3ZlIGxlZ2liaWxpdHkgb2YKICAgICAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlIGhlbHAgb3V0cHV0CiAgIAoyMDAyLTEyLTEyIDE3OjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmtub3duIC1PIG9wdGlvbnMKICAgCjIwMDItMTItMTIgMTU6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzb21lIHNpemVfdCB0aGF0IHJlYWxseSBzaG91bGQgYmUgaW50CiAgIAoyMDAyLTEyLTEyIDE0OjE4ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIEEgbG9uZyBvdmVyZHVlIHBhdGNoICgjNDE1MjUyKSBmcm9tIFJvYmVydCBIYXN0aW5ncyB0aGF0IGltcGxlbWVudHMKICAgcmV2ZXJzZSBESVNQTEFZLUhJTlQgcHJvY2Vzc2luZywgaS5lLiBpdCBhbGxvd3MgeW91IHRvIGlucHV0IGRhdGEKICAgZm9ybWF0dGVkIGxpa2UgdGhlIERJU1BMQVktSElOVCBwcmVzY3JpYmVzLiBFbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dAogICBjYW4gYmUgZGlzYWJsZWQgd2l0aCB0aGUgLUloIG9wdGlvbiBvciBub0Rpc3BsYXlIaW50IGluIHNubXAuY29uZgogICAKMjAwMi0xMi0xMiAxMzo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcGFyc2Ugb2lkcyBpbiB2aWV3IHN0YXRlbWVudHMgdGhlIHNhbWUgd2F5IHRoZSBhcHBzIGRvIGl0IChjb25zaXN0ZW5jeSwgaGUgc2FpZCkKICAgCjIwMDItMTItMTIgMTM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBBZGQgYSBnZXRSb290T0lEIGZ1bmN0aW9uIHRvIHRoZSByZWdpbmZvIHBvaW50ZXIgcGFzc2VkIGludG8gaGFuZGxlcnMuCiAgIAoyMDAyLTEyLTEyIDEzOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY2hhbmdlIGNyZWF0ZSBhbmQgZHVwbGljYXRlIHJvdyB0byByZXR1cm4gc3BlY2lmaWMgY29udGV4dCBpbnN0ZWFkIG9mIGdlbmVyaWMKICAgbmV0c25tcF9pbmRleDsgY2F0Y2ggZXJyb3IgZnJvbSBwYXJzZV9vaWRfaW5kZXhlcyBvbiByb3cgY3JlYXRpb24KICAgCjIwMDItMTItMTIgMTM6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgUHJpbnQgZXJyb3JzIHRvIFNUREVSUiBpbnN0ZWFkLgogICAgIChhY3R1YWxseSBkb24ndCBiZWNhdXNlIHRoZXNlIHN0YXRlbWVudHMgYXJlIGNvbW1lbnRlZCBvdXQgaW4gdGhlCiAgICAgZmlyc3QgcGxhY2UpCiAgIAoyMDAyLTEyLTEyIDEzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmV2ZXJzZSB0aGUgY29udGV4dCBvZiBhIGNvbnRleHQgaWYgc3RhdGVtZW50IHNvIGlmIG5vdCB0aGUgY29udGV4dAogICB0aGVuIGRvbid0IHVzZSB0aGUgY29udGV4dCBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KICAgCjIwMDItMTItMTIgMTI6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIGxvbmctZGVwcmVjYXRlZCAtcSBhbmQgLVMgb3B0aW9ucwogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0xMi0xMiAxMjozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIG1lc3NhZ2UgaW4gdXNhZ2UKICAgCjIwMDItMTItMTIgMTE6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC4xLmRlZiwgYWdlbnQvc25tcGQuYzoKCiAgIEltcGxlbWVudCBhIGNvbW1hbmQtbGluZSBvcHRpb24gKC1TKSB0byBzZXQgdGhlIGZhY2lsaXR5IHRvIHVzZSB3aGVuCiAgIGxvZ2dpbmcgdmlhIHN5c2xvZy4gICBCYXNlZCBvbiBhbiBpZGVhIGJ5IEpvZWwgUm9zZGFobCAoUGF0Y2ggIzYyNzcwMSkKICAgTm90ZSB0aGF0IC1sIGFuZCAtTCBhcmUgYWxyZWFkeSB0YWtlbjotKAogICAKICAgVG9EbzoKICAgICBQcm92aWRlIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBmb3IgYm90aCB0aGlzLCBhbmQgdGhlIHN5c2xvZyB0b2tlbiAoJ3NubXBkJykuCiAgIAoyMDAyLTEyLTEyIDExOjE4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIFN1cHBvcnQgc2V0dGluZyBvZiBzeXNEZXNjciBhbmQgc3lzT2JqZWN0SUQgdmlhIHNubXBkLmNvbmYKICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzICh0aG91Z2ggbm90IHZpYSBTTk1QIFNFVCByZXFlc3RzKS4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc3MDIgYW5kICM2MjgwMTEpCiAgIAoyMDAyLTEyLTEyIDEwOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgdGFibGUuYzoKCiAgIFN1cHByZXNzIHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zICgjNjQ0MDQxKQogICAKMjAwMi0xMi0xMiAxMDo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIFVzZSAnc3lzY29uZicgdG8gcmVwb3J0IG9uIFNvbGFyaXMgbWVtb3J5IHVzYWdlLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCZW4gU3Rlcm4gKCM2NTExODIpCiAgIAoyMDAyLTEyLTEyIDEwOjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBCYXNpYyBzdXBwb3J0IGZvciBtdWx0aXBsZSBBZ2VudFggc29ja2V0cyAob24gdGhlIG1hc3RlciBzaWRlIGF0IGxlYXN0KS4KICAgU2VlIEZlYXR1cmUgUmVxdWVzdCAjNjMyNTU2CiAgIAoyMDAyLTEyLTEyIDA4OjU3ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGNyZWF0ZSB2ZXJzaW9uIHRhZyBmcm9tIHZlcnNpb24gc28gY3ZzIGV4cG9ydCB3b3JrczsgZml4IFJFTDsgYWRkIHRhci5negogICBvZiBzb3VyY2UgYXMgZGVwZW5kZW5jeSBmb3IgcnBtZmlsZXMKICAgCjIwMDItMTItMTIgMDg6MDQgIG5iYQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfZW51bS5jLCBzbm1wX3NlY21vZC5jLCBzbm1wX3RyYW5zcG9ydC5jCjoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xMiAwNzoxOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvY3VtZW50IHRoZSAtT1Ugb3B0aW9uLCBhbmQgYWxwaGFiZXRpc2UgdGhlIGhhbmRsaW5nIG9mIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEyIDA2OjI1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCAnc25tcGluZm9ybScgYXMgYSByZWxhdGl2ZSBsaW5rLCByYXRoZXIgdGhhbiBhbiBhYnNvbHV0ZSBvbmUuCiAgIEZpeCBwcm92aWRlZCBieSB0aGUgaW5kZWZhdGlnYWJsZSBTdGVmYW4gUmFkbWFuIChCdWcgIzY1MjU4NykKICAgCjIwMDItMTItMTIgMDU6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVvdGUgY29uZmlndXJlIG9wdGlvbnMgd2hlbiBjb250cnVjdGluZyBuZXQtc25tcC1jb25maWd1cmUgYW5kIG5ldC1zbm1wLWNvbmZpZ3VyZS5oCiAgIFRoaXMgYWxsb3dzIG9wdGlvbnMgY29udGFpbmluZyBzcGFjZXMsIGV0YywgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkuCiAgIChTZWUgRmVhdHVyZSBSZXF1ZXN0ICM1NDcxNTIpCiAgIAoyMDAyLTEyLTExIDE2OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBQYXRjaCBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvIEp1biBLdXJpeWFtYQogICAKMjAwMi0xMi0xMSAxMjoxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0yLXBhdGNoZXMuNCksIHNubXBfbG9nZ2luZy5jOgoKICAgVHJ5IGRpc2FibGluZyBsaW5lLWJ1ZmZlcmluZyBvbiBXaW5kb3dzIHN5c3RlbXMgKHNpbmNlIGl0CiAgIGFwcGFyZW50bHkgZW5hYmxlcyBmdWxsLWJ1ZmZlcmluZyBpbnN0ZWFkKS4gIFNlZSBCdWcgIzU1ODgzNy4KICAgCjIwMDItMTItMTEgMTE6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgZ2V0LnQsIGdldG5leHQudCwKICAgbm90aWZ5LnQsIHNldC50OgoKICAgRXhwbGljaXRseSBzZXQgU05NUCB2ZXJzaW9uID0gMSAodGhlIG9yaWdpbmFsIGRlZmF1bHQgYXMgZXhwZWN0ZWQgYnkgdGhlIHRlc3RzKQogICBUaGlzIHNob3VsZCBub3cgcGFzcyBhbGwgdGVzdHMgYXBhcnQgZnJvbSBjb25mLnQgIzMKICAgCjIwMDItMTItMTEgMDY6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgQmUgbW9yZSBzZWxlY3RpdmUgaW4gdXNpbmcgdGhlIDY0LWJpdCB2ZXJzaW9uIG9mIG5saXN0LiAoQnVnICM2MTE2NTUpCiAgIAoyMDAyLTEyLTExIDA2OjI3ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIG5vbi1mdW5jdGlvbmFsaXR5IG9mIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIGFwcHJvYWNoZXMuCiAgIChCdWcgIzYxNzExOSkuICAgUmVwb3J0ZWQgYnkgUXVhbmFoIEdpYnNvbi1Nb3VudAogICAKMjAwMi0xMi0xMSAwNjoyMCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhhdCB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyB0aGUKICAgZW1iZWRkZWQgcGVybCBzY3JpcHQuICAoQnVnICM2MTc4OTEpIEZpeCBwcm92aWRlZCBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMi0xMi0xMSAwNTo1NiAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoVjQtMi1wYXRjaGVzLjQpLCBSRUFETUUuc25tcHYzOgoKICAgRG9jdW1lbnQgdGhlIGxvY2F0aW9uIGFzc3VtcHRpb25zIGJlaW5nIG1hZGUgaW4gdGhpcyBkZXNjcmlwdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBmb3JjaW5nIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGluIGVpdGhlcgogICBBU0NJSSBvciBIZXggZm9ybWF0LCBieXBhc3NpbmcgdGhlICJndWVzcyIgbWVjaGFuaXNtIGFzIHRvIHdoaWNoCiAgIGlzIG1vcmUgYXBwcm9wcmlhdGUuICAgU3VnZ2VzdGVkIGJ5IE5pY2sgS2FuYWtha29ybi4KICAgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhZmZlY3Qgb2JqZWN0cyB3aXRoIGEgRGlzcGxheS1IaW50IGluCiAgIHRoZWlyIE1JQiBkZWZpbml0aW9uLgogICAKMjAwMi0xMi0xMSAwNDozMCAgZHRzMTIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoCiAgIChWNC0yLXBhdGNoZXMuWzIsMjYsNl0pLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENvbW1hbmQtbGluZSBvcHRpb24gdG8gY29udHJvbCB3aGV0aGVyIHRvIHVubGluayB0aGUgUElEIGZpbGUgb3Igbm90LgogICBOZWNlc3NhcnkgZm9yIGNvcnJlY3QgdGVzdCBvcGVyYXRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjIxICBkdHMxMgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgVGhlIGxhdGVzdCBsaWJyYXJ5IGRlZmF1bHRzIHRvIE1PRFVMRTo6bmFtZSBzdHlsZSBvdXRwdXQsCiAgIHNvIGFkanVzdCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGNoZWNrcyBhY2NvcmRpbmdseS4KICAgQWxzbywgdGhlcmUgYXJlIGFjdHVhbGx5IDM2IHRlc3RzLCBub3QgMzUhCiAgIAoyMDAyLTEyLTExIDA0OjE3ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBJbml0aWFsaXNlIHRoZSBTTk1QIGxpYnJhcmllcywgdG8gc2V0IHVwIHRoZSBPSUQgdHJlZS4KICAgQWRkcmVzc2VzIGJ1Z3MgIzYzODAyNCBhbmQgIzYyNzY0MwogICAgIFtRbjogRG8gd2UgbmVlZCB0byBzdXBwbHkgYW4gJ2FwcG5hbWUnIChjLmQgdGhlIFNOTVAgbW9kdWxlKSA/XQogICAKMjAwMi0xMi0xMCAxOToyOSAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgQWxsb3cgcnVudGltZSBjb25maWd1cmF0aW9uIG9mIHBlcnNpc3RlbnQgZGlyZWN0b3J5CiAgIAoyMDAyLTEyLTEwIDE5OjI0ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVwb3J0IGVycm9ycyBoYW5kbGluZyBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMKICAgCjIwMDItMTItMTAgMTk6MjMgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGFzcyB1cCBlcnJvciBvbiBkaXJlY3RvcnkgY3JlYXRpb24KICAgCjIwMDItMTItMTAgMTc6MjcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQmV0dGVyIHJlc3BlY3QgZm9yIHRoZSBtYXggd2lkdGggb3B0aW9uIChzbm1wdHJhbnNsYXRlIC1UZCkKICAgCjIwMDItMTItMTAgMTc6MjYgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG9pZE91dHB1dEZvcm1hdCBvcHRpb24KICAgCjIwMDItMTItMTAgMTc6MjUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ2xlYW4gdXAuIFJlbW92ZSBjYWxscyB0byBvYnNvbGV0ZSBmdW5jdGlvbnMgc25tcF9zZXRfcXVpY2tfcHJpbnQsCiAgIHNubXBfZ2V0X2R1bXBfcGFja2V0LCBzbm1wX2dldF9zdWZmaXhfb25seS4gUmVtb3ZlIGxhc3QgdHJhY2VzIG9mIHRoZQogICBub25fc2VxdWVudGlhbCBiYWNrd2FyZHMgaGFjay4gTWFrZSBzdXJlIGl0IHdvcmtzIGZvciBhbGwgLU8gb3B0aW9ucy4KICAgCjIwMDItMTItMTAgMTE6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMjYpLAogICBpbnRlcmZhY2VzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZW1wdHkgbGluZXMgaW4gL3Byb2MvbmV0L2RldiAgKEJ1ZyAjNjI1NDI2KQogICAKMjAwMi0xMi0xMCAxMTo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuNSksIHNubXB2My5jOgoKICAgRnJlZSBkZXN0aW5hdGlvbiBtZW1vcnkgYmVmb3JlIGNsb25pbmcgU05NUCBFbmdpbmUgSUQuCiAgIEZpeCBwcm92aWRlZCBieSBNYXJ0aW4gQ2FybHNzb24uICAoQnVnICM4MzU0ODEpCiAgIAoyMDAyLTEyLTEwIDExOjA3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIEFkZCAiJENvbmZpZ3tjY2ZsYWdzfSIgdG8gQ0NGTEFHUy4gICAoU2VlIGJ1ZyAjNjQwODk5KQogICAKMjAwMi0xMi0xMCAxMDo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjQtMi1wYXRjaGVzLjgpLCBpcEFkZHIuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBMaW51eCB2aXJ0dWFsIGludGVyZmFjZXMgaW4gdGhlIGlwQWRkcmVzc1RhYmxlLgogICAoTm90ZSB0aGlzIGRvZXMgKm5vdCogaW5jbHVkZSBzZXBhcmF0ZSBwZXItdi1pbnRlcmZhY2Ugc3RhdGlzdGljcwogICAgaW4gdGhlIGludGVyZmFjZXMgdGFibGUpLgogICAKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSmVucyBTaXR0bmVyICgjNjIxMjc0KQogICAKMjAwMi0xMi0xMCAwNDo1OSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIGV4dHJhbmVvdXMgXk0gY2hhcmFjdGVycy4KICAgCjIwMDItMTItMTAgMDI6MzYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hlbiB1c2luZyAtT3F2IGFuZCBwcmludGluZyBhbiBlbXB0eSBzdHJpbmcgeW91IGNvdWxkIGVuZCB1cCB3aXRoCiAgIGEgTlVMTCBzdHJpbmcgYW5kIG5vdCBhbiBlbXB0eSBzdHJpbmcgbGVhZGluZyB0byBzb21lIHZlcnkgb2JzY3VyZQogICBwcm9ibGVtcyBpbiBzbm1wdGFibGUgYW5kIG90aGVyIGFwcGxpY2F0aW9ucy4KICAgCjIwMDItMTItMDkgMTE6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIGludGVnZXIgdmFsdWVzICh3aGV0aGVyIDMyLSBvciA2NC1iaXQhKS4gICBPb3BzIQogICAKMjAwMi0xMi0wOSAxMDoxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy4zOCksIHNubXBfYXBpLmM6CgogICBIYW5kbGUgaW50ZWdlci1iYXNlZCB2YWx1ZXMgY29ycmVjdGx5IG9uIGEgNjQtYml0IHBsYXRmb3JtLgogICBQYXRjaCBzdXBwbGllZCBieSBUaG9tYXMgV2ViZXIgKCM1NjEwNzEpCiAgIAoyMDAyLTEyLTA5IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBUYWtlIG5vdGUgb2Ygc3ViYWdlbnQtcmVxdWVzdGVkIGJ5dGUgb3JkZXJpbmcgaW4gc3Vic2VxdWVudCBjb21tdW5pY2F0aW9ucy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVXJiYW4gKCM2MzIyODQpCiAgIAoyMDAyLTEyLTA5IDA5OjMyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yNSksIHNubXBkLmM6CgogICBSZW1vdmUgdGhlIFBJRCBmaWxlIG9uIGFnZW50IHNodXRkb3duLgogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTkpCiAgIAoyMDAyLTEyLTA5IDA5OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSGFuZGxlICdzdHJ1Y3Qgc29ja2FkZHInIHRoYXQgY29udGFpbiAnc2FfbGVuJyBmaWVsZHMgZGlmZmVyZW50bHkKICAgdG8gdGhvc2UgdGhhdCBkb24ndCAoYy5mIGlmaWx0ZXJfaW9jdGwuYyBpbiBCSU5EIDkuMi4xIHNvdXJjZXMpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5NikKICAgCjIwMDItMTItMDkgMDc6MTIgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVjb2duaXNlIEJTRGk0LCBhbmQgdHdlYWsgdGhlIHJlY29nbml0aW9uIG9mICdkbG9wZW4nLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobC4KICAgCjIwMDItMTItMDkgMDY6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCjoKCiAgIFJlbW92ZSBzb21lIHdhcm5pbmdzLCBhbmQgdHJ5IHRvIGNvcGUgd2l0aCAnc3lzY3RsJyBmYWlsdXJlcy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBDaHJpcyBKb2hucy4KICAgCjIwMDItMTItMDkgMDQ6MjAgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbGltaXRhdGlvbnMgb24gL3Vzci91Y2Ivc2VkLAogICBhbmQgcG9pbnQgcGVvcGxlIHRvd2FyZHMgL3Vzci9iaW4vc2VkIGluc3RlYWQuCiAgIAoyMDAyLTEyLTA3IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEluc2VydCBuZXdseS1jcmVhdGVkIHJvd3MgaW50byB0aGUgcGVyLXJlcXVlc3QgbGlzdHMsIHNvIHRoYXQgbG93ZXIKICAgbGV2ZWwgaGFuZGxlcnMgY2FuIGFjY2VzcyB0aGVtLgogICAgIFtRbjogU2hvdWxkIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIHdpdGggdXBkYXRlZCBsaXN0cyBhcyB3ZWxsP10KICAgCjIwMDItMTItMDcgMDg6MzQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVwb3J0IGJhY2sgdGhlIGNvcnJlY3QgZXJyb3IgZm9yIHJvd3MgdGhhdCBjb3VsZG4ndCBiZSBjcmVhdGVkLgogICAKMjAwMi0xMi0wNyAwODozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhIHJvdyB0aGF0IG5ldmVyIGdvdCBjcmVhdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KICAgCjIwMDItMTItMDYgMTg6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIFNraXAgb24gbm9uLW9wZW5zc2wgbWFjaGluZXMuICBUSGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIGp1c3Qgbm90IHVzaW5nIGVuY3J5cHRpb24gb24gdGhvc2UgbWFjaGluZXMsIGJ1dCBJIGRvIG5vdCBoYXZlIHRoZSB0aW1lIGF0IHRoZSBtb21lbnQKICAgCjIwMDItMTItMDYgMTM6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMzowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEyOjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IGRlbGV0ZSB0aGUgIm9sZCIgKG5vbi1leGlzdGVudCkgcm93LCB3aGVuIHRpZHlpbmcgdXAgYWZ0ZXIKICAgY3JlYXRpbmcgYSBuZXcgcm93LgogICAKMjAwMi0xMi0wNiAxMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBUd2VhayBoYW5kbGluZyBvZiAoaW52YWxpZCkgUm93U3RhdHVzIGNyZWF0aW9uIHJlcXVlc3RzIGluIGFuCiAgICJhdXRvbWF0aWMgY3JlYXRpb24iIHRhYmxlLiAgIFRoZXNlIHNob3VsZCByZXR1cm4gd3JvbmdWYWx1ZSBvcgogICBpbmNvbnNpc3RlbnRWYWx1ZSwgcmF0aGVyIHRoYW4gbm90V3JpdGFibGUuCiAgIAoyMDAyLTEyLTA1IDA1OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN1cHBvcnQgdXNlIG9mIFJvd1N0YXR1cyBvYmplY3QgdG8gY29udHJvbCBjcmVhdGlvbiBvZiBuZXcgcm93cwogICAoaS5lLiB3aGVuIHRoZSAnYWxsb3dfY3JlYXRpb24nIGZsYWcgaXMgbm90IHNldCkuCiAgIFRoaXMgc2hvdWxkIGRlYWwgd2l0aCBldmVyeXRoaW5nIGV4Y2VwdCBkZXRlcm1pbmluZyB3aGV0aGVyIGEKICAgcm93IGlzIHJlYWR5IHRvIGdvICdhY3RpdmUnIChlLmcuIHZpYSAnY3JlYXRlQW5kR28nKS4gIFN1Y2ggYQogICBkZWNpc2lvbiBpcyBpbmhlcmVudGx5IHNwZWNpZmljIHRvIGVhY2ggaW5kaXZpZHVhbCBNSUIsIHNvIG11c3QKICAgcmVhbGx5IGJlIGRvbmUgaW4gdGhlIGxvd2VyLWxldmVsIGhhbmRsZXIuCiAgIAoyMDAyLTEyLTA1IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN0b3AgcHJvY2Vzc2luZyB3aGVuIGEgJ25vbi13cml0YWJsZSBjcmVhdGUnIGlzIGRldGVjdGVkLgogICAKMjAwMi0xMi0wNCAxOTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIC0gcnVuIGV2ZW50VGFibGUgZW50cmllcy4KICAgCjIwMDItMTItMDQgMTk6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYzoKCiAgIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgCjIwMDItMTItMDQgMTk6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmM6CgogICB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgdG8gZ2V0IHJlYWwgc3RyaW5ncyBmcm9tIG1pYiBkYXRhLgogICAKMjAwMi0xMi0wNCAxOTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCiwgbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmg6CgogICAtIGltcGxlbWVudGVkIHRoZSBtdGVFdmVudFRhYmxlIGFuZCB0aGUgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZQogICAgIC0gRllJLCB0b3RhbCBpbXBsZW1lbnRhdGlvbiB0aW1lOiBhYm91dCA0IGhvdXJzCiAgICAgLSBubyBlYXN5LXRvLXVzZSAuY29uZiB3cmFwcGVycyB5ZXQgdGhvdWdoLiAgc25tcHNldCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAyLTEyLTA0IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgLSB1c2UgdGhlIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uIHdoaWNoIGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0xMi0wNCAxOToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBjcmVhdGUgYSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbi4KICAgLSBBbGxvdyByb3cgY3JlYXRpb24gdXNpbmcgcm93U3RhdHVzIHdoZW4gdGhlIGRhdGEgY29sdW1uIGV4aXN0cywgYnV0CiAgICAgdGhlcmUgaXMgbm8gYXNzaWduZWQgdmFsdWUgKGllLCBpcyBOVUxMKS4KICAgLSB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgaW5zdGVhZCBvZiBtZW1kdXAgdG8gbWFrZSBzdXJlIGFuCiAgICAgaW1wbGljaXQgTlVMTCBpcyBpbiBwbGFjZSBmb3IgdGhpbmdzIHRoYXQgdXNlIHRoZSBkYXRhIGFuZCBuZWVkIGl0CiAgICAgYXMgYSByZWFsIHN0cmluZy4KICAgCjIwMDItMTItMDQgMTk6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGRvY3VtZW50IC0tcHJlZml4CiAgIAoyMDAyLTEyLTA0IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBORVdTIChWNC0yLXBhdGNoZXMuOSksIE5FV1M6CgogICBkb2N1bWVudCA0LjIuNgogICAKMjAwMi0xMi0wMyAwNDo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgQ2xvc2UgcHJpbnRlciBmaWxlIGhhbmRsZSB3aXRoICdmY2xvc2UnIHJhdGhlciB0aGFuICdwY2xvc2UnIHRvIGF2b2lkCiAgIGEgbWVtb3J5IGxlYWsgb24gU29sYXJpcyAyLjYuICAgRml4IHByb3ZpZGVkIGJ5IEphY29ibyBNYXR1dGUuCiAgIAoyMDAyLTEyLTAzIDA0OjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBUcmFuc2xhdGUgR2V0TmV4dCAoYW5kIEdldEJ1bGspIHJlcXVlc3RzIGludG8gc2ltcGxlIEdldCByZXF1ZXN0cywKICAgd2hlbiBwYXNzaW5nIHRoZW0gZnJvbSB0aGUgdGFibGVfZGF0YSBoYW5kbGVyIHRvIHRhYmxlX2RhdGFzZXQuCiAgICAgVGhpcyBpcyBhbmFsb2dvdXMgdG8gaG93IHRoZSBpdGVyYXRlIGhhbmRsZXIgd29ya3MsIGFuZCBhbGxvd3MKICAgbG93ZXIgbGV2ZWwgaGFuZGxlcnMgdG8gb3ZlcnJpZGUgdGhlIGJhc2ljIGJlaGF2aW91ciAod2l0aG91dAogICBoYXZpbmcgdG8gZHVwbGljYXRlIGFsbCBvZiB0aGUgImZpbmQgbmV4dCByb3ciIGNvZGUgZXZlcnkgdGltZSkuCiAgIAoyMDAyLTEyLTAyIDA0OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXR1cm4gU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuIHRoZSBTTk1QdjEgJ25vU3VjaE5hbWUnIGVycm9yLgogICBUaGlzIHVzZWQgdG8gYnJlYWsgQWdlbnRYIHN1YmFnZW50cywgYnV0IHRoZSBsYXRlc3QgY2hhbmdlIHRvIHNubXBfYWdlbnQuYwogICAodG8gY2F0Y2ggbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucykgc2VlbXMgdG8gaGF2ZSBmaXhlZCB0aGF0IHByb2JsZW0uCiAgIAoyMDAyLTEyLTAyIDA0OjQwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBsaWNpdGx5IHBhcmVudGhlc2lzZSBhIGNvbXBhcmlzb24sIHRvIGtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5LgogICAKMjAwMi0xMi0wMiAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5jbHVzaXZlLXJhbmdlIEdldE5leHQgcmVxdWVzdHMgYXJlIHRyYW5zbWl0dGVkIGFzIEdldCByZXF1ZXN0cywgc28gbWF5CiAgIHdlbGwgcmV0dXJuIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMuICBDYXRjaCB0aGVzZSBhcyB3ZWxsLgogICAKMjAwMi0xMi0wMiAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBDYXRjaCAoYW5kIHJlamVjdCkgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbmV3IHJvdyB2aWEgYSBub24td3JpdGFibGUgb2JqZWN0LgogICAKMjAwMi0xMS0yOCAwNDoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgTnVsbCBvdXQgb25lIGZpbmFsIGxvb3BfY29udGV4dCBwb2ludGVyIGFmdGVyIGJlaW5nIGZyZWVkLgogICAoUGF0Y2ggcHJvdmlkZWQgYnkgUm9nZXIgTWNDYWxtYW4pCiAgIAoyMDAyLTExLTI2IDE3OjU5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRGlzY2FyZCB0aGUgc2Vjb25kYXJ5IChHUk9VUCkgREVTQ1JJUFRJT04gaW5zaXplIGEgTU9EVUxFLUNPTVBMSUFOQ0UKICAgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuIFRoYW5rcyB0byBFdWdlbmVfQnJ1a0BibWMuY29tCiAgIAoyMDAyLTExLTI2IDE3OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZWluc3RhdGUgdGhlIC13IG9wdGlvbnMgdGhhdCB3YXMgbG9zdCBpbiB0aGUgaW5kZW50IGZ1cnkKICAgCjIwMDItMTEtMjYgMTA6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgVGhlIG5vdGlmaWNhdGlvbiB2YXJpYWJsZSBzaG91bGRuJ3QgYmUgc3RhdGljLiAgQSBidWcgZm91bmQgd2hpbGUKICAgdHJhY2tpbmcgZG93biBhIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgVmVuaWNlIG9uIElSQy4KICAgCjIwMDItMTEtMjYgMDQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggaW5jb3JyZWN0IHVzYWdlIG9mIFNFX01BWF9JRFMgdnMgU0VfTUFYX1NVQklEUy4KICAgUmVwb3J0ZWQgYnkgJ3NoaW5lcGVhaycKICAgCjIwMDItMTEtMjUgMjI6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgaGFjayBvZiBhIGhhY2sgb2YgYSBoYWNrLCBvcjogZml4IG11bHRpLWxpbmUgRkFRIHF1ZXN0aW9ucwogICAKMjAwMi0xMS0yNSAxMDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAyLTExLTE4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIGFwcGxpZWQgcGF0Y2ggIzUyNzY1MAogICAKMjAwMi0xMS0xMSAxNzoxMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXNwZWN0IHRoZSBtaWJkaXJzIGNvbmYgZGlyZWN0aXZlLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMTEgMTY6NTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBhIG1pc3NpbmcgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTExIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBmaXggdGFkZHIgZ2VuZXJhdGlvbi9wYXJzaW5nIGZvciBwb3J0IGJhc2VkIHRyYW5zcG9ydHMgdG8gcHJvcGVybHkgdXNlCiAgIG5ldHdvcmsgYnl0ZSBvcmRlcmluZy4KICAgCjIwMDItMTEtMTEgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBmaXggd3JpdGUgc3VwcG9ydCBmb3IgdGhlIHRpbWVvdXQgY29sdW1uCiAgIAoyMDAyLTExLTA5IDEwOjA2ICBuYmEKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIERvIGF3YXkgd2l0aCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTExLTA5IDA5OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywgaG9zdC9ocl9wcmludC5jCjoKCiAgIFplcm8gaXMgYW4gT0sgZmlsZSBkZXNjcmlwdG9yLiAtMSBpcyB0aGUgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTA5IDA5OjU0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1vcmUgdG8gdGhlIHBvaW50IG1lc3NhZ2UgZm9yIHVuZGVmaW5lZCBpZGVudGlmaWVycy4gQnJvdWdodCBmb3J3YXJkIGZyb20gNC4yCiAgIAoyMDAyLTExLTA5IDA5OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgUHJpbnQgdGhlIGVycm9yIGluZm9ybWF0aW9uIGluIGNhc2Ugb2YgZXJyb3IKICAgCjIwMDItMTEtMDkgMDk6NTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdjIgZXhjZXB0aW9uIHJlc3VsdHMKICAgCjIwMDItMTEtMDkgMDk6NDkgIG5iYQoKICAgKiBzZWRzY3JpcHQuaW4sIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdGVjdCBQUkVGSVggd2hlbiBpdCBpcyB0aGUgZW52IHZhci4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTA5IDA5OjQ3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIFJGQyAzMzcxIEwyVFAtTUlCCiAgIAoyMDAyLTExLTA5IDA5OjQ2ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGVkIGZyb20gSUFOQQogICAKMjAwMi0xMS0wNyAwNTo1NSAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCAtQ2YgYW5kIC1DdyBvcHRpb24gcHJvY2Vzc2luZyAocHJldmlvdXNseSB3b3VsZCBjb3JlIGR1bXAgaWYKICAgICAgIG5vIG9wdGlvbiBwYXNzZWQpLCBhcyBwb2ludGVkIG91dCBieSBoYW1wYSBvbiAjbmV0LXNubXAKICAgCjIwMDItMTEtMDYgMTU6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggY3V0L3Bhc3RlCiAgIAoyMDAyLTExLTA2IDE1OjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbiAmIG1ha2VmaWxlcwogICAKMjAwMi0xMS0wNiAxNDowOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBtaXNzaW5nIGVuZCBxdW90ZQogICAKMjAwMi0xMS0wNiAxMzozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBAREVWRkxBR1NAIHdlaGVydmVyIHRoZXJlIGlzIGEgQENGTEFHU0AsIGV4Y2VwdCBmb3IgdGhlIG5ldyAtLWJhc2UtY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEzOjIyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYWRkIEBERVZGTEFHU0AgdG8gQ0ZMQUdTCiAgIAoyMDAyLTExLTA2IDEzOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgc2VwZXJhdGUgZGV2ZWxvcGVyIGNmbGFncyBmcm9tIG5vcm1hbCBjZmxhZ3MKICAgCjIwMDItMTEtMDYgMTI6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBjaGFuZ2Ugc3RydWN0LmggaW5jbHVkZSB0byB1c2UgIiIgaW5zdGVhZCBvZiA8bmV0LXNubXAvPiwgc2luY2UgaXQgaXQgYSBsb2NhbAogICBpbmNsdWRlLCBub3QgYSBzeXN0ZW0gaW5jbHVkZQogICAKMjAwMi0xMS0wNiAxMjozOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcHVyZ2UgSU5fVUNEX1NOTVBfU09VUkNFCiAgIAoyMDAyLTExLTA1IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGFkZGVkIGEgeG1sc2hvcnQgZGVsaW1pdGVyIGFzIHJlcXVlc3RlZCBieSBsYW5kcyBvbiBJUkMKICAgCjIwMDItMTEtMDUgMTE6NTkgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgdGFicyAtPiBzcGFjZXMgb25seSB0cnkgdG8gY2htb2QgUk8gc3JjIGRpciBpZiBvd25lciBvZiBkaXJzCiAgIAoyMDAyLTExLTA1IDExOjU2ICByc3RvcnkKCiAgICogbWtpbnN0YWxsZGlyczoKCiAgIG1ha2luZyBhIGRpcmVjdG9yeSBpcyBub3QgYW4gZXJyb3IsIHNvIGRvbid0IHNlbmQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMi0xMS0wNCAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgYWxsb3cgdW5yZWdpc3RlcmVkIHNlY3VyaXR5IG1vZGVscyA8PSAyCiAgIAoyMDAyLTExLTA0IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIHRvIGJlIGJldHRlciBzdXBwb3J0ZWQgKHJvd3N0YXR1cyBubyBsb25nZXIgaGFzIHRvCiAgIGJlIGZpcnN0IGluIHRoZSBsaXN0LCAuLi4pCiAgIAoyMDAyLTExLTA0IDExOjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY3BwZmxhZ3MgdG8gLS1jZmxhZ3MKICAgCjIwMDItMTEtMDQgMTE6MTMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGQgc3R1ZmYgZm9yIDUuMC43IChvciB3aGF0ZXZlcikgbWVudGlvbmluZyBhIGZldyBuZXcgZmVhdHVyZXMuCiAgIAoyMDAyLTExLTAxIDEyOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBidWcgIzYzMjA5NCB1c2luZyB0aGUgc3VnZ2VzdGVkIG1ldGhvZDogd2F0Y2ggZm9yIE5VTEwgc3RyZXJyb3IoKSByZXR1cm4KICAgCjIwMDItMTEtMDEgMTA6MDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVuZG8gbXkgY2hhbmdlcyBmcm9tIHIgNS4xNywgYXR0ZW1wdGluZyB0byByZWR1Y2UgcnVucyBvZiBjb25maWcuc3RhdHVzCiAgIGJ5IHVzaW5nIGV4cGxpY2l0IHBhdGhzIHRvIHNyY2RpciwgYW5kIGxldCBWUEFUSCBkbyBpdCdzIHRoaW5nCiAgIAoyMDAyLTEwLTI5IDE0OjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHRhcmdldCB0byBidWlsZCBiaW5hcnkgYXJyYXkgdGVzdCBhcHA7IHR3ZWFrIHRvIHBhcnNlIHRlc3QgdGFyZ2V0IChyZWR1Y2VzIG1vc3QKICAgYnV0IG5vdCBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcykKICAgCjIwMDItMTAtMjkgMTQ6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBmb3IgYmluYXJ5IHNlYXJjaCBwcm9ibGVtIG5vdGVkIGJ5IFJvbXkgQ2hyaXN0ZW5zZW4gb24gY29kZXJzOyBwYXJ0aWFsCiAgIChpZmRlZidkIG91dCkgY29kZSBmb3IgYSBiaW5hcnkgYXJyYXkgaXRlcmF0b3IKICAgCjIwMDItMTAtMjkgMTQ6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBzaW1wbGUgdGVzdCBwcm9ncmFtIGZvciBiaW5hcnkgYXJyYXkKICAgCjIwMDItMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGRlYnVnZ2luZyBhcyBub3RlZCBpbiBidWcgIzYzMDM0OAogICAKMjAwMi0xMC0yOCAxOTo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIC4xLjYuMyB0byAxLjMuNiBhcyBub3RlZCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIAoyMDAyLTEwLTI4IDE1OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2VkIHBhc3N3b3JkCiAgIAoyMDAyLTEwLTI4IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBtaXNjIHZhY20gZml4ZXMKICAgCjIwMDItMTAtMjggMDg6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBlcnJvbmVvdXMgZnJlZSgpIG9mIHJ4YnVmCiAgIAoyMDAyLTEwLTI1IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXhlZCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgLT4gTkVUU05NUF9PUF9DQUxMQkFDS19ESVNDT05ORUNUIGFzIG5vdGVkIGJ5IFRyb2dMIG9uIElSQwogICAKMjAwMi0xMC0yNSAwNzozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0eXBlIGNhbGxiYWNrIGlmIHdlCiAgICAgICBkZWNpZGUgdG8gc2h1dGRvd24gYSBzdHJlYW0gdHlwZSBjb25uZWN0aW9uIGJlY2F1c2Ugd2UgcmVjZWl2ZWQKICAgICAgIGFuIGV4Y2Vzc2l2ZWx5IGxhcmdlIHBhY2tldC4KICAgCjIwMDItMTAtMjQgMTA6NDEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIHRoZSBzdXBlci1idWctcGF0Y2ggZ2VuZXJhdG9yIFN0ZWZhbiBSYWRtYW4gdG8gdGhlIFRIQU5LUyBsaXN0CiAgIAoyMDAyLTEwLTI0IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBidWcgIzYxNzUwODogYWRkZWQgdGhlIG10YV9zZW5kbWFpbCBtb2R1bGUgdG8gLS1oZWxwCiAgIAoyMDAyLTEwLTI0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBpbnN0YWxsIGxpc3QgZm9yIG1pYjJjIGNvbmYgZmlsZXMgYW5kIHJlbW92ZSBvbGQgb25lCiAgIAoyMDAyLTEwLTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpbmNvcnJlY3QgdmFyaWFibGUgbmFtZSBJIG5vdGljZWQgd2hlbiBjb3B5aW5nIHRvIGEgZGlmZmVyZW50IGNvbmZpZ3VyZSBzY3JpcHQgaW4gYW5vdGhlciBwYWNrYWdlCiAgIAoyMDAyLTEwLTIzIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeGVkIGJ1ZyM2MTc4Mzg6IHZlcnNpb250YWcgaXNuJ3QgZGlzdHJpYnV0ZWQgYW5kIHNob3VsZG4ndCBiZSBhbHdheXMKICAgdXNlZCBpbiB0aGUgbWFrZSBkaXN0Y2xlYW4gY2FsbHMuCiAgIAoyMDAyLTEwLTIzIDIwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBpbmNvbnNlcXVlbmNpYWwgbWVtb3J5IGxlYWtzIGZpeGVkIChpbml0IHRpbWUgbGVha3MpLgogICAKMjAwMi0xMC0yMyAyMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRml4ZWQgdmFyaW91cyBtZW1vcnkgbGVha3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIFJvZ2VyIE1jQ2FsbWFuIGFuZCBKYXkgUGFybGFyIG9uIHRoZSAtY29kZXJzIGxpc3QgKGluY2x1ZGluZyB0aGVpciBwYXRjaGVzKQogICAKMjAwMi0xMC0yMyAxODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgc25tcE5vdGlmeVRhYmxlLmMKICAgCjIwMDItMTAtMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZyZWUgYSBwcmV2aW91c2x5IG1hbGxvY2VkIHBvaW50ZXIgdG8gdGhlIHdhdGNoIHZhcmlhYmxlIGJlZm9yZSByZXBsYWNpbmcgaXQuCiAgIAoyMDAyLTEwLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICByZW1vdmUgZHVwbGljYXRlIHVudXNlZCBtYWxsb2MuCiAgIAoyMDAyLTEwLTIxIDEyOjQzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjkuaDoKCiAgICAgLSBhZGQgc3lzdGVtIGZpbGUgZm9yIFNvbGFyaXMgOQogICAKMjAwMi0xMC0xNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBPcHRpbWl6ZWQgdGhlIFZBQ00gY2hlY2tzIGluIHRoZSBjYXNlIG9mIGdldG5leHQvZ2V0YnVsayBzbyB0aGF0IHdoZW4KICAgbGFyZ2UgcG9ydGlvbnMgb2YgdGhlIG1pYiB0cmVlIGFyZSBleGNsdWRlZCwgdGhlIHN1Yi1taWIgYWNjZXNzIGNvZGUKICAgd29uJ3QgYmUgY2FsbGVkIGF0IGFsbCAoZmluYWxseSBpbXBsZW1lbnRpbmcgYSB2ZXJ5IGxvbmcgbmVlZGVkIG9wdGltaXphdGlvbikuCiAgIAoyMDAyLTEwLTE3IDIyOjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG5ldyBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb21tb25hbGl0eSBiZXR3ZWVuIHR3byBvaWRzOiBuZXRzbm1wX29pZF9maW5kX3ByZWZpeAogICAKMjAwMi0xMC0xNyAyMjozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUHJpbnQgb3V0IGEgInN1bW1hcnkiIGF0IHRoZSBlbmQgb2YgYSBydW4KICAgCjIwMDItMTAtMTcgMDU6NDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFByb3Blcmx5IHRlcm1pbmF0ZSBhIGxvb3AgY29uc3RydWN0IChtaXNzaW5nICdAZW5kQCcpCiAgIFNwb3R0ZWQgYnkgS2FybCBDb29wZXIuICAgIE9vcHMhCiAgIAoyMDAyLTEwLTE2IDE3OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlc3RvcmUgY29udGludWUgYWZ0ZXIgRUlOVFIgY2F1c2VkIGJ5IHNpZ25hbCB3ZSBoYW5kbGVkIChpbnN0ZWFkIG9mIGZhbGxpbmcKICAgdGhvcm91Z2ggdG8gZXhpdCEpCiAgIAoyMDAyLTEwLTE2IDE3OjAwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZWNrIGZvciBvdXIgc2lnbmFsIGZsYWdzIG9uIEVJTlRSLCBhbmQgb25seSByZWxlc2VjdCBpZiBub3QgY2hhbmdlZDsKICAgZGVidWcgbXNnIHdoZW4gc2lnbmFscyByZWdpc3RlcmVkIGFuZCBmb3Igc2VsZWN0L2Zkc2V0czsKICAgCjIwMDItMTAtMTYgMTU6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIENQUEZMQUdTIGJlZm9yZSB1c2VyIGNvbmZpZ3VyZSBDRkxBR1MuLiBzbyBpZiBhIHVzZXIgYWRkcyBzb21ldGhpbmcKICAgbGlrZSAvdXNyL2xvY2FsL2luY2x1ZGUgdG8gQ0ZMQUdTLCB3ZSB3aWxsIHBpY2sgdXAgb3VyIGxvY2FsIGluY2x1ZGVzIGZpcnN0LAogICBpbnN0ZWFkIG9mIGluY2x1ZGVzIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLi4KICAgCjIwMDItMTAtMTYgMDA6MDYgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oCjoKCiAgIG1ha2Ugc3VyZSBzbm1wdHJhcGQgYWx3YXlzIGhvbm9ycyBEU19BUFBfTlVNRVJJQ19JUCBmb3IgbG9nZ2luZwogICAKMjAwMi0xMC0xNSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXRzbm1wX2dldF9ib29sZWFuIC0+IG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4KICAgCjIwMDItMTAtMTUgMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggY29uc3RhbnQgdXNlZCBpbiBhc3NlcnQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMi0xMC0xNSAxNDowNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgc3lzbG9nIGZvciBsaWJ3cmFwIGxvZyBsZXZlbHMKICAgCjIwMDItMTAtMTUgMTA6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQWRkIHlldCBhbm90aGVyIHdheSB0byBzcGVjaWZ5IHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xNCAxMTo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggaXB2NiB0cmFuc3BvcnQgYWRkcmVzcyBzcGVjcwogICAKMjAwMi0xMC0xMSAxOToxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmNtdSwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVtb3ZlIHRoZSBSRUFETUUuY211IGZpbGUgKGVudGlyZWx5IG91dCBvZiBkYXRlIGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0xMC0xMSAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM2MDA5MzMgZnJvbSBEb25hbCBEaWFtb25kOiBkc2tQZXJjZW50Tm9kZSBmb3IgRnJlZUJTRDQKICAgCjIwMDItMTAtMTEgMTY6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTk4MjgwIGZyb20gSmVmZiBXYXRzb246IG1ha2UgLU9RIG5vdCBwcmludCB0eXBlIHdhcm5pbmdzLgogICAKMjAwMi0xMC0xMSAxNjo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBpbmNsdWRlIGRpcmVjdG9yeQogICAKMjAwMi0xMC0xMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHJwbSBzdWJkaXIKICAgCjIwMDItMTAtMTEgMTY6MzIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBiZXR0ZXIgZG9jcyBhYm91dCBhdXRvLWV4dHJhY3RlZCBTRiBuZXdzCiAgIAoyMDAyLTEwLTExIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogTWFrZWZpbGUsIG5ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBpbiBwYXRjaCAjNTk4ODY5OiBNYXJrIEhhcmlnJ3MgYmV0dGVyIHJwbSBzdHVmZgogICAKMjAwMi0xMC0xMSAxNToyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwo6CgogICBBbHRlcm5hdGl2ZSB0byBhIHBhdGNoIHN1Z2dlc3Rpb246IGFkZCAtT1UgdG8gbm90IHByaW50IFVOSVRTIHN1ZmZpeGVzLgogICAKMjAwMi0xMC0xMSAxNToxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAuLi9hZ2VudC9zbm1wX2FnZW50LmMKICAgCjIwMDItMTAtMTEgMTU6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBkb250UHJpbnRVbml0cwogICAKMjAwMi0xMC0xMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggIzYxNzE1MSBmcm9tIEFuZHJldyBSdWNrZXIgSm9uZXM6IGZpeCBsaWJ3cmFwIGhlYWRlcnMuCiAgICAgLSBJJ20gc3RpbGwgdW5oYXBweSB3aXRoIGhvdyBsaWJ3cmFwIGZ1bmN0aW9ucy4uLiAgbmVlZHMgdGhpbmtpbmcgYWJvdXQuCiAgIAoyMDAyLTEwLTExIDEzOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICMzMTI2OTQgZnJvbSBKb2huIFN1cnZleW9yOiBmaXggZGlza2lvIG9uIHNvbGFyaXMuCiAgIAoyMDAyLTEwLTExIDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNjIxMzk4IGZyb20gTWF0dGhldyBLcmVuemVyIHRvIGZpeCBsaW51eCBhcnAgdGFibGUuCiAgIAoyMDAyLTEwLTExIDA5OjQ3ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgY2hnIG5ldHNubXBtaWJzIC0+IG5ldHNubXBtaWJzc2tkIChub3RlZCBvbiBjb2RlcnMgYnkgSmVkIFdoaXR0ZW4pCiAgIAoyMDAyLTEwLTExIDA5OjQ1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIG5vdGUgc3F1YXJlIGJyYWNrZXRzIGZvciBJUHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xMSAwOTo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc2VsZWN0KCkgbW9yZSBxdWlja2x5IGlmIGFuIEVJTlRSIGhhcHBlbnMKICAgCjIwMDItMTAtMTEgMDE6NTEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFwcGxpZWQgSGFycmllJ3MgcGF0Y2ggZGVzY3JpYmluZyBsb3cgbWVtb3J5IGZvb3RwcmludHMKICAgCjIwMDItMTAtMTAgMTE6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gSG9yc3RlaW4gdG8gZml4IEtTTSBtb2R1bGUKICAgCjIwMDItMTAtMTAgMDY6MjIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgICAtIHJlbW92ZSBiYWQgaW5saW5lcyB3aGljaCBjYXVzZSBmaWxlIG5vdCB0byBjb21waWxlIHdpdGggU3VuIENDLgogICAgICAgU2VlIGJ1ZyAjNjIwODI3LgogICAKMjAwMi0xMC0xMCAwMjowMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYWRkIC5sYSBmaWxlcwogICAKMjAwMi0xMC0xMCAwMjowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWFrZSB0aGUgLnNwZWMgZmlsZSBhbG1vc3QgdXNhYmxlLgogICAKMjAwMi0xMC0wOCAxODo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgRkFRIHVwZGF0ZXMgZm9yIGRvd25sb2FkIHNpdGVzLgogICAKMjAwMi0xMC0wOCAxMDozNiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgUGF0Y2ggZnJvbSBKb3NodWEgS2Vyb2VzIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKICAgCjIwMDItMTAtMDcgMTM6NTcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgc3RhdGVtZW50IGFib3V0IHRoZSBDT1BZSU5HIGZpbGUgKHN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTEwLTA2IDE0OjMyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIG5zYi0qIGxpa2VzIGZ1bGwgcGF0aHMsIHVwZGF0ZSBleGFtcGxlczsgZml4IHNvdXJjZWZvcmdlIHVwbG9hZCBzaXRlCiAgIAoyMDAyLTEwLTA1IDE3OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYwosIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjYgKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNSAtPiBWNS4wLjYKCjIwMDItMTAtMDUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDowOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBpbGxlZ2FsIGZsYWcgZnJvbSBuc2ItY29uZmlnCiAgIAoyMDAyLTEwLTA1IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCBhbGxvY2F0ZSAwIGJ5dGVzCiAgIAoyMDAyLTEwLTA1IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IHJlZmVyZW5jZSBwdHIgYWZ0ZXIgaXMgaGFzIGJlZW4gZnJlZSdkLgogICAKMjAwMi0xMC0wNCAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHNlY29uZGFyeSBlZmZlY3Qgb2YgYnVnIDYxMzk4MyBhbmQgcmVhbGx5IGZpeCBpdCB0aGlzIHRpbWUuCiAgIAoyMDAyLTEwLTAyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuYyAoVjQtMi1wYXRjaGVzLjIpLCB0dW5uZWwuYwo6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHNvbWUgY29kaW5nIGVycm9ycwogICAKMjAwMi0xMC0wMSAwNzozOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgb2ZmaWNhbCBwYXRjaCA2MTcwNDk6IGluaXRpYWxpemUgY29udGFpbmVyIGxpc3QgZWFybGllciAoaW4gaW5pdF9hZ2VudCkKICAgCjIwMDItMTAtMDEgMDc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzIChkYW1uIHdpbmRvd3MgZWRpdG9ycykKICAgCjIwMDItMDktMzAgMTU6MTcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjUgKQogICAKMjAwMi0wOS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgaW5mbyBvbiBtZDVzdW1zIGFuZCBncGcgc2lnbmluZwogICAKMjAwMi0wOS0zMCAxNToxNSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggY2htb2QgdG8gZG8gd2hhdCBJIHdhbnRlZCwgbm90IHdoYXQgSSB0b2xkIGl0CiAgIAoyMDAyLTA5LTMwIDE1OjE0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBNYWtlZmlsZS50b3AsIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC41CiAgIAoyMDAyLTA5LTMwIDE0OjI3ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgbWVyZ2UgcHJlIGNoYW5nZXMgaW50byA1LjAuNCBjb21tZW50cwogICAKMjAwMi0wOS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGVzIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4zIC0+IFY1LjAuNQoKMjAwMi0wOS0zMCAxNjowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2UgbGVuIGEgc2l6ZV90IHRvIGZpeCBwcm9ibGVtIG9uIDY0IGJpdCBzeXN0ZW0sIHJlcG9ydGVkIGJ5IHNlYm5vZGAgaW4gSVJDCiAgIAoyMDAyLTA5LTMwIDE2OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0YXRpYyBsb2NhbCB2YXJzLCBhcyB0aGV5IGFyZSBsaWtlbHkgdG8gY2F1c2UgcHJvYmxlbXMgd2l0aCB0aHJlYWRzCiAgIAoyMDAyLTA5LTMwIDE1OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2Ugc3VyZSBpbnN0YWxsIGRpciBpcyByZWxhdGl2ZSB0byBidWlsZCBkaXIKICAgCjIwMDItMDktMzAgMTU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gZGVidWcKICAgCjIwMDItMDktMzAgMTU6MTkgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKICAgCjIwMDItMDktMzAgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhdm9pZCBpbmZpbml0ZSBsb29wCiAgIAoyMDAyLTA5LTMwIDE0OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgYXNzdW1lIG1ha2UgaXMgR05VIG1ha2UsIGFuZCBzZWFyY2ggZm9yIGl0LiByZXF1aXJlIHVzZXIgdG8gc2V0IGFuCiAgIGVudiB2YXIgaWYgbm8gR05VIG1ha2UgaXMgZm91bmQgaW4gUEFUSAogICAKMjAwMi0wOS0zMCAxNDo1OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBpZiBDVlMgZGlyIGlzIHJvLCBhdXRvbWFnaWNhbGx5IG1ha2UgaXQgcncgYmVmb3JlIHVwZGF0ZSBhbmQgcm8gYWZ0ZXIgdXBkYXRlCiAgIAoyMDAyLTA5LTI3IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtYWtlIGdldF9zZXRfY2FjaGUoKSByZXR1cm4gYW4gZXJyb3IgaWYgbm8gcHJldmlvdXMgU0VUIGhhcyBiZWVuIHN0YXJ0ZWQuCiAgIAoyMDAyLTA5LTI3IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZG91YmxlIGNoZWNrIGFnYWluc3Qgc29tZSBudWxsIHBvaW50ZXJzIGJlZm9yZSB1c2luZyB0aGVtIGluIHRoZSBjYWNoZSBjb2RlLgogICAKMjAwMi0wOS0yNyAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IHRyZWVjYWNoZV9udW0gdG8gLTEgYXQgaW5pdCBvZiBtZW1vcnksIHRvIGJlIGV4dHJhIHNhZmUuCiAgIAoyMDAyLTA5LTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIG1vdmUgbGlid3JhcCB2YXJpYWJsZXMKICAgCjIwMDItMDktMjYgMTQ6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBvaywgcmVtb3ZlIHRjcHdyYXBwZXJzIHZhcnMKICAgCjIwMDItMDktMjYgMTM6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBkZWZpbmUgc3R1cGlkIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGNwd3JhcHBlcnMgYmVjYXVzZSB0aGV5IGRvbid0IGdldAogICBjb25jZXB0cyBvZiBlbmNhcHN1bGF0aW9uLiAgYXJnLgogICAKMjAwMi0wOS0yNiAxMToyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGNoYW5nZSBjYWxsX3B2IHRvIHBlcmxfY2FsbF9wdiBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgcGVybC4KICAgCjIwMDItMDktMjYgMTE6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBydW4gc3RyZHVwKCkgb24gZ2V0X21pYl9kaXIoKSByZXN1bHRzIHRvIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgRXVnZW5lIEJydWsuCiAgIAoyMDAyLTA5LTIzIDEzOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWVudGlvbiBmcmVzaG1lYXQKICAgCjIwMDItMDktMjMgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIGltcGxlbWVudCBhIChsb25nIG5lZWRlZCkgc2V0dGFibGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGN1cnJlbnQKICAgICBwZXJzaXN0ZW50IGluZm9ybWF0aW9uLgogICAKMjAwMi0wOS0yMyAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBtYWtlIG5vdCBpbiB0aW1lIHdpbmRvdyByZXBvcnRzIHRyaWdnZXIgYSByZXNlbmQgb2YgaW5mb3Jtcy4KICAgICAoc3VnZ2VzdGlvbiBmcm9tIEVyaWsgQW5nZ2FyZCkKICAgCjIwMDItMDktMjAgMTE6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAgIC0gcmVtb3ZlIGZ1bmN0aW9ucyB2YWNtX3BhcnNlX3NlY3VyaXR5IGFuZCB2YWNtX2ZyZWVfc2VjdXJpdHkgd2hpY2gKICAgICAgIGRvbid0IGV4aXN0CiAgIAoyMDAyLTA5LTE5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSBzdXBwb3J0IGFnZW50IHNodXRkb3ducyAod2VsbCwgb2sgaXQncyBqdXN0IGFuIGFwaSBzaW5jZSBpdCBkb2Vzbid0IHdvcmspLgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAKMjAwMi0wOS0xOSAxNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzLCBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIGZpeCBhZ2VudCByZXF1ZXN0X2luZm9QdHIgcHJvYmxlbXMuCiAgIAoyMDAyLTA5LTE5IDEyOjA0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgQ29tcGlsZSBhbmQgbGluayB3aXRoICdnZXRvcHQuYycgZXhwbGljaXRseS4KICAgCiAgIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igc29tZSByZWFzb24KICAgKHRoYXQgY29tcGxldGVseSBlc2NhcGVzIG1lISksIHVzaW5nIGNvbW1hbmQtbGluZSBvcHRpb25zCiAgIChzdWNoIGFzIC1JUikgd2l0aCB0aGUgUmVsZWFzZSB2ZXJzaW9uIG9mIHNubXB0cmFuc2xhdGUKICAgY2F1c2VzIGEgcnVuLXRpbWUgRExMIGVycm9yLiAgKFRoZSBEZWJ1ZyB2ZXJzaW9uIGlzIGZpbmUpLgogICBUaGUgb3RoZXIgYXBwbGljYXRpb25zIHNlZW0gdG8gYmUgT0sgLSB0aGlzIHByb2JsZW0gb25seQogICBzZWVtcyB0byBoaXQgc25tcHRyYW5zbGF0ZS4gIFNvIGFzIGEgc3RpY2tpbmctcGxhc3RlciwKICAgY29tcGlsaWluZyBnZXRvcHQuYyBpbiBhcyBwYXJ0IG9mIHRoZSBwcm9qZWN0LCBrZWVwcyBib3RoCiAgIHZlcnNpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiBoYXBweS4KICAgICBTb21lb25lIHdpdGggYmV0dGVyIFdpbmRvd3Mga25vd2xlZGdlIHRoYW4gbWUgbmVlZHMgdG8KICAgbG9vayBhdCB0aGlzIGFuZCBmaXggaXQgcHJvcGVybHkuCiAgIAoyMDAyLTA5LTE5IDA2OjE0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHVuZG8gd29yc3Qgb2YgaW5kZW50IGRhbWFnZQogICAKMjAwMi0wOS0xOSAwNjowMyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgX2RwYXJzZSBmdW5jdGlvbnMgKHdoaWNoIGRvbid0IGV4aXN0KQogICAKMjAwMi0wOS0xOCAxMDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVzZXQgU05NUF9TTEVFUCBhZnRlciBsb29wCiAgIAoyMDAyLTA5LTE4IDEwOjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSByZW1vdmUgdmVyeSBvYnNvbGV0ZSAoYW5kIG5vdCB1c2VkIGFueXdoZXJlKSAjZGVmaW5pdGlvbnMgb2YKICAgICAgIFBBUlRZX01JQl9CQVNFIGFuZCBDT05URVhUX01JQl9CQVNFCiAgIAoyMDAyLTA5LTE4IDAyOjU5ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdHdlYWsgZm9yIDUuMC40IGxhc3QgbWludXRlIHVwZGF0ZQogICAKMjAwMi0wOS0xOCAwMjo0OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGNoZyA+IHRvIC1ndCB0byBhY2hpZXZlIGludGVuZGVkIHJlc3VsdAogICAKMjAwMi0wOS0xOCAwMTozOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE4IDAxOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40ICkKICAgCjIwMDItMDktMTggMDE6MzIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE4IDAwOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgJChzcmNkaXIpIHRvIGEgZmV3IGRlcGVuZGVuY2llcyB0byB0cnkgYW5kIHJlZHVjZSB0aGUgIyBvZiB0aW1lcyB0aGF0CiAgIGNvbmZpZy5zdGF0dXMgaXMgcnVuIHdoZW4gYnVpbGRpbmcgb3V0c2lkZSB0aGUgc3JjIGRpcgogICAKMjAwMi0wOS0xOCAwMDo1NCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIHZpc3VhbGx5IHByb3ZvY2F0aXZlIHNlY3Rpb24gaGVhZGVyczsgYWRkIHJlY2VudCBzdGF0dXMgKGFsbCBiYWQgbmV3cyk7CiAgIG5vdCB0byB1c2UgbmV3IHdpbjMyc2RrLmRzdyB0byBnZXQgYWRkaXRvbmFsIGZ1bmN0aW9uYWxpdHkgd2l0aCBwbGF0Zm9ybSBzZGs7CiAgIHJlbW92ZSBpbmZvIG9uIHJlbW92aW5nIGFnZW50eCwgYXMgaXQncyBiZWVuIGFyb3VuZCBub3cgZm9yIGEgd2hpbGU7IGFkZAogICBzZWN0aW9uIG9uIHdoYXQgZmlsZXMgdG8gZWRpdCB0byBhZGQgbWliMmMgZ2VuZXJhdGVkIGNvZGUgdG8gYWdlbnQ7IHJlbW92ZQogICByZWZlcmVuY2UgdG8gc3BlY2lmaWMgcmVsZWFzZSBudW1iZXIgaW4gZXhhbXBsZQogICAKMjAwMi0wOS0xOCAwMDoyNSAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIHRha2UgJ3Nkaycgb3V0IG9mIGV4ZSBuYW1lCiAgIAoyMDAyLTA5LTE4IDAwOjI1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc3dhcCBzbm1wZHNkayBmb3Igc25tcGQKICAgCjIwMDItMDktMTggMDA6MTQgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZ2V0IGFsbCBvdXIgZHVja3MgaW4gYSByb3c6IGFkZCBhZHZhcGkzMi5saWIgdG8gbGluayBsaW5lcywgbWFrZSBzdXJlIGFsbAogICBSZWxlYXNlIGFuZCBEZWJ1ZyBsaWJzL2FwcHMgYXJlIGNvbXBpbGUgd2l0aCBzYW1lIEMrKyBzZXR0aW5ncwogICAKMjAwMi0wOS0xOCAwMDoxMiAgcnN0b3J5CgogICAqIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIHJlbW92ZSBzZGsgZGVwZW5kZW50IG1vZHVsZXMKICAgCjIwMDItMDktMTggMDA6MTAgIHJzdG9yeQoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBncm91cCBtb2R1bGVzIHRoYXQgZGVwZW5kIG9uIHdpbjMyIHNkayB0b2dldGhlciwgd2l0aCBpZmRlZgogICAKMjAwMi0wOS0xOCAwMDowOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgbm8gY2FsbGJhY2sgZm9yIHdpbjMyIHVudGlsIHBpcGUgZmQgcHJvYmxlbSBpcyBmaXhlZAogICAKMjAwMi0wOS0xOCAwMDowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBuZXcgdmVyc2lvbnMgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xOCAwMDowNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIG5ldyB3b3Jrc3BhY2UgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaWIgbW9kdWxlIGxvYWRpbmcgZml4ZXMgYnkgY2FsbGluZyBpbml0X3NubXAgZmlyc3QKICAgCjIwMDItMDktMTMgMTU6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgZXhhbXBsZSBuc2ItY29uZmlnIGNvbW1hbmQ7IGFkZCAtYiBiYWNrIHRvIGN2czJjbCwgb3RoZXJ3aXNlIHlvdQogICBnZXQgY2hhbmdlbG9nIG1zZ3MgZnJvbSBvdGhlciBicmFuY2hlcyBhbmQgaGF2ZSB0byB3ZWVkIHRoZW0gb3V0CiAgIAoyMDAyLTA5LTEzIDEyOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgZml4IGlsbGVnYWwgb2lkcyB0byBub3QgcmV0dXJuIGEgcG9pbnRlci4KICAgCjIwMDItMDktMTMgMTA6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gbWlub3Igb3B0aW1pc2F0aW9uOyB3ZSBkb24ndCBuZWVkIGEgemVyby10ZXJtaW5hdGVkIGNvbW11bml0eQogICAgICAgc3RyaW5nIGV4Y2VwdCBmb3IgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDItMDktMTMgMTA6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkZWQgLWkgb3B0aW9uIHRvIHJlcXVlc3QgaW5kZW50IG5vdCBiZSBydW4KICAgCjIwMDItMDktMTMgMTA6MDYgIGpicG4KCiAgICogQ09QWUlORzoKCiAgICAgLSBhZGQgbWlzc2luZyB2ZXJiIGluIGludHJvZHVjdGlvbgogICAKMjAwMi0wOS0xMiAxNTo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwcm90ZWN0IGNhbGxpbmcgc29tZSBTdklWIGRlcmVmZXJlbmNlIGZ1bmN0aW9ucyBpZiBpdCdzIG5vdCBhbiBJVi4KICAgICAtIGVsaW1pbmF0ZXMgdGhlIHJlbWFpbmluZyBwZXJsIHdhcm5pbmdzLgogICAKMjAwMi0wOS0xMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW5jbHVkZSBsZGZsYWdzIHdoZXJlIGFwcHJvcHJpYXRlICgtLWxpYnMsIC0tYWdlbnQtbGlicywgLi4uKQogICAKMjAwMi0wOS0xMiAwMTo0OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBhZGQvdXNlIG5ldyBvcHRpb24gdG8gcmVtb3ZlIGJ1aWxkIGRpciBhZnRlciBzdWNjZXNzZnVsIGJ1aWxkCiAgIAoyMDAyLTA5LTEyIDAxOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcHJpbnQgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEyIDAxOjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbXVjaCBtb3JlIGNvbXBsZXggdGVzdHMgb2YgVVNNIHVzZXIgY3JlYXRpb24vbW9kaWZpY2F0aW9uLgogICAKMjAwMi0wOS0xMiAwMTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMDFzbm1wdjFnZXQsCiAgIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LCB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwKICAgdGVzdHMvVDAwNHNubXB2MW5vc3VjaDoKCiAgIC0gc3VwcG9ydCBmb3IgbXVsdGlwbGUgdGVzdHMgYXQgb25jZS4KICAgLSBtZXJnZSB2MSB0ZXN0cyBpbnRvIGEgc2luZ2xlIChmYXN0ZXIpIHRlc3QuCiAgIAoyMDAyLTA5LTEyIDAwOjM0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgbW9ua2V5IGFyb3VuZCB3aXRoIHJldHVybmluZyBlcnJvciBjb2RlcywganVzdCBleGl0OyBtb3JlIHJlZ2V4cCB0d2Vha3MKICAgCjIwMDItMDktMTEgMTk6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gdXNlIHN1Yi1zZWNvbmQgc2xlZXBzIGlmIGF2YWlsYWJsZQogICAtIHNsZWVwIDEgKHN1Yi0pc2Vjb25kIGF0IGEgdGltZSB3aGVuIHdhaXRpbmcgZm9yIHBhcnRpY3VsYXIgdGVzdHMKICAgICByYXRoZXIgdGhhbiB0aGUgZnVsbCBTTk1QX1NMRUVQIGR1cmF0aW9uLgogICAKMjAwMi0wOS0xMSAxOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHVzZSBzbm1wX2xvZyBpbnN0ZWFkIG9mIHByaW50ZiBmb3Igc2h1dGRvd24gbWVzc2FnZS4KICAgCjIwMDItMDktMTEgMTg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc3NpbmcgdmFyaWFibGUgZGVjbCBwb2ludGVkIG91dCBieSBpcmM6ZGYKICAgCjIwMDItMDktMTAgMTY6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHBzICYgZXJyb3IgbWVzc2FnZXMKICAgCjIwMDItMDktMTAgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb21waWxlciB3YXJuaW5ncyBhcmUgeW91ciBmcmllbmQhOyBmaXggZW1iZWRlZCBjb21tZW50czsgZml4IG5vbi12b2lkCiAgIGZ1bmN0aW9ucyB3L25vIHJ0biB2YWx1ZXM7IGNvZGUgcmVvcmcgdG8gZml4IGVtYWNzIGluZGVudCBjb21wbGFpbnRzCiAgIAoyMDAyLTA5LTEwIDE1OjI2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyB0YXJnZXRzIHRvIGhlbHAgbmlnaHRseSBidWlsZCBzY3JpcHQgZGV0ZXJtaW5lCiAgIGlmIGEgbWFrZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiAgIAoyMDAyLTA5LTEwIDE1OjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWtzIGZvciBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHM7IGFkIG5zYi1hYm9ydCwgbnNiLWZsb3c7CiAgIGRpcmVjdCBzb21lIG1lc3NhZ2VzIHRvIHN0ZGVycjsgdXNlIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIG1ha2UgdGFyZ2V0czsKICAgdXBkYXRlIGVycm9yIGdyZXAgdG8gaW5jbHVkZSAnKioqJzsgY2hlY2sgZm9yIG5ldyB2YWx1ZSB0byBybSAtZlIgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEwIDE1OjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkcwogICAKMjAwMi0wOS0xMCAxNTowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBhZGQgb3B0aW9uIHRvIHJtIC1mUiBidWlsZCBkaXIgYXQgc3RhcnQ7IGNoZWNrIHNjcmlwIHBhdGggZm9yIG5zYi1mdW5jdGlvbnM7CiAgIHByZWZpeCBkZWZhdWx0IGJ1aWxkIGRpciB3L3ZlcnNpb247IGV4aXQgdy9yYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOS0xMCAxNTowNSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItcGxhdGZvcm06CgogICBhZGQgY3VycmVudCBwYXRoIHRvIHNjcmlwdCB0byBuc2ItZnVuY3Rpb24gc2VhcmNoIHBhdGgKICAgCjIwMDItMDktMDkgMDk6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgSmFyZWQgU21pdGgtTWlja2Vsc29uIChidWcgIzYwNTE0NykKICAgICAgIHdoZXJlYnkgcGFzc2luZyBhbiB1bmtub3duIHR5cGUgY2hhcmFjdGVyIHRvIHNubXBfYWRkX3ZhciB3b3VsZAogICAgICAgY2F1c2UgYSBzZWdmYXVsdC4KICAgCjIwMDItMDktMDkgMDk6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciB2YWx1ZSBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAyLTA5LTA5IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEN1cnJlbnQgaGVhZGVyIHVwZGF0ZSBwYXRjaCBmb3IgbmV0YnNkIGZyb20gUGF0cmljayBXZWxjaGUuCiAgIAoyMDAyLTA5LTA2IDE4OjMwICBkcmllaHVpcwoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBNYXJrIHRoZSBub24tcmF3IHZhcmlhbnRzIG9mIG9iamVjdHMgdGhhdCBhcmUgYWNjZXNzYWJsZSBhcyByYXcgY291bnRlcnMKICAgYXMgZGVwcmVjYXRlZCwgdG8gKGhvcGVmdWxseSEpIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2YgdXNlcnMgdGhhdCBnZXQKICAgYml0dGVuIGJ5IGl0Li4KICAgCjIwMDItMDktMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgYWRkZWQgQnJ1Y2UncyBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggcGVybGNsZWFuCiAgIAoyMDAyLTA5LTA0IDE0OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IHByb2Nlc3MgZ3JvdXBpbmcgYnkgY2FsbGluZyBzZXRzaWQoKSAocmVwb3J0ZWQgYnkgaXJjOlRyb2dMKQogICAKMjAwMi0wOS0wNCAxNDowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc2V0c2lkKCkuCiAgIAoyMDAyLTA5LTAzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYXNlcyB3aGVyZSB0aGVyZSBlaXRoZXIgYXJlIG5vIHRhYmxlcyBvciBubyBzY2FsYXJzLgogICAKMjAwMi0wOS0wMyAxMzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBkb24ndCB1c2UgTlVMTCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA5LTAyIDIyOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTIgKQogICAKMjAwMi0wOS0wMiAyMjozMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUyCiAgIAoyMDAyLTA5LTAyIDIyOjIyICByc3RvcnkKCiAgICogbWFuL25ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlZCBkb2NzCiAgIAoyMDAyLTA5LTAyIDIyOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA5LTAyIDIyOjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgdHJ5IGFuZCBndWVzcyBhdCBzcmMgZGlyIGlmIG5vdCBzcGVjaWZpZWQKICAgCjIwMDItMDktMDIgMjI6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIG5vdGUgYWJvdXQgZXJyIHdoZW4gYnVpbGRpbmcgaW4gYW5kIG91dCBvZiBzb3VyY2UgdHJlZQogICAKMjAwMi0wOS0wMiAyMTo1NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZnVsbCBwYXRoIHRvIHZlcnNpb250YWcsIGluIGNhc2Ugd2UgYXJlIGJ1aWxkaW50IG91dHNpZGUgb2Ygc3JjIGRpcmVjdG9yeQogICAKMjAwMi0wOS0wMiAyMTozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBmb3JjZWQgcHJvbXB0IG9uIGVycm9ycwogICAKMjAwMi0wOS0wMiAyMTozNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHdhcm5pbmdzIHdoZW4gVkVSU0lPTiBpcyByZXF1aXJlZDsgYWRkIHRhcmNsZWFuIHRhcmdldDsgYWRkIHRhcmNsZWFuIHRvCiAgIGRpc3RjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMjE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIG1zZyBvbiBlcnJvcjsgYWRkIGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAyMDoyNyAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgd2luMzIgJiBBZ2VudFggc3RhdHVzCiAgIAoyMDAyLTA5LTAyIDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGZpeCB0byBhdm9pZCBsb2NraW5nIHVwIHRoZSBhZ2VudCB3aGVuIGEgc3VnYWdlbnQgZGllcyBkdXJpbmcgYSBzZXQgcmVxdWVzdC4gV2UKICAgbXVzdCBjbGVhbiB1cCB0aGUgZGVsZWdhdGVkIHJlcXVlc3RzIHdoZW4gdGhlIHNlc3Npb24ocykgYXJlIGNsb3NlZCwgc28gdGhhdAogICB0aGV5IHdpbGwgYmUgcHJvY2Vzc2VkIGFuZCByZW1vdmVkLCBhbGxvd2luZyBmdXJ0aGVyIHJlcXVlc3RzIHRvIGJlIHByb2Nlc3NlZC4KICAgCjIwMDItMDktMDEgMTM6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGNoYW5nZSByZXN1bHQgdHlwZSBiYWNrIHRvIGludCwgYXMgaXQgbWF5IHJlY2VpdmUgYSBuZWdhdGl2ZSB2YWx1ZQogICAKICAgUExFQVNFIGNoZWNrIHRoZSB1c2Ugb2YgYSB2YXJpYWJsZSBiZWZvcmUgY2hhbmdpbmcgaXMgc2lnbmVkbmVzcywgZXNwZWNpYWxseQogICBhcmVvdW5kIHJlbGVhc2UgdGltZSEKICAgCjIwMDItMDgtMzAgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgaW5jbHVkZSBjaGVja192YXJiaW5kLmgKICAgCjIwMDItMDgtMzAgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBjaGFuZ2UgTk9TVUNITkFNRSB0byBOT1NVQ0hJTlNUQU5DRSBhZ2FpbiwgYXMgaXQgc2VlbXMgdGhlIGFnZW50WCBmaXggYWxzbwogICBjb3JyZWN0bHkgZGVhbHMgd2l0aCB0aGlzIGVycm9yIGNvZGUKICAgCjIwMDItMDgtMzAgMDk6MTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSBkZWxldGUgc3Vuc2l0ZS5jbmxhYi1zd2l0Y2guY2ggbWlycm9yLCBhcyBpdCBpc24ndCBvbmUgYW55bW9yZS4KICAgCjIwMDItMDgtMjkgMTM6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgbW9kdWxlcyBiZWZvcmUgY29uZmlndXJpbmcgdGhlbQogICAKMjAwMi0wOC0yOSAxMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IHRoZSBsYXN0IEFFUyBidWcgSSBrbm93IG9mLiAgQUVTMTI4IHdvcmtzIGdyZWF0LgogICAgIEkgc3RpbGwgTmVlZCB0byBmaXggMTkyLzI1NiBmb3IgbG9uZ2VyIGtleSBnZW5lcmF0aW9uIGZyb20gTUQ1L1NIQQogICAKMjAwMi0wOC0yOSAxMDo1MiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIHVzZSB0aGUgcmlnaHQgcGVybCBtb2R1bGUgbmFtZSBpbiB0aGUgdXNlIGxpbmUuCiAgIAoyMDAyLTA4LTI5IDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgd2luMzIvY29uZmlnLmg6CgogICBNb3JlIFdpbjMyLXJlbGF0ZWQgdGlkeWluZyB1cC4KICAgVGhlIGFnZW50IG5vdyBjb21waWxlcyB3aXRoIHJlbGF0aXZlbHkgZmV3IHdhcm5pbmdzLgogICAKMjAwMi0wOC0yOSAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIERlY2xhcmUgbmV3IHJvdXRpbmUgJ25ldHNubXBfb2lkX2VxdWFscycsIGFuZCBhc3NvcnRlZCBXaW4zMiBjbGVhbnVwIGZpeGVzLgogICAKMjAwMi0wOC0yOCAxNDoxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjbGFyaWZ5IGN2czJjbCBzY3JpcHQgbmFtZTsgcmVtb3ZlIC1iIGZsYWcgZnJvbSBjdnMyY2wgcGVyIERhdmU7IGEgbGl0dGxlCiAgIHJlb3JnYW5pemF0aW9uOyBwdXQgY29tbWFuZHMgb24gc2VwYXJhdGUgbGluZXMgcHJlZml4ZWQgd2l0aCAkOyBub3RlIDUueC80LngKICAgZGlmZmVyZW5jZXMgcGVyIERhdmUncyBlbWFpbDsgcGx1ZyBteSBuZXcgc2NyaXB0cyB3aGVyZSBhcHByb3ByaWF0ZQogICAKMjAwMi0wOC0yNyAxNDo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgVVJMIGZvciBjdnMyY2w7IHVwZGF0ZSBjdnMyY2wgY21kcyB0byBjdnMyY2wucGwsIHNpbmNlIHRoYXQncyB0aGUgZmlsZQogICB0aGF0J3MgYWN0dWFsbHkgZGlzdHJpYnV0ZWQKICAgCjIwMDItMDgtMjcgMDA6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTEgKQogICAKMjAwMi0wOC0yNyAwMDoyNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kICg1LjYpLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAoNS41KSwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICg1LjYpLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAoNS41KSwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgKDUuNSksIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCiAgICg1LjUpOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjcgMDA6MTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMgKDUuMyksIG5ldHNubXBfYnVsa190b19uZXh0LjMgKDUuMyksCiAgIG5ldHNubXBfZGVidWcuMyAoNS4zKSwgbmV0c25tcF9oYW5kbGVyLjMgKDUuMyksIG5ldHNubXBfaW5zdGFuY2UuMwogICAoNS4zKSwgbmV0c25tcF9tdWx0aXBsZXhlci4zICg1LjMpLCBuZXRzbm1wX29sZF9hcGkuMyAoNS4zKSwKICAgbmV0c25tcF9yZWFkX29ubHkuMyAoNS4zKSwgbmV0c25tcF9zY2FsYXIuMyAoNS4yKSwKICAgbmV0c25tcF9zZXJpYWxpemUuMyAoNS4zKSwgbmV0c25tcF90YWJsZS4zICg1LjMpLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMgKDUuMyksIG5ldHNubXBfdGFibGVfZGF0YS4zICg1LjMpLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMyAoNS4zKSwgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zICg1LjMpLAogICBuZXRzbm1wX3RvZG8uMyAoNS4zKSwgbmV0c25tcF93YXRjaGVyLjMgKDUuMik6CgogICB1cGRhdGUgbWFuIHBhZ2VzIGZvciA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnICgxLjEpOgoKICAgbmV3IGZpbGUgdG8gY29uZmlndXJlIHVzaW5nIHNhbWUgb3B0aW9ucyBhcyBuc2ItcGFja2FnZSBmb3IgdGVzdCBvciBkaXN0CiAgIAoyMDAyLTA4LTI3IDAwOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZSAoMS4zKToKCiAgIGRvbid0IGFwcGVuZCBzeXMtbmFtZSB3aGVuIGJ1aWxkaW5nIGluIHNyYyB0cmVlCiAgIAoyMDAyLTA4LTI3IDAwOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE5KToKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA4LTI3IDAwOjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE4KToKCiAgIHJlbmFtZSBuc2ItZ2V0LWNvbmZnIC0+IG5zYi1jb25maWctZGlzdDsgdXNlIGRvdWJsZSBxdW90ZXMgY3V6IG9mIHNvbWUKICAgd2llcmQgc2hlbGwgdGhpbmcgSSBkb24ndCB5ZXQgdW5kZXJzdGFuZDsgY2hlY2sgZm9yIHNyYyBkaXIgaW4gY29uZmlnKgogICAKMjAwMi0wOC0yNiAyMzozNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluICg1LjEyKToKCiAgIHR3ZWFrIGNvbW1lbnRjaGVjayB0YXJnZXQgdG8gd29yayBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAyMzozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAoNS4zKSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAoNS4xKSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCAoNS4yKSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICg1LjEpLCBzbm1wbGliL3dpbnNlcnZpY2UuYwogICAoNS4xKToKCiAgIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMgKGFuZCBhbnl0aGluZyB0aGF0IGV2ZW4gcmVtb3RlbHkgcmVzZW1ibGVzIG9uZSkKICAgCjIwMDItMDgtMjYgMTc6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTcpOgoKICAgcGFzcyBtYWtlIHBhcmFtcyB0byBtYWtlLCBzbyB3ZSBkb24ndCB0cnkgdG8gaW5zdGFsbCBpbiAvdXNyL2xvY2FsL2JpbiBvZgogICB0aGUgY29tcGlsZSBzZXJ2ZXJzLi4uIDotLwogICAKMjAwMi0wOC0yNiAxNzozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNik6CgogICBtYWtlIGRpc3QgJiBleHRyYSB0cmFuc3BvcnRzOyBubyBpcHY2IG9uIERhcndpbjsgbWFrZSB0b3VjaGl0IGJlZm9yZSBtYWtlCiAgIAoyMDAyLTA4LTI2IDE3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICg1LjQpOgoKICAgcmVwbGFjZSB1X2ludDMyX3QsIHdoaWNoIGRvZXNuJ3QgY29tcGlsZSBvbiBTdW4gNS44LCB3aXRoIHVfaW50CiAgIAoyMDAyLTA4LTI2IDE2OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMgKDUuMik6CgogICBmaXggdW5kZWNsYXJlZCB2YXJpYWJsZSBlcnJvciBzcG90dGVkIG9uIFN1biwgd2hpY2ggbGludXggbWlzc2VkIGNvbXBsZXRlbHkuCiAgIEkgaGF2ZSBubyBpZGVhIGhvdyB0aGlzIGNvbXBpbGVkIGJlZm9yZSEhCiAgIAoyMDAyLTA4LTI2IDE2OjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE1KToKCiAgIGNsZWFuZXIgd2F5IHRvIGFkZCBzeXN0ZW0gc3BlY2lmaWMgbW9kdWxlczsgZGlzYWJsZSBwZXJsLCBhcyBpdCBicmVha3MKICAgYnVpbGRzIG91dHNpZGUgb2YgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDE1OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE0KToKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eAogICAKMjAwMi0wOC0yNiAxNTo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xMyk6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXg7IGJhaWwgb24gY29uZmlndXJlIGVycm9ycwogICAKMjAwMi0wOC0yNiAxNTowNCAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHMgKDEuNCk6CgogICBhZGQgc3VnZ2VzdGlvbiB0byBzeW1saW5rIG5zYi0qIGluIGxvY2FsIGJpbiBkaXIKICAgCjIwMDItMDgtMjYgMTU6MDMgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLXBhY2thZ2UgKDEuMiksIG5zYi1mdW5jdGlvbnMgKDEuMTIpOgoKICAgYWRkIG9wdGlvbiBmb3IgcHJlLXJlbGVhc2UgdGVzdCBjb25maWd1cmUgb3B0aW9ucwogICAKMjAwMi0wOC0yNiAxNTowMiAgcnN0b3J5CgogICAqIFJFQURNRS5zbm1wdjMgKDUuMyk6CgogICBtYWtlIHNlY3Rpb24gaGVhZGVycyBzdGFuZCBvdXQgbW9yZTsgbW92ZSBub3RlIGFib3V0IGVuY3J5cHRpb24gbm90IGJlaW5nCiAgIGVuYWJsZWQgdG8gYSBtb3JlIHByb21pbmVudCBwbGFjZS4KICAgCjIwMDItMDgtMjQgMjE6MjQgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMKICAgKFY0LTItcGF0Y2hlcy5bMzcsM10pOgoKICAgTWVyZ2UgZnJvbSBIRUFEOiBkZXRlY3QgdGhlIHJlcXVpcmVtZW50IGZvciBsaW5raW5nIHdpdGggLWxkZXZzdGF0LgogICBVZ2x5IGhhY2sgdG8gbWFrZSBzdXJlIGRpc2tpbyBkZXZpY2UgbmFtZXMgaW5jbHVkZSB0aGUgZGV2aWNlIG51bWJlci4KICAgCjIwMDItMDgtMjMgMTE6NDYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4gKFY0LTItcGF0Y2hlcy4zKToKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTIyIDA4OjMxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAoNS4yKToKCiAgICAgLSBET05UX1VTRV9OTElTVCByZWluc3RhdGVkLCBzbyBOT19LTUVNX1VTQUdFIHJlZHVuZGFudAogICAKMjAwMi0wOC0yMiAwODoyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oICg1LjkpLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICg1LjEwKToKCiAgICAgLSByZWluc3RhdGUgdGVzdCBmb3IgRE9OVF9VU0VfTkxJU1QKICAgCjIwMDItMDgtMjIgMDc6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYyAoNS4xMCk6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwNzowNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jIChWNC0yLXBhdGNoZXMuMjQpOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDQ6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKDUuMik6CgogICBBZGQgdGhlIG1pc3NpbmcgJy14L1gnIG9wdGlvbnMgdG8gdGhlIGV4YW1wbGUgYXV0aFByaXYgY29tbWFuZCBsaW5lCiAgICAgKHJlcG9ydGVkIGJ5IFByYXNhZGEgUiBWYW5rYXlhbGFwYXRpKQogICAKMjAwMi0wOC0yMCAxMTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuNiksIGFwcHMvc25tcHRyYXBkLmMgKDUuNCksCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAoNS4zKSwgRkFRICg1LjE3KToKCiAgIHF1aWV0IHNubXB0cmFwZCB3aGVuIGl0IGNhbid0IGNvbm5lY3QgdG8gdGhlIGFnZW50eCBtYXN0ZXIuCiAgIAoyMDAyLTA4LTIwIDA4OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAoNS4xKToKCiAgICAgLSBhZGQgI2RlZmluZSBOT19LTUVNX1VTQUdFIDEgc2luY2UgbmV0LXNubXAtY29uZmlnLmguaW4gbm8gbG9uZ2VyCiAgICAgICBwYXlzIGF0dGVudGlvbiB0byB0aGUgRE9OVF9VU0VfTkxJU1QgdG9rZW4uICBPbWlzc2lvbiBvZiB0aGlzCiAgICAgICBjYXVzZXMgdGhlIGFnZW50IHRvIGV4aXQgd2l0aCB0aGUgbWVzc2FnZSAiaW5pdF9rbWVtOiBrdm1fb3BlbgogICAgICAgZmFpbGVkOiBlcnJvciAwIi4KICAgCiAgICAgICBOT1RFOiB0aGlzIG1heSBuZWVkIGFwcGx5aW5nIHRvIG90aGVyIG1lbWJlcnMgb2YgdGhlIFNvbGFyaXMgMgogICAgICAgZmFtaWx5LCBidXQgSSBkb24ndCBoYXZlIG1hY2hpbmVzIHRvIGhhbmQgdG8gdGVzdCB0aGlzLgogICAKMjAwMi0wOC0yMCAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgKDUuMik6CgogICAgIC0gZGV0ZWN0IGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlcyAoZ2VOKQogICAgIC0gdW5kbyBpbmRlbnQgbWF5aGVtCiAgIAoyMDAyLTA4LTIwIDA1OjU3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggKDUuMSk6CgogICAgIC0gZm9yIG5vdywgZG9uJ3QgI2luY2x1ZGUgc25tcF9sb2NraW5nLmggc2luY2UgaXQgYnJlYWtzIHJlLWVudHJhbnQKICAgICAgIHN1cHBvcnQgKGJlY2F1c2UgbXV0ZXhfdHlwZSBnZXRzIG11bHRpcGx5LWRlZmluZWQpLiAgRnVydGhlcm1vcmUsIHRoZQogICAgICAgZnVuY3Rpb25zIGl0IGRlY2xhcmVzIGFyZSBuZXZlciB1c2VkIGFueXdoZXJlLCBub3IgZGVmaW5lZCBhbnl3aGVyZS4KICAgCjIwMDItMDgtMjAgMDU6NTYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCAoNS4xKToKCiAgICAgLSBkb24ndCBkZWZpbmUgImRvIG5vdGhpbmciIG1hY3JvcyBmb3Igc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zCiAgICAgICBvbiBXaW4zMiBwbGF0Zm9ybSAoc2luY2UgcmVhbCAiZG8gbm90aGluZyIgZnVuY3Rpb25zIGFyZSByZXF1aXJlZCBmb3IKICAgICAgIHJlYXNvbnMgYmVzdCBrbm93biB0byBzb21lb25lIGVsc2UpLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwNTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmggKDUuMSk6CgogICAgIC0gZml4IGhpZ2hseSBib2d1cyBub24tQyBzeW50YXgKICAgCjIwMDItMDgtMjAgMDU6NTMgIGpicG4KCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmMgKDUuMSk6CgogICAgIC0gc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zIG5vIGxvbmdlciAjZGVmaW5lZCB0byAiZG8gbm90aGluZyIKICAgICAgIHRhcmdldHMgZm9yIFdpbjMyIGluIG10X3N1cHBvcnQuaCwgdGhlcmVmb3JlIG5vIG5lZWQgdG8gI3VuZGVmIHRoZW0KICAgICAgIGhlcmUuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDAxOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggKDUuMik6CgogICBoZWFkZXJzIGZvciBjYWNoZSBlbmFibGluZyBmdW5jdGlvbnMuCiAgIAoyMDAyLTA4LTIwIDAxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgKDUuMyk6CgogICBkb24ndCB1c2Ugbm9uLWV4aXN0ZW50IG1lbW9yeSBwb2ludGVycyB0byB0aGUgcmVzcG9uc2UgZGF0YSAoZWc6ICJ0aW1lb3V0IikKICAgCjIwMDItMDgtMTkgMTc6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggKDUuMSk6CgogICBDaGFuZ2UgYSBmZXcgY29uZGl0aW9uYWxzIHRvIHVzZSAjaWYgaW4gcGxhY2Ugb2YgI2lmZGVmCiAgIAoyMDAyLTA4LTE5IDE3OjI4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jICg1LjE3KSwgcGFyc2UuYyAoNS40KToKCiAgIEFsaWduIHdpdGggNC4yIGJyYW5jaAogICAKMjAwMi0wOC0xOSAxNzoyNiAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCAoNS4xKSwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgKDUuMSksIElBTkFpZlR5cGUtTUlCLnR4dAogICAoNS4xKSwgSU5FVC1BRERSRVNTLU1JQi50eHQgKDUuMSksIE1ha2VmaWxlLm1pYiAoNS4yKSwgaWFuYWxpc3QKICAgKDUuMSksIG1pYmZldGNoICg1LjEpLCByZmNsaXN0ICg1LjEpOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCcwogICAKMjAwMi0wOC0xOSAxNzoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICg1LjcpOgoKICAgQmFpbCBvdXQgZm9yIGJhZCBzbm1wQWRtaW5TdHJpbmcgdmFsdWUKICAgCjIwMDItMDgtMTkgMTA6NDMgIGpicG4KCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTMpLCBGQVEgKDUuMTYpOgoKICAgICAtIGRvbid0IHVzZSBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgaW4gZXhhbXBsZXMKICAgICAtIGJyZWFrIGEgY291cGxlIG9mIG92ZXItbG9uZyBsaW5lcwogICAgIC0gbWVudGlvbiBuZXRzbm1wXyB2YXJpYW50IG9mIGRzX3NldF8gZnVuY3Rpb24KICAgCjIwMDItMDgtMTkgMDU6NDQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUyKSwgRkFRICg1LjE1KToKCiAgIEFkZCBhbiBlbnRyeSBhYm91dCB0aGUgc25tcHRyYXBkL0FnZW50WCB3YXJuaW5nIG1lc3NhZ2UuCiAgIAoyMDAyLTA4LTE4IDIxOjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjExKToKCiAgIGRvbid0IGNvbmZpZ3VyZSB3aXRoIGJ1aWxkIGluc3RhbGwgZGlyLCBpdCBpcyBhbHJlYWR5IHNwZWNpZmllZCBvbiBjbWQgbGluZQogICBmb3IgbWFrZSBpbnN0YWxsCiAgIAoyMDAyLTA4LTE4IDEzOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jICg1LjcpOgoKICAgbW9yZSBkZWJ1Z2dpbmcgLSBsb2cgdmFsdWUgcmVxdWVzdCBpcyB0cnlpbmcgdG8gc2V0CiAgIAoyMDAyLTA4LTE2IDE4OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKDUuOSk6CgogICBhZGRlZCBCcnVjZSBTaGF3IHRvIHRoZSB0aGFua3MgbGlzdAogICAKMjAwMi0wOC0xNiAxODoxMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXMgKDEuMik6CgogICBBIGdyZWF0IHVwZGF0ZSB0YWxraW5nIGFib3V0IHBlcmwgYW5kIHNvbGFyaXMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAyLTA4LTE2IDA0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgKDUuNCk6CgogICBDYXRjaCBleHBsaWNpdGx5ICdub1N1Y2hJbnN0YW5jZScgZXhjZXB0aW9ucywgd2hlbiB3YWxraW5nIGFuCiAgIGl0ZXJhdG9yLWhhbmRsZWQgbW9kdWxlLCBzbyB0aGF0IGhvbGVzIGNhbiBiZSBza2lwcGVkIGFuZCB0aGUKICAgbmV4dCByZWFsIGluc3RhbmNlIHJldHJpZXZlZC4gIChUaGlzIHdhcyBhbHJlYWR5IGhhbmRsZWQgZm9yCiAgIG1vZHVsZXMgdGhhdCBkaWRuJ3QgbWFyayBtaXNzaW5nIGluc3RhbmNlcyBleHBsaWNpdGx5KS4KICAgCjIwMDItMDgtMTYgMDM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMyk6CgogICB0dXJuIG9mZiBjYWNoaW5nIGJ5IGRlZmF1bHQsIHNpbmNlIHRoZSBhZ2VudHggY29kZSBhcHBlYXJzIGJyb2tlbi4KICAgCjIwMDItMDgtMTYgMDM6MDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoNS41KSwgc25tcF9hZ2VudC5jICg1LjEyKToKCiAgIHNwZWVkIGVuaGFuY2VtZW50cyB2aWEgaW1wbGVtZW50aW5nIGEgcmVnaXN0cmF0aW9uIHN1YnRyZWUgbG9va3VwCiAgIGNhY2hlLiAgZ3JlYXRseSBzcGVlZHMgdGhpbmdzIHVwIHdoZW4gc2ltaWxhciByZXF1ZXN0cyBjb21lIGluCiAgIChzbm1wd2FsaywgLi4uKS4KICAgCjIwMDItMDgtMTUgMTM6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYyAoNS4zKToKCiAgIHByb3RlY3QgYWdhaW5zdCBOVUxMIGxhYmVscyBpbiBzdWJ0cmVlcwogICAKMjAwMi0wOC0xNSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYyAoNS4zKSwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAoNS40KSwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICg1LjEpLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAoNS4yKSwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAoNS4xKSwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAoNS4xKSwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICg1LjIpLCBzbm1wbGliL3NubXB1c20uYyAoNS4zKToKCiAgIHVzZSBuZXRzbm1wX29pZF9lcXVhbHMgKHdoaWNoIGlzIHNvbWV0aW1lcyBmYXN0ZXIgdGhhbgogICBzbm1wX29pZF9jb21wYXJlKSBpbiBhIGZldyBwbGFjZXMgdG8gYWNoaWV2ZSBiYXJlbHkgbm90aWNlYWJsZSBzcGVlZCBnYWlucy4KICAgCjIwMDItMDgtMTUgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYyAoNS4yKToKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgZXhpc3RzIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHN0cmNtcCgpCiAgIAoyMDAyLTA4LTE1IDExOjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwgKDUuNyk6CgogICBjaGFuZ2UgTUFOM1BPRFMgdG8gc29tZXRoaW5nIGNvbXBsaWFudCB3aXRoIHRoZSBwZXJsIG1hbnVhbHMuICBJIHRoaW5rLgogICAKMjAwMi0wOC0xNCAxMzo0MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jICg1LjIpOgoKICAgYWRkIGRlYnVnIGZvciBsb2NhbCBwYXJzaW5nIG9mIGFyZ3MKICAgCjIwMDItMDgtMTQgMTI6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAoNS41KSwgbWFzdGVyX2FkbWluLmMgKDUuNCksCiAgIHN1YmFnZW50LmMgKDUuNSk6CgogICBhZGQgbW9yZSBkZXRhaWxlZCBpbiBkZWJ1ZyBtZXNzYWdlczsgYWRkIGEgZmV3IG5ldyBkZWJ1Z3MKICAgCjIwMDItMDgtMTQgMTI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTEpOgoKICAgd2hlbiBhbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgZmluaXNoZWQsIGNoZWNrIGFsbCByZXF1ZXN0cyBzdGF0dXMgc28gdGhhdAogICBhc3Agc3RhdHVzIGlzIHNldCwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IGFnZW50eCBzZXQgcHJvY2Vzc2luZy4KICAgKG5vdyBpZiBJIGNhbiBqdXN0IGdldCBhbGwgdGhpcyBoYWlyIG9mZiB0aGUgZmxvb3IsIGFuZCBnbHVlIGl0IGJhY2sgdG8gbXkKICAgaGVhZCwgYW5kIHRoZW4gZml4IHRoYXQgZGVudCBpbiB0aGUgd2FsbCB3aGVyZSBJJ3ZlIGJlZW4gYmFuZ2luZyBteSBoZWFkLi4uLikKICAgCjIwMDItMDgtMTMgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYyAoNS4xNCk6CgogICBmaXggYSBsZW5ndGggY29tcGFyaXNvbiBwcm9ibGVtIHdpdGggbmV0c25tcF9vaWRfaXNfc3VidHJlZSgpCiAgIAoyMDAyLTA4LTEzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBORVdTICg1LjYpOgoKICAgZG9jdW1lbnQgYSBmZXcgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTA4LTEzIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgKDUuMSk6CgogICBGaXggb3BlbiBmaWxlIHJ1bmF3YXkgb24gc29sYXJpcy4gIFNlZSBidWcgIzU5MjgwNiByZXBvcnRlZCBieSBKYW1lcyBJcndpbi4KICAgCjIwMDItMDgtMTMgMTU6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmggKDUuNyk6CgogICBhcnJheSBvZiBwb2ludGVycyA9IHBvaW50ZXIgdG8gYSBwb2ludGVyCiAgIAoyMDAyLTA4LTA5IDE5OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTCAoNS4xKToKCiAgIG1pc2MgZG9jIGZpeGVzLgogICAKMjAwMi0wOC0wOSAxOTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAoNS40KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggKDUuMiksIHNubXBsaWIvc25tcHVzbS5jCiAgICg1LjIpLCBzbm1wbGliL3NubXB2My5jICg1LjMpOgoKICAgaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTk6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICg1LjIpLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKDUuMTMpOgoKICAgc2xpZ2h0IHNwZWVkIHVwcyBmb3Igc25tcF9vaWRfY29tcGFyZSgpIHRvIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgdGlsbCAhPQogICAKMjAwMi0wOC0wOSAxOToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jICg1LjIpOgoKICAgLSBvcGVuc3NsIDAuOS43IHN1cHBvcnQgZm9yIERFUyBjaGFuZ2VzLgogICAtIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE5OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMgKDUuMik6CgogICBpbmRlbnQgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE5OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzY2FwaS5oICg1LjEpLCBzbm1wdXNtLmggKDUuMSk6CgogICBkZWZpbmUgQUVTIGtleSBzcGVjaWZpY3MKICAgCjIwMDItMDgtMDkgMTk6MjYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggKDUuOCksIGNvbmZpZ3VyZSAoNS4xNyksIGNvbmZpZ3VyZS5pbiAoNS4xNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gKDUuOSk6CgogICAtIGNoZWNrIGZvciBvcGVuc3NsIC4wLjkuNyBERVMgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zLgogICAtIGNoZWNrIGZvciBBRVMgc3VwcG9ydCBpbiBvcGVuc3NsICg+IDAuOS43KQogICAKMjAwMi0wOC0wOSAxOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuNCk6CgogICBmaXggbW9kZSBwcm9jZXNzaW5nIGZvciBSRVNFUlZFMS9SRVNFUlZFMiB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAyLTA4LTA5IDE4OjI5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjEwKToKCiAgIGxvZyBtc2cgd2hlbiB3ZSBpZ25vcmUvZml4IGlsbGVnYWwgZXJyb3JfdmFsdWVzIGZvciB0aGUgY2xpZW50IEFQSXMKICAgCjIwMDItMDgtMDkgMTg6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYgKDUuMTIpOgoKICAgY29ycmVjdGlvbnMgdG8gZXhhbXBsZSBjb2RlCiAgIAoyMDAyLTA4LTA5IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jICg1LjYpOgoKICAgcmV2ZXJ0IGVycm9ycyB0byB1bmluZm9ybWF0aXZlIFNOTVB2MSBub1N1Y2hOYW1lIGZvciBBZ2VudFggZ2V0LW5leHQvaW5jbHVzaXZlCiAgIHByb2Nlc3Npbmc7IGFsc28gYWRkIG1vcmUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUKICAgCjIwMDItMDgtMDkgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgKDUuNCk6CgogICBkZWJ1ZyBtc2cgZm9yIGFnZW50eCBvaWQgZm9yIGNhc2VzIG90aGVyIHRoYW4gZ2V0L2dldG5leHQKICAgCjIwMDItMDgtMDkgMTE6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgKDUuMyk6CgogICBkb24ndCBmcmVlIHJlZ2lzdHJhdGlvbiBpbmZvIG9uIGZhaWx1cmUsIGFzIG5ldHNubXBfcmVnaXN0ZXJfbWliIGFscmVhZHkgZGlkIGl0CiAgIAoyMDAyLTA4LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICg1LjIpLCBzbm1wQ2FsbGJhY2tEb21haW4uYyAoNS4xKSwKICAgc25tcElQWERvbWFpbi5jICg1LjEpLCBzbm1wVENQRG9tYWluLmMgKDUuNCksIHNubXBUQ1BJUHY2RG9tYWluLmMKICAgKDUuNSksIHNubXBVRFBEb21haW4uYyAoNS42KSwgc25tcFVEUElQdjZEb21haW4uYyAoNS43KSwKICAgc25tcFVuaXhEb21haW4uYyAoNS40KSwgc25tcF90cmFuc3BvcnQuYyAoNS4xKToKCiAgICAgLSByZW5hbWUgc25tcF88ZG9tYWluPl9ibGFoIGZ1bmN0aW9ucyB0byBuZXRzbm1wXzxkb21haW4+X2JsYWgKICAgICAtIG1ha2UgdHJhbnNwb3J0IG1lbWJlciBmdW5jdGlvbnMgc3RhdGljLCB0byBlbXBoYXNpc2UgdGhhdCB0aGV5IHNob3VsZAogICAgICAgbm90IGJlIHVzZWQgZGlyZWN0bHkKICAgICAtIGhhbmRsZSBFSU5UUiBpbiBzZW5kIGFuZCByZWN2IGZ1bmN0aW9ucyAoYXMgcG9pbnRlZCBvdXQgYnkgQW50dGkgS3VudHNpCiAgICAgICBpbiBidWcgcmVwb3J0ICM1NzY4MDYpCiAgICAgLSBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA5OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmggKDUuMyksCiAgIHNubXBJUFhEb21haW4uaCAoNS4yKSwgc25tcFRDUERvbWFpbi5oICg1LjIpLCBzbm1wVENQSVB2NkRvbWFpbi5oCiAgICg1LjMpLCBzbm1wVURQRG9tYWluLmggKDUuMik6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwOTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAoNS4zKToKCiAgICAgLSBkb24ndCBleHBvcnQgbmV0c25tcF91bml4X2JsYWgoKSBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDkgMDk6NTMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggKDUuMSk6CgogICAgIC0gZml4IG5hc3R5IGZvcm1hdHRpbmcKICAgCjIwMDItMDgtMDggMTI6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jICg1LjIpOgoKICAgcmV3b3JkIGNvbmZpZ19wZXJyb3IgbXNncyB0byByZW1vdmUgIkVycm9yIiwgYXMgaXQgaXMgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTA4IDEyOjExICByc3RvcnkKCiAgICogc25tcGxpYi9rZXl0b29scy5jICg1LjEpOgoKICAgcmVtb3ZlIGlmZGVmIHRvIGxvZyBtc2cgdG8gdXNlciwgYWZ0ZXIgbWFraW5nIG1zZyBtb3JlIGluZm9ybWF0aXZlOyByZW1vdmUKICAgYW5ub3lpbmcgYmxhbmsgbGluZXMKICAgCjIwMDItMDgtMDggMTE6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggKDUuNyksIGNvbmZpZ3VyZSAoNS4xNiksIGNvbmZpZ3VyZS5pbiAoNS4xNCk6CgogICBQYXRjaCBmcm9tIEhhcnJpZSB0byBjb21wbGV0ZWx5IGRpc2FibGUga21lbSB1c2FnZQogICAKMjAwMi0wOC0wNiAwMzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS4zKToKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMzoyNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oICg1LjEpOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgCjIwMDItMDgtMDYgMDM6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoNS4zKSwgc25tcF9hcGkuYyAoNS4xMik6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDM6MTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy40KToKCiAgICAgLSBhZGQgZGVidWdnaW5nIG91dHB1dCB3aGVuIGFsbCBhbGFybXMgdW5yZWdpc3RlcmVkCiAgIAoyMDAyLTA4LTA2IDAzOjEwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jIChWNC0yLXBhdGNoZXMuNCk6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3IgdGhpcyBwYXRjaCAoIzU1ODUxNykKICAgCjIwMDItMDgtMDYgMDM6MDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzMsMSwzNl0pOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIHByb3ZpZGluZyB0aGlzIHBhdGNoCiAgIAoyMDAyLTA4LTA1IDEwOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICg1LjMpOgoKICAgbWF0Y2ggZnVuY3Rpb24gZGVmaW5pdGlvbiB3L05ldHNubXBfKl9EYXRhUG9pbnQgdHlwZWRlZnM7IGFkZCBjdnMgSWQKICAgCjIwMDItMDgtMDMgMTE6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TICgxLjUpOgoKICAgYnJlYWsgdXAgbGluZXMgbG9uZyB0aGFuIDgwIGNoYXJzOyBhYmNkZSwgbm90IGFiY2RkCiAgIAoyMDAyLTA4LTAzIDAzOjIxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TICgxLjQpOgoKICAgbW9yZSB1cGRhdGVzIGFib3V0IHRoaW5ncyBXZXMgZG9lcyBhdCAxMjozMCBhbQogICAKMjAwMi0wOC0wMyAwMjo0NCAgaGFyZGFrZXIKCiAgICogRkFRICg1LjE0KSwgUkVBRE1FICg1LjgpLCBzZWRzY3JpcHQuaW4gKDUuNiksIHBlcmwvU05NUC9TTk1QLnBtCiAgICg1LjEyKSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAoNS41KToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjIgLT4gVjUuMC4zCgoyMDAyLTA4LTAyIDIzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkIC5saWJzCiAgIAoyMDAyLTA4LTAyIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wOC0wMiAyMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTAyIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZm9yZ290dGVuIHRvIGNoZWNrIGluIHRlc3QgZm9yIHBlcmxfZXYgY2hhbmdlcwogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZW1vdmUgZGVidWdnaW5nIHByaW50IChvcHBzKQogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHZlcnNpb24gdXNhZ2UuCiAgIAoyMDAyLTA4LTAyIDIzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjNTcyMzk0IGZyb20gS2F0c3VoaXNhIEFCRToKICAgICAtIHN1cHBvcnQgbGluayBsb2NhbCBhZGRyZXNzZXMKICAgICAtIGJpbmQgdG8gaXB2NiBvbmx5IGlmIElQVjZfVjZPTkxZIGlzIGRlZmluZWQuCiAgIAoyMDAyLTA4LTAyIDIzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IGNvbmZpZ3VyZSBzcGVjaWZpZWQgZGVmYXVsdCB2ZXJzaW9uaW5nCiAgIAoyMDAyLTA4LTAyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM1NzIzOTQ6IGFkZCBpcHY2IHRyYW5zcG9ydHMgd2hlbiAtLWVuYWJsZS1pcHY2IGRlZmluZWQuICBUaGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDgtMDIgMTQ6NTkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICB1cGRhdGUKICAgCjIwMDItMDgtMDIgMTQ6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIGRvY3MuCiAgIAoyMDAyLTA4LTAyIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zLCBNYWtlZmlsZS5pbjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBmb3IgeWV0IG1vcmUgc3R1ZmYuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgYSBmZXcgbW9yZSBkaXN0IHJlbGF0ZWQgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlcnJvciBtZXNzYWdlIGNoYW5nZSB0byByZW1vdmUgREVTIHNwZWNpZmljIGVycm9yIG1zZy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIHNwYWNpbmcgZml4ZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnhzOgoKICAgcmVuYW1lZCBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIHJlbmFtZWQgZmlsZQogICAKMjAwMi0wOC0wMiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBBZGQgYSAiZXZhbHZhcnMiIGRpcmVjdGl2ZSB0byBkbyBzaW1wbHkgcmVwbGFjZW1lbnRzLgogICAKMjAwMi0wOC0wMiAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBDVlNVU0VSIHZhcmlhYmxlIHdoZW4gZG9pbmcgc3R1ZmYgaW5zdGVhZCBvZiBteSBoYXJkLWNvZGVkIG5hbWUuCiAgIAoyMDAyLTA4LTAyIDE0OjE0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBjaGFuZ2UgY2hlY2tjb21tZW50IHRhZyB0byBleGNsdWRlIHdpbjMyIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGNoYW5nZWxvZyBidWlsZCBub3RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNyZWF0ZWQgYSBob3ctdG8gZmlsZSBmb3IgbWFraW5nIHJlbGVhc2VzCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIGNoYW5nZWxvZyBmaXgtdXAgc2NyaXB0CiAgIAoyMDAyLTA4LTAyIDEwOjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHJhbnNsYXRlICcvJyBpbiBzeXN0ZW0gbmFtZSB0byAnXycgKGZvciBjeWd3aW4pCiAgIAoyMDAyLTA4LTAyIDA5OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIGN2cyBnZXQgY29tbWFuZCBleGFtcGxlCiAgIAoyMDAyLTA4LTAyIDA5OjA2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBTdXBwcmVzcyAnaW5saW5lJyB3aGVuIG5vdCB1c2luZyBHQ0MuIFN1Z2dlc3RlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDItMDgtMDIgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gb24gc2tpcHBpbmcgbWFrZSB0ZXN0OyBhZGQgLXAgZmxhZyB0byBleGFtcGxlcwogICAKMjAwMi0wOC0wMiAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBkZXNjcmliZSB1c2Ugb2YgbnNiLXBhY2thZ2Ugc2NyaXB0LiBUZXN0ZXJzIGFuZCBjb21tZW50cyBhcHByZWNpYXRlZC4uLgogICAKMjAwMi0wOC0wMiAwODozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBsYXRmb3JtOgoKICAgb3V0cHV0IHBsYXRmb3JtIGluZm8KICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbmFtZWQgdG8gbnNiLXBhY2thZ2UKICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgcmVuYW1lZCBuc2ItYnVpbGQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggc2NyaXB0IGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTAyIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDaGFuZ2UgbG9jYXRpb24gbmFtZSB0byBVbmtub3duCiAgIAoyMDAyLTA4LTAyIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowNCAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggcmV0dXJuIGNvZGUKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGRvbid0IHB1bGwgZmlyc3QgYXJnIHRpbCBhZnRlciBnZXRvcHRzL3NoaWZ0OyBtb3ZlIHNldCBvZiBkZWZhdWx0IG9wdHMKICAgCjIwMDItMDgtMDIgMDc6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgYWRkIC1mIG9wdGlvbiB0byBwcm9tcHQgdG8gb3ZlcnJpZGUKICAgbm8gcHJvbXB0IGZsYWcgKHVzZWZ1bCBmb3IgZXJyb3JzKTsgbmV3IG5zYi1tYWtlIG1ldGhvZDsgY2hlY2sgcmMgb2YKICAgbWFrZSBjbGVhbgogICAKMjAwMi0wOC0wMiAwNzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IHR3ZWFrIHVzYWdlCiAgIAoyMDAyLTA4LTAyIDA3OjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggdHlwbzsgcmVtb3ZlIGV4dHJhIHRyYWlsaW5nIHNsYXNoIGluIGRpcgogICAKMjAwMi0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgY2hlY2sgbW9yZSBwbGFjZXMgdG8gc291cmNlIG5zYi1mdW5jdGlvbnM7IGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgcGF0aAogICAKMjAwMi0wOC0wMiAwNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGp1c3Qgc2hvdyBlcnJvcnMgYWZ0ZXIgYnVpbGQsIG5vdCB3YXJuaW5ncwogICAKMjAwMi0wOC0wMSAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmV2ZXJ0IHRvIG5vbi1hbnNpIHByb3RvdHlwZXMgZm9yIG9sZGVyIHBlcmwgd2l0aCBvbGRlciBjb21waWxlcnMgb24KICAgb2xkZXIgc3lzdGVtcy4gIE5vdCB0aGF0IEknbSBncnVtcHksIG9mIGNvdXJzZS4KICAgCjIwMDItMDgtMDEgMTY6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBjaGVjayBmb3Igb2xkZXIgYW5kIG5ldyBlbWJlZGRlZCBwZXJsIGNhbGwgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTAxIDE0OjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3Qgc3ltbGluayB0byBzcmMgZnJvbSBidWlsZDsgdXBkYXRlIG5zYi1nZXQtY29uZmlnCiAgIAoyMDAyLTA4LTAxIDE0OjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIGRpcgogICAKMjAwMi0wOC0wMSAxMjo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBjb25maWcgaW5zdGFsbCBwYXRoOyByZW1vdmUgcGxhdGZvcm0gc3BlY2lmaWMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDgtMDEgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbW92ZSBoYXJkIGNvZGVkIGluZm8KICAgCjIwMDItMDgtMDEgMTI6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgcHJvbXB0czsgcmVtb3ZlIHByZXZpb3VzIGluc3RhbGxzOyB0d2VhayBlcnIgcGF0dGVybgogICAKMjAwMi0wOC0wMSAxMjoxNCAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpIGluc3RlYWQgb2YgZHNfc2V0X2Jvb2xlYW4oKQogICAKMjAwMi0wOC0wMSAxMjoxMiAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICAgIC0gY2hhbmdlIGNvZGUgc2FtcGxlIHRvIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkKICAgICAtIHVwZGF0ZSByZWZlcmVuY2VzIHRvIGxpYnJhcmllcyAod2hpY2ggd2VyZSBzdGlsbCB0YWxraW5nIGFib3V0CiAgICAgICBsaWJ1Y2RhZ2VudCBldCBhbC4pIC0tIFBMRUFTRSBSRVZJRVcgQkVGT1JFIDUuMC4zCiAgIAoyMDAyLTA4LTAxIDEyOjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbG90cyBvZiBmaXhlcyB0byBwcmV2aW91c2UgdW50ZXN0ZWQgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgc2NyaXB0IHRvIGJ1aWxkIHJlbGVhc2VzLi4uIHN0aWxsIHNvbWUgaGFyZGNvZGluZyB3aGlsZSB0ZXN0aW5nLCBidXQgaXRzCiAgIGdldHRpbmcgdGhlcmUuLi4KICAgCjIwMDItMDgtMDEgMTE6NTEgIHJzdG9yeQoKICAgKiBkaXN0LzogY3Zzc2hvdywgY3ZzdXA6CgogICB1dGlsaXR5IHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyMi5jOgoKICAgR28gd2l0aCB0aGUgInNjYWxhciBhcyBzdXBlci1oYW5kbGVyIG9mIGluc3RhbmNlIiBpbXBsZW1lbnRhdGlvbi4KICAgU2NhbGFyMS5jIGlzIHByb2JhYmx5IHJlZHVuZGVudCwgYnV0IHdlIGNhbiByZW1vdmUgdGhpcyBsYXRlci4KICAgKFl1cCAtIEknbSBhIGNvd2FyZC4uLi4pCiAgIAoyMDAyLTA4LTAxIDAxOjExICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBNaW5vciB0eXBvcywgcGx1cyBlbXBoYXNpc2UgdGhlIG5lZWQgZm9yIHRoZSBJcEhscEFQSSBsaWJyYXJ5LgogICAKMjAwMi0wNy0zMCAwODoyNiAgZHRzMTIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQ6CgogICBSZWNvZ25pc2UgJzAnIGFzIGEgdmFsaWQgc2V0dGluZyBmb3Igc3VmZml4UHJpbnRpbmcsIGFuZCB1cGRhdGUgdGhlCiAgIHByb21wdHMgdG8gbWF0Y2ggdGhlIHY1IG91dHB1dCBmb3JtYXRzIGRlZmF1bHRzLiBTZWUgQnVnICM1Njc0NTEKICAgCjIwMDItMDctMzAgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXJzdCBhdHRlbXB0IGF0IHRhY2tsaW5nIEJ1ZyAjNTc0NDM0CiAgIFJlY29nbmlzZSB0aGF0IGRlZmF1bHQgb3V0cHV0IGZvcm1hdCBpcyBlcXVpdmFsZW50IHRvIC1PUy4KICAgU25tcHRhYmxlIHN0aWxsIGNyYXNoZXMgd2l0aCAtT2Ygb3IgLU91LCBidXQgYXQgbGVhc3QgdGhlCiAgIGRlZmF1bHQgaW52b2NhdGlvbiB3b3Jrcy4KICAgCjIwMDItMDctMzAgMDU6NDEgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0IG5ld2x5LWRlZmluZWQgcHVibGljIG5hbWVzLCBhbmQgcmUtZXhwb3J0IHNvbWUgcm91dGluZXMgdGhhdAogICBoYXZlIGNoYW5nZWQgbmFtZS4gIFRoaXMgc2hvdWxkIG5vdyBjb21waWxlIHVuZGVyIFZpc3VhbCBDKysgYWdhaW4uCiAgIAoyMDAyLTA3LTMwIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IHJlbW92ZSBhIFJvdy1TdGF0dXMgYXV0by1kZWxldGVkIHJvdyB1bnRpbCB0aGUgbGFzdCBtaW51dGUsCiAgIGluIGNhc2Ugb3RoZXIgKGxvd2VyKSBoYW5kbGVycyB0cnkgdG8gYWNjZXNzIGl0LgogICAKMjAwMi0wNy0zMCAwMTozOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMSksIEZBUToKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gZXNjYXBlIHF1b3RlcyB3aGVuIHF1ZXJ5aW5nIHN0cmluZy1pbmRleGVkIHRhYmxlcy4KICAgCjIwMDItMDctMjkgMjM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1cGRhdGUgcmVnaXN0ZXIgZnVuY3Rpb24gbmFtZQogICAKMjAwMi0wNy0yOSAyMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGF1dG9nZW4gZXhhbXBsZSBjb2RlIGZvciBpbmRleCBjaGVja2luZyBpbiBleHRyYWN0X2luZGV4OyB1cGRhdGUgcmVnaXN0ZXIKICAgZnVuY3Rpb24gbmFtZTsgdXNlIGNvbnRhaW5lciBpbiAqX2dldF9ieV9pZHgoKQogICAKMjAwMi0wNy0yOSAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgbmV3IHN0cnVjdCBuYW1lOyBhZGQgZXhhbXBsZSBjb2RlIGFzIGNvbW1lbnRzIGluc3RlYWQgb2YgdmFyX1hYWAogICBhbmQgc3VjaDsgaW4gYSBmZXcgaW1wb3J0YW50IHBsYWNlcyBhZGQgY29kZSB3aGljaCB3aWxsIGFsbG93IGEgbmV3bHkKICAgZ2VuZXJhdGVkIG1vZHVsZSB0byBiZSBjb21waWxlZCBpZiAtRFRBQkxFX0NPTlRBSU5FUl9UT0RPIGlzIHNwZWNpZmllZDsKICAgcHJvYmFibHkgYSBmZXcgb3RoZXIgdHdlYWtzIEkgZm9yZ290CiAgIAoyMDAyLTA3LTI5IDAzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfYXJyYXkuYywgdGFibGUuYywgdGFibGVfZGF0YS5jCiwgdGFibGVfZGF0YXNldC5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGRlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMuCiAgIChNb3N0IG9mIHRoZXNlIFNob3VsZCBOZXZlciBIYXBwZW4gYnV0IFlvdSBDYW4ndCBCZSBUb28gQ2FyZWZ1bCEpCiAgIAoyMDAyLTA3LTI5IDAzOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgYGRtZmUnIGV0aGVybmV0IGNhcmRzIGFzIGZvdW5kIG9uIE5ldHJhIFgxIG1hY2hpbmVzLgogICAgICAgVGhhbmtzIHRvIEpvaG4gT2xzb24gZm9yIHZlcmlmeWluZyB0aGlzIGZpeC4KICAgCiAgICAgICBBbHNvIG5vdGUgdGhhdCBgaW5kZW50JyBoYXMgLS0tLWVkIHRoZSBmb3JtYXR0aW5nIG9mIHRoaXMgZmlsZQogICAgICAgYmV5b25kIGxlZ2liaWxpdHkgaW4gc2V2ZXJhbCBwbGFjZXMuICBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdG8KICAgICAgIGRvICp0aGF0KiBhZ2Fpbi4KICAgCjIwMDItMDctMjkgMDI6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRnVsbGVyIHZhbGlkYXRpb24gb2YgUm93U3RhdHVzIHZhbHVlcyB3cnQgcm93IGNyZWF0aW9uL2V4aXN0aW5nIHJvd3MuCiAgIAoyMDAyLTA3LTI5IDAxOjI1ICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFRha2UgYWNjb3VudCBvZiByZWNlbnQgY2hhbmdlcyBpbiBsaWJyYXJ5IGZpbGVzLgogICAnUmVsZWFzZScgYXBwbGljYXRpb25zIHN0aWxsIGRvbid0IGxpbmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdAogICB0aGUgbGlicmFyaWVzIGNvbXBpbGUsIGFuZCB0aGUgJ0RlYnVnJyBzaWRlIHNlZW1zIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTI5IDAxOjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFR3ZWFrIGlubGluZSBoYW5kbGluZyBmb3IgQUlYIC0gc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDItMDctMjYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGF1dG9kZXBlbmRlbmNpZXMgdW50aWwgcG9ydGFibGUgc29sdXRpb24gY2FuIGJlIGZvdW5kCiAgIAoyMDAyLTA3LTI2IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgbWliX21vZHVsZV9pbml0cy5oOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChvYnNvbGV0ZSkgdWNkLXNubXAvcmVnaXN0cnkgbW9kdWxlLgogICAKMjAwMi0wNy0yNiAwNzozMiAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBQcm90ZWN0IHRoZSBXaW4zMiB2ZXJzaW9uIG9mIHRoZSBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgb3RoZXIgaGVhZGVyCiAgIGZpbGVzIHJlY29nbmlzZSB0aGF0IGl0IGhhcyBpbmRlZWQgYmVlbiBpbmNsdWRlZC4KICAgCjIwMDItMDctMjYgMDc6MjQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjApLCBGQVE6CgogICBBIGJpdCBtb3JlIGRldGFpbCBvbiBtaWIyYywgcGx1cyB0aGUgbm9uLXdyaXRlYWJpbGl0eSBvZiBzeXN7TG9jYXRpb24sQ29udGFjdH0KICAgCjIwMDItMDctMjYgMDU6MjIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjkpLCBGQVE6CgogICBBbm90aGVyIGVudHJ5IGFib3V0IGludmFsaWQgdXNlIG9mIG1pYjJjLgogICAKMjAwMi0wNy0yNiAwNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFN1cHByZXNzIHRoZSAibm9uLXN0YW5kYXJkIiBjb25kaXRpb25hbCBjb25zdHJ1Y3QsCiAgIHNpbmNlIGl0J3Mgbm90IHJlY29nbmlzZWQgYnkgc29tZSB2ZXJzaW9ucyBvZiAnbWFrZScuCiAgIAoyMDAyLTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIHRoZSAnc2NhbGFyJyBhbmQgJ3dhdGNoZXInIGhlbHBlcnMgdG8gdGhlIGhlbHBlciBsaWJyYXJ5LgogICAKMjAwMi0wNy0yNSAwMzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIFN1cHBvcnQgZm9yIHdhdGNoaW5nIGEgc3lzVXBUaW1lIG1hcmtlci4KICAgCjIwMDItMDctMjUgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIE5ldyByb3V0aW5lIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIHZhbHVlIGRpcmVjdGx5IGZyb20gYSByZXF1ZXN0IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMTM6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNoZWNrIGZvciBzZXR0aW5nIHNhbWUgdmFsdWUgaW4gZHNfc2V0X3N0cmluZywgc2luY2UgaXQgZnJlZXMgdGhlIG9sZAogICB2YWx1ZSBiZWZvcmUgZHVwaW5nIHRoZSBuZXcgb25lCiAgIAoyMDAyLTA3LTI0IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICBmaXJzdCBzdGFiIGF0IGluaXQuZCBzdGFydHVwIHNjcmlwdCBmb3Igc25tcGQKICAgCjIwMDItMDctMjQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgV2hlbiBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIG9uZSBjb2x1bW4sIGFuZCBtb3Zpbmcgb24gdG8gdGhlIG5leHQKICAgKGluIGEgR2V0TmV4dCksIHdlIG5lZWQgdG8gc3RhcnQgYWdhaW4gd2l0aCB0aGUgZmlyc3Qgcm93LgogICBUaGlzIGlzIHByb2JhYmx5IHRoZSBpbnRlbnRpb24gb2YgdGhlIGNvbmRpdGlvbmFsIGJsb2NrIGF0IHRoZSBzdGFydAogICBvZiB0aGlzIGxvb3AsIGJ1dCBJIGNhbid0IHNlZSBob3cgdGhpcyB0ZXN0IGNvdWxkIGV2ZXIgcG9zc2libHkgbWF0Y2guCiAgIAogICBOb3RlIHRoYXQgdGhlcmUgaXMgYWxzbyBhIHJlZmVyZW5jZSB0byB0aGUgcm93IGRhdGEgYWNjZXNzaWJsZSB2aWEKICAgdGhlICdyZXF1ZXN0LT5wYXJlbnRfZGF0YScgZGF0YSBsaXN0LiAgIFRoaXMgd2lsbCBhbHNvIG5lZWQgdG8gYmUKICAgcmV3b3VuZC4gIFN1Z2dlc3Rpb25zIGFzIHRvIGhvdyBiZXN0IHRvIGRvIHNvIGdyYXRlZnVsbHkgcmVjZWl2ZWQuCiAgIAoyMDAyLTA3LTI0IDA2OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgZmFpbGluZyB0byBleHRyYWN0IGEgcm93IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMDY6MzUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBpbnZhbGlkIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTIzIDE0OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtaXNzaW5nIGNvbW1lbnQgdGVybWluYXRvci46LSgKICAgCjIwMDItMDctMjMgMTI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9hc3NlcnQgaW5zdGVhZCBvZiBhc3NlcnQKICAgCjIwMDItMDctMjMgMTI6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICBhZGQgbmV3IG5ldHNubXBfYXNzZXJ0LCB3aGljaCBkZWZhdWx0cyB0byBsb2dnaW5nIGEgbWVzc2FnZQogICAKMjAwMi0wNy0yMyAwNzo0MyAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zIChWNC0yLXBhdGNoZXMuMyksIG1pYl9hcGkuMy5kZWY6CgogICBGaXggdGhlIGRlc2NyaXB0aW9ucyBvZiB0aGUgJ3NwcmludF9yZWFsbG9jJyBjYWxscywgdG8gaW5jbHVkZSB0aGUgJ2FsbG93X3JlYWxsb2MnIHBhcmFtZXRlci4KICAgCjIwMDItMDctMjIgMTA6NTggIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYywgbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyAoYWxtb3N0IGVtcHR5KSBzcGVjIGZpbGU7IHN0YXJ0IGNyZWF0aW5nIGZ1bmN0aW9ucyBmb3IgYXV0b21hdGVkIGJ1aWxkcwogICAKMjAwMi0wNy0yMiAwMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEEgbW9yZSBnZW5lcmFsaXNlZCBmb3JtIG9mIHRoZSAnbnNfcmVnaXN0ZXJfe3R5cGV9X2luc3RhbmNlJyByb3V0aW5lcywKICAgaW1wbGVtZW50ZWQgYXMgYSBzZXBhcmF0ZSBoZWxwZXIgbW9kdWxlLCBhbmQgdXNlYWJsZSB3aXRoIGJvdGggdGhlCiAgIGluc3RhbmNlIGFuZCBzY2FsYXIgaGVscGVycy4KICAgICBUaGlzIGFsc28gc3VwcG9ydHMgYXJiaXRyYXJ5IEFTTiB0eXBlcyAoaW5jbHVkaW5nIHN0cmluZ3MgYW5kIE9JRHMpLgogICAKMjAwMi0wNy0yMiAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyMi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oOgoKICAgQWdlbnQgaGVscGVyIG1vZHVsZSBmb3Igc3VwcG9ydCBvZiBzY2FsYXIgb2JqZWN0cy4KICAgVmVyeSBzaW1pbGFyIHRvIHRoZSAiaW5zdGFuY2UiIGhlbHBlciwgZXhjZXB0IHRoYXQgdGhpcyBkZWFscyB3aXRoCiAgIGludmFsaWQgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMgYXMgd2VsbCAocmVwb3J0aW5nIG5vU3VjaEluc3RhbmNlCiAgIHJhdGhlciB0aGF0IG5vU3VjaE9iamVjdCkuCiAgIAogICBUaGVyZSBhcmUgdHdvIHBhcmFsbGVsIGltcGxlbWVudGF0aW9ucyBhcyB0aGUgbW9tZW50OgogICAgIC0gc2NhbGFyMSBpcyBlc3NlbnRpYWxseSBhbiBlbmhhbmNlZCBjb3B5IG9mIHRoZSBpbnN0YW5jZSBoZWxwZXIsCiAgICAgICBidXQgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiBpdC4KICAgICAtIHNjYWxhcjIgc2l0cyBhYm92ZSB0aGUgaW5zdGFuY2UgaGVscGVyLCBhbmQgdXNlcyB0aGF0IHRvIGRvIG1vc3QKICAgICAgIG9mIHRoZSByZWFsIHByb2Nlc3NpbmcuCiAgIFNjYWxhcjEgaXMgcHJvYmFibHkgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQsIHdoaWxlIHNjYWxhcjIgZmVlbHMgbW9yZQogICBpbiBrZWVwaW5nIHdpdGggdGhlIGdlbmVyYWwgZXRob3Mgb2YgdGhlIGhhbmRsZXIgbWVjaGFuaXNtLgogICBXZSBwcm9iYWJseSBuZWVkIHRvIGRlY2lkZSB3aGljaCB0byBhZG9wdCwgYW5kIGp1bmsgdGhlIG90aGVyLgogICAKMjAwMi0wNy0xOSAxNDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHVzZSBuZXQgYWdlbnR4IHJldGlyZXMvdGltZW91dCBkcyB2YWx1ZXMKICAgCjIwMDItMDctMTkgMTQ6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgcmVnaXN0ZXIgcGFyc2VyIGZvciBhZ2VudHhUaW1lb3V0IGFuZCBhZ2VudHhSZXRyaWVzIHRva2VucwogICAKMjAwMi0wNy0xOSAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbi1leGlzdGVudCBuc3RBZ2VudCogZmlsZXMKICAgCjIwMDItMDctMTkgMTQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbW92ZSBPTkVfU0VDIHRvIGRlZmluaXRpb25zLmg7IGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMgZGVmYXVsdHMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oOgoKICAgbW92ZSBkZWZpbml0aW9uIG9mIE9ORV9TRUMgaGVyZSBmcm9tIHNubXBkLmMKICAgCjIwMDItMDctMTkgMTE6MjMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcGFzcyBsb2NhbCBvYmosIG5vdCByYW5kb20gdW5pdGlhbGl6ZWQgcG9pbnRlci46LSgKICAgCjIwMDItMDctMTkgMDQ6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgTUFYUEFUSExFTiBpc24ndCBkZWZpbmVkLgogICAKMjAwMi0wNy0xOSAwMzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgdGhlICJzeXN0ZW0taW5kZXBlbmRlbnQiIFNOTVBfTUFYUEFUSCBsZW5ndGggZGVmaW5pdGlvbiBpbnN0ZWFkIG9mIE1BWFBBVEhMRU4KICAgCjIwMDItMDctMTggMjI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub25leGlzdGVudCBtaWJncm91cC9uc3RBZ2VudE1vZHVsZU9iamVjdC5oCiAgIAoyMDAyLTA3LTE4IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIgKQogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4xIC0+IFY1LjAuMgoKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWlub3IgcGF0Y2ggZm9yIG5vbi1leGlzdGVudCAoZGllZCkgbG9nIGZpbGVzLgoKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4yCgoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG1ha2UgZGVwZW5kIGZpeGVzLgoJCjIwMDItMDctMTggMTg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhbGFybS5jLCBldmVudC5jOgoKICAgbWFrZSB0aGUgcm1vbiBjb2RlIGNvbXBpbGUuCiAgICAtIG5ldyBzdWJ0cmVlIHBvaW50ZXIgc3RydWN0dXJlLgogICAgLSBzcHJpbnRfb2JqaWQgLT4gc25wcmludF9vYmppZAogICAKMjAwMi0wNy0xOCAxODozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBzaWxlbmNlIHBlcmwgc3ViZGlyZWN0b3J5IGJ1aWxkIGNvbW1hbmRzLgogICAKMjAwMi0wNy0xOCAxODozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIFVzZSBuZXRzaCAtdCAtZCB4bWwgdG8gZ2V0IHhtbCBvdXRwdXQgZnJvbSBuZXRzaC4KICAgICAoT2ssIEknbSBzaXR0aW5nIGhlcmUgYXQgYW4gSUVURiBjb25mZXJlbmNlIGhhdmluZyBhbiBhcmd1bWVudCBhYm91dAogICAgICB4bWwgdnMgQkVSIGFuZCBuZWVkZWQgYSBYTUwoLWxpa2UpIGV4YW1wbGUgb2YgYSBodWdlIGRhdGEgc2V0LCBzbyBJCiAgICAgIG1hZGUgbmV0c2ggZG8gaXQuKQogICAKMjAwMi0wNy0xOCAxNzo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gaW5pdGlhbCBzdXBwb3J0IGZvciBkb2luZyByZXF1ZXN0cyBmcm9tIG11bHRpcGxlIGhvc3RzIChyZXRyaWV2YWwsIG5vdCBzZXRzKQogICAKMjAwMi0wNy0xOCAxNzo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBtb3JlIGZpeGVzIHRvIHN0aWxsIHVnbHkgY29sb3JpemVkIHRleHQgKHdlbGwsIHRoZSB0ZXh0IGlzIHByZXR0eSBidXQKICAgdGhlIHN1cHBvcnQgaXMgdWdseSkuCiAgIAoyMDAyLTA3LTE4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBjaGFuZ2UgdGV4dCBzdHJpbmcgZXJyb3IgdG8gbWF0Y2ggZnVuY3Rpb24gbmFtZSBjYWxsZWQuCiAgIAoyMDAyLTA3LTE4IDE1OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW5hbWUgZnJlZSAtPiBjZnJlZSB0byBhdm9pZCBzb21lIHByb2JsZW0gd2VzIGhhZC4uLiA7LSkKICAgCjIwMDItMDctMTggMTQ6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdHdvIHBlb3BsZSBmaXhpbmcgbWVtb3J5IGxlYWsgaW4gZGlmZmVyZW50IHBsYWNlcyA9IHNlZ2ZhdWx0CiAgIAoyMDAyLTA3LTE4IDExOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgJG5hbWUgLT4gJGkKICAgCjIwMDItMDctMTggMTA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTggMDk6NDAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1kZWJ1Zy10b2tlbnMsIC0taW5kZW50LW9wdGlvbnMKICAgCjIwMDItMDctMTggMDk6MTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLCBzbm1wbGliL3NubXAtdGMuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIEFwcGx5IHBhdGNoIGZyb20gQnVnICM1ODIzNDcsIGZvciBJcml4IDYuNSBzdXBwb3J0LgogICBTdWJtaXR0ZWQgYnkgSmFuIFllbnlhIEthc3ByemFrCiAgIAoyMDAyLTA3LTE4IDA5OjEyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOCAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuOC5kZWY6CgogICBGaXggbWFya3VwIHByb2JsZW0gb24gc25tcHRyYXBkIG1hbiBwYWdlIChCdWcgIzU4MzMyOSkKICAgCjIwMDItMDctMTggMDk6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgVGhlIGZpeCBmb3IgdGhlIHRtX2dtdG9mZiBwcm9ibGVtIG9uIEFJWCAoQnVnICM1NjU3NjkpIGFsc28gYXBwbGllcyB0byBBSVggNQogICAKMjAwMi0wNy0xOCAwOTowNiAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAoVjQtMi1wYXRjaGVzLjEpLCBlbmNvZGVfa2V5Y2hhbmdlLmMKOgoKICAgRml4IG9mZi1ieS1vbmUgYnVmZmVyIG92ZXJmbG93IChwYXRjaCAjNTc3MjYxKQogICAKMjAwMi0wNy0xOCAwODo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgR2VuZXJhdGUgb25lIGNvZGUtZmlsZSBwZXIgdGFibGUgKHRvIG1hdGNoIHRoZSBoZWFkZXIgc3RydWN0dXJlKS4KICAgTXkgYXBvbG9naWVzIGlmIHRoaXMgaXNuJ3QgY29ycmVjdCwgUm9iZXJ0IC0gYnV0IHRoZSBwcmV2aW91cyBiZWhhdmlvdXIKICAgc2VlbWVkIHRvIGJlIGJyb2tlbi4KICAgCjIwMDItMDctMTggMDg6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFRhY2tsZSBzb21lIG9mIHRoZSBpbW1lZGlhdGUgZGVmaWNpZW5jaWVzIGluIHRoZSBmaXJzdCBkcmFmdCBvbGQtYXBpIGNvbmZpZy4KICAgKE5vdyB0aGF0IFdlcyBoYXMgcG9pbnRlZCBtZSBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uISkKICAgCjIwMDItMDctMTggMDg6MjIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHRoZSAnZGVjbCcgc3Vic3RpdHV0aW9uIGhhbmRsaW5nIChzbyBpdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGludGVybmFsIHRva2VuIGFzIHdlbGwpLgogICAKMjAwMi0wNy0xOCAwNzoxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBQcm92aWRlIHRoZSBtaXNzaW5nIHBhcmFtZXRlciBpbiBhIHJlYWRfb25seSBpbnN0YW5jZSByZWdpc3RyYXRpb24uCiAgIAoyMDAyLTA3LTE4IDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBCcmluZyB0aGUgJ3JlYWRfb25seV9pbnQnIGluc3RhbmNlIGhhbmRsZXIgaW4gbGluZSB3aXRoIHRoZSByZXN0IG9mCiAgIHRoZSBjb252ZW5pZW5jZSBpbnN0YW5jZSBoYW5kbGVycy4KICAgKGFuZCBldmVuIGJyZWFrIHRoZSBoYWJpdCBvZiBhIGxpZmV0aW1lIGFuZCBkZWNsYXJlIHRoZSB0aGluZy4uLi4pCiAgIAoyMDAyLTA3LTE4IDA1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggYW5vdGhlciBtZW1vcnkgbGVhayBkdWUgdG8gYW4gaW1wcm9wZXIgaWZkZWZlZCBvdXQgc2VjdGlvbiBvZiBjb2RlCiAgIAoyMDAyLTA3LTE4IDA0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBJJ20gYmVnaW5uaW5nIHRvIHJlZ3JldCBldmVyIHJ1bm5pbmcgaW5kZW50IG9uIHRoZSBjb2RlIGJhc2UuLi4KICAgCjIwMDItMDctMTcgMTU6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICBkb2N1bWVudCBhbmQgaW5zdGFsbCBtaWIyYy5vbGQtYXBpLmNvbmYKICAgCjIwMDItMDctMTcgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggc2VnZmF1bHQgKHBvc3NpYmx5IGNyZWF0aW5nIG1lbW9yeSBsZWFrKTsgYXV0aG9yIG5lZWRzIHRvIGV4YW1pbmUgY29kZQogICAKMjAwMi0wNy0xNyAwNzo0MSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNvbmYsCiAgIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLmludF93YXRjaC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgRGF2ZSdzIGJlaW5nIHVucmVhc29uYWJseSBwaWNreSBhYm91dCBncmFtbWFyICYgc3BlbGxpbmcgYWdhaW4uCiAgIEp1c3QgaWdub3JlIGhpbSwgYW5kIGhlJ2xsIGdvIGF3YXkuLi4uLgogICAKMjAwMi0wNy0xNyAwNzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgb2xkIDR4LXN0eWxlIGFnZW50IEFQSSB1c2luZyB0aGUgbmV3IHZlcnNpb24gb2YgbWliMmMuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHR5cGVzIHByb3Blcmx5LCBhbmQgSSdtIHN1cmUgSSdsbCBoYXZlIGJ1Z2dlcmVkIHVwIHNvbWUgb2YKICAgdGhlIGNvbnRyb2wgc3RydWN0dXJlIGhhbmRsaW5nLCBidXQgaXQgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZXRoaW5nIHRoYXQncwogICBwcmV0dHkgY2xvc2UgdG8gdGhlIG9sZCBvdXRwdXQuICAgSXQncyBiZXR0ZXIgdGhhbiBub3RoaW5nLi4uLi4KICAgCjIwMDItMDctMTYgMjI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgcmVzdG9yZSBpbmxpbmUgZnVuY3Rpb25zIChzaWdoLiBJIGZlZWwgbGlrZSBJJ20gcGxheWluZyByaW5nLWFyb3VuZC10aGUtcm9zaWUpCiAgIAoyMDAyLTA3LTE2IDIxOjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbmFtZSBzb21lIHN0cnVjdCBtZW1iZXJzIHRvIG1ha2UgY29kZSBlYXNpZXIgdG8gcmVhZDsgYSBiaXQgb2YgcmUtb3JkZXJpbmcKICAgaW4gdGhlIHNldCBjb2RlOyBuZXcgZmxhZ3MgZm9yIG5ldyBhbmQgZGVsZXRlZCByb3dzOyByb3cgZGVsZXRlcyBub3cKICAgYWN0dWFseSB3b3JrIQogICAKMjAwMi0wNy0xNiAxOTozMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGFuZ2UgY29tcGxleCBtYWNyb3MgaW50byBmdW5jdGlvbnMuIHdvdWxkIGJlIG5pY2UgaWYgQyBoYWQgaW5saW5lLgogICAKMjAwMi0wNy0xNiAxODowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHVtbSwgdHJ5IHVzaW5nIGNvcnJlY3QgZGVmaW5lLjotLwogICAKMjAwMi0wNy0xNiAxODowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHRlc3QgdGhhdCBuZXQtc25tcC1jb25maWcuaCBoYXMgYmVlbiBpbmNsdWRlZCwgaW5zdGVhZCBvZiBhY3R1YWxseSBpbmNsdWRpbmcgaXQuLgogICAoc2hvdWxkbid0IHRoaXMgcmVhbGx5IGJlIGluIGFsbCB0aGUgaGVhZGVyIGZpbGVzPykKICAgCjIwMDItMDctMTYgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTYgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0xNiAxMToxNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcyAoZ3J1bWJsZSBncnVtYmxlKQogICAKMjAwMi0wNy0xNiAxMToxNCAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuZGVwZW5kLCBtaWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGZhY3RvcnkuYwogICAKMjAwMi0wNy0xNiAxMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2NvbnRhaW5lcl9pbml0X2xpc3QoKSBpbiBzdGFydHVwIGluaXRzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLCBzbm1wbGliL29pZF9hcnJheS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hnIHBhcmFtIHR5cGUgZnJvbSB2b2lkKiB0byBzdHJ1Y3QgKgogICAKMjAwMi0wNy0xNiAxMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaDsgYWRkIGZhY3RvcnksIGJpbmFyeSBhcnJheSAuW2NoXTsgZGVyaXZlCiAgIE9CSlMgYW5kIExPQkpTIGZyb20gQ1NSQ1M7IGFkZCAob3B0aW9uYWwpIGF1dG8gZGVwZW5kZW5jeSBnZW5lcmF0aW9uCiAgIAoyMDAyLTA3LTE2IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaAogICAKMjAwMi0wNy0xNiAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIHN0cnVjdCBzdWJ0cmVlIC0+IG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNiAwOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGxhc3QgcmVtYWluaW5nIHJlZnMgdG8gbm93IGRlZnVuY3Qgb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBnZW5lcmljIGJpbmFyeSBhcnJheSBjb250YWluZXIgZXh0cmFjdGVkIGZyb20gb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaDsgbmV3IHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaW5kZXggKG9pZCBwdHIgKyBsZW4pCiAgIAoyMDAyLTA3LTE2IDA5OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgZ2VuZXJpYyBjb250YWluZXIgaW50ZXJmYWNlOyB1c2UgbmV3IG5ldHNubXBfaW5kZXggaW5zdGVhZCBvZgogICBvaWRfYXJyYXlfaGVhZGVyOyByZW5hbWUgYXJyYXlfZ3JvdXAgLT4gcmVxdWVzdF9ncm91cAogICAKMjAwMi0wNy0xNiAwOTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaXRlcmF0b3JzOyBtb3JlIGZ1bmN0aW9uIHR5cGVkZWZzOyByZW5hbWUgc29tZSBmdW5jIHB0cnMsIGFkZCBmaW5kX25leHQsCiAgIGdldF9zdWJzZXQsIGdldF9pdGVyYXRvciwgZm9yX2VhY2gsIG5jb21wYXJlOyBhZGQgYWJpbGl0eSB0byBoYXZlIG5lc3RlZAogICBjb250YWluZXJzOyBtb3JlIHV0aWxpdHkgcm91dGluZXM7IGNvbnZlbmllbmNlIG1hcmNyb3M7IHN0YXJ0IGFkZGluZyBjb21tZW50cwogICAKMjAwMi0wNy0xNiAwOToyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5Lmg6CgogICBkZWNsYXJhdGlvbnMgZm9yIGEgZ2VuZXJpYyBmYWN0b3J5CiAgIAoyMDAyLTA3LTE2IDA4OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9keW5peC5jLCBtZW1vcnlfaHB1eC5jCiwgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9ocHV4LmM6CgogICBBcHBseSBwYXRjaCBmcm9tIGJ1ZyByZXBvcnQgNTgxNjE4IChhbHNvIGFwcGxpY2FibGUgdG8gZHluaXgpCiAgIFByb3ZpZGVkIGJ5IE5pY2hvbGFzIEwuIE5pZ2F5CiAgIAoyMDAyLTA3LTE2IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgcmVtb3ZlICJvdXIiIHByb2JsZW0gYW5kIHVzZSBvbGRlciAidXNlIHZhcnMiIGluc3RlYWQgZm9yIG9sZGVyIHBlcmwuCiAgICAgKHRoaXMgc2hvdWxkIG1ha2UgaXQgd29yayB3aXRoIHBlcmwgNS4wMDUuICBDb3VsZCBzb21lIG9uZSB0ZXN0IHRoaXMKICAgICAgZm9yIG1lPykKICAgCjIwMDItMDctMTUgMDY6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIG5hbWVzIG9mIG5ldHNubXBfc3VidHJlZSBlbGVtZW50cyBjaGFuZ2VkCiAgIAoyMDAyLTA3LTE1IDA2OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNSAwNToyNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBTb21lIHJlYWxseSBuYXN0eSBoYWNrcyB0byBnZXQgY29sb3JpemVkIHRhYmxlcyB0byB3b3JrLgogICAKMjAwMi0wNy0xNCAyMDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWIudDoKCiAgIGNvbW1lbnQgb3V0IGJyb2tlbiB0ZXN0cyBmb3Igbm93IChYWFggbWFya2VkKQogICAKMjAwMi0wNy0xNCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZ2V0YnVsay4KICAgCjIwMDItMDctMTQgMjA6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBBIG5ldyBmdW5jdGlvbiB0byBjYWxsIGEgc3ViLWhhbmRsZXIgYnV0IHBhc3NpbmcgaXQgb25seSBvbmUgcmVxdWVzdCB0byBoYW5kbGUuCiAgIAoyMDAyLTA3LTEwIDIxOjIxICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkZWZpbmUgTE9HX0RBRU1PTiwgc2luY2Ugd2luZG93cyBkb2Vzbid0IGhhdmUgaXQKICAgCjIwMDItMDctMTAgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBkZWZpbmUgb2YgaW5fYWRkcl90LCB3aGljaCBjYW4gYmUgZm91bmQgaW4gbmV0LXNubXAvdHlwZXMuaAogICAKMjAwMi0wNy0xMCAwMjozNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTAgMDI6MzUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBkb24ndCB1c2UgMCBpbiAlcCBmb3JtYXQgc3BlY2lmaWVycwogICAKMjAwMi0wNy0xMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIGZpeCBzb21lIGhvcnJpYmxlIGluZGVudCBicm9rZW4gZm9ybWF0dGluZwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gcmVtb3ZlIHNvbWUgb2Jzb2xldGUgdmFyaWFibGVzCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHJlZmxlY3QgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcyBmcm9tIGFnZW50X3JlZ2lzdHJ5CiAgIAoyMDAyLTA3LTEwIDAyOjMyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgICAgLSBjaGFuZ2VzIGR1ZSB0byByZW5hbWluZyBvZiBzdHJ1Y3Qgc3VidHJlZSB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIE5PVEUgTUVNT1JZIExFQUsgKHdoaWNoIEkgY2FuJ3Qgc2VlIGhvdyB0byBmaXggLS0gbmV3IGFnZW50IEFQSQogICAgICAgZXhwZXJ0cyBwbGVhc2UgZXhhbWluZSkKICAgCjIwMDItMDctMTAgMDI6MjkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gbmFtZSwgc3RhcnQsIGVuZCBtZW1iZXJzIGFyZSBub3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHRvIHJlZHVjZQogICAgICAgd2FzdGVkIG1lbW9yeSAoYnkgYSBmYWN0b3Igb2YgNSBvciBzbykKICAgICAtIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCBjb25zaXN0ZW50bHkKICAgCjIwMDItMDctMTAgMDI6MjAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG5ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMDkgMDY6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUgY2FjaGVfaWQgc3RvcmFnZSB3aGVuIGNsb3Npbmcgc2Vzc2lvbgogICAKMjAwMi0wNy0wOSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0ganVzdCBjYWxsIG5ldHNubXBfZHNfc2h1dGRvd24oKSBvbmNlIGluIHNubXBfc2h1dGRvd24oKQogICAKMjAwMi0wNy0wOSAwNDoxNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBuZXRzbm1wX2ZpeHVwX21pYl9kaXJlY3RvcnkoKQogICAKMjAwMi0wNy0wOSAwMzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBhIGNhc3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wOCAyMjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGV4dGVybiBDIGZvciBDKysgY29tcGlsZXMKICAgCjIwMDItMDctMDggMDc6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wNy0wNyAxOTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0wNyAxOTozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA3LTA3IDE5OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIHByb2MuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDItMDctMDcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG1ha2UgcGFyYW0gY29uc3Q7IGZpeCBjb21waWxlIGNvbnN0IHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpeCBtZW1vcnkgbGVhazsgcHJlcCBhIGZldyBjb21tZW50cyBmb3IgaW5kZW50CiAgIAoyMDAyLTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMi5wcmUxICkKICAgCjIwMDItMDctMDYgMTQ6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSBwcm9qZWN0IHZlcnNpb24gdG8gNS4wLjIKICAgCjIwMDItMDctMDYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHNubXB0cmFwZCBpcyBhY3R1YWxseSBidWlsdCBpbiB0aGUgYXBwcyBkaXJlY3RvcnksIG5vdCB0aGUgYWdlbnQgZGlyZWN0b3J5LgogICAKMjAwMi0wNy0wNSAxMTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xhcmlmeSBkaXJlY3Rpb25zIGZvciBvYnRhaW5pbmcgcGVybC9TTk1QIG1vZHVsZS4KICAgCjIwMDItMDctMDUgMDU6MTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gLi4uCiAgIAoyMDAyLTA3LTA1IDAzOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2NsaWVudC5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gc3lzT2JqZWN0SUQgd2FzIGJlaW5nIHJldHVybmVkIG1pbnVzIGl0cyBsYXN0IHN1Yi1pZGVudGlmaWVyIGJlY2F1c2UKICAgICAgIHRoZSBsZW5ndGggdmFyaWFibGUgaGFkIG5vdCBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0IGl0CiAgICAgICBpcyBub3cgbG9uZ2VyLiAgQ29kZSBjaGFuZ2VkIHRvIHVzZSBzaXplb2YoKSBpbnN0ZWFkLCBzbyB0aGlzIHdvbid0CiAgICAgICBoYXBwZW4gYWdhaW4uICBSZXBvcnRlZCBieSBTdGlhbiBTb2lsYW5kIChidWcgIzU3NzQzOSkuCiAgIAoyMDAyLTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAKICAgCjIwMDItMDctMDQgMDc6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIGhhbmRsaW5nIG9mIG9wYXF1ZSBwb2ludGVyIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cyB0bwogICAgICAgYXZvaWQgYm90aCBtdWx0aXBsZSBmcmVlKCkgcHJvYmxlbSBhbmQgdW5uZWNlc3NhcnkgY29weWluZy4KICAgCjIwMDItMDctMDQgMDY6MDAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAoVjQtMi1wYXRjaGVzLls1LDldKSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTmV0d29ya0Rpc2sgcGF0Y2ggIzU1NDU1NAogICAKMjAwMi0wNy0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oCiAgIChWNC0yLXBhdGNoZXMuWzUsMV0pLCBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5GUyBmaWxlc3lzdGVtIHBhdGNoICM1NTQ1NTMKICAgKHNpbXBsaWZpZWQgdG8gYXZvaWQgdGhlIHJlLWluZGVudGF0aW9uIC0gd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIHNlZQogICAgd2hhdCdzIGNoYW5nZWQuICBUaGUgd2hvbGUgSG9zdFJlcyBncm91cCBuZWVkcyBjbGVhbmluZyB1cCBhbnl3YXkhKQogICAKMjAwMi0wNy0wNCAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5zdXJlIHRyYW5zcG9ydCBvcGFxdWUgZGF0YSBpc24ndCBtdWx0aXBseSBhc3NpZ25lZAogICAoYW5kIGhlbmNlIG11bHRpcGx5IGZyZWVkKSBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMuCiAgIERhdGFncmFtLWJhc2VkIHRyYW5zcG9ydHMgZG9uJ3Qgc3VmZmVyIGZyb20gdGhpcyBwcm9ibGVtLgogICBCYXNlZCBvbiBQYXRjaCA1NzM3NzEKICAgCjIwMDItMDctMDMgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGJlIHByZWNpc2UgYWJvdXQgd2hhdCBmaWxlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGFjY2VzcyBjb250cm9sCiAgIAoyMDAyLTA3LTAzIDE0OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCBtaW5vciBncmFtbWFyIGVycm9yczsgYWRkIGRlc2NyIGZvciBtaWIyYy5hcnJheS11c2VyOyBhZGQgc2VjdGlvbiBoZWFkZXIKICAgZm9yIGdlbmVyYXRpbmcgaGVhZGVyIGRlZmluaXRpb24gZmlsZXMKICAgCjIwMDItMDctMDMgMTM6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1vdmUgaW5jbHVkZSBmb3IgaW5fYWRkcl90IHRvIG5ldC1zbm1wL3R5cGVzLmgsIHdoZXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkCiAgIGZvciBzeXN0ZW1zIHcvb3V0IG5ldGluZXQvaW4uaAogICAKMjAwMi0wNy0wMyAxMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgbW9yZSB0d2Vha3Mgbm90aWNlZCBvbiB0aGUgbWFpbGluZyBsaXN0CiAgIAoyMDAyLTA3LTAzIDA4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBtYWtlIHRlc3QgY2xlYW51cHMgdGVzdC5wbAogICAKMjAwMi0wNy0wMyAwMzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMgKFY0LTItcGF0Y2hlcy4xKSwgdXRpbF9mdW5jcy5jCjoKCiAgIFNodXQgdGhlIGFnZW50IGRvd24gY2xlYW5seSBiZWZvcmUgcmVzdGFydGluZy4KICAgVGhpcyBjbG9zZXMgYW55IFNOTVAvQWdlbnRYIHBvcnRzIGFzIHdlbGwuCiAgIAoyMDAyLTA3LTAzIDAzOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBPSUQgc3ViLWlkZW50aWZpZXJzIGFyZSB1bnNpZ25lZCwgc28gdHJlYXRpbmcgdGhlbSBhcyBzaWduZWQgY2FuCiAgIGdpdmUgdGhlIHdyb25nIHJlc3VsdHMgd2l0aCBsYXJnZSB2YWx1ZXMuCiAgIAoyMDAyLTA3LTAzIDAzOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5oIChWNC0yLXBhdGNoZXMuNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIEVuc3VyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZC4KICAgCjIwMDItMDctMDMgMDI6MzQgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdGluZyBmb3IgPHN5cy9kaXNrbGFiZWwuaD4gcmVxdWlyZXMgPG1hY2hpbmUvdHlwZXMuaD4gb24gTmV0QlNEIDEuNS4KICAgUmVwb3J0ZWQgYnkgRmVsaWNpYSBOZWZmLgogICAoQXBwYXJlbnRseSBmcm9tIHRoZSBOZXRCU0QgYnVnIGRhdGFiYXNlIC0gd2h5IHRoZXkgZGlkbid0IHRlbGwgdXMgYWJvdXQKICAgaXQgaXMgYSBteXN0ZXJ5IHRvIG1lLi4uLikKICAgCjIwMDItMDctMDMgMDI6MTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc3lzT2JqZWN0SUQgYXMgcmVwb3J0ZWQgaW4gdGhlIGNvbmZpZ3VyZSAtLWhlbHAgb3V0cHV0LgogICAoVGhlIGFjdHVhbCB2YWx1ZSB1c2VkIGlzIGNvcnJlY3QgLSBpdCdzIGp1c3QgdGhlIGhlbHAgb3V0cHV0IHRoYXQncyB3cm9uZykuCiAgIFNwb3R0ZWQgYnkgU2FuZGh5YSBTYXR5YW5hcmF5YW4uCiAgIAoyMDAyLTA3LTAyIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgdXBkYXRlIHRleHQgZm9yIHZhcmlvdXMgLmNvbmYgZmlsZXMKICAgCjIwMDItMDctMDIgMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIGZpeGVzIG5vdGVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYnkgUGF0cmljZSBLYWRpb25payA8a2FkaW9uaWtAZW5zZWlyYi5mcj4KICAgCjIwMDItMDctMDIgMDI6MzkgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgJ3NubXBkJyBhbmQgJ3NubXB0cmFwZCcgYmluYXJ5IG5hbWVzIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXRocwogICB3aGVuIHNldHRpbmcgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgogICAKMjAwMi0wNy0wMSAwNzo1MyAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjgpLCBhc24xLmM6CgogICBFbmNvZGUvRGVjb2RlIE9JRHMgb2YgdGhlIGZvcm0gMi5YIChYID4gNDApIGNvcnJlY3RseS4KICAgCjIwMDItMDctMDEgMDI6NDAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGhvcnJpYmxlIGZvcm1hdHRpbmcgaW4gaGVscCBmb3IgdHJhbnNwb3J0cwogICAKMjAwMi0wNy0wMSAwMjoyMyAgZHRzMTIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgUGljayB1cCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIGZvciB0aGUgcm9vdCBvZiB0aGUgVUNEIGV4dGVuc2libGUgYWdlbnQgdGFibGVzCiAgIChzbyB0aGF0IHRoZSBFWEFNUExFLmNvbmYgZmlsZSBnZXRzIHNldCB1cCB3aXRoIHRoZSBjb3JyZWN0IG51bWVyaWMgT0lEcykKICAgCjIwMDItMDYtMjggMDY6NDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3RjcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjggMDQ6NDEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIFVwZGF0ZSBkZWZhdWx0IHN0b3JlIHJldHJpZXZhbCBmdW5jdGlvbnMgdG8gdXNlIHRoZSBjb3JyZWN0IG5hbWUuCiAgIAogICBOb3RlIHRoYXQgdGhpcyB0ZXN0IHNjcmlwdCBhcHBlYXJzIHRvIGluY2x1ZGUgdHdvIGluZmluaXRlIGxvb3BzLgogICBJJ20gbm90IGNsZWFyIGhvdyB0aGlzIGlzIGV4cGVjdGVkIHRvIHJ1biBzdWNjZXNzZnVsbHkgPwogICAKMjAwMi0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJlbW92ZSByZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IGRlZ3VnZ2luZyBmdW5jdGlvbi4KICAgCjIwMDItMDYtMjggMDQ6MzcgIGR0czEyCgogICAqIHBlcmwvbWFuYWdlci86IE1ha2VmaWxlLlBMLCBkaXNwbGF5dGFibGUucG0sCiAgIGdldFZhbHVlcy5wbSwgbWFuYWdlci5wbSwgc25tcHRvc3FsOgoKICAgQnJpbmcgcGVybCAnbWFuYWdlcicgbW9kdWxlIHVuZGVyIHRoZSBOZXRTTk1QIGJhbm5lcgogICAoYm90aCBpbiB0ZXJtcyBvZiBtb2R1bGUgZ3JvdXAgbmFtZSwgYW5kIHJlZmVyZW5jZXMgdG8gJ3VjZC1zbm1wJykuCiAgIFJlbW92ZSBzb21lIFVDRC1zcGVjaWZpYyBzZXR0aW5ncy4KICAgCiAgIE5vdGUgdGhhdCBzbm1wdG9zcWwgc3RpbGwgcmVmZXJzIGV4cGxpY2l0bHkgdG8gV2VzJyBVQ0QgZW1haWwgYWRkcmVzcywKICAgYW5kIG1hbmFnZXIucG0gdG8gV2VzJyBVQ0QgZmlsZXN0b3JlIHBhdGguICBUaGUgcmVsZXZhbnQgbGluZXMgaGF2ZQogICBiZWVuIGhpZ2hsaWdodGVkLCB0byBlbmNvdXJhZ2UgYW55b25lIHdpc2hpbmcgdG8gdXNlIHRoaXMgdG8gY2hhbmdlIHRoZW0uCiAgIAoyMDAyLTA2LTI4IDA0OjEyICBkdHMxMgoKICAgKiBwZXJsLzogQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBtYW5hZ2VyL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGNoZWNraW5nIGZvciAiaW50ZXJuYWwiIHByZXJlcXVpc2l0ZXMsIHNvIHRoYXQgInBlcmwgTWFrZWZpbGUuUEwiCiAgIGF0IHRoZSB0b3AgbGV2ZWwgd2lsbCB3b3JrIC0gZXZlbiBvbiBhIHByaXN0aW5lIHN5c3RlbS4KICAgCiAgIFFuOgogICAgIElzIGl0IG5lY2Vzc2FyeS9kZXNpcmFibGUgdG8gc2VwYXJhdGUgdGhlIE5ldFNOTVAgbW9kdWxlcyB0byB0aGlzIGV4dGVudD8KICAgV291bGQgaXQgbm90IGJlIHNpbXBsZXIgdG8gaGF2ZSBhbGwgb2YgdGhlIG1haW4gLnBtLy54cyBmaWxlcyBpbiBhIHNpbmdsZQogICBOZXRTTk1QIGRpcmVjdG9yeSwgYW5kIGNvbXBpbGUvaW5zdGFsbCB0aGVtIGFsbCBmcm9tIHRoZXJlPwogICAKMjAwMi0wNi0yOCAwMTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgLS13aXRoLWVudGVycHJpc2UgKGV0IGFsKSBiZWluZyBpbnZva2VkIHdpdGhvdXQgYSB2YWx1ZSwgYW5kIGJvbWIgb3V0LgogICAKMjAwMi0wNi0yNyAyMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbmV3IFJFQURNRSBkZXRhaW5saW5nIHRoZSB1c2Ugb2YgU0ZJTyB0byBjaXJjdW12ZW50IHRoZSAyNTUgZmQgbGltaXQgb24KICAgc29sYXJpcy4KICAgCjIwMDItMDYtMjcgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBjaGFuZ2luZyBhcnJheTsgYWRkIG5ldHNubXBfdGFibGVfYXJyYXlfcmVtb3ZlX3JvdygpCiAgIAoyMDAyLTA2LTI3IDA0OjE1ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgJ21ha2VkZXBlbmQnIChlLmcuIFJlZEhhdCA3LjEpLCBjYW4ndCBoYW5kbGUgIi1vc3VmZml4IgogICBhcyBhIHNpbmdsZSBvcHRpb24uICBBbGwgdmVyc2lvbnMgc2VlbSBoYXBweSB3aXRoICItbyBzdWZmaXgiIHNvIHVzZSB0aGF0LgogICAKMjAwMi0wNi0yNyAwMzozMSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBFTlZfU0VQQVJBVE9SX0NIQVIgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyAnOicgaW4gbmV0c25tcF9zZXRfbWliX2RpcmVjdG9yeQogICAoYXMgc3VnZ2VzdGVkIGJ5IFJvYmVydCkKICAgCjIwMDItMDYtMjcgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3VkcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjcgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX21pYi5jCjoKCiAgIFZhbGlkYXRlIG5ldyBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgdmFsdWUgYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCiAgIFNwb3R0ZWQgJiBmaXhlZCBieSBTaGFudGhhIEt1bWFyYQogICAKMjAwMi0wNi0yNSAxNDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIEFQUFRPUFMgKC1DcSkgZm9yIHN1cHByZXNzaW5nIG91dHB1dCBvZiBzZXQgcmVzdWx0cyBvbiBzdWNjZXNzCiAgIAoyMDAyLTA2LTI1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBcHBseSBwYXRjaCAjNTU5ODQ4IHRvIHVzZSB0aGUgL3Byb2MgcHNldWRvLWZpbGVzeXN0ZW0gdW5kZXIgTGludXgKICAgKHJhdGhlciB0aGFuIHBhcnNpbmcgdGhlIG91dHB1dCBvZiBwcykKICAgCjIwMDItMDYtMjUgMDg6NTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ2hlY2sgZm9yICdhaXg0JyAod2hpY2ggaXMgdGhlIHRva2VuIGRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXIgZmlsZSkKICAgcmF0aGVyIHRoYW4gJ2FpeCcuICAgU2VlIGJ1ZyAjNTY1NzY5CiAgIAoyMDAyLTA2LTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBUcmVhdCAnMCcgYXMgYW4gaW52YWxpZCBpbmRleCBmb3IgYSAic2ltcGxlIHRhYmxlIi4KICAgCjIwMDItMDYtMjUgMDc6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc3lzQ29udGFjdC4wIGFuZCBzeXNMb2NhdGlvbi4wCiAgIGNvbmZpZ3VyYXRpb24gdG9rZW5zLgogICAKMjAwMi0wNi0yNSAwNjo0MCAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcDoKCiAgICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IHRvIGRlZmF1bHRfc3RvcmUgZnVuY3Rpb25zCiAgIAogICAgIC0gY2xlYW4gdXAgbWFucGFnZSBhIGJpdAogICAKICAgICAtIGZpeCBicmVha2FnZSBpbiBnZW5lcmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUuMy5oIGR1ZSB0byBhdXRvLWluZGVudGF0aW9uCiAgICAgICBvZiBkZWZhdWx0X3N0b3JlLmgKICAgCjIwMDItMDYtMjUgMDI6NTUgIGpicG4KCiAgICogRVhBTVBMRS5jb25mLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBFWEFNUExFLmNvbmYuZGVmOgoKICAgICAtIG1lbnRpb24gdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uIGV0IGFsLiBpbiBzbm1wZC5jb25mIG1ha2VzIHRoZW0KICAgICAgIHJlYWQtb25seQogICAKICAgICAtIGFsc28gY2hhbmdlIHN5bnRheCBvZiBhbGwgZXhhbXBsZSBjb21tYW5kIGxpbmUgdG9vbHMgdG8gdXNlIG5ld2VyCiAgICAgICAtYyBDT01NVU5JVFkgc3ludGF4IG5vdCBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKMjAwMi0wNi0yNCAwODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBtYWtlIGJ1ZmZlciBzaXplIGluY3JlYXNlIG5vdGUgYSBkZWJ1ZyBzdGF0ZW1lbnQgcmF0aGVyIHRoYW4gYSBnZW5lcmljCiAgIGxvZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTA2LTIzIDE4OjQwICBkcmllaHVpcwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEhhbmRsZSBDT1VOVEVSNjQgaW4gX190cmFuc2xhdGVfYXNuX3R5cGUuCiAgIAoyMDAyLTA2LTIzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzY3JpcHQgYW5kIHRoZSBsYW5ndWFnZSBpdCBob3VzZXMuCiAgICAgKG1hbiBwYWdlIGF1dG8tZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnRhaW5lZCBwb2QgZG9jdW1lbnRhdGlvbikKICAgCjIwMDItMDYtMjMgMTU6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICB1cGRhdGUgdG8gcmVmZXJlbmNlIHRvcCBsZXZlbCBNYWtlZmlsZS5QTAogICAKMjAwMi0wNi0yMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjQtMi1wYXRjaGVzLjEpLCBTTk1QLnhzOgoKICAgZml4IHJlcG9ydGVkIGJ5IFdpbGxlbSBEZWtrZXIgZm9yIFdpbmRvd3MuICBCdWcgIzU0MzE5NCBmaXhlZC4KICAgCjIwMDItMDYtMjIgMDg6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgZm9yIHJlY2VudCBtZXRob2RvbG9naWVzCiAgIAoyMDAyLTA2LTIxIDE2OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpbmFsIChob3BlZnVsbHkhKSBmaXggZm9yIHBhcnNpbmcgaXAgYWRkcmVzc2VzIGZyb20KICAgIkZjby4gSmF2aWVyIFJpZHJ1ZWpvIiA8YWNicmlwZWZAc2kuZWh1LmVzPgogICAKMjAwMi0wNi0xOSAxNDozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZyb20gZG94eWdlbgogICAKMjAwMi0wNi0xOSAxMTo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pbnRfd2F0Y2guY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBzY2FsYXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgZ2VuZXJhdGluZyBzY2FsYXIgY29kZS4KICAgCjIwMDItMDYtMTkgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGNsZWFuIHVwIG11bHRpLWxpbmUgY29tbWVuZCB3aGljaCB3YXMgbWVzc2VkIHVwIGJ5IGluZGVudC4KICAgCjIwMDItMDYtMTkgMTE6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBhZGQgc3VwcG9ydCBmb3IgcHJvbXB0aW5nIG9mIHVua25vd24gcGFyYW1ldGVycyB0byBhbGlhc2VzLgogICAtIG1pc2Mgb3RoZXIgaW1wcm92ZW1lbnRzIChsaWtlICJyZWhhc2giKQogICAKMjAwMi0wNi0xOSAxMTozOCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGZvciBuZXcgZGVmYXVsdCBzdG9yZSBBUEkKICAgCjIwMDItMDYtMTkgMTE6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQVJHR0dHR0cKICAgSSBsb3ZlIHBlcmwuCiAgIEkgaGF0ZSBwZXJsJ3MgbWFrZSBzeXN0ZW0uCiAgIEkgaGF0ZSB0aGUgZmFjdCB0aGF0IHBlcmwgc2VnZmF1bHRzIGlmIEdldE9wdGlvbnMoKSBpcyBjYWxsZWQgbW9yZQogICB0aGFuIG9uY2UuCiAgIHNpZ2guCiAgIFRoaXMgaG9wZWZ1bGx5IHdpbGwgZml4IHRoZSBwZXJsIG1vZHVsZSBidWlsZCByb3V0aW5lcyBzbyBpdCBhdCBsZWFzdAogICB3b3JrcyAoYnV0IGl0J3Mgc3RpbGwgdWdseSBhbmQgY291bGQgdXNlIG1vcmUgY2xlYW5pbmcpLgogICAKMjAwMi0wNi0xOSAwNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBpbmZpbnRlIGxvb3AgYW5kIGFkZCBkZWJ1ZyBpbiByZW1vdmVfZGVsZWdhdGVkCiAgIAoyMDAyLTA2LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBOVUxMIHRoZSBwcml2IHBvaW50ZXIgb24gc2Vzc2lvbiBkdXBsaWNhdGlvbi4gIHRoYW5rcyB0byByZXppdG96CiAgIAoyMDAyLTA2LTE3IDA2OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2VkIEthdHN1aGlzYSdzIGVtYWlsIGFkZHJlc3MsIG9uIHJlcXVlc3QKICAgCjIwMDItMDYtMTQgMDc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM1NjkwMjE6IGZyb20gTGF1cmkgTXlsbGFyaQogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHRoZSB0YWJsZSBpdGVyYXRvciBzdXBwb3J0LgogICAKMjAwMi0wNi0xNCAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbGllZCBwYXRjaCAjNTY5MDIwIGZyb20gcmV6aXRveiBvbiBJUkMgdG8gZml4IG5vbi1pbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMi0wNi0xNCAwMzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgQWRkIChudWxsKSBjb250ZXh0LCB0byBicmluZyBpbnRvIGxpbmUgd2l0aCB0aGUgdjUgcmVnaXN0cnkgQVBJcy4KICAgRml4ZXMgYnVnIDU2ODU4MC4KICAgCjIwMDItMDYtMTQgMDI6MjcgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFVzZSBtYXRjaGluZyAnIGFuZCAiIHF1b3RlcyBmb3IgQUlYIGNvbmZpZ3VyZSB0ZXN0LgogICBNZW50aW9uZWQgaW4gcGFzc2luZyBpbiBidWcgNTY1NzY5LgogICAKMjAwMi0wNi0xMyAxNDozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgZml4IGRlZmF1bHRfc3RvcmUgcm91dGluZXMKICAgCjIwMDItMDYtMTIgMDY6NDMgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQnJpbmcgV2luZG93cyBPSUQgdXNhZ2UgaW50byBsaW5lIHdpdGggdGhlIG1haW4gY29uZmlnIGZpbGUgc2V0dGluZ3MuCiAgIAoyMDAyLTA2LTEyIDA2OjM3ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ29ycmVjdCB0aGUgZGVmYXVsdCBFbnRlcnByaXNlIE9JRCB1c2VkIGluIHRyYXBzLCB0byBhdm9pZCBhIHJlcGVhdGVkIDAKICAgc3ViaWRlbnRpZmllci4gIChGaXhlcyBidWcgIzU2NjkxNykKICAgCjIwMDItMDYtMTIgMDU6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSAnbGVuZ3RoJyBhcyBhIHNpZ25lZCB2YXJpYWJsZSwgc28gaXQgY2FuIGhhbmRsZSBhbiBlcnJvciB2YWx1ZSBvZiAtMS4KICAgUmVwb3J0ZWQgYnkgSm9ha2ltIEFsdGhpbmkuCiAgIAoyMDAyLTA2LTEyIDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHN1cmUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5leHQgbGluayBpcyBwcm9wZXJseSBzYXZlZCwgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgogICBQcm9ibGVtIGRpc2NvdmVyZWQgYnkgSHVnbyBDYWNvdGUuCiAgIAoyMDAyLTA2LTEyIDAyOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvYWdlbnRfaW5kZXguaCwgYWdlbnQvYWdlbnRfdHJhcC5oCiwgYWdlbnQvYWxsX2hlbHBlcnMuaCwgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9idWxrX3RvX25leHQuaCwgYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9tdWx0aXBsZXhlci5oLCBhZ2VudC9udWxsLmgKLCBhZ2VudC9vbGRfYXBpLmgsIGFnZW50L3JlYWRfb25seS5oLAogICBhZ2VudC9zZXJpYWxpemUuaCwgYWdlbnQvc2V0X2hlbHBlci5oLAogICBsaWJyYXJ5L2NtdV9jb21wYXQuaCwgbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCBsaWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVENQRG9tYWluLmgsIGxpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIGxpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCBsaWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBsaWJyYXJ5L3NubXBfc2VjbW9kLmgsIGxpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgbGlicmFyeS91Y2RfY29tcGF0Lmg6CgogICBTdXBwbHkgbWlzc2luZyAjaWZuZGVmLyNkZWZpbmUvI2VuZGlmIGFuZCBleHRlcm4gIkMiIHt9IHdyYXBwZXJzCiAgIAoyMDAyLTA2LTExIDE3OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlbW92ZSBzcHVyaW91cyBwcmludGYgdG8gc3RkZXJyCiAgIAoyMDAyLTA2LTExIDE0OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYWRkIGV4dGVybiAiQyI7IGFkZCB2b2lkX2FycmF5IHN0cnVjdAogICAKMjAwMi0wNi0xMSAxNDoyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB0c2VhcmNoOyB1c2UgbmV3IGNvbnRhaW5lciBpbnN0ZWFkCiAgIAoyMDAyLTA2LTExIDE0OjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGNvbnRhaW5lciBmb3Igc2Vjb25kYXJ5IGluZGV4CiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjb250YWluZXIgdG8gaGVhZGVyczsgYWRkIGNvbnRhaW5lci5jCiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGluaXQgZnVuY3Rpb25zIGZvciBiYXNpYy9zb3J0ZWQgY29udGFpbmVyCiAgIAoyMDAyLTA2LTExIDE0OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgbW9yZSBtZXRob2RzIGZvciBiYXNpYyBjb250YWluZXI7IGFkZCBzb3J0ZWQgKHdpbGwgcHJvYmFibHkgcmVuYW1lKSBjb25hdGluZXIKICAgCjIwMDItMDYtMTEgMTI6MjIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVkZXM7IGFkZCBleHRlcm4gIkMiIGZvciBfX2NwbHVzcGx1cwogICAKMjAwMi0wNi0xMSAxMToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgbmV0c2gsIHNubXBzaDoKCiAgIHJlbmFtZWQgc25tcHNoIHRvIG5ldHNoLCBhcyBJIGxpa2UgdGhlIG5hbWUgYmV0dGVyIGFuZCBpdCBhcHBlYWxzIHRvIGEKICAgd2lkZXIgbnVtYmVyIG9mIHBlb3BsZS4KICAgCjIwMDItMDYtMTAgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGRlbGV0aW5nIGFuIGFzcCBwb2ludGVyLCBtYWtlIHN1cmUgaXQgaXNuJ3QgaW4gdGhlIGRlbGVnYXRlZCBsaXN0CiAgIAoyMDAyLTA2LTEwIDA4OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBwYXJzZV9vbmVfb2lkX2luZGV4IHRvIGFsbG93IHRvbyBzaG9ydCBJUCBhZGRyZXNzIHdoZW4gY29tcGxldGUgaXMKICAgc3BlY2lmaWVkOyBhZGQgbmV0c25tcF9vaWQyY2hhcnMgJiBuZXRzbm1wX29pZDJzdHIKICAgCjIwMDItMDYtMTAgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkZWZhdWx0X3N0b3JlIGRlZmluZXMKICAgCjIwMDItMDYtMTAgMDc6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvTWFrZWZpbGUuUEw6CgogICBUb3AgbGV2ZWwgcGVybCBNYWtlZmlsZS5QTCB0byBpbnN0YWxsIHRoZSB3aG9sZSBidW5jaCB1bmRlcm5lYXRoLgogICBUaGlzIHNob3VsZCBub3cgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBsb3dlciBsZXZlbCBtYWtlZmlsZXMgZm9yCiAgIHNpbXBsaWNpdHkuCiAgIAoyMDAyLTA2LTEwIDA3OjI3ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIEFja25vd2xlZGdlIGtub3duIGZhaWxpbmcgdGVzdHMuCiAgIFRoaXMgbWVzc2FnZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoZSBwcm9ibGVtIGhhcyBiZWVuIGlzb2xhdGVkIGFuZCBmaXhlZC4KICAgCjIwMDItMDYtMTAgMDc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0IGZvciBpcGFkZHJlc3MgYnVpbGRpbmcvcGFyc2luZyBvZiBPSUQgaW5kZXhlcy4KICAgCjIwMDItMDYtMTAgMDI6MDcgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBNZW50aW9uIHRoZSBvdGhlciBwZXJsIG1vZHVsZXMsIGludHJvZHVjZWQgd2l0aCB2NSAocGFydGljdWxhcmx5ICdkZWZhdWx0X3N0b3JlJykKICAgCjIwMDItMDYtMTAgMDE6MjggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBOZXcgZW50cnkgZGVzY3JpYmluZyBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRyYXAgaGFuZGxlcnMuCiAgIAoyMDAyLTA2LTA4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNi0wOCAyMDo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYnJlYWsgcGVybCBtYWtlZmlsZSBjcmVhdGlvbiBpbnRvIHNlcGVyYXRlIHN0ZXA7IG9ubHkgY2xlYW4gcGVybCBkaXJlY3RvcnkKICAgaWYgdGhlcmUgaXMgYSBtYWtlZmlsZQogICAKMjAwMi0wNi0wOCAyMDoxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHBlcmx0ZXN0IHRhcmdldCB0byBtYWtlIHRlc3QgaW4gYWxsIHBlcmwgZGlyZWN0b3JpZXMKICAgCjIwMDItMDYtMDggMDk6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBmaXggdG8gZGVhbCB3aXRoIHVwZGF0ZWQgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wNi0wOCAwNzowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSB0byBTUUwtU3RhdGVtZW50IHJlcXVpcmVtZW50IG9mIDEuMDA0CiAgIAoyMDAyLTA2LTA4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBtaWIgaW5pdCBjb2RlIGZyb20gQyBzbm1wX3RyYW5zbGF0ZV9vYmogY2FsbAogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbml0X3NubXAgaW5zaWRlIHRyYW5zbGF0ZU9iagogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gMC4xCiAgIAoyMDAyLTA2LTA4IDA2OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBBIGZldyBjbGVhbnVwcyB0byBpZmNvbmZpZyBhbmQgbmV0c3RhdCBjb21tYW5kcwogICAKMjAwMi0wNi0wOCAwNjozNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgLSBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgaW1wb3J0L2V4cG9ydCBvZiBkYXRhIChjdXJyZW50bHkgdG8vZnJvbSBDU1YpLgogICAtIHN1cHBvcnQgZm9yICJkaWZmIiB3aGljaCBjb21wYXJlcyBvbGQgKHBvc3NpYmx5IGltcG9ydGVkIGRhdGEpIHRvIGN1cnJlbnQuCiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSByZXF1aXJlZCBTTk1QIG1vZHVsZSB2ZXJzaW9uIGZyb20gNCB0byA1CiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSB0dXRvcmlhbCBwbGFjZSBob2xkZXIgY29tbWVudCBPSUQuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0a21pYiBmb3IgbmV3ZXIgcGVybCBtb2R1bGVzLgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICB0dXJuIG9mZiBleHRyYSBib2xkL3VuZGVybGluZSBmb3JtYXR0aW5nIGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA2LTA3IDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZ2VuZXJpYyBjb250YWluZXIgc3RydWN0dXJlIGZvciBzdG9yaW5nIGRhdGEKICAgCjIwMDItMDYtMDcgMTM6MDEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA2LTA3IDEwOjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSB0byBrZWVwIGluIGxpbmUgd2l0aCBjb25maWd1cmUuaW4gKHdoeT8gc2hvdWxkbid0CiAgIGNvbmZpZ3VyZSBub3QgYmUgaW4gQ1ZTIGFuZCBiZSBhdXRvZ2VuZXJhdGVkPyBPbmUgb2YgdGhlc2UgZGF5cyBJJ20gZ29pbmcKICAgdG8gaGF2ZSB0byBsZWFybiBhdXRvY29uZi4uLi4pCiAgIAoyMDAyLTA2LTA3IDEwOjM1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWx3YXlzIGNoZWNrIHJldHVybiBzdGF0dXMgb2YgbWFrZSB3aGVuIGluc2lkZSBhIGxvb3AsIGFuZCBleGl0IG9uIGVycm9ycwogICAKMjAwMi0wNi0wNyAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4zKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgT25seSBudWxsLXRlcm1pbmF0ZSB0aGUgaW50ZXJmYWNlIG5hbWUgd2hpbGUgaXQncyBhY3R1YWxseSBiZWluZyBjb3BpZWQuCiAgIFJlc3RvcmUgdGhlIGRhdGEgbGluZSBhZnRlcndhcmRzLCBzbyB0aGUgZGVidWdnaW5nIG91dHB1dCBpcyBtZWFuaW5nZnVsLgogICAKMjAwMi0wNi0wNyAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGZvciBpbmRleGluZyBlcnJvciwgdGhhdCBjYXVzZXMgYSBjcmFzaCBpZiBtb3JlIHRoYW4gMTYgdmFyYmluZHMKICAgYXJlIGFkZGVkIHRvIHRoZSBjYWNoZSBpbiBvbmUgZ28uICBTcG90dGVkIGJ5IFNoYW50aCBLdW1hcmEKICAgCjIwMDItMDYtMDYgMDE6MTIgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLls3LDVdKSwgYWNsb2NhbC5tNCwKICAgY29uZmlndXJlOgoKICAgRG9uJ3QgZGlmZmVyZW5jaWF0ZSBiZXR3ZWVuIGVsZi0gYW5kIGEub3V0LWJhc2VkIE5ldEJTRCBzeXN0ZW1zLgogICAoUHJvYmxlbSBoaWdobGlnaHRlZCBieSBGZWxpY2lhIE5lZmYpCiAgIAoyMDAyLTA2LTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHB1dCBkZWZpbmVzIGZvciBzb2NrbGVuX3QgYW5kIGluX2FkZHJfdCBpbiBuZXQtc25tcC90eXBlcy5oIGluc3RlYWQgb2YgaGF2aW5nCiAgIGNvbmZpZ3VyZSBnZW5lcmF0ZSB0aGVtOyBjb25maWd1cmUgaW5zdGVhZCBnZW5lcmF0ZXMgSEFWRV9TT0NLTEVOX1QgYW5kCiAgIEhBVkVfSU5fQUREUl9UIGZvciBzeXN0ZW1zIHdoaWNoIGRvbid0IG5lZWQgdGhlIGRlZmluZXM7IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgV2luMzIgcGxhdGZvcm0sIHdoaWNoIGRvZXNuJ3QgaGF2ZSBjb25maWd1cmUuCiAgIAoyMDAyLTA2LTA1IDA5OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZG9uJ3QgYWR2YW5jZSByZXF1ZXN0IHBvaW50ZXIgaW5zaWRlIGZvciBsb29wLCBzaW5jZSBmb3IgbG9vcCBkb2VzIGl0IGZvcgogICB1czsgb3RoZXJ3aXNlIGZvciBsb29wIG1heSBlbmQgdXAgZGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIuCiAgIAoyMDAyLTA2LTA1IDA2OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgdmFyaW91cyB1bml4IHV0aWxpdGllczoKICAgIC0gY3VycmVudGx5OiBuZXRzdGF0LCBwcywgZGYsIGlmY29uZmlnCiAgIAoyMDAyLTA2LTA1IDA2OjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3NjbGk6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBpbiBKdWVyZ2VuJ3MKICAgc2NsaSBjb21tYW5kLgogICAKMjAwMi0wNi0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgbmV3IGNvbW1hbmRzOgogICAgIHNvdXJjZSBmaWxlIC0tIHNvdXJjZXMgYW4gcmMgZmlsZQogICAgIHdhdGNoIGV4cHJlc3Npb24gLS0gcmVwZWF0ZWRseSBydW5zIGEgY29tbWFuZCBhbmQgY29sb3JpemVzCiAgICAgICBkaWZmZXJlbmNlcyBpbiBkYXRhCiAgICAgZXZhbCBleHByZXNzaW9uIC0tIGV2YWx1YXRlcyBhbiBleHByZXNzaW9uIGRpcmVjdGx5IGluIHBlcmwKICAgICAgIC0gYmVnaW5uaW5ncyBvZiBvdmVybG9hZHMgaW4gcGVybCBzbyB0aGF0IGNhbGxpbmcgc3lzQ29udGFjdCgpCiAgICAgICAgIHdpbGwgcmV0dXJuIHRoZSBzeXNDb250YWN0IHZhbHVlLiAgdGFibGVzIG5vdCByZXR1cm5lZCB5ZXQuCiAgIGZpeGVzOgogICAgIHR1cm5zIG9mIG9ybmFtZW50YWwgcHJvbXB0IHN1cHBvcnQgKGljaykgYnkgZGVmYXVsdAogICAKMjAwMi0wNi0wNSAwNDo0MyAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xIChWNC0yLXBhdGNoZXMuOCksIHNubXBjbWQuMS5kZWY6CgogICBCcmllZiBtZW50aW9uIG9mIHRoZSBuZWVkIHRvIHF1b3RlIE9JRHMgY29udGFpbmluZyBzdHJpbmcgaW5kZXhlcywKICAgdG8gcHJvdGVjdCB0aGUgZG91YmxlIHF1b3RlcyBmcm9tIHRoZSBzaGVsbC4KICAgCjIwMDItMDYtMDQgMTA6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhIG51bGwgdHJlZWNhY2hlIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0CiAgIAoyMDAyLTA2LTA0IDEwOjMzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYXNwLT5wZHUgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldC4KICAgCjIwMDItMDYtMDQgMDU6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgZm9yIHByaW50Ziwgc2luZ2xlIHF1ZXJ5L3NldHMgb2Ygc2NhbGFycywgbXVsdGktbGluZSBhbGlhc2VzLgogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBtYWtlIG5ldygpIG9wZXJhdG9yIGEgYml0IHNtYXJ0ZXIKICAgCjIwMDItMDUtMjkgMTk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9hbGFybS5jOgoKICAgc2V0IHRoZSBzdG9yYWdlIHBvaW50ZXIgdG8gTlVMTCwgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBIb3kuCiAgIAoyMDAyLTA1LTI5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIEFQSWlmeSBNSUJESVJTIHN1cHBvcnQKICAgCjIwMDItMDUtMjkgMDc6NDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBFeHBhbmQgb24gd2hlbiBPcGVuU1NMIGlzIG5lY2Vzc2FyeSwgYW5kIGhvdyB0byBjb21waWxlIHVzaW5nIGl0LgogICAKMjAwMi0wNS0yOSAwNjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBTZXQgUkVVU0VBRERSIHNvIHRoYXQgc3BlY2lmeWluZyB0aGUgc2FtZSBwb3J0IHR3aWNlIGRvZXNuJ3Qga2lsbCB0aGUgYWdlbnQuCiAgIChTdWdnZXN0ZWQgYnkgUm9iZXJ0IEhhc3RpbmdzKQogICAKMjAwMi0wNS0yOSAwMjo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIFJlZmVyZW5jZSBib3RoIHZlcnNpb25zIG9mIHRoZSB0dXRvcmlhbCAoc2luY2UgdGhpcyBkb2N1bWVudCBpcyB1c2VkCiAgIGZvciBidWlsZGluZyB0aGUgb24tbGluZSB2ZXJzaW9uIG9mIHRoZSBGQVEpCiAgIAoyMDAyLTA1LTI5IDAyOjE2ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy40KSwgRkFROgoKICAgQ2xhcmlmeSB0aGF0IHRyYXAgZmlsdGVyaW5nIGlzIG5vdCB5ZXQgb3BlcmF0aW9uYWwuCiAgIAoyMDAyLTA1LTI4IDE0OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHJlbW92ZSBeTSBjaGFycwogICAKMjAwMi0wNS0yOCAxNDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpeCBsb2dpYyBpbiBjYW5fZGVsZXRlOyBjb25zb2xpZGF0ZSB1c2Ugb2YgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0IGJ5IHNldHRpbmcKICAgcmMgZm9yIHVzZSBhdCBlbmQgb2YgbG9vcDsgZG9uJ3QgdXNlIHJlbW92ZWQgbWFjcm9zIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUsCiAgIHVzaW5nIG5ldyBuZXRzbm1wX2NoZWNrX3ZiKiByb3V0aW5lcyBpbnN0ZWFkOyBhZGQgYXNzZXJ0cyBmb3IgZXJyb3IgY2FzZXMgdGhhdAogICBzaG91bGQgYmUgY2F1Z2h0IGJ5IGVhcmxpZXIgcm91dGluZXMKICAgCjIwMDItMDUtMjggMTQ6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgY2FsbGJhY2tzIGZvciByb3cgKGRlKWFjdGl2YXRpb24KICAgCjIwMDItMDUtMjggMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgIiNpbmNsdWRlIDxzZWFyY2guaD4iIHdpdGggdGhlIEhBVkVfU0VBUkNIX0ggdG9rZW4uICAoU3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjggMDY6MjAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIEZpeCB0aGUgZGVjbGFyYXRpb24gb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50LiAoU3BvdHRlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI3IDAxOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRG9uJ3QgaGFyZHdpcmUgc3lzbG9nIGZhY2lsaXR5IHRvIExPR19EQUVNT04uCiAgIEZpeCBwcm92aWRlZCBieSBKb2FraW0gRmFsbHNqby4KICAgCjIwMDItMDUtMjcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvc25tcHRyYXBkLmMKICAgKFY0LTItcGF0Y2hlcy5bMiw4XSksIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBUd2VhayAndXNtVXNlcicgaGVscCBzdHJpbmcgdG8gYWNjdXJhdGVseSByZWZsZWN0IHdoaWNoIGJpdHMgYXJlIG9wdGlvbmFsLgogICBSZXBvcnRlZCBieSBBbGkgQ2hhbmF1aS4KICAgCjIwMDItMDUtMjcgMDE6MjIgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY0LTItcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mICJmaWxlIiBkaXJlY3RpdmVzLgogICAKMjAwMi0wNS0yNyAwMToxNyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2gsIHRoYXQgY29uZnVzZXMgc29tZSAnbWFrZSdzCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgUHJvcGVyIGNyZWF0aW9uIG9mIHJldHVybmVkIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50cyBvbiByZXR1cm5lZCBtaWIgcmVnaXN0cmF0aW9uIG9iamVjdHMgc28KICAgdGhleSdyZSBub3QgYXV0by1jbGVhbmVkIGJ5IHBlcmwgKHRoZSBhZ2VudCBub3cgaGFzIGEgY29weSBvZiB0aGUgcG9pbnRlcikKICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGRlZmF1bHRfc3RvcmUgbmV0c25tcF8gcHJlZml4ZXMuCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIHNjYWxhcnMgKG1pYjJjLnNjYWxhci5jb25mIGZpbGUgY29taW5nIHNob3J0bHkpCiAgIAoyMDAyLTA1LTI0IDA5OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEEgbmV3IHJ1bGUgY2FsbGVkICJjb21tZW50Y2hlY2siIHRvIGdyZXAgYWxsIHNvdXJjZXMgZm9yIC8vIGNvbW1lbnRzLgogICAKMjAwMi0wNS0yNCAwODowOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERlY2xhcmUgJ3JlZ2lzdGVyX21pYl9kZXRhY2hfbm9kZScgYmVmb3JlIGl0J3MgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgIChTcG90dGVkIGJ5IFhpYW5nIFpoYW5nKQogICAKMjAwMi0wNS0yNCAwNzo0NCAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaC4KICAgKFRoYXQgKm1pZ2h0KiBiZSBjb25mdXNpbmcgU3VuJ3MgbWFrZSwgYnV0IGlzIHdyb25nIGFueXdheSkKICAgCjIwMDItMDUtMjMgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9ic2RpNC5jLAogICB2bXN0YXRfZHluaXguYywgdm1zdGF0X2ZyZWVic2QyLmMsIHZtc3RhdF9ocHV4LmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgQnJpbmcgdGhlIHZhcmlvdXMgJ3Zhcl9leHRlbnNpYmxlX3Ztc3RhdCcgZGVmaW5pdGlvbnMgaW50byBsaW5lCiAgIHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZmlsZSAtIGkuZS4gbm9uLXN0YXRpYy4KICAgCjIwMDItMDUtMjEgMTU6MjUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtSSQoc3JjZGlyKS9pbmNsdWRlIHRvIENQUCBwYXRoIGZvciBwZW9wbGUgYnVpbGRpbmcgb3V0c2lkZSBvZiBzcmMgdHJlZQogICAKMjAwMi0wNS0yMSAwODoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNTU4MTI5IF0gTWFrZSB0aGUgdHVubmVsIG1pYiBjb21waWxlIGluIDUuMC4xLCBzdWJtaXR0ZWQKICAgYnkgTG9yZW56byBDb2xpdHRpIChsY29saXR0aSksIHdoaWNoIGFkZHMgbWlzc2luZyBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNS0yMSAwNTozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBjb3JlIGR1bXAgaW4gLXUgb3B0aW9uIHByb2Nlc3NpbmcsIG5vdGVkIGJ5IEFuZHJlYXMgTWF1cwogICAKMjAwMi0wNS0yMSAwNToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjkpLCBtZW1vcnkuYwo6CgogICBMYXRjaCBtZW1vcnkgcmVwb3J0aW5nIGF0IDJeMzEtMSwgcmF0aGVyIHRoYW4gMl4zMi0xIHNpbmNlIHRoZXNlCiAgIG9iamVjdHMgYXJlIGRlZmluZWQgYXMgKHNpZ25lZCkgSW50ZWdlcjMyLgogICBPbmx5IGxhdGNoIGlmIHRoZSB2YWx1ZSBpcyAqZ3JlYXRlciogdGhhbiB0aGlzIHRocmVzaG9sZCwgbm90IGxlc3MhCiAgIAoyMDAyLTA1LTIxIDAxOjIwICBqYnBuCgogICAqIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3VjZF9jb21wYXQuYwo6CgogICAgIC0gYWRkIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucyBmb3IgbmV3bHktcmVuYW1lZAogICAgICAgZGVmYXVsdCBzdG9yZSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgKGRlZmluZWQgaWZmCiAgICAgICAtLWVuYWJsZS11Y2QtY29tcGF0aWJpbGl0eSBpcyBnaXZlbiB0byBhdCBjb25maWd1cmF0aW9uIHRpbWUpCiAgIAoyMDAyLTA1LTIxIDAwOjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgICAtIG1vdmUgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX2RzX3JlYWRfY29uZmlnIHR5cGUgZnJvbSBkZWZhdWx0X3N0b3JlLmgKICAgICAgIGludG8gZGVmYXVsdF9zdG9yZS5jIChzaW5jZSBpdCBpcyBub3QsIGFuZCBzaG91bGQgbm90LCBiZSB1c2VkCiAgICAgICBlbHNld2hlcmUpLgogICAKMjAwMi0wNS0yMCAwMzo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVnaXN0ZXJzIHRva2VucyBmb3IgaXB2NiByby9ydyBjb21tdW5pdHksIGFuZCBtYWtlIHN1cmUgdG8gcGFyc2UgdGhlbQogICBhcyBpcHY2LCBub3QgdjQuCiAgIAoyMDAyLTA1LTE5IDExOjM4ICBkcmllaHVpcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEJ1Z2ZpeCBmb3IgRnJlZUJTRCBzdXBwb3J0IG9mIHRoZSBkaXNrSU8gbWliLiBUaGUgb3JpZ2luYWwgY29kZSBuZWdsZWN0ZWQKICAgdGhlIGRldmljZSBudW1iZXIsIHdoaWNoIG1hZGUgZGlzdGluZ3Vpc2hpbmcgYmV0d2Vlbiwgc2F5LCBhZDAgYW5kIGFkMQogICBpbXBvc3NpYmxlLgogICAKMjAwMi0wNS0xNyAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBzbGlnaHRseSByZWR1Y2UgbWVtb3J5IGNvc3RzIG9mIHJlZ2lzdGFydGlvbnMKICAgCjIwMDItMDUtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgc3RvcmUgdGFnIG5hbWVzLgogICBmaXggaW5pdF9zbm1wKCkgZGVmaW5pdGlvbiB0byBtYXRjaCBub3JtYWwgcGVybCBub24tYW5zaSBtb2RlLgogICAKMjAwMi0wNS0xNiAxNjozOSAgZHJpZWh1aXMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFrZSBzdXJlIC0tY2ZsYWdzIHNwaXRzIG91dCB0aGUgcmVxdWlyZWQgaW5jbHVkZSBwYXRoIHdoZW4gaW5zdGFsbGluZwogICBpbiBhIG5vbi1kZWZhdWx0IGxvY2F0aW9uLCBhcyBkb2N1bWVudGVkIGluIHRoZSB1c2FnZSBpbmZvIGluIHRoZSBzY3JpcHQuCiAgIAoyMDAyLTA1LTE2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBhZGQgYSBsaW5lIHRvIHRoZSBzeXNTZXJ2aWNlcyBwcm9tcHQgc2F5aW5nIGlmIHlvdSBkb24ndCBrbm93LCBzYXkgbm8uCiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgdXBkYXRlIHRvIG5ldyBkZWZpbmUgbGlzdAogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB0ZXN0IHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMjo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIGF1dG9nZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGVzIHRvIG5ldyAuaCB0b2tlbnMKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW46CgogICAuaCAtPiBwZXJsbW9kdWxlIHJlZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMDc6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIENvbnNvbGlkYXRlIHRoZSB2YXJpb3VzIE9JRCBvdXRwdXQgY29uZmlndXJhdGlvbiBtZWNoYW5pc21zIGludG8gb25lLgogICBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgKHlldCEpIC0ganVzdCB0aGUgaW50ZXJuYWxzLgogICAKMjAwMi0wNS0xNSAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjcmVhdGUgYSBkZWZpbmUgbG9jYXRpb24gZm9yIEhBVkVfR0VUREVWUwogICAKMjAwMi0wNS0xNSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIGRlcGVuZCB1cGRhdGUsIHdoaWNoIEkgbWVhbnQgdG8gY2hlY2sgaW4gYmVmb3JlIHRoZSA1LjAuMSByZWxlYXNlCiAgIAoyMDAyLTA1LTE1IDA1OjUzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3BlcmwuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM5ICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLAogICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9zZWNtb2QuYywgc25tcHVzbS5jLAogICBzbm1wdjMuYywgdWNkX2NvbXBhdC5jLCB2YWNtLmM6CgogICAgIC0gcmVuYW1lIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIGZyb20gZGVmYXVsdF9zdG9yZSBmcm9tIGRzX2JsYWgKICAgICAgIHRvIG5ldHNubXBfZHNfYmxhaAogICAKMjAwMi0wNS0xNSAwMjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuMCksIHNtdXguYzoKCiAgICAgLSBpbml0aWFsaXNlIHNtdXhfbGlzdGVuX3NkIHRvIGF2b2lkIHByb2JsZW1zIG5vdGVkIGluIGJ1ZyAjNTQ1NDQ4CiAgICAgICAoYSBiaXQgdW5yZWFzb25hYmxlIGluIG15IHZpZXcgYnV0IGl0IGNhbid0IGRvIGFueSBoYXJtKS4KICAgCjIwMDItMDUtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwcmVjaXNpb24gZXh0cmFjdGlvbiBvZiB0dW1vciBpbnN0ZWFkIG9mIGFtcHV0YXRpb24sIG9yLCBpZmRlZiBzZWFyY2guaAogICBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgZXNzZW50aWFsIHRvIHRhYmxlX2FycmF5IG9wZXJhdGlvbiBhbmQgd2lsbCBwcm9iYWJseQogICB2YW5pc2ggaW4gdGhlIG5lYXIgZnV0dXJlIGFueXdheS4KICAgCjIwMDItMDUtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgZml4IHR5cGUgaW4gc2l6ZW9mCiAgIAoyMDAyLTA1LTEzIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzZWFyY2guaCBiZWZvcmUgY29tcGlsaW5nIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIKICAgCjIwMDItMDUtMTMgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0wNS0xMyAwMDozOSAgZHJpZWh1aXMKCiAgICogQ2hhbmdlTG9nOgoKICAgTm90ZSBjaGFuZ2VzIHRvIGNvbmZpZ3VyZS5pbi4KICAgCjIwMDItMDUtMTIgMTA6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE1ha2Ugc3VyZSB0aGUgY2hlY2tzIGZvciBrdm0gcmVsYXRlZCBzdHVmZiBoYXBwZW5zIHdoZW4gLWxrdm0gaXMgaW4gc2NvcGUuCiAgIEFkZCBkZXRlY3Rpb24gb2YgdGhlIC1sZGV2c3RhdCByZXF1aXJlbWVudCB3aGVuIGJ1aWxkaW5nIHdpdGggdWNkLXNubXAvZGlza2lvLgogICAKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMCAtPiBWNS4wLjEKCjIwMDIwLTA1LTEyIDE3OjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBkZXRlY3QgLWxkZXZzdGF0IHdoZW4gbmVlZGVkOyBmaXggLWxrdm0gZGV0ZWN0aW9uCgoyMDAyLTA1LTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gdHV0b3JpYWwtNSBpbnN0ZWFkIG9mIHR1dG9yaWFsCiAgIAoyMDAyLTA1LTEwIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIHJlcXVlc3QgaW5mbyBwZXJsIGNvZGUgbW92ZWQgdG8gc2VwYXJhdGUgZmlsZS4KICAgCjIwMDItMDUtMTAgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBPSUQgYnVpbGRpbmcgb3ZlcmxvYWRzLgogICAKMjAwMi0wNS0xMCAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQWRkIHByb3BlciBsZW5ndGggc2VnbWVudCB0byB0aGUgYnVpbGQgdmlldyBPSUQuCiAgIAoyMDAyLTA1LTEwIDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IGRvYyBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZwogICAKMjAwMi0wNS0xMCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjApLCB2YWNtX3ZhcnMuYwo6CgogICBmaXggdmFjbSBwcm9ibGVtIG9uIHNldHMgd2l0aCBPSURzIGNvbnRhaW5pbmcgbGFyZ2UgbnVtYmVycyBhcyBub3RlZAogICBieSBWaW5heSBHYW9ua2FyIG9uIHRoZSAtY29kZXJzIG1haWxpbmcgbGlzdC4KICAgCjIwMDItMDUtMTAgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhbGxpbmcgb24gbXVsdGlwbGUgdGFibGVzCiAgIAoyMDAyLTA1LTEwIDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWVyZ2UgIlNUUklORzogSGV4OiIgdHlwZSB0b2tlbnMgaW50byBhIHNpbmdsZSB0b2tlbiAiSGV4LVNUUklORzoiCiAgIAoyMDAyLTA1LTEwIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBSZXBvcnQgbm9uLWV4aXRlbnQgc3ViaW5zdGFuY2VzIGFzICdub1N1Y2hJbnN0YW5jZScgcmF0aGVyIHRoYW4gJ25vU3VjaE9iamVjdCcuCiAgICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4wLjk5IiBub3cgcmVzcG9uZHMgY29ycmVjdGx5LgogICAodGhvdWdoICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4xIiBzdGlsbCByZXR1cm5zICdub1N1Y2hPYmplY3QnKQogICAKICAgQWxzbyBndWVzcyB0aGF0IGZhaWxlZCBTRVQgcmVxdWVzdHMgYXJlICdub0NyZWF0aW9uJyBlcnJvcnMgKHdoaWNoIGlzCiAgIHByb2JhYmx5IHRoZSBtb3N0IGxpa2VseSBvcHRpb24pLgogICAKMjAwMi0wNS0wOSAxNTo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBleGl0IHByb3Blcmx5IHdoZW4gYSBzdWJkaXIgZmFpbHMgdG8gbWFrZSBwcm9wZXJseQogICAKMjAwMi0wNS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNyZWF0ZSBhIHRva2VuIGZvciB0aGUgLU92IGVxdWl2ZWxhbnQKICAgCjIwMDItMDUtMDkgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy41KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBwYXRjaCBmcm9tIFRha3VtaSBLYWRvZGUgdG8gZml4IG1lbW9yeSB1c2FnZSBvbiBzb2xhcmlzCiAgIAoyMDAyLTA1LTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHVwZGF0ZXMgZnJvbSBtYWxsb2NlZCB2bXN0YXQgZml4ZXMgZnJvbSBwYXRjaGVzIGJyYW5jaAogICAKMjAwMi0wNS0wOCAxNjozNCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbmV3IC0tY29tcGlsZS1zdWJhZ2VudCBmZWF0dXJlczoKICAgICAtLWNmbGFncwogICAgIC0tbm9ybQogICAgIC0tbGRmbGFncwogICAgIGluY2x1ZGVzIGhlYWRlciBmaWxlcwogICAgIG1pc2Mgb3RoZXIgYnVnIGZpeGVzLgogICAKMjAwMi0wNS0wOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtYWtlIHRoZSBzdWJhZ2VudCBwcm9wZXJseSBjYWxsIHRoZSByZXNlcnZlMiBzdGF0ZSBhZ2Fpbi4KICAgCjIwMDItMDUtMDggMTA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wOCAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICB1bSwgdXNlIDMwIHNlY29uZHMgbGlrZSBhZHZlcnRpc2VkLgogICAKMjAwMi0wNS0wOCAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBkZWZpbmUgYSBiZXR0ZXIgbm90aWZpY2F0aW9uIGV4YW1wbGUgKG5vIHJlcXVlc3RzLiAganVzdCBhbGFybSAtPiBzZW5kKQogICAKMjAwMi0wNS0wNyAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICB1cGRhdGUgdG8gY3VycmVudCBpbmRlbnQgY29tbWFuZAogICAKMjAwMi0wNS0wNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIG1vdmUgdGV4dCBpbiBjb21tZW50IGxlZnQgc2xpZ2h0ICh3YXMgdG9vIGxvbmcpLgogICAKMjAwMi0wNS0wNyAyMjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBlbnVtIGZpeGVzLgogICAKMjAwMi0wNS0wNyAyMjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29sdW1uX2RlZmluZXMuY29uZiwKICAgbWliMmMuY29sdW1uX2VudW1zLmNvbmYsIG1pYjJjLmNvbmY6CgogICBOZXcgbWliMmMgZmlsZXMgZm9yIGdlbmVyYXRpbmcgaGVhZGVycyBmdWxsIG9mIGNvbHVtbiBudW1iZXIgZGVmaW5lcwogICBhbmQgZW51bSBkZWZpbmVzLgogICAKMjAwMi0wNS0wNyAyMjo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgYWdlbnQgbGlicmFyeSByZW9yZGVyaW5nIHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBub3cgc3VwcG9ydHMgLm8gZmlsZXMgKHByZWNvbXBpbGVkIGNvZGUpLgogICAKMjAwMi0wNS0wNyAyMjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlOgoKICAgaG1tLiAgbWlzc2VkIHNvbWUgY2hlY2tpbiBmaWxlcy4KICAgCjIwMDItMDUtMDcgMTE6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogY29uZnRlc3QuY29uZiwgc3RhcnRhZ2VudC5wbCwgY29uZi50CjoKCiAgIHRlc3QgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZS9kZWZhdWx0X3N0b3JlIHN1cHBvcnQKICAgCjIwMDItMDUtMDcgMTE6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtYWtlIGluaXRfc25tcCgpIHRha2UgYSBjaGFyICogYXJndW1lbnQgbGlrZSB0aGUgcmVhbCBBUEkKICAgCjIwMDItMDUtMDcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIHR5cG9zLgogICAKMjAwMi0wNS0wNyAwOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggdGhlIC1nIGZsYWcuCiAgIAoyMDAyLTA1LTA3IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgbGlrZSBhIGdvb2QgYm95LgogICAKMjAwMi0wNS0wNiAyMDo0MyAgcnN0b3J5CgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZml4IG1pc3NpbmcgJCBub3RlZCBieSBKb2huIE1pbGxzIG9uIHRoZSBjb2RlcnMgbGlzdAogICAKMjAwMi0wNS0wNiAxNjoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bNCwyLDMsM10pLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlIChjb3JyZWN0bHkgZG9uZSB0aGlzIHRpbWUpCiAgIAoyMDAyLTA1LTA2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KICAgKFY0LTItcGF0Y2hlcy5bMyw3LDEsMl0pLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDYgMTU6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBQYXRjaGVzICM1NTE5MTQrIGZyb20gR2FyeSBFZHdhcmRzIHRvIHN1cHBvcnQgaHB1eDExIGZvciBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG5ldyBocHV4IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTQ6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG5ldyBjb250cmlidXRvcnMuCiAgIAoyMDAyLTA1LTA2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZgosIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTUxNDg5OiBGcm9tIEplZmZyZXkgV2F0c29uIHRvIGFkZCBhIC1RIG9wdGlvbiBmb3IgcXVpY2sgYnV0IHcvIGFuICc9JwogICAKMjAwMi0wNS0wNiAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgY2hhbmdlIC1EIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBjdXJyZW50IGNvZGUuCiAgIAoyMDAyLTA1LTA2IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBtaXNjIHNtYWxsIGJ1Z3MgYW5kIGVycm9yIG1lc3NhZ2Ugd29yZGluZyBmaXhlcy4KICAgCjIwMDItMDUtMDYgMDk6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy45KSwgc211eC5jOgoKICAgYnVnICM1NDcwMTA6IGZpeCBzbXV4IGF1dGggYnVnIGFzIHJlcG9ydGVkIGFuZCBmaXhlZCBieSBTdGVmYW4gUmFkbWFuCiAgIAoyMDAyLTA1LTAxIDIzOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzIGZvciB1cGRhdGUgdG8gdGFibGVfYXJyYXkKICAgCjIwMDItMDUtMDEgMjM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBvYmplY3RfbW9uaXRvciBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY2hlY2tfdmFyYmluZCBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciB2YWxpZGF0aW9uIHZhYnJpbmQgaW5mbwogICAKMjAwMi0wNS0wMSAyMjo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgZG8gSSByZWFsbHkgaGF2ZSB0byBkbyB0aGlzPyBzaWdoLiBPaywgcmVuYW1lIGRlYnVnIHRva2VuOyByZXZhbXAgbG9naWMgdG8KICAgbW9kaWZ5IHJvd3MgaW4gcGxhY2UsIGtlZXBpbmcgdW5kbyBpbmZvICh2cyBhbHdheXMgY2hhbmdpbmcgYSBjb3B5IG9mIGEgcm93CiAgIGFuZCBzd2FwcGluZyByb3dzIHdoZW4gc2V0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpIHRvIGFsbG93IGV4dGVybmFsIGNvZGUKICAgdG8ga2VlcCBwb2ludGVycyB0aGF0IGRvbid0IGRpc2FwcGVhciBvbiB0aGVtOyBhZGQgYSBmZXcgY2FsbGJhY2tzLCBpbmNsdWRpbmcKICAgcm93X2NvbXBhcmUsIHNvIHRhYmxlX2FycmF5IGNhbiBtYWludGFpbiB0aGUgc2Vjb25kYXJ5IGluZGV4IHRyZWU7IGRvbid0IGNhbGwKICAgY2FuX2FjdGl2YXRlL2Nhbl9kZWxldGUgdW5sZXNzIHdlIGFyZSBhY3R1YWxseSB0cnlpbmcgdG8gYWN0aXZhdGUvZGVsZXRlIHJvdzsKICAgYWRkIHNrZWxldG9uIChpZmRlZidkIG91dCkgY29kZSBmb3IgY29vcGVyYXRpdmUgbm90aWZpY2F0aW9ucyBvZiByb3cgZXZlbnRzOwogICB1cGRhdGUgY2hhbmdpbmcgYXJyYXkgaW4gY29tbWl0ICYgdW5kbyBjYXNlcywgbm90IGp1c3QgY29tbWl0OyBjaGFuZ2UgdHlwZGVmcwogICBmb3IgYSBmZXcgY2FsbGJhY2sgcG9pbnRlcnM7IHVtbW1tLi4uIEkgKnRoaW5rKiB0aGF0J3MgaXQuLi4uOi0pCiAgIAoyMDAyLTA1LTAxIDE3OjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQWRkIGluZGV4IGJ1aWxkaW5nIHRvIHRoZSArIG9wZXJhdG9yLgogICAKMjAwMi0wNS0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIE9JRC9PSUQueHMsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsCiwgYWdlbnQvdHlwZW1hcDoKCiAgIE1ha2UgZ2V0T0lEIGZvciByZXF1ZXN0cyByZXR1cm5lZCBhIE5ldFNOTVA6Ok9JRCBibGVzc2VkIHJlZmVyZW5jZS4KICAgSSdtIG5vdCBoYXBweSBhYm91dCBob3cgdGhpcyBpcyBkb25lLCBidXQgYWxsIGF0dGVtcHRzIHRvIGRvIGl0CiAgIGNvcnJlY3RseSBvbmx5IGxlZnQgbWUgaW4gY29uZnVzaW9uLgogICAKMjAwMi0wNS0wMSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCjoKCiAgIENoYW5nZSB0aGUgZG9tYWluIE9JRHMgdG8gcG9pbnQgdG8gdGhlIG5ldC1zbm1wIGRvbWFpbnMgY3JlYXRlZCBieSBEYXZlLgogICBUaGlzIGZpeGVzIGJ1ZyAjNTQ0MjQ1IGFzIHdlbGwuCiAgIAoyMDAyLTA1LTAxIDA5OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgT0lEIHBlcmwgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIG1vZHVsZXMuCiAgIAoyMDAyLTA1LTAxIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjApLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgcmVtb3ZlIG9sZCAoYW5kIGNvbmZsaWN0aW5nIHdpdGggdHJhcHMpIHRyYW5zcG9ydCBkb21haW4gT0lEcwogICAKMjAwMi0wNS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMS5kZWYsCiAgIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wd2Fsay4xLmRlZjoKCiAgIEFkZCB0eXBlIHRhZ3MgIlNUUklORzogIiBhbmQgIklOVEVHRVI6ICIgdG8gZXhhbXBsZSBvdXRwdXQuCiAgIEFkZCBleHBsaWNpdCBzZXR0aW5nIG9mIHByb3RvY29sIHZlcnNpb24gdG8gZXhhbXBsZSBjb21tYW5kcy4KICAgCjIwMDItMDUtMDEgMDM6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhZ3V0aWwuaCwKICAgYWd1dGlsX2FwaS5oLCBhbGFybS5jLCBhbGFybS5oLCBldmVudC5jLAogICBldmVudC5oLCBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgcm93X2FwaS5oLAogICByb3dzLmMsIHJvd3MuaCwgc3RhdGlzdGljcy5jLCBzdGF0aXN0aWNzLmg6CgogICAgIC0gcmVtb3ZlIENWUyBMb2c6IGVudHJpZXMgd2hpY2ggYXJlIGNhdXNpbmcgcHJvYmxlbXMgc2luY2UgdGhleSBhcmUKICAgICAgIGVtYmVkZGVkIGluIGEgY29tbWVudCwgYnV0IHNvbWUgb2YgdGhlIGxvZyBlbnRyaWVzIGNvbnRhaW4gY29tbWVudAogICAgICAgZGVsaW1pdGVycy4KICAgCjIwMDItMDQtMzAgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlIG5ldHNubXBfcHJvY2Vzc2luZ19zZXQsIGl0IGxpdmVzIGluIHNubXBfYWdlbnQuYwogICAKMjAwMi0wNC0zMCAyMjoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyOyBhbGxvdyBOT05FIGFzIG9sZCB2YWx1ZSBmb3Igc3RvcmFnZSB0eXBlIHRyYW5zdGlvbnMKICAgCjIwMDItMDQtMzAgMjI6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgb3Zlcmx5IGNvbXBsZXggbWFjcm8gc3R1ZmYgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZQogICAKMjAwMi0wNC0zMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRQosIHRlc3QucGw6CgogICAtIGFsbG93IGNvbnZlcnNpb25zIHRvIGFuIGFycmF5IChuZWVkcyB0byBiZSB0aWVkIHN0aWxsKS4KICAgLSBkb2N1bWVudGF0aW9uLgogICAKMjAwMi0wNC0zMCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcGQuYzoKCiAgICAgLSBmaXggYnVnICM1NDU3NzUsIHJlcG9ydGVkIGJ5IERhdmUgRGVuc29uLCB3aGVyZWJ5IHRoZSBQSUQgb2YgYW4KICAgICAgIGFscmVhZHktcnVubmluZyBzbm1wZCB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSBzdGFydGluZyBhIG5ldyBzbm1wZAogICAgICAgKHdoaWNoIHdvdWxkIHRoZW4gZXhpdCwgbGVhdmluZyB0aGUgb3JpZ2luYWwgc25tcGQgcnVubmluZyBhbmQgdGhlCiAgICAgICB3cm9uZyBQSUQgaW4gdGhlIGZpbGUpLiAgU29sdXRpb24gaXMgbm90IHRvIHdyaXRlIHRoZSBQSUQgdW50aWwgd2UKICAgICAgIGhhdmUgc3VjY2Vzc2Z1bGx5IG9wZW5lZCBhbGwgb3VyIHNvY2tldHMuCiAgIAoyMDAyLTA0LTMwIDA3OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNULAogICBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRSwKICAgdGVzdC5wbCwgdHlwZW1hcDoKCiAgIE9JRCBwZXJsIG1vZHVsZSBzbyB5b3UgY2FuIGRvIHNpbXBsZSBPSUQgbWFuaXB1bGF0aW9ucyB3aXRoaW4gcGVybCBlYXNpbHk6CiAgICAgLSBFeGFtcGxlOiAgbmV3IE5ldFNOTVA6Ok9JRCgnaW50ZXJmYWNlcycpID4gbmV3IE5ldFNOTVA6Ok9JRCgnc3lzdGVtJykKICAgCjIwMDItMDQtMjkgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZWdleHAgZml4IGZvciB3aGl0ZSBzcGFjZSBjaGVja3MgaW4gaW5kZW50IGZvcm1hdHRlZCBjb2RlCiAgIAoyMDAyLTA0LTI5IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlb3JkZXIgcGVybCBtb2R1bGUgbmFtZXMgdG8gcmVmbGVjdCAobmV3KSBkZXBlbmRlbmNpZXMuCiAgIAoyMDAyLTA0LTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGZpeCBhIGZldyB3YXJuaW5ncyBvbiBmYWlsZWQgdGVzdHMgKGp1c3Qgc2NyZWVuIGNsZWFudXBzKQogICAKMjAwMi0wNC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG06CgogICBNYWtlIHRoZSBwZXJsIG1vZHVsZSByZXNwZWN0IHNubXAuY29uZiBzZXR0aW5ncyAoZmluYWxseSkuCiAgICAgLSBOb3cgcmVxdWlyZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBOZXRTTk1QOjpkZWZhdWx0X3N0b3JlIG1vZHVsZSB0aG91Z2guCiAgIAoyMDAyLTA0LTI3IDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG9uJ3QgcHJvY2VzcyBzZXQgcmVxdWVzdCB0aWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBhcmUgY29tcGxldGUsIGFuZCBxdWV1ZQogICBhbnkgb3RoZXIgcmVjZWl2ZWQgcGFja2V0cyB1bnRpbCBhIHNldCBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcuCiAgIAoyMDAyLTA0LTI3IDA4OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYW4gdXAgY29tbWVudHMgbXVuZ2VkIGJ5IGluZGVudAogICAKMjAwMi0wNC0yNyAwODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA0LTI3IDA4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBvYmplY3RfbW9uaXRvci5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmZGVmIGd5bW5hc3RpY3MgdG8gbWFrZSBzdXJlIGFzc2VydHMgYXJlIG9ubHkgY29tcGlsZWQgaW4gb25seSBpZiBleHBsaWNpdHkKICAgcmVxdWVzdGVkCiAgIAoyMDAyLTA0LTI2IDIxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBmaXggdW5iYWxhbmNlZCBlbmRpZiBvbiBsaW51eC4gaG9wZSBJIGRpZG4ndCBicmVhayBhbnl0aGluZyBlbHNlLgogICAKMjAwMi0wNC0yNiAxOToxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggdW51c2VkIHZhciB3YXJuaW5nIGZvciAhd2luZG93cwogICAKMjAwMi0wNC0yNiAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgZml4IE9JRF9MRU5HVEggZGVmaW5pdGlvbnMKICAgCjIwMDItMDQtMjYgMTA6NTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMgaW4gbWFrZWZpbGVzLiAgTWFrZSBldmVyeXRoaW5nIHVzZQogICBuZXQtc25tcC1jb25maWcsIC4uLgogICAKMjAwMi0wNC0yNiAxMDoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbToKCiAgIC0gQ2xlYW51cC4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIENoYW5nZSBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgZm9yIHVjZC1zbm1wCiAgIC0gQ2hhbmdlIGNvbnRhY3QgbG9jYXRpb24gdG8gbmV0LXNubXAtdXNlcnMgKHBlciBKb2UncyBhZ3JlZW1lbnQpCiAgIAoyMDAyLTA0LTI2IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFJFQURNRSwgCglkZWZhdWx0X3N0b3JlLnBtLCB0ZXN0LnBsOgoKICAgLSBjbGVhbnVwLgogICAtIFVzZSBuZXQtc25tcC1jb25maWcgdG8gZmluZCBsaWJyYXJ5LCBldGMuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBhIGZldyBtb3JlIHRlc3RzIGFkZGVkCiAgIC0gdXNlIGNvcnJlY3QgbGlicmFyaWVzCiAgIC0gYWRkIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDQtMjYgMDQ6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRXh0cmFjdGluZyB0aGUgdmVyc2lvbiBmcm9tICdzbm1wbGliL3NubXBfdmVyc2lvbi5jJyBuZWVkcyB0byB0YWtlIGFjY291bnQKICAgb2YgYmxhbmsgc3BhY2UuICBSZXBvcnRlZCBieSBTdGVmYW4gUmFkbWFuIChCdWcgIzU0NzM3OSkKICAgCjIwMDItMDQtMjYgMDQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy44KSwgbWVtb3J5LmMKOgoKICAgSGFuZGxlIG1lbW9yeSB2YWx1ZXMgPiAzMmJpdCAobGF0Y2hpbmcgYXQgMl4zMi0xKQogICBQYXRjaCAjNTQ4NjYzIGZyb20gUm9iIE15ZXJzCiAgIAoyMDAyLTA0LTI2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnSW52YWxpZCBvcHRpb24nIG1lc3NhZ2UsIHNpbmNlIHRoaXMgaXMgdHlwaWNhbGx5CiAgIHJlcG9ydGVkIGJ5IGdldG9wdCgpLiAgKFN1Z2dlc3RlZCBieSBBbmRyZXcgUnVja2VyIEpvbmVzIC0gcGF0Y2ggIzU0ODc0OCApCiAgIAoyMDAyLTA0LTI2IDAzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQWRkICd2JyB0byB0aGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zIChwYXRjaCAjNTQ4NzQ4KQogICBUaGFua3MgdG8gQW5kcmV3IFJ1Y2tlciBKb25lcy4KICAgCjIwMDItMDQtMjYgMDM6MzYgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIGltcHJvdmVkIEhQLVVYIDExIHBhdGNoCiAgICgjNTMwNzI0KSB0byB0aGUgbWFpbiB2NSBsaW5lLCBhcyB3ZWxsIGFzIHRoZSB2NC0yIGJyYW5jaC4KICAgVGhlIGNvZGUgbm93IGNvbXBpbGVzIGNsZWFubHkgdW5kZXIgSFAtVVggMTEgdXNpbmcgZ2NjLgogICAKMjAwMi0wNC0yNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnIHRvIGZpeCBwb3NzaWJsZSB2YXJpYWJsZSBuYW1lIGNsYXNoCiAgIAoyMDAyLTA0LTI0IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGhhbmRsZSBjYWxsYmFja3Mgc2VuZGluZyBuZXcgbm90aWZpY2F0aW9ucyAod2hpbGUgcHJvY2Vzc2luZyBub3RpZmljYXRpb25zKQogICAKMjAwMi0wNC0yNCAyMTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIGhlYWRlciBmb3IgbmV3IGZ1Y250aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3RzCiAgIAoyMDAyLTA0LTI0IDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIG5ldyBmdW5jdGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0IHZhbHVlcwogICAKMjAwMi0wNC0yNCAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAvcHJvYy9zdGF0IGNhbiBiZSBsYXJnZXIgdGhhbiAxMDI0CiAgIAoyMDAyLTA0LTI0IDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWlzc2luZyAnbWQ1LmgnIGhlYWRlciBmaWxlLgogICAKMjAwMi0wNC0yMyAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGxhc3Qgb2YgdGhlICN3YXJuaW5ncywgYWRkIHh4eC1ya3MgaWYgbmVjZXNzYXJ5CiAgIAoyMDAyLTA0LTIzIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgd2FybmluZ3MKICAgCjIwMDItMDQtMjIgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRToKCiAgIHVwZGF0ZSBVUkwgdG8gdXNlIGZyZWVubXAuY29tIG1pcnJvciAodW5sZXNzIHNvbWVvbmUga25vd3MgYSBiZXR0ZXIgcGxhY2U/KQogICAKMjAwMi0wNC0yMiAxNDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhcHBseSBkb2N1bWVudGF0aW4gcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmdlciA8QXhlbC5LaXR0ZW5iZXJnZXJAbWF4eGlvLmNvbT4KICAgCjIwMDItMDQtMjIgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgZXh0cmEgQGVuZEAgKHN1cmUgd291bGQgYmUgbmljZSBpZiBtaWIyYyB3b3VsZCBjaGVjayBmb3IgdW5iYWxhbmNlZAogICBAZW5kQHMpCiAgIAoyMDAyLTA0LTIyIDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmdW5jdGlvbiBuYW1lcyB0byBtYXRjaCBoZWFkZXIgKG5vIG1peGVkIGNhc2UpCiAgIAoyMDAyLTA0LTIyIDA4OjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IGJ1ZyAjNTQ3MTEwOiBwcm9wZXJseSBzcGVsbCBkZWZpbmUKICAgCjIwMDItMDQtMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZCBzdGF0aWMgdG8gYSByZXR1cm5lZCB2YXJpYWJsZQogICAKMjAwMi0wNC0yMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcwogICAKMjAwMi0wNC0yMSAxMTozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICA1LjAucHJlMyAtPiA1LjA7IChJJ20gc3VyZSB0aGVyZSBhcmUgb3RoZXIgcGxhY2VzIHRoaXMgbmVlZHMgdG8gY2hhbmdlLAogICBidXQgSSB3YW50ZWQgdG8gZ2V0IHRoZSBmaXJzdCBwb3N0IDUuMCBjaGVja2luLi4uOi0pCiAgIAoyMDAyLTA0LTIwIDAwOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wICkKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yIC0+IFY1LjAKCjIwMDItMDQtMjAgMDA6MjcgIGhhcmRha2VyCgogICAqIGV2ZXJ5dGhpbmc6CgogICBzZXQgYWxsIENWUy9SQ1MgcmV2aXNpb24gY29udHJvbCBudW1iZXJzIHRvIDUuMAoJCjIwMDItMDQtMjAgMDA6MDcgIGhhcmRha2VyCgogICAqIGV2ZXJ5dGhpbmc6CgkKICAgV2hpdGUgc3BhY2UsIG9oIGdsb3Jpb3VzIHdoaXRlIHNwYWNlLgogICBIb3cgZ3JlYXQgb3VyIHRob3VnaD8KICAgVGhlIGNvZGUgaXMgZmluZS4KICAgV2UgYWdyZWUgb24gZnVuY3Rpb25hbGl0eSBlYXNpbHkuCiAgIFdoYXQgcmVhbGx5IHRyb3VibGVzIHVzPwogICBTb21ldGhpbmcgd2UgY2FuJ3Qgc2VlLgogICBTb21ldGhpbmcgYmV0d2VlbiB0aGUgY29kZS4KICAgV2UgYm93IGRvd24gdG8geW91ciBtYWduaWZpY2VuY2UsCiAgIEZvciB5b3UgYXJlIGV2ZXJ5d2hlcmUsCiAgIEJldHdlZW4gZXZlcnl0aGluZy4KICAgUHJldHR5IG5vdGhpbmduZXNzIHlvdSBhcmUuCgkKMjAwMi0wNC0yMCAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgdHVybiBvbiB1Y2QgY29tcGF0IGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA0LTIwIDAwOjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbGFzdCB1cGRhdGVzCiAgIAoyMDAyLTA0LTE5IDIzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgcmVtb3ZlIHRlc3RkZWxheWVkCiAgIAoyMDAyLTA0LTE5IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiAuY3ZzaWdub3JlICwgLmN2c2lnbm9yZToKCiAgIGN2cyBpZ25vcmUgZmlsZQogICAKMjAwMi0wNC0xOSAyMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBkb24ndCBkaWUgaWYgcGVybCBkb2Vzbid0IGluaXQuCiAgIAoyMDAyLTA0LTE5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBSRUFETUUgLCBTTk1QLnBtOgoKICAgY2hhbmdlIHdhcm5pbmcuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb3VibGUgY2hlY2sgdGhhdCBtdWx0aXBsZSBpbnNlcnRzIGludG8gdGhlIGRlbGVnYXRlZCBjaGFpbiBkb24ndAogICBoYXBwZW4gKHJlYWQ6IHRoZXkgc2hvdWxkbid0IGFueXdheSwgYnV0Li4uLi4pLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB0eXBlZGVmIHVwZGF0ZQogICAKMjAwMi0wNC0xOSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIEZpeCB0aGUgY2FsbGJhY2sgYnVpbGQgaG9vayB0byB0dXJuIG9mZiB0aGUgZXhwZWN0IHJlc3BvbnNlIGZsYWcgd2hlbgogICBub3QgYXBwcm9wcmlhdGUuCiAgIAoyMDAyLTA0LTE5IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgc3BlbGxpbmcgbWlzdGVhazsgcmVtb3ZlIGNhcGl0YWwgbGV0dGVycyBpbiBmdW5jdGlvbiBuYW1lcwogICAKMjAwMi0wNC0xOSAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VkIGluIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA0LTE5IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1ha2UgdGhlIHBlcmxJbml0RmlsZSBhbmQgZGlzYWJsZVBlcmwgdG9rZW5zIHJlZ2lzdGVyIGFzIHByZW1pYiBzdWNoCiAgIHRoYXQgd2hlbiBwYXNzZWQgYXMgYSAtLUZMQUcgaXQnbGwgYWN0dWFsbHkgZG8gdGhlIHJpZ2h0IHRoaW5nIGFuZAogICBkaXNhYmxlIHRoZSBsYXRlciAicGVybCIgdG9rZW4gaGFuZGxlcnMuCiAgIAoyMDAyLTA0LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIG1hbi9NYWtlZmlsZS5pbiAsIG1hbi9uZXRzbm1wX2FnZW50LjMKICAgLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMyAsIG1hbi9uZXRzbm1wX2RlYnVnLjMgLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMyAsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwogICAsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMgLAogICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMgLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiAgICwgbWFuL25ldHNubXBfb2xkX2FwaS4zICwgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMgLAogICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMyAsIG1hbi9uZXRzbm1wX3RhYmxlLjMgLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zICwgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zICwKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zICwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwogICAsIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIGRvY3VtZW50YXRpb24uICBDYW4ndCBnZXQgZW5vdWdoLgogICAgIC0gbWFrZSBkb2NzIG5vdyBpbnN0YWxscyBtYW4gcGFnZXMgaW50byB0aGUgbWFuIGRpciwgd2hpY2ggYXJlIHRoZW4gaW5zdGFsbGVkLgogICAKMjAwMi0wNC0xOSAxNzoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQgLCBUMTIxcHJveHlzZXQ6CgogICBDb3JyZWN0IGZvciBuZXcgU1RSSU5HIHByZWZpeC4KICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBLYXRzdWhpc2EgQUJFCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi54cyAsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIGZpeCBoZWFkZXIgZmlsZXMgZm9yIG5ldyBwYXRocy4KICAgCjIwMDItMDQtMTkgMTc6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggIzUzMjU1NTogaXB2NiBjb20yc2VjIHN1cHBvcnQsIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wNC0xOSAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCBzeXNVcFRpbWUgKGFuZCByZWxhdGVkIGZ1bmN0aW9ucykgdG8gaGFuZGxlIG11Y2ggbGFyZ2VyIHVwVGltZQogICB2YWx1ZXMgKGllLCBmaXggc2lnbmVkIGludGVnZXIgd3JhcHBpbmcpLgogICAKMjAwMi0wNC0xOSAxMTozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTE5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFnZW50L3NubXBfcGVybC5jICwgYWdlbnQvc25tcF9wZXJsLnBsICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIEFkZCBzb21lIG5ldyBzbm1wZC5jb25mIHRva2VucyBmb3IgY29udHJvbGxpbmcgcGVybCBiZXR0ZXIuCiAgIEZpeCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTA0LTE5IDExOjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiAuY3ZzaWdub3JlICwgTWFrZWZpbGUuUEwgLAogICBkZWZhdWx0X3N0b3JlLnBtICwgZGVmYXVsdF9zdG9yZS54czoKCiAgIEFkZGVkIG1pc3NpbmcgYWdlbnQgZGVmYXVsdF9zdG9yZSBzdHVmZi4gICh0aGV5IGV4aXN0ZWQgb24gbXkgbWFjaGluZSwKICAgSSBkb24ndCBrbm93IHdoeSBldmVyeW9uZSBlbHNlIHdhcyBoYXZpbmcgcHJvYmxlbXMpCiAgIAoyMDAyLTA0LTE5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhpbmdzIHRoYXQgc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuCiAgIAoyMDAyLTA0LTE5IDAzOjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIDxTaWdoPiBBIGxpdHRsZSBsZWFybmluZyBpcyBhIGRhbmdlcm91cyB0aGluZy4KICAgQXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGZyb20gQXhlbCAtIHNvcnJ5LgogICAKMjAwMi0wNC0xOSAwMTo0OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4gLCBkb3h5Z2VuLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBkb2N1bWVuYXRpb24gd2hlbiBzcmNkaXIgIT0gY29uZmlnZGlyCiAgIChQYXRjaCBzdXBwbGllZCBieSBBeGVsIEtpdHRlbmJlcmdlcikKICAgCjIwMDItMDQtMTggMTc6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZml4IHNubXBJUFhEb21haW4gKGFnYWluKQogICAKMjAwMi0wNC0xOCAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogb25seSBvcGVuIHN1YmFnZW50IGNvbm5lY3Rpb25zIG9uY2UgYXQgc3RhcnR1cAogICAKMjAwMi0wNC0xOCAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBmb3IgZG93biBzdWJhZ2VudCBjYXNlcywgbWFyayByZWdpc3RyYXRpb25zIGFzIGRldGFjaGVkCiAgIAoyMDAyLTA0LTE4IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWZpbmUgYSBtYXhpbXVtIHBhY2tldCBzaXplIHdlIGNhbiBhY2NlcHQgdG8gcHJvdGVjdCBjZXJ0YWluIGVycm9yCiAgIGNvbmRpdGlvbnMgKC0xIGFmdGVyIGNvbnZlcnNpb24gaXMgbm93IHRvbyBsYXJnZSkuCiAgIAoyMDAyLTA0LTE4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgY2hhbmdlIHRoZSBlbnRlcnByaXNlIE9JRHMgaW4gdGhlIHByb3BlciBwbGFjZSAobmV0LXNubXAtY29uZmlnLmguaW4KICAgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlKS4KICAgCjIwMDItMDQtMTggMTM6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gQWRkIHR3byBuZXcgb3B0aW9ucyB0byBuZXQtc25tcC1jb25maWcgYXMgcmVxdWVzdGVkIG9uIHRoZSBJUkMgY2hhbm5lbC4KICAgICAtLWNvbmZpZ3VyZS1vcHRpb25zCiAgICAgLS1zbm1wZC1tb2R1bGUtbGlzdAogICAKMjAwMi0wNC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTA0LTE4IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiBzdXBwbGllZCBlbnRlcnByaXNlIE9JRHMgY29ycmVjdGx5CiAgIChhbmQgdXNlIGEgbW9yZSBtZWFuaW5nZnVsIG91dHB1dCBtZXNzYWdlKQogICAKICAgU2hhbWUgdGhlc2Ugc2V0dGluZ3MgYXJlbid0IGNhY2hlZCBmb3IgbGF0ZXIgcmUtdXNlLi4uLgogICAKMjAwMi0wNC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE5vdGlmeSBvbiBhZ2VudCByZWNvbmZpZ3VyYXRpb24uCiAgIAoyMDAyLTA0LTE4IDA3OjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBub3RpZmljYXRpb25zIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE4IDA3OjA4ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXggdGhlIHRhYmxlLW9mLWNvbnRlbnRzIHNlcXVlbmNlIGZvciB0aGUgbnNNb2R1bGVUYWJsZSwgYWRkIG5vdGlmaWNhdGlvbgogICBkZWZpbml0aW9ucyBmb3IgdGhlIGFnZW50LCBhbmQgZGVmaW5lIGdyb3VwcyBmb3IgZXZlcnl0aGluZy4KICAgCjIwMDItMDQtMTggMDI6NTIgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCcmluZyBpbnRlZ2VyIGFuZCBzdHJpbmcgb3V0cHV0IGZvcm1hdHMgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIHR5cGVzCiAgIGJ5IHByaW50aW5nIGEgdHlwZSB0b2tlbiBiZWZvcmUgdGhlIHZhbHVlICh1bmxlc3Mgc3VwcmVzc2VkIGJ5ICdxdWljayBwcmludCcpCiAgIFRoYW5rcyB0byBFcmlrIGZvciB0aGUgcGF0Y2gKICAgCjIwMDItMDQtMTggMDE6NDYgIGR0czEyCgogICAqIEZBUToKCiAgIFJlcGxhY2UgdGhlIGRsbW9kICdXSEVSRScgd2l0aCBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLi4uLgogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBkZWZpbmUgdGhlIGlweERvbWFpbiB2YXJpYWJsZXMKICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEVycm9yIGNvbmRpdGlvbiB0ZXN0cwogICAKMjAwMi0wNC0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIE9oLCBqdXN0IGEgc21hbGwgcGF0Y2ggdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBtYWtlIG1vZHVsZXMgcmVxdWVzdAogICB0aGF0IGFsbCBxdWVyaWVzIHRvIGEgc2V0IG9mIHJlZ2lzdHJhdGlvbnMgZ2V0IHBhc3NlZCBhbGwgYXQgb25jZQogICAod2hpY2ggYXBwYXJlbnRseSBpcyBpbXBvcnRhbnQgZm9yLCBvaCwgYWdlbnR4KQogICAKMjAwMi0wNC0xNyAxMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbWlzYyBub24tY2hhbmdlIGNsZWFuIHVwcwogICAKMjAwMi0wNC0xNyAxMDowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVuYW1lIHN0cnVjdHVyZXMgYmVnaW5uaW5nIHdpdGggXyB0byBlbmRpbmcgd2l0aCBfcwogICAKMjAwMi0wNC0xNyAxMDowMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIHNlc3Npb24gY3JlYXRvciB0byB1c2UgYXQgd2lsbCAoZGlmZmVyZW50CiAgIGZyb20gdGhlIGNhbGxiYWNrIG1hZ2ljKS4KICAgCjIwMDItMDQtMTcgMDk6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIHN5c09JRHMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTcgMDg6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZS4KICAgCjIwMDItMDQtMTcgMDg6MTYgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UKICAgCjIwMDItMDQtMTcgMDY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIG1vdmUgbnNNb2R1bGVUYWJsZSBpbnRvIERhdmUncyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA0LTE3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcFRDUElQdjZEb21haW4uaCAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICBmaXggZGVjbGFyYXRpb25zIG9mIERvbWFpbiBvYmplY3RzIChjb25zdCAtPiBleHRlcm4pCiAgIAoyMDAyLTA0LTE3IDA2OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnICwKICAgc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcgLCBzbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWc6CgogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGRhdGEKICAgCjIwMDItMDQtMTcgMDM6MDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSByZXBvcnRlZCBkZWZhdWx0IHNldHRpbmdzIGZvciBzeXNvaWQgJiBub3RpZmljYXRpb24gT0lEcwogICBiYWNrIGludG8gbGluZSB3aXRoIHdoYXQgd2UgYWN0dWFsbHkgdXNlIChpLmUuIHRoZSB1Y2RhdmlzIE9JRHMpLgogICAKICAgUW46ICBEbyB3ZSB3YW50IHRvIHN3aXRjaCB0byB1c2luZyB0aGUgbmV0LXNubXAgZXF1aXZhbGVudCBzeXNPSURzPwogICBRbjogIFdoYXQgYWJvdXQgZGVmaW5pbmcgbmV0LXNubXAgbm90aWZpY2F0aW9ucz8KICAgCjIwMDItMDQtMTcgMDI6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCAtLXdpdGgtZW50ZXJwcmlzZS1zeXNvaWQgYW5kIC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQsCiAgIGFuZCB0cnkgdG8gY2xhcmlmeSB0aGF0IHRoZXNlIGFyZSBPSURzLCB3aGlsZSAtLXdpdGgtZW50ZXJwcmlzZS1vaWQKICAgaXMgYWN0dWFsbHkganVzdCB0aGUgZW50ZXJwcmlzZSAqbnVtYmVyKgogICAKICAgUW46ICBzaG91bGQgd2UgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHRvIHJlZmxlY3QgdGhpcz8KICAgCjIwMDItMDQtMTYgMTA6MDQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiAsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgLCBGQVEgLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMyApCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBkZWxldGUgdG9wIGRpc2NsYWltZXJzCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlzYyB1cGRhdGVzCiAgIAoyMDAyLTA0LTE2IDEwOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1pc2MgYnVnIGZpeGVzCiAgIAoyMDAyLTA0LTE2IDA4OjE5ICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYW4gZW50cnkgY29uY2VybmluZyB0aGUgJ2xpYmNyeXB0bycgUlBNIGRlcGVuZGVuY3kuCiAgIAoyMDAyLTA0LTE2IDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDQtMTYgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBhIG5vIGxvbmdlciBhcHByb3ByaWF0ZSB0b2RvIGNvbW1lbnQKICAgCjIwMDItMDQtMTYgMDc6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEkgZ3Vlc3MgSSBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA0LTE1IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHNubXBjb25mICwgTWFrZWZpbGUuaW46CgogICBtb3ZlIHNubXBjb25mIGRhdGEgZGlyZWN0b3JpZXMgdG8gZGlmZmVyZW50IG5hbWVzIHRvIGF2b2lkIGNvbmZ1c2lvbgogICAKMjAwMi0wNC0xNSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL2F1dGhvcHRzICwKICAgc25tcC1kYXRhL2RlYnVnZ2luZyAsIHNubXAtZGF0YS9taWJzICwgc25tcC1kYXRhL291dHB1dAogICAsIHNubXBkLWRhdGEvYWNsICwgc25tcGQtZGF0YS9iYXNpY19zZXR1cCAsCiAgIHNubXBkLWRhdGEvZXh0ZW5kaW5nICwgc25tcGQtZGF0YS9tb25pdG9yICwKICAgc25tcGQtZGF0YS9vcGVyYXRpb24gLCBzbm1wZC1kYXRhL3N5c3RlbSAsCiAgIHNubXBkLWRhdGEvdHJhcHNpbmtzICwgc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZyAsCiAgIHNubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGU6CgogICBkYXRhIGZpbGUgbW92aW5nCiAgIAoyMDAyLTA0LTEyIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIE1hc3NpdmUgY2xlYW51cCBlZmZvcnQuICBJdCBzaG91bGQgbm93IHJlc3BlY3Qgb3JkZXJpbmcgaW4gdGhlCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXMgd2VsbC4KICAgCjIwMDItMDQtMTIgMTM6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBmaXggZm9yIG92ZXJ6ZWFsb3VzIHBlcmwgc2NyaXB0CiAgIAoyMDAyLTA0LTEyIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvcHkgdWNkIHBlcnNpc2VudCBkaXJlY3RvcnkgdG8gbmV0LXNubXAgKHByb21wdHMsIGZsYWdzIGFuZCBvdGhlciBmdW4pCiAgIAoyMDAyLTA0LTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgdHJhcHRvZW1haWwKICAgCjIwMDItMDQtMTIgMDc6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIHJlbW92ZSB0cmFwbm90aWYKICAgCjIwMDItMDQtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCByc25tcDoKCiAgIHJlbW92ZSByc25tcCwgd2hpY2ggaXMgdmVyeSB2ZXJ5IG9sZCBhbmQgb3V0IG9mIGRhdGUKICAgCjIwMDItMDQtMTIgMDc6NDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUgLCBNYWtlZmlsZS5pbiAsIG1pYjJjLjEuZGVmOgoKICAgQSBtYW51YWwgcGFnZSBmb3IgbWliMmMgKGhlbHAsIEknbSB0dXJuaW5nIGludG8gRGF2ZSkKICAgCjIwMDItMDQtMTIgMDc6MjggIGhhcmRha2VyCgogICAqIGRvdGdkYmluaXQ6CgogICBhIGdkYiBpbml0aWFsaXphdGlvbiBmaWxlIHdpdGggaGVscGZ1bCBmdW5jdGlvbnMKICAgCjIwMDItMDQtMTIgMDI6NDIgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQWRkICdzbm1wY29uZicgYW5kICdtaWIyYycgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyB0byBpbnN0YWxsLgogICAKICAgSSd2ZSBsZWZ0ICd0cmFwdG9lbWFpbCcgb2ZmIHRoaXMgbGlzdCwgc2luY2UgaXQgc2F5cyBpdCdzIG5vdCBpbnRlbmRlZAogICBhcyBhIGRpcmVjdGx5IHVzZXItaW52b2tlZCBjb21tYW5kLCBzbyBwcm9iYWJseSBvdWdodCBub3QgdG8gYmUgaW5zdGFsbGVkCiAgIGludG8gYSBiaW5hcnkgZGlyZWN0b3J5LgogICAKMjAwMi0wNC0xMiAwMjo0MSAgZHRzMTIKCiAgICogbG9jYWwvcnNubXA6CgogICBGaXggdGhlIHBhdGggb2Ygc25tcHdhbGsgdG8gYmUgc29tZXRoaW5nIG1vcmUgcGxhdXNpYmxlLgogICAoSSdtIG5vdCBjb252aW5jZWQgYWJvdXQgdGhlIHZhbGlkaXR5IG9mIHRoYXQgaW5pdGlhbCAncnRvcG1pYicgT0lEIG1pbmQhKQogICAKMjAwMi0wNC0xMiAwMjozNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIEZpeCB0eXBvIGluIHJlZmVyZW5jZSB0byAnbWliMmMuaXRlcmF0ZS5jb25mJwogICAKMjAwMi0wNC0xMiAwMjozMyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWFpbiBsaWJyYXJ5IGFzICdsaWJzbm1wJyBpZiBjb25maWd1cmVkIHVzaW5nIFVDRCBjb21wYXRpYmlsaXR5LgogICBUaGlzIHNob3VsZCBoYW5kbGUgdGhlIHJlcXVpcmVtZW50cyBvZiBhcHBsaWNhdGlvbiBjb21wYXRpYmlsaXR5LgogICBBZ2VudCBsaWJyYXJ5IGNvbXBhdGliaWxpdHkgaXMgbGlrZWx5IHRvIHByb3ZlIGEgaGFyZGVyIHByb2JsZW0KICAgKHNpbmNlIHRoZXJlIGFyZSBub3cgdGhyZWUgbGlicmFyaWVzLCBub3QganVzdCB0d28uLi4pCiAgIAoyMDAyLTA0LTExIDIyOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgc2V0IFNOTVBDT05GUEFUSCBpZmYgW3NpY10gbm90IHNldAogICAKMjAwMi0wNC0xMSAyMjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZXR1cm4gZnJvbSBpbml0TWliIGJlZm9yZSBkb2luZyBhbnl0aGluZy4KICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR1cm4gb2ZmIGNvbXBsaWVyIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0ICJzaG93IGNvbHVtbnMgZnJvbSBUQUJMRSIKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIG5ldyBkZW1vIHNjYWxhcjogdGhlIHNsZWVwZXIuICAoZGFoIGRhaCBkYWggZHVtbW1tbSkKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGluZGVudC4KICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMuaCAsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYwogICAsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaDoKCiAgIEFkZCBhIGRlbGF5ZWQgaW5zdGFuY2UgZXhhbXBsZSwgc2hvd2luZyBob3cgdG8gcmV0dXJuIG1pYiByZXF1ZXN0CiAgIHJlc3VsdHMgbGF0ZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkuCiAgIAoyMDAyLTA0LTExIDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgcmVtb3ZlIGxlZ2FjeSBleGFtcGxlLgogICAKMjAwMi0wNC0xMSAyMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYWRkIGNvbW1lbnQgYWJvdXQgcG9zc2libHkgZml4aW5nIGluY2x1c2l2ZSByZXF1ZXN0cyBpbiB0aGUgZnV0dXJlLgogICAKMjAwMi0wNC0xMSAxNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgY2hhbmdlIG1vZHVrZXMtPiBtb2R1bGVzCiAgIAoyMDAyLTA0LTExIDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdHVybiBvZmYgZGVidWdnaW5nIHdoZW4gY2FsbGluZyBsb2dnaW5nIGNhbGxiYWNrcwogICAKMjAwMi0wNC0xMCAxMjo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBmaXggcGVybCBtb2R1bGUgaW4gbWFueSBtYW55IHBsYWNlcy4gIG1vc3QgdGVzdHMgbm93IHBhc3MuCiAgIAoyMDAyLTA0LTEwIDEyOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgZm9yY2Ugc2V0dGluZyB0byBhICJib2d1cyIgU05NUENPTkZQQVRILgogICAKMjAwMi0wNC0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgIEV4cG9ydGluZyBmdW5jdGlvbnMgZ29vZC4gIEludGVybmFsaXppbmcgYmFkLgogICAKMjAwMi0wNC0xMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgc2lnaC4KICAgCjIwMDItMDQtMTAgMDk6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDQtMTAgMDk6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSBNYWtlIHRoZSBwZXJsIG1vZHVsZSBjYWxsIGluaXRfc25tcCgpCiAgICAgLSB0aGlzIGlzIGEgZmFpcmx5IG1ham9yIGNoYW5nZSwgaXMgaXQgbm93IHdpbGwgcmVhZCAuY29uZiBmaWxlcy4KICAgICAtIG1hbnkgcGVvcGxlIGhhdmUgYXNrZWQgZm9yIHRoaXMuCiAgIC0gbWlzYyBjbGVhbiB1cHMuCiAgIAoyMDAyLTA0LTEwIDA5OjE4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIERvbid0IHJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyBmb3IgdGhlIGNvbnNpdHVlbnQgc3VidGFyZ2V0cyBvZiAibWFrZSBpbnN0YWxsIgogICAKMjAwMi0wNC0xMCAwOTowOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIGEgZmV3IHRoaW5ncywgc2VwYXJhdGVkIHBlcmwgc3R1ZmYgaW50byBpdCdzIG93biBzZWN0aW9uLgogICAKMjAwMi0wNC0xMCAwODo0NiAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIGhlbHAgbWVzc2FnZSBmb3IgdGhlIFVDRCBjb21wYXRhYmlsaXR5IG9wdGlvbiBpbnRvIGxpbmUgd2l0aAogICB3aGF0J3MgYWN0dWFsbHkgcmVjb2duaXNlZC4KICAgCjIwMDItMDQtMTAgMDc6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGNoYW5nZSBsaWJ0b29sIHZlcnNpb25pbmcgdG8gdGhlaXIgcmVjb21tZW5kZWQgbWV0aG9kIG9mIGRvaW5nIHRoaW5ncwogICAod2hpY2ggSSBoYXRlLCBidXQgaXMgc3RpbGwgYmV0dGVyIHRoYW4gd2hhdCB3ZSB3ZXJlIGRvaW5nLCBJIGd1ZXNzKQogICAKMjAwMi0wNC0xMCAwNzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBCcmluZyB1c2Ugb2YgQlVJTFRTVUJESVIgd2l0aGluICdpbnN0YWxsbG9jYWxoZWFkZXJzJyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgcHJlY2VkaW5nIGNvbW1lbnQsIGFuZCBhY3R1YWwgdXNhZ2UuCiAgIChpLmUuIElOU1RBTExCVUlMVFNVQkRJUiByYXRoZXIgdGhhbiBJTkNMVURFQlVJTFRTVUJESVIpCiAgIAoyMDAyLTA0LTEwIDA1OjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHlwbyBpbiBzZWN1cml0eS1pbmNsdWRlIGhlYWRlciBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgdmFyaWFibGUKICAgCjIwMDItMDQtMTAgMDU6NTUgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIG1pYjJjIGNvbmYgZmlsZXMuCiAgIAoyMDAyLTA0LTEwIDAxOjU1ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwNHNubXB2MW5vc3VjaCAsIFQwMTlzbm1wdjJjbm9zdWNoOgoKICAgVHdvIG5ldyB0ZXN0cyB0byBjaGVjayBoYW5kbGluZyBvZiBHRVRpbmcgbm9uLWV4aXN0YW50IGluc3RhbmNlcwogICAKMjAwMi0wNC0xMCAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQSBmaXggZm9yIFNOTVB2MSBlcnJvcnMgdGhhdCBkb2Vzbid0IGVuZCB1cCBicmVha2luZyBBZ2VudFggZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAyLTA0LTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBmcm9tIERhdmUgdG8gZml4IHYxIGVycm9yIHJlc3VsdHMuCiAgIAoyMDAyLTA0LTA4IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpeCBpbmNvcnJlY3QgbGVuZ3RoIHJldHVybiB2YWx1ZQogICAKMjAwMi0wNC0wOCAxODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAsIHZhY21fdmFycy5oOgoKICAgZG9uJ3QgYWxsb3cgbm8tY29uZmlndXJhdGlvbiBhY2Nlc3MgYW55bW9yZS4KICAgCjIwMDItMDQtMDggMTc6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wdXNtLmM6CgogICBtb3JlIHVuY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDItMDQtMDggMTc6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgc2l6ZV90IGV4dGVybnMgZm9yIGV4cG9ydGVkIG9pZHMKICAgCjIwMDItMDQtMDggMTc6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHN0YXRlbWVudHMgdGhhdCBhY2NpZGVudGFsbHkgYmVjYW1lIHBlcm1hbmVudC4KICAgCjIwMDItMDQtMDggMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMgLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgZGVmaW5lIGxlbmd0aCBzaXplX3QncyBmb3Igb2lkIHZhcmlhYmxlcy4KICAgCjIwMDItMDQtMDggMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgc3VwcG9ydCAibnVsbCIgdHlwZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgaW5pdGlhbGl6ZSBub3RpZmljYXRpb24gbG9nIG1pYiBzdXBwb3J0IGJlZm9yZSAtSCB1c2FnZS4KICAgCjIwMDItMDQtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaXggYSBmZXcgdGhpbmdzIGFuZCBtYWtlIHN1YmhhbmRsZXJzIG5vdCBhYmxlIHRvIHRlbGwgdGhlcmUgd2VyZSBtb3JlIHJlcXVlc3RzLgogICAKMjAwMi0wNC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIEEgY28td29ya2VyIHBvaW50ZWQgb3V0IHRoYXQgdGhlIElOU1RBTEwgc2NyaXB0IHN0aWxsIHNhaWQgdG8gZWRpdCBjb25maWcuaAogICAKMjAwMi0wNC0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHVuc3RhdGljLWl6ZSBhIGZldyBvaWRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBleHRlcm5hbAogICAKMjAwMi0wNC0wOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLAogICBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wX2FwaS5jICwgc25tcF90cmFuc3BvcnQuYwogICAsIHNubXB1c20uYzoKCiAgIENoYW5nZSBjb25zdCBvaWQgZGVjbGFyYXRpb25zIGludG8gc3RhdGljIG9uZXMgc2luY2Ugc2hhcmVkIGxpYnJhcmllcwogICBoYXZlIGEgcHJvYmxlbSB3aXRoIGluaXRpYWxpemluZyB0aGVtIG9uIGxpbnV4IHN5c3RlbXMgYXQgbGVhc3QuCiAgIAoyMDAyLTA0LTA4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbmltYWwgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdnaW5nIGFuZCB0aGUgaW5qZWN0SGFuZGxlciB0b2tlbgogICAKMjAwMi0wNC0wNSAxNDozMiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcHRyYXBkLjguZGVmICwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgTk9USUZJQ0FUSU9OLUxPRy1NSUIgc3VwcG9ydC4KICAgCjIwMDItMDQtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgY29udGV4dCBuYW1lIHN1cHBvcnQgaW4gcHJveHkgY29kZS4KICAgCjIwMDItMDQtMDUgMTM6NTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGRpc21hbiBldmVudCBtaWIgc3VwcG9ydCBmb3Igc2VuZGluZyB0cmFwcyB2aWEgbW9uaXRvcmVkIE9JRHMuCiAgIAoyMDAyLTA0LTA1IDEwOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHB1dCB0cmFwIGNvbmZpZyBpbnRvIGl0cyBvd24gc2VjdGlvbi4KICAgZG9jdW1lbnQgdGhlICJvdmVycmlkZSIgdG9rZW4uCiAgIAoyMDAyLTA0LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgY2hhbmdlIGRlZmF1bHQgY29udGV4dCB0byBhbiBlbXB0eSBzdHJpbmcKICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjUpLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaAogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgTWFrZSBhbiBleGFtcGxlIGRhdGFzZXQgdGFibGUgdG8gaG9sZCBhbmQgc3RvcmUgZGF0YSBpbiAoYWRtaXR0ZWRseQogICB1c2VsZXNzIGRhdGEgZnJvbSBhIG5ldHdvcmsgbWFuYWdlbWVudCBwb2ludCBvZiB2aWV3LCBidXQgaXQncyBhbiBleGFtcGxlKS4KICAgCjIwMDItMDQtMDIgMjI6MTIgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gZnJvbSBzdWJkaXIgYnVpbGQgY2FzZS4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcyBmcm9tIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmggYW5kIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuaCBmcm9tIHRoZSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGNyZWF0ZSBzb21lIGluc3RhbGwgZnJvbSBidWlsdCBoZWFkZXIgcnVsZXMuCiAgIAoyMDAyLTA0LTAyIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgbWliMmMuY29uZjoKCiAgIHJlbW92ZSBkZWxldGVkIGFycmF5LWF1dG8gZnJvbSAuY29uZiBpbnN0YWxsL3JlZmVyZW5jZSBsaXN0cwogICAKMjAwMi0wNC0wMiAxNTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oICwgdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIHVjZC1zbm1wL3JlZ2lzdHJ5Lmg6CgogICByZW1vdmUgdGhlIHJlZ2lzdHJ5IG1vZHVsZSwgYXMgaXQncyBvYnNvbGV0ZSBkdWUgdG8gY29udGV4dHMuICBVc2UgdGhlIG5zTW9kdWxlVGFibGUgaW5zdGVhZAogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIChWNC0yLXBhdGNoZXMuNyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oOgoKICAgQXBwbHkgcGF0Y2ggIzUyNDQyNCBmb3IgZGFyd2luIGZpeGVzIGZvciB1Y2Qtc25tcC9kaXNrLmMKICAgCjIwMDItMDQtMDIgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNC0yLXBhdGNoZXMuOCksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhdGNoIDUyNzU3MyB0byBmaXggNjQgYml0IHR5cGVzIG9uIHNvbGFyaXMKICAgCjIwMDItMDQtMDIgMDc6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGNoZWNrIGNoYXIgZm9yIE5VTEwgYmVmb3JlIHNldHRpbmcgdG86CiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjkpLCBjbXVfY29tcGF0LmMgLAogICBzbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjkgMTU6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgJiB1cGRhdGVzCiAgIAoyMDAyLTAzLTI5IDEwOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFkZCBjb21tZW50CiAgIAoyMDAyLTAzLTI5IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIGEgYWxsb3dfY3JlYXRpb24gZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMjkgMDg6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBuZXQtc25tcC1jb25maWcgZXhlY3V0YWJsZSBhZnRlciBpdCdzIGJ1aWx0CiAgIAoyMDAyLTAzLTI5IDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNldFNlcmlhbE5vLmMgLCBzZXRTZXJpYWxOby5oOgoKICAgb3Bwcy4gIGZvcmdvdCB0byBjaGVjayB0aGUgc2V0U2VyaWFsIGNvZGUgaW4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNCksIHBhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFY0LTItcGF0Y2hlcy40KSwgaHJfZmlsZXN5cy5jOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jICwgbWliSUkvaW50ZXJmYWNlcy5jCiAgICwgbWliSUkvaXBBZGRyLmM6CgogICBBcHBseSBuZXRic2QgZml4IHBhdGNoICM1Mjk3MzMKICAgCjIwMDItMDMtMjggMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmMgLAogICBzbm1wX2FwaS5jOgoKICAgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGZvciBpbml0IGNoZWNraW5nLiAgQnVnICM1MzYzODYuCiAgIAoyMDAyLTAzLTI4IDE1OjI1ICBkdHMxMgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wICwgcmVhZF9jb25maWcuMy5kZWYgLAogICBzbm1wX2FwaS4zLmRlZjoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlLgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbmFtZS9wcmVmaXggZnVuY3Rpb25zOyBhZGQgZG94eWdlbiBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTAzLTI4IDEzOjAwICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGRlZmluZSBmb3IgZXhjbHVkaW5nIHN0dWZmIChET1hZR0VOX1NIT1VMRF9TS0lQX1RISVMpCiAgIAoyMDAyLTAzLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHNldFNlcmlhbE5vCiAgIAoyMDAyLTAzLTI4IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIGZpeCBhIG5ldmVyLXNlZW4tYnV0LXZlcnktb2xkLWJ1ZyB1c2luZyB0aGUgd3JvbmcgZGVmYXVsdF9zdG9yZSB0b2tlbi4KICAgCjIwMDItMDMtMjggMTI6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9ubHkgc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBzdHlsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgd3JhcHBpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgdmVyc2lvbiBudW1iZXIKICAgCjIwMDItMDMtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGJhY2sgb3V0IGNoYW5nZSBmcm9tIHZlcnNpb24gMS42NSB1bnRpbCBiZXR0ZXIgc29sdXRpb24gY2FuIGJlIGZvdW5kOwogICBidWcgIzUzNTAyOQogICAKMjAwMi0wMy0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZXR1cm4gc3BlY2lmaWMgcmVzdWx0IGNvZGUgZm9yIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGlmIGF2YWlsYWJsZS4KICAgCjIwMDItMDMtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIHBlcmwgdHlwbwogICAKMjAwMi0wMy0yNyAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGRlbGV0ZSBvbGQsIHVudXNlZCBjb25mIGZpbGUKICAgCjIwMDItMDMtMjcgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMgLCBub3RpZmljYXRpb25fbG9nLmggLAogICBzbm1wdHJhcGQuYzoKCiAgIGFkZCAiZG9udFJldGFpbkxvZ3MiIHRva2VuIHRvIHNubXB0cmFwZC5jb25mIHRvIG5vdCBlbmFibGUgdGhlCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliLgogICAKMjAwMi0wMy0yNyAwMTo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bMSwxXSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gUmVhbGx5IGZpeCB0aGUgInVuZG8gZmFpbGVkIiBwcm9ibGVtLiAgSUUsIG5vdCBqdXN0IGFueSBvbGQgZXJyb3IKICAgICB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIG1lc3NhZ2UgdG8gZ2V0IHNlbnQgYmFjay4gIE9ubHkgdmFyYmluZHMKICAgICB3aXRoIGFuIHVuZG8gZmFpbGVkIGVycm9yIGNvZGUgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCByZXN1bHQuCiAgICAgdW5kbyBmYWlsZWQgcmVzdWx0cyBkbyBzdGlsbCBzdXBlcnNlZGUgYWxsIG90aGVyIGVycm9yIGNvZGVzLAogICAgIGhvd2V2ZXIsIHdoaWNoIGlzIHdoYXQgdGhlIG9yaWdpbmFsIHByb2JsZW0gd2FzIGFsbCBhYm91dC4gIFdlIHN0aWxsCiAgICAgaGF2ZSB0byBkZXBlbmQgb24gdGhlIG1vZHVsZXMgcmV0dXJuaW5nIHRoZSByaWdodCBlcnJvciBjb2RlIChidXQKICAgICB0aGF0J3MgdGhlaXIgZmF1bHQgaWYgdGhleSBkb24ndCkuCiAgIC0gbWlzYyBjbGVhbnVwcyBhbmQgcmVuYW1lcwogICAKMjAwMi0wMy0yNiAyMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIENyYWlnIFNldGVyYQogICAKMjAwMi0wMy0yNiAxNDowNyAgcnN0b3J5CgogICAqIFRPRE86CgogICBhZGQgY3JlYXRpbmcgc3JjIHJwbSBzcGVjIGZpbGUKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlza2lvLmMgKFY0LTItcGF0Y2hlcy4yKSwgZGlza2lvLmM6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo1OCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBmb3Igb3RoZXItZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaW5mbyBpbiBzcGxpdF9zdWJ0cmVlCiAgIAoyMDAyLTAzLTI2IDA3OjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLlswLDBdKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls5LDldKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBsaXN0IG9mIGFnZW50IGxpYnJhcmllcywgd2hlbiBydW5uaW5nIG9uIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNC0yLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMy0yNSAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICB1c2UgZW1hY3MgdG8gZml4IHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgcGVybCB0byBzZWFyY2ggYW5kIHJlcGxhY2UgcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMjUgMDg6NDMgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIub3B0ICwgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAogICAsIHNubXBkL3NubXBkLmRzcCAsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwKICAgc25tcGRmL3NubXBkZi5kc3AgLCBzbm1wZ2V0L3NubXBnZXQuZHNwICwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiAgICwgc25tcHNldC9zbm1wc2V0LmRzcCAsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKICAgLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcAogICAsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AgLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCAsCiAgIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AgLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucyBvZiAnZ2V0b3B0LmMnIGFuZCAnc25tcF9wYXJzZV9hcmdzLmMnIGluCiAgIGVhY2ggaW5kaXZpZHVhbCBhcHBsaWNhdGlvbiBwcm9qZWN0LiAgVGhlc2Ugcm91dGluZXMgYXJlIGluY2x1ZGVkIHdpdGhpbgogICB0aGUgbGlicmFyaWVzLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIHVzZSB0aG9zZS4KICAgCjIwMDItMDMtMjUgMDU6NTMgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIub3B0ICwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICBzbm1wZC9zbm1wZC5kc3A6CgogICBHb3RjaGEhICBFdmVyeXRoaW5nIG5vdyBidWlsZHMgKG1vcmUtb3ItbGVzcykgY2xlYW5seSB1bmRlciBWaXN1YWwgQysrLgogICBZb3Ugc3RpbGwgaGF2ZSB0byB1c2UgdGhlICJCYXRjaCBCdWlsZCIgbWVjaGFuaXNtIChvciBlbHNlIGJlIGNhcmVmdWwgd2hpY2gKICAgb2YgbGlic25tcC9saWJzbm1wX2RsbCB5b3UgYnVpbGQgaW4gZWFjaCBvZiB0aGUgRGVidWcgJiBSZWxlYXNlIG1vZGVzKSwKICAgYW5kIHlvdSBuZWVkIHRvIGJ1aWxkIHR3aWNlIGluIG9yZGVyIHRvIGdldCBlbmNvZGVfa2V5Y2hhbmdlIGxpbmtpbmcuCiAgIEJ1dCB0aGluZ3MgKmRvKiBmaW5hbGx5IGJ1aWxkLgogICAKMjAwMi0wMy0yNCAwNToyMSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBPb3BzIC0gc25wcmludF8qIGNhbm5vdCByZWFsbG9jCiAgIAoyMDAyLTAzLTIzIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgcmVhbGx5IGZpeCBzbm1waW5mb3JtIGluc3RhbGxzIHRoaXMgdGltZS4KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmluYWwgY2xlYW51cHMgb2Ygbm90aWZpY2F0aW9uIGxvZyBzdXBwb3J0CiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBvZiBzbm1waW5mb3JtCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUmVuYW1lIHN0dWZmLiAgRml4IHN0dWZmLiAgWW91IGtub3csIG5vcm1hbCByb3V0aW5lLgogICAKMjAwMi0wMy0yMiAyMjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgZml4IHZlcnNpb24gZmlsZSBsb2NhdGlvbiBmb3Igbm9uLXNvdXJjZWRpciBidWlsZHMKICAgCjIwMDItMDMtMjIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZm9yZ290IHRvIGNvbW1pdCBhIHByb3RvdHlwZS4KICAgCjIwMDItMDMtMjIgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICByZWdpc3Rlcl9taWJfY29udGV4dDIgLT4gbmV0c25tcF9yZWdpc3Rlcl9taWIgKGFuZCBtYXJrZWQgYXMgaW50ZXJuYWwpCiAgIAoyMDAyLTAzLTIyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHN1YmFnZW50LmM6CgogICB1c2UgbmV3IGVycm9yIGxvZ2dpbmcgYXBpIHdoZW4gIXJvb3QKICAgCjIwMDItMDMtMjIgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVuYWJsZSBsb2dnaW5nIHNlc3Npb24gZXJyb3JzIHRvIHNvbWUgbG9nIGxldmVsIG90aGVyIHRoYW4gRVJSLgogICAKMjAwMi0wMy0yMiAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBzdWJhZ2VudC5jOgoKICAgYmV0dGVyIGFnZW50eCBjb25uZWN0aW9uIHJlbGF0ZWQgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTIyIDA5OjM1ICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdyAsIHdpbjMyLm9wdCAsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AgLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCAsIHNubXBkL3NubXBkLmRzcDoKCiAgIFNsb3dseSBtYWtpbmcgcHJvZ3Jlc3Mgb24gNS4wIFdpbmRvd3MgYnVpbGQuCiAgIEV2ZXJ5dGhpbmcgbm93IGNvbXBpbGVzLCB0aG91Z2ggdGhlIFJlbGVhc2UgdmVyc2lvbiBkb2Vzbid0IGxpbmsuCiAgICAgKGNvbXBsYWlucyBhYm91dCBhc3NvcnRlZCB1bmtub3duIHJvdXRpbmVzIHRoYXQgYXJlIHRoZXJlLAogICAgICBzdGFyaW5nIGl0IGluIHRoZSBmYWNlLiAgR3JyciEhISEpCiAgIAoyMDAyLTAzLTIyIDA4OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIG5vdCAidHdlYWsiIHJhbmdlX3N1YmlkIHdoZW4gZGVhbGluZyB3aXRoIGNvbXByZXNzZWQgT0lEcy4KICAgICAgIFRoYW5rcyB0byBDcmFpZyBTZXRlcmEgZm9yIHBvaW50aW5nIG91dCB0aGlzIGRldmlhdGlvbiBmcm9tIFJGQwogICAgICAgMjc0MS4KICAgCjIwMDItMDMtMjIgMDc6NTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsIHNubXBsaWIvb2lkX2FycmF5LmMKICAgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVmFyaW91cyBtaW5vciBpbmNvbnNpc3RlbmNpZXMgKG1vc3RseSB0byBkbyB3aXRoIHN1YnRsZSB2YXJpYXRpb25zIGluIHR5cGVzKQogICAKMjAwMi0wMy0yMiAwNzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggdHlwbwogICAKMjAwMi0wMy0yMiAwNzoyOSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmggLCBtaWJfbW9kdWxlX2luaXRzLmggLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIG5ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6CgogICBCcmluZyBXaW5kb3dzIHZlcnNpb25zIG9mICJhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCIgaGVhZGVyIGZpbGVzIHVwIHRvIGRhdGUuCiAgIAoyMDAyLTAzLTIyIDAyOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkb24ndCB1c2UgInJlZyIgYXMgYSBwYXJhbWV0ZXIgbmFtZSBpbiBrZXJuZWxfc3Vub3M1X2NhY2hlX2FnZSgpCiAgICAgICBhcyAvdXNyL2luY2x1ZGUvaW5ldC9jb21tb24uaCBzYXlzOgogICAgICAgI2RlZmluZSByZWcgcmVnaXN0ZXIKICAgICAgICghKSB3aGljaCB0aGUgY29tcGlsZXIgdGhlbiBiYXJmcyBvbi4gIFJlcG9ydGVkIGFzIGJ1ZyAjNTMzMzM2IGJ5CiAgICAgICBBbm9ueW1vdXMuCiAgIAoyMDAyLTAzLTIxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9jb25maWcqIC0+IG5ldHNubXBfY29uZmlnIChmb3IgbmV3IGZ1bmN0aW9ucyBvbmx5KQogICAtIGZpeCBidWcgd2hlcmUgc25tcF9jb25maWcoKSBzdHJpbmdzIHdlcmUgZ2V0dGluZyBwYXJzZWQgdHdpY2UuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgd3JhcCBhZ2VudHggc3R1ZmYgaW4gYSBzdGlsbCB1bnVzZWQgdmFyaWFibGUgKGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggb2lkIHBhcnNpbmcuCiAgIAoyMDAyLTAzLTIxIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24vYWxhcm0uYyAsIFJtb24vc3RhdGlzdGljcy5jICwKICAgbWliSUkvYXQuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjEgMDY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMCAyMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGEgbGlzdCBvZiByZWdpc3RlcmVkIHRleHQgZW51bXMgdG8gQVNOXyogdmFsdWVzLgogICAgIChJbiBwcm9iYWJseSB0aGUgd3JvbmcgcGxhY2UuKQogICAKMjAwMi0wMy0yMCAyMDoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmggLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oOgoKICAgY3JlYXRlIGEgbmV3ICJvdmVycmlkZSIgZGlyZWN0aXZlIHRvIGZvcmNlIGFuIE9JRCB0byBhIHBhcnRpY3VsYXIgdmFsdWUKICAgLSBub3QgZmluaXNoZWQuICBJdCdzIGRlc2lnbmVkIHRvIGRvIHJlYWQtd3JpdGUgYXMgd2VsbCwgYnV0IGRvZXNuJ3QuCiAgIAoyMDAyLTAzLTIwIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjaGVjayBmb3IgaW5jbHVzaXZlCiAgIAoyMDAyLTAzLTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIGluY2x1ZGUgbmV3IGRlbGV0ZS9yZW1vdmUgYnJlYWtkb3duIEFQSXMKICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQVBJIGNoYW5nZS4KICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgc29tZSAidGhpcyB3aWxsIGNoYW5nZSIgZWFybHkgcm93IHN0YXR1cyBpbXBsZW1lbnRhdGlvbi4KICAgIC0gKHRoaXMgd2lsbCBtb3ZlIHRvIGEgc2VwYXJhdGUgaGFuZGxlcikKICAgCjIwMDItMDMtMjAgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcG9pbnRlciBjaGVja2luZyBhZ2FpbnN0IGlsbGVnYWwgYWRkcyAoaWUsIHNob3VsZG4ndCBoYXBwZW4gYnV0IGNoZWNrIGFueXdheSkKICAgCjIwMDItMDMtMjAgMDg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBPaywgSSBtYWtlIG1pc3Rha2VzLiAgSSBhZG1pdCBpdC4gIEl0IHJlYWxseSBzaG91bGQgaGF2ZSBiZWVuIGEgTlVMTC4KICAgCjIwMDItMDMtMjAgMDg6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wMy0yMCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIHNlcGFyYXRlIG91dCBkZWxldGUvcmVtb3ZlIHJvdyBmdW5jdGlvbmFsaXR5CiAgIAoyMDAyLTAzLTIwIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBzeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTIwIDA2OjI3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZSAsIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbWFueSBtYW55IC1UIGZsYWdzIGZvciBkZWZpbmluZyB0eXBlcy4KICAgCjIwMDItMDMtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmb3JjZSBzZXR0aW5nIG9mICchcm9vdCcgZmxhZyBzbyB0aGF0IGl0IHdpbGwgcnVuIGZvciBub24tcHJpdmlsZWdlZAogICB1c2VycyBvciB3aGVuIGFuIGFnZW50eCBtYXN0ZXIgc2ltcGx5IGhhcyBuZXZlciBleGlzdGVkLgogICAKMjAwMi0wMy0xOSAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gYWxsb3cgdGFibGVzIHRvIGJlIG1hcmtlZCB3aGV0aGVyIHRoZXkgc2hvdWxkIHN1cHBvcnQgY3JlYXRpb24gb3Igbm90LgogICAtIGJ1ZyBmaXhlcwogICAKMjAwMi0wMy0xOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYyAsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MjggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIHBlcmwvYWdlbnQvYWdlbnQueHMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW5hbWVkIGEgZmV3IGJhZGx5IG5hbWVkIGZ1bmN0aW9ucyAobmV0c25tcF8gYXBwZWFyZWQgdHdpY2UpLgogICAtIGltcGxlbWVudGVkIHRoZSBiZWdpbm5pbmcgb2YgY3JlYXRpb24gc3VwcG9ydCBmb3IgZGF0YXNldHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBBcHBhcmVudGx5IEkgcmFuIGF1dG9jb25mIGVhcmxpZXIgYW5kIG1pc3NlZCBjaGVja2luZyBpbiB0aGUgcmVzdWx0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgYWRkIC1uZmNhCiAgIAoyMDAyLTAzLTE3IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBTZXQgZGVmYXVsdCBwb3J0IHRvIDE2Mi4KICAgCjIwMDItMDMtMTcgMTU6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmM6CgogICBpbXByb3ZlZCBmb3JtYXR0aW5nIHN0cmluZ3Mgc2hvd2luZyBib3RoIHRyYW5zcG9ydCB0eXBlIGFuZCBwb3J0IG51bWJlci4KICAgCjIwMDItMDMtMTMgMjM6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIG1pc3NpbmcgImluc3RhbGxzdWJkaXJzIiB0YXJnZXQgbWlzc2luZyAodGhhbmtzIHRvIEthdHN1aGlzYSBBQkUpCiAgIAoyMDAyLTAzLTEzIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4gLCBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jcmVhdGUtc25tcHYzLXVzZXIgdG8gYXV0b21hdGUgYWRkaW5nIGEgdjMgdXNlciB0byBib3RoIHRoZSB1c20KICAgYW5kIHZhY20gdGFibGVzIChieSBhZGRpbmcgbGluZXMgdG8gYm90aCB0aGUgcGVyc2lzdGVudCBhbmQgbm9ybWFsCiAgIGNvbmYgZmlsZXMpLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgYnVnIGZpeCBmb3IgcHJlLXByb2Nlc3NlZCByZXF1ZXN0cy4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmggLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCAsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICAtIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYWN0dWFsbHkgaW5zdGFsbHMgaGVhZGVycyAoYXMgb3Bwb3NlZAogICAgIHRvIGFsd2F5cywgd2hpY2ggaXMgd2hhdCBpdCB1c2VkIHRvIGRvKS4KICAgLSBhZGQgYWdlbnRfbWlicyB0byBjb25maWd1cmUgZGVmYXVsdCBtaWIgbW9kdWxlcyBhbmQgZG9jdW1lbnQuCiAgIC0gY2hhbmdlIGhlbHAgZG9jdW1lbnRhdGlvbiBhIGJpdCBmb3IgdGhlIG1pYiBtb2R1bGVzLgogICAtIGFkZCBhIGZvcmNlZCBkZXBlbmRlbmN5IGZvciBtaWJfbW9kdWxlcy5sbwogICAKMjAwMi0wMy0xMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaDoKCiAgIG9wcHMuICBkdXBsaWNhdGVzIGV4aXN0aW5nIGFnZW50X21pYnMuaAogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0CiAgIChWNC0yLXBhdGNoZXMuWzEsMSwxLDEsMSw5XSksIFVDRC1ERU1PLU1JQi50eHQgLAogICBVQ0QtRElTS0lPLU1JQi50eHQgLCBVQ0QtRExNT0QtTUlCLnR4dCAsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0ICwgVUNELUlQRldBQ0MtTUlCLnR4dCAsCiAgIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEFkZGVkIGEgbnNNb2R1bGVUYWJsZSB0YWJsZSB3aGljaCByZXBsYWNlcyB0aGUgb2xkZXIgbXJUYWJsZS4KICAgRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBpdGVtcyB3aXRoaW4gdGhlIE1JQgogICB0cmVlIGp1c3QgbGlrZSB0aGUgbXJUYWJsZSB3YXMsIGJ1dCB3aXRoIHN1cHBvcnQgZm9yIGNvbnRleHRzIGFuZCBmb3IKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgd2l0aCBkaWZmZXJlbnQgcHJpb3JpdGllcy4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0b29scy5jIChWNC0yLXBhdGNoZXMuNCksIHRvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBkZWJ1ZyBzdGF0ZW1lbnQKICAgCjIwMDItMDMtMTMgMTQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgbG9jYWwgdmFyaWFibGUgbmFtZSBidWZmZXJzIGJ5IGRlZmF1bHQgd2hlbiBidWlsZGluZyBvaWQgc2VnbWVudHMuCiAgIAoyMDAyLTAzLTEzIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAvKiBzdG9wIHdhdGVyIGZyb20gZmxvd2luZyB0aHJvdWdoIGRhbSAqLwogICBmaW5nZXItPmluc2VydCgiaG9sZSIpCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZml4IGhlYWRlcnMuCiAgIAoyMDAyLTAzLTEyIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBkb24ndCBmb3JtYXQgY29tbWVudHMgb3B0aW9uCiAgIAoyMDAyLTAzLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgdGFibGVzIHdpdGggaG9sZXMuCiAgIAoyMDAyLTAzLTEyIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgbW92ZSBkZWZhdWx0IG1pYnMgdG8gdGhlaXIgb3duIHZhcmlhYmxlLgogICAKMjAwMi0wMy0xMiAyMTowNiAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvTWFrZWZpbGUuUEwgLCBhZ2VudC9NYWtlZmlsZS5QTCAsCiAgIGFnZW50L2FnZW50LnhzICwgYWdlbnQvdHlwZW1hcDoKCiAgIC0gdXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaWd1cmUgdGhpbmdzIG91dC4KICAgLSB1cGRhdGUgaGVhZGVycyBhbmQgdHlwZWluZm8gZm9yIHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBGQVEySFRNTCAsIFJFQURNRS5taWIyYyAsIG1pYjJjICwgdGttaWIKICAgLCBtaWIyYy5hcnJheS1hdXRvLmNvbmYgLCBtaWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgcmVtb3ZlIG9ic29sZXRlIG1pYjJjLmNvbmYgZmlsZQogICAKMjAwMi0wMy0xMiAxODoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb24ndCBmb3JnZXQgdG8gc2V0IHJvdy0+bmV4dC0+cHJldiB0byBzb21ldGhpbmcgd2hlbiByZW1vdmluZyByb3cuCiAgIAoyMDAyLTAzLTEyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggYWdlbnR4IGluY2x1c2l2ZSBzZWFyY2hlcyB0byBpZ25vcmUgZ2V0IGVycm9ycy4KICAgCjIwMDItMDMtMTIgMTc6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBzb21lIG1pbmltYWwgZHVtcCBkZWJ1Z2dpbmcuCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2FzdCAtMSB0byB1X2NoYXIgc28gdGVzdCBkb2Vzbid0IGFsd2F5cyBmYWlsIChmaXggY29tcGlsZXIgd2FybmluZykKICAgCjIwMDItMDMtMTEgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHRyZWF0IChpbGxlZ2FsKSBlcnJvcnMgZnJvbSBzdWJhZ2VudHMgc3BlY2lhbGx5IGZvciBnZXRuZXh0IGNhc2VzLgogICAKMjAwMi0wMy0xMSAxMzo0MSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG91ciBzbm1wIGxpYnJhcmllcyB0byBvdXRwdXQKICAgCjIwMDItMDMtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiB0YWJsZV9kYXRhLmggLCB0YWJsZV9kYXRhc2V0Lmg6CgogICBkZWxldGUvcmVtb3ZlIHN1cHBvcnQgaGVhZGVyIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTExIDA5OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGFsbG93IGNvbXBpbGF0aW9uIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1UQ1AKICAgCjIwMDItMDMtMTEgMDg6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBmaXhlcyBmb3IgLS1kaXNhYmxlLWRlYnVnZ2luZwogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA2OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgY29ycmVjdCBzZXNzaW9uIElEIHdoZW4gdGFsa2luZyB0byBzdWJhZ2VudHMuICBUaGFua3MgdG8gQ3JhaWcKICAgICAgIFNldGVyYSBmb3IgdGhpcyBmaXguCiAgIAoyMDAyLTAzLTExIDA1OjIwICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIGZyZWVzLCBldmVuIHRob3VnaCBpdCdzIHN1cHBvc2VkIHRvIGJlIG9rIGFjY29yZGluZyB0byBhbnNpLgogICAKMjAwMi0wMy0xMSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgbWF4aW11bSBsb2dnZWQgY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTExIDAwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgLSBudWxsIGNoZWNrCiAgIC0gZG9jIGNvbW1lbnRzLgogICAKMjAwMi0wMy0xMSAwMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAKMjAwMi0wMy0xMSAwMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXh0IGhhbmRsZXJzIChvcHBzKS4KICAgCjIwMDItMDMtMTAgMTQ6MTEgIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZpeCBvbmUgc3ByaW50X3ZhcmlhYmxlID0+IHNucHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDMtMTAgMTQ6MDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgQWRkIHNucHJpbnRfKiBmdW5jdGlvbnMgdGhhdCB3ZXJlIHNwcmludF8qIGluIHVjZC1zbm1wIDQKICAgCjIwMDItMDMtMTAgMTQ6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmggLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwogICAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aGVuIElQWC10cmFuc3BvcnQgZW5hYmxlZAogICAKMjAwMi0wMy0xMCAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBGaXggY29tcGlsYXRpb24gb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAzLTA4IDIyOjI2ICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCBwZXJsL1NOTVAvU05NUC5wbSAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTIgKQogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWlzYyBjaGFuZ2VzLgogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMDggMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkIHRvIGRlYWwgd2l0aCBTZW5kbWFpbCA4LjEyIHF1ZXVlZ3JvdXBzLgogICAKMjAwMi0wMy0wOCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gY3NldGUgdG8gZml4IHdpbjMyIGJ1aWxkcwogICAKMjAwMi0wMy0wOCAxNjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgYWRkIENhbGxiYWNrIHRyYW5zcG9ydCB0byBjeWd3aW4KICAgCjIwMDItMDMtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHJtb24gc3VwcG9ydC4KICAgCjIwMDItMDMtMDggMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmVtb3ZlIG9sZCBhbiB1bnVzZWQgcG9pbnRlcgogICAKMjAwMi0wMy0wOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKICAgLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcGJ1bGtnZXQuYyAsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMgLCBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYwogICAsIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwKICAgYXBwcy9zbm1wc2V0LmMgLCBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMKICAgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oICwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgLAogICBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmYgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc3RydWN0IHNubXBfc2Vzc2lvbiB0eXBlZGVmZWQgdG8gbmV0c25tcF9zZXNzaW9uLiAgJiBwZHUuICYgLi4uCiAgIAoyMDAyLTAzLTA4IDE0OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldF9zeW1ib2wgLT4gZ2V0X3RyZWUKICAgCjIwMDItMDMtMDggMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMgLCBhZ2VudC9hZ2VudC5wbSAsIGFnZW50L2FnZW50LnhzCiAgICwgYWdlbnQvdGVzdC5wbDoKCiAgIG1pc3NlZCB1cGRhdGVzCiAgIAoyMDAyLTAzLTA4IDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMgLCBkZWZhdWx0X3N0b3JlLmMgLCBtaWIuYwogICAsIG9pZF9hcnJheS5jICwgb2lkX3N0YXNoLmMgLCByZWFkX2NvbmZpZy5jCiAgICwgc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5jICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwgc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcF9hcGkuYyAsIHNubXBfZGVidWcuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wdjMuYzoKCiAgIG1pc3NpbmcgdXBkYXRlZCBjb2RlCiAgIAoyMDAyLTAzLTA4IDAyOjA3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc29tZSBzbm1wIC0+IG5ldHNubXAgZml4ZXMKICAgCjIwMDItMDMtMDcgMTM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDQpCiAgIAoyMDAyLTAzLTA3IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAzKQogICAKMjAwMi0wMy0wNyAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDIpCiAgIAoyMDAyLTAzLTA3IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcHN0YXR1cy5jICwKICAgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMSkKICAgCjIwMDItMDMtMDcgMDY6MjEgIGpicG4KCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjQ3ICBqYnBuCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgICAtIG1pbm9yIHVwZGF0ZXMKICAgCjIwMDItMDMtMDcgMDU6MzkgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjAwICBqYnBuCgogICAqIG1hbi9yZWFkX2NvbmZpZy4zLmRlZjoKCiAgICAgLSBtYWtlIHByb3RvdHlwZXMgbWF0Y2ggaGVhZGVyCiAgIAogICAgIC0gbWFrZSBzdHlsZSBjb25zaXN0ZW50IHdpdGggbWliX2FwaQogICAKMjAwMi0wMy0wNyAwMzowNyAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBmaXggdXAgc25wcmludF8gZGVjbGFyYXRpb25zLCBmaXggc21hbGwgdHlwby4gIFBhdGNoIGJ5IEd1eQogICBIYXJyaXMuCiAgIAoyMDAyLTAzLTA3IDAyOjQ0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIHNwcmludF9yZWFsbG9jX2J5X3R5cGUsIGFzIG5vdGVkCiAgICAgICBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUgLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlOgoKICAgbmV3IGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMy0wNiAxNzoxMyAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBkb2NzCiAgIAoyMDAyLTAzLTA2IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgZXhhbXBsZXMgbW9kdWxlIHdyYXBwZXIgdG8gaW5jbHVkZSBhbGwgKG5ldykgZXhhbXBsZXMuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudCBiZXR0ZXIuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBzZWFyY2ggZXhhbXBsZXMgZm9yIGRvY3MuCiAgIAoyMDAyLTAzLTA2IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBleGFtcGxlIE1JQiB0ZW1wbGF0ZSAoYW5kIG9uZSBub2RlKQogICAKMjAwMi0wMy0wNiAxNjoyOCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgaW5zdGFudGlhdGUgZXhhbXBsZXMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgTlMgbWlicwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBzY2FsYXJfaW50LmMgLCBzY2FsYXJfaW50Lmg6CgogICBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgU05NUCBlbmFibGVkIGludCByZWdpc3RlcmVkIGF0IGEgc2NhbGFyLgogICAKMjAwMi0wMy0wNiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgbWFueSBjaGFuZ2VzIGZvciBpbnN0YW5jZXMuICBTcGVjaWZpY2ljYWxseToKICAgICAtIGFsbG93IGZvciBzdWJoYW5kbGVycy4KICAgICAtIHByb3ZpZGUgYW4gaW50IHdyYXBwZXIuCiAgICAgLSByZXVzZSBtb3JlIGNvZGUuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZS4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX2FkbWluLmM6CgogICBGaXggbWFzdGVyIGFnZW50IGdldGJ1bGsgc3VwcG9ydC4gIHRoaXMgaGFzIHRvIGJlIGluZGVwZW5kZW50bHkgb2YgdGhlCiAgIG5vcm1hbCBidWxrLT5uZXh0IGZpeGVzIGR1ZSB0byBkZWxlZ2F0aW9uLiAgTG9uZyBzdG9yeS4KICAgCjIwMDItMDMtMDYgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBtb3ZlIGJ1bGtfdG9fbmV4dCBmaXhpbmcgZnVuY3Rpb25hbGl0eSBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlLgogICAKMjAwMi0wMy0wNiAxMDoyNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIHNwcmlua2xlIG1hZ2ljIGNvbnN0IGR1c3QKICAgCjIwMDItMDMtMDYgMTA6MTggIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZG9jdW1lbnQgY2hhbmdlZCBBUEksIGluY29ycG9yYXRpbmcgcGF0Y2hlcyBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwOTozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTJhZ2VudHhzZXRmYWlsICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGZpeCB0ZXN0cy4KICAgCjIwMDItMDMtMDYgMDk6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICByZS1lbmFibGUgc2V0dGluZyBvcHRpbmQgdG8gMSB0aWxsIERhdmUgdGVsbHMgbWUgd2hlcmUgdGhpcyBicmVha3MuCiAgIAoyMDAyLTAzLTA2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1MXNubXB2MmN0cmFwICwgVDA1MnNubXB2MmNpbmZvcm0gLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIGZpeGVzIGZvciBuZXcgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMjAwMi0wMy0wNiAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW9yZSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyAobW9zdGx5KQogICAKMjAwMi0wMy0wNiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgYXV0b2NvbmYKICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgcHJvdG9jb2wuYzoKCiAgIHByb3BlciBmaXggZm9yIG5vdCByZXF1aXJpbmcgcmVzcG9uc2VzIHRvIENMRUFOVVAgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTA2IDA2OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB6ZXJvIHRoZSBuYW1lIG9mIGVsZW1lbnRzIG9mIHRoZSBidWxrIGNhY2hlCiAgIAoyMDAyLTAzLTA2IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY2FsbG9jKCkgbm90IG1hbGxvYygpIGluIGEgZmV3IHBsYWNlcyB0byBpbml0aWFsaXNlIHNvbWUgYnVmZmVycwogICAgICAgdG8gemVyb2VzLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDA1OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCBzZW5kIHJlcXVlc3RzIGZvciBPSURzIHByZWNlZWRpbmcgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uCiAgICAgICAodGhpcyBjYW4gbGVhZCB0byBsb29wcyBpZiBlLmcuIGEgc3ViYWdlbnQgaGFzIHJlZ2lzdGVyZWQgdHdvCiAgICAgICBhZGphY2VudCByb3dzKS4KICAgCjIwMDItMDMtMDYgMDU6MDcgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgdGVzdGNsZWFuCiAgIAoyMDAyLTAzLTA2IDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gdXNlIG1vcmUgZWZmaWNpZW50IGdldF90cmVlKCkgaW4gc3ByaW50X3JlYWxsb2NfdmFsdWUoKQogICAKMjAwMi0wMy0wNSAxODoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTVzbm1wdjJjZ2V0bmV4dCAsIFQwMDFzbm1wdjFnZXQgLAogICBUMDAyc25tcHYxZ2V0bmV4dCAsIFQwMDNzbm1wdjFnZXRmYWlsICwgVDAxNHNubXB2MmNnZXQKICAgLCBUMDE2c25tcHYyY2dldGZhaWwgLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsICwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCAsIFQxMDBhZ2VudGh1cDoKCiAgIGZpeGVzIGZvciBuZXcgZm9yY2VkIC1jIGZsYWdzCiAgIAoyMDAyLTAzLTA1IDE4OjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgYXBwcm9wcmlhdGUgY29tbWVudC4KICAgCjIwMDItMDMtMDUgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZml4IGR1cGxpY2F0ZSBmcmVlIGJ5IGNsb25pbmcgdGhlIHBkdSBiZWZvcmUgc2VuZGluZyBpdCBvdXQgYWdhaW4KICAgKHRob3VnaHQgSSBoYWQgZG9uZSB0aGlzIG9uY2UgaW4gdGhlIHBhc3QgYWxyZWFkeSwgYnV0IEkgZ290IDEvMiBmdW5jdGlvbnMpLgogICAKMjAwMi0wMy0wNSAxODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUZW1wb3JhcnkgZml4IHRvIGZpeCBmb3IgYWdlbnR4IFNFVCByZXF1ZXN0cy4gIFRoaXMgcmV2ZXJzZXMgYQogICBwcmV2aW91cyBKb2huIGNoYW5nZSB3aGVyZSByZXNwb25zZXMgdG8gY2xlYW51cHMgYXJlIG5vdyBleHBlY3RlZAogICBhZ2Fpbi4gIFRoaXMgdG9vayBtZSBhIGdvb2QgMiBkYXlzIHRvIHRyYWNrIGRvd24sIHNpZ2guLi4KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gYWRkIChhc2NpaSkgYWdlbnR4IHN0YXRlIGRpYWdyYW0KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gbXVsdGlwbGUgZnJlZSBidWcgZml4ZXMuCiAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAzLTA1IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jICwgbWFzdGVyX3JlcXVlc3QuaDoKCiAgIHJlbW92ZWQgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTAzLTA1IDEwOjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIGZpeCBiYWQgY3V0IGFuZCBwYXN0ZQogICAKMjAwMi0wMy0wNSAxMDoyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZWludHJvZHVjZSBzY29wZSBwcm9jZXNzaW5nIChzZWUgUkZDIDI3NDEsIHAuIDY2LCBzZWN0aW9uIDcuMi4zLjIKICAgICAgIHBhcmFncmFwaCAyKTogIklmIHRoZSBzdWJhZ2VudCBjYW4ndCBsb2NhdGUgYW4gYXBwcm9wcmlhdGUKICAgICAgIHZhcmlhYmxlLCBfX3YubmFtZV9pc19zZXRfdG9fdGhlX3N0YXJ0aW5nX09JRF9fIFt0aGUgaW1wb3J0YW50CiAgICAgICBiaXRdIGFuZCB0aGUgVmFyQmluZCBpcyBzZXQgdG8gYGVuZE9mTWliVmlldyciCiAgIAoyMDAyLTAzLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgaW1wb3NlIG1heCBsZW5ndGggcmVzdHJpY3Rpb24gc3VwcGxpZWQgYnkgbWliIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoyMDAyLTAzLTA1IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIHNubXBfYWdlbnQuYyAsCiAgIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBuZXcgREVCVUdNU0dWQVIgbWFjcm8gaW4gYSBmZXcgcGxhY2VzCiAgIAoyMDAyLTAzLTA1IDA4OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdNU0dWQVIgbWFjcm8gdG8gcHJpbnQgb3V0IGEgdmFyaWFibGUKICAgCjIwMDItMDMtMDUgMDg6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgcHJpbnRfdmFsdWUgZnVuY3Rpb24gdXBkYXRlcy4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogdWNkRGVtb1B1YmxpYy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIHVjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDg6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGdycnIsIGJvdGNoZWQgbGFzdCBmaXgKICAgCjIwMDItMDMtMDUgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBjYWxsYmFjayBzZXNzaW9uIHZlcnNpb24gbnVtYmVyIHRvIHRoZSBnZW5lcmljIC0xCiAgIHZlcnNpb24gYWxsb3dpbmcgdGhlIHBkdSB0byBwYXNzZWQgd2l0aG91dCB2ZXJzaW9uIGNoZWNraW5nLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbW92ZSBOVUxMIGNoZWNrIHRvICpiZWZvcmUqIHlvdSBhY3R1YWxseSB1c2UgdGhlIHBvaW50ZXIuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBtYXJrIElOQ0xVU0lWRSByZXF1ZXN0cyBhcyBzdWNoCiAgIAoyMDAyLTAzLTA1IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gdXNlIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIHdoaWxlIGxvb3AsIGp1c3QgYSBwcmVjYXV0aW9uIGZvciBmdXR1cmUgcHJvYmxlbXMuCiAgIAoyMDAyLTAzLTA1IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2NoZWNrX3BhcnNlKSBhbGxvdyBpbnRlcm5hbCBzZXQgdHJhbnNhY3Rpb25zIHRvIGJlIHBhc3NlZCB0bwogICAgIHRoZSBhZ2VudCwgc2luY2UgYWdlbnR4IHNlbmRzIHRoZW0uCiAgIAoyMDAyLTAzLTA1IDA3OjIxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZG9uJ3QgYWRkIHRoZSAibW9kdWxlIElEIiB0byBPSURzIGlmIGl0IGlzIG51bWVyaWMgYmVjYXVzZSB3ZQogICAgICAgY291bGRuJ3QgbG9vayBpdCB1cCBwcm9wZXJseSAodG8gYXZvaWQgaG9ycmlibGUgbG9va2luZyBvdXRwdXQKICAgICAgIGxpa2UgdGhpczogIk9JRDogIy0xOjppc28uMi4zLjQuNS4iKQogICAKMjAwMi0wMy0wNSAwNzowNSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byAyYyBpbiBlcnJvciBtZXNzYWdlIGZyb20gdmVyc2lvbiBwcm9tcHQKICAgCjIwMDItMDMtMDUgMDc6MDEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgdGVzdHMKICAgCjIwMDItMDMtMDUgMDY6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gcmUtZW1waGFzaXMgYSBzdWdnZXN0aW9uIHRvIHN3aXRjaCB0byBhIHNlY3VyZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbC4KICAgLSBkZWxldGUgbm90aW9uIHRoYXQgdjMgd2l0aG91dCBhdXRoL3ByaXYgcHJvdmlkZXMgYmV0dGVyIHNlY3VyaXR5IChpdCBkb2Vzbid0KS4KICAgLSBEb24ndCBhY2NlcHQgdjJjIGFzIGFuIGFjY2VwdGVkIHZhbHVlLCBhcyBpdCdzIHVzZWQgYXMgYW4gaW50LgogICAgIC0gYnV0IGRvIGNoYW5nZSBoZWxwIG1lc3NhZ2VzLCBldGMsIHRvIHJlZmxlY3QgdGhhdCAyID0gdjJjLgogICAKMjAwMi0wMy0wNSAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjYWxsb2MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDUgMDY6MjAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbyBpbiBPQkpTIGRlZmluaXRpb24KICAgCjIwMDItMDMtMDUgMDY6MTggIGpicG4KCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAgIC0gY2xlYW4gdGFyZ2V0IGRlcGVuZHMgb24gJChPQkpTKSBhbmQgJChMT0JKUyksIHNvIGRlZmluZSB0aGVtCiAgIAoyMDAyLTAzLTA1IDAzOjUyICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggZGVmYXVsdCB2ZXJzaW9uIHRlc3RzIChzcGxpdHRpbmcgdGhlbSBvdmVyIHNldmVyYWwgbGluZXMKICAgICAgIGNvbmZ1c2VzIHNoIG9uIFNvbGFyaXMsIGF0IGxlYXN0KS4KICAgCiAgICAgLSBkaXNhbWJpZ3VhdGUgc29tZSBpbnN0YW5jZXMgb2YgInZlcnNpb24iIGluIGRlZmF1bHQgdmVyc2lvbgogICAgICAgcHJvbXB0IHRleHQuCiAgIAoyMDAyLTAzLTA1IDAyOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDb3JyZWN0bHkgZGV0ZWN0IHdoZW4gbm8gaW5pdGlhbCBkZWZhdWx0IHZlcnNpb24gaGFzIGJlZW4gc2V0LgogICBBY2NlcHQgJzJjJyBhcyB3ZWxsIGFzICcyJyBmb3IgYSBkZWZhdWx0IHZlcnNpb24gY2hvaWNlLgogICBGaXggdGhlIHRpdGxlIGZvciB0aGlzIHByb21wdCwgYW5kIHJld29yZCB0aGUgZGVzY3JpcHRpb24gdG8KICAgbWFrZSBpdCBhICpzbGlnaHRseSogbGVzcyBsZWFkaW5nIHF1ZXN0aW9uLCBtJ2x1ZC4KICAgCiAgIFFuOiBTaG91bGQgd2Ugc3VwcG9ydCBhICJubyBkZWZhdWx0IHZlcnNpb24iIG9wdGlvbiA/CiAgICAgKGhlbmNlIGFsbG93IHRoZSBhZG1pbiB0byBmb3JjZSB0aGUgZGVjaXNpb24gZG93biB0byB0aGUgdXNlcikKICAgCjIwMDItMDMtMDQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZQogICAKMjAwMi0wMy0wNCAxODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgKFRvIEpvaG4pOiBkbyBub3QgZnJlZSB0aGUgbXl2b2lkIHBvaW50ZXIgaW4gYSBoYW5kbGVyLiAgWW91IGNhbiBub3QKICAgYXNzdW1lIHRoYXQgaXQncyBhIGZyZWVhYmxlIHJlc291cmNlLiAgRm9yIGluc3RhbmNlLCB0aGUgYWdlbnR4IG1hc3RlcgogICBhZ2VudCB3YXMgdXNpbmcgaXQgdG8gc3RvcmUgdGhlIG1hc3RlciBzZXNzaW9uIHBvaW50ZXIgaW4gaXQgKHdoaWNoCiAgIHdvdWxkIGV4aXN0IGluIG11bHRpcGxlIHJlZ2lzdGVyZWQgbm9kZXMpLgogICAKMjAwMi0wMy0wNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmggLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdXNlIGEgY29uZmlndXJlIGdlbmVyYXRlZCB3cmFwcGVyIGhlYWRlciBmb3IgdjMgc2VjdXJpdHkgbW9kdWxlcy4KICAgCjIwMDItMDMtMDQgMTE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBkbWFsbG9jLmggdG8gdGhlIHByb3BlciBwbGFjZS4KICAgCjIwMDItMDMtMDQgMTE6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN0cmluZyBjbGVhbiB1cHMuCiAgIAoyMDAyLTAzLTA0IDExOjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgYWNsb2NhbC5tNCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHYzLmM6CgogICBJbXBsZW1lbnQgYSBkZWZhdWx0IHZlcnNpb24gcHJvbXB0IGZvciBjb25maWd1cmUuCiAgICAtIChXZXMgZHVja3MgYXMgdGhpcyBpcyBjdXJyZW50bHkgc2V0IHRvICczJyB3aGljaCBoZSBtYXkgaGF2ZSB0bwogICAgICAgY2hhbmdlIGFzIGl0IGhhc24ndCBleGFjdGx5IGJlZW4gYWdyZWVkIHVwb24gYXMgdGhlIHByb3BlciBkZWZhdWx0IHlldCkuCiAgICAtIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiBhbHNvIGNyZWF0ZWQuCiAgICAtIGNoYW5nZWQgaGFuZGxpbmcgb2YgZGVmYXVsdCBzdG9yZSAvIHNubXAuY29uZiB1c2FnZSBidXQgaW1wYWN0CiAgICAgIHNob3VsZCBiZSBsb3csIGhvcGVmdWxseS4KICAgCjIwMDItMDMtMDQgMTE6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGEgZmV3IGVycm9yIHN0cmluZ3Mgc2xpZ2h0bHkgaW1wcm92ZWQuICBXZSByZWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlCiAgIHdheSB0aGVzZSBhcmUgaGFuZGxlZCB0byBnZXQgYmV0dGVyIGltcHJvdmVtZW50LgogICAKMjAwMi0wMy0wNCAwNzo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgY2xlYW5pbmcgb2YgL3RtcCBmcm9tIHRoZSBtYWluIGNsZWFuaW5nIHRvIHByb3ZpZGUgaXQKICAgYXMgYSBzcGVjaWFsIHRhcmdldC4KICAgCjIwMDItMDMtMDQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLVdhbGwgZml4ZXMuCiAgIAoyMDAyLTAzLTA0IDA1OjMyICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmICwgc25tcGJ1bGt3YWxrLjEuZGVmICwKICAgc25tcGdldC4xLmRlZiAsIHNubXBnZXRuZXh0LjEuZGVmICwgc25tcHN0YXR1cy4xLmRlZgogICAsIHNubXB0ZXN0LjEuZGVmICwgc25tcHRyYXAuMS5kZWY6CgogICAgIC0gcmVtb3ZlIGZ1cnRoZXIgaW5zdGFuY2VzIG9mIHBvc2l0aW9uYWwgY29tbXVuaXR5IHN0cmluZyBwYXJhbWV0ZXIsCiAgICAgICBhZnRlciBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwNToyNSAgamJwbgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmICwgc25tcHdhbGsuMS5kZWY6CgogICAgIC0gcGF0Y2hlcyBmcm9tIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuNiksIG1lbW9yeS5jOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBtYWtpbmcgdGhlIChzYW1lKSBkZWJ1Z2dpbmcgc3RhdGVtZW50IG1vcmUgdXNlZnVsLgogICAKMjAwMi0wMy0wMSAyMjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIHRvIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDItMDMtMDEgMTI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jICwgbWliLmMgLCBzbm1wX2FwaS5jICwKICAgc25tcF9jbGllbnQuYyAsIHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGEgZmV3IGJldHRlciBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDEgMTI6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBkb24ndCBpbnN0YWxsIGhlYWRlcnMgaGVyZS4KICAgCjIwMDItMDMtMDEgMDU6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBhZGQgc25wcmludF92YWx1ZSwgc25wcmludF92YXJpYWJsZSwgc25wcmludF9vYmppZAogICAKMjAwMi0wMi0yOCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jICwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCAsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQWRkIGJhY2sgdGhlICdzbm1wQ2FsbGJhY2snIGRvbWFpbiB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNyAxMDowNCAgamJwbgoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jICwgc25tcGdldC5jCiAgICwgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYyAsIHNubXBzdGF0dXMuYwogICAsIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsIHNubXB0cmFuc2xhdGUuYwogICAsIHNubXB0cmFwLmMgLCBzbm1wdXNtLmMgLCBzbm1wd2Fsay5jOgoKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMsIG1ha2UgdGhlbSBtb3JlIGNvbnNpc3RlbnQgYW5kIGJyaW5nIGluIGxpbmUKICAgICAgIHdpdGggbWFudWFsIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYgLCBzbm1wdGFibGUuMS5kZWYgLCBzbm1wdHJhcC4xLmRlZgogICAsIHNubXB1c20uMS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHBhcnNlLmMgLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBpbiBsaW5lIHdpdGggbWFudWFsCiAgICAgICBwYWdlcwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI3IDA2OjUwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gW0FERFJFU1NFU10gLT4gW0xJU1RFTklORyBBRERSRVNTRVNdIGluIHVzYWdlIG1lc3NhZ2UsIHRvIG1hdGNoCiAgICAgICBtYW51YWwgcGFnZS4KICAgCjIwMDItMDItMjcgMDY6MDkgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZHJvcCBvcHRpb25hbCBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgZnJvbSB0cmFwc2VzcwogICAgICAgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTAyLTI3IDA1OjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gZHJvcCBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBubyBzbnByaW50X2JsYWggeWV0CiAgIAoyMDAyLTAyLTI3IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jICwgaHJfc3dydW4uYzoKCiAgIFVzZSB0aGUgbW9yZSBpbmZvcm1hdGl2ZSAnb3V0cHV0X2FwaS5oJyBoZWFkZXIgZmlsZSBuYW1lCiAgICAgKEkgbXVzdCBoYXZlIG1pc3NlZCB0aGVzZSBlYXJsaWVyKQogICAKMjAwMi0wMi0yNyAwNTozNSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHllcywgZm9yIG9uY2UgdGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZCAqYmVmb3JlKiB0aGUKICAgY29kZSEKICAgCjIwMDItMDItMjcgMDU6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1AgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDU6MTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9hcGkuaCAsIHNubXBfZGVidWcuaCAsCiAgIHN5c3RlbS5oOgoKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjEwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1BMIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA0OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMgLCBhcHBzL3NubXBkZWx0YS5jICwKICAgYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wd2Fsay5jCiAgICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDAyOjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI3IDAyOjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlLCBubywgSSBNRUFOIGl0IHRoaXMgdGltZQogICAKMjAwMi0wMi0yNyAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNsZWFyIG5ldyBtZW1vcnkgYWZ0ZXIgcmVhbGxvYygpIHNpbmNlIHJlYWxsb2MgZG9lc24ndCBkbyBpdC4KICAgCjIwMDItMDItMjYgMTI6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIFVOU0lHTkVEMzIKICAgCjIwMDItMDItMjYgMDg6NTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgLCBrZXJuZWxfc3Vub3M1LmggLAogICBtaWJJSS9hdC5jICwgbWliSUkvaWNtcC5jICwgbWliSUkvaW50ZXJmYWNlcy5jICwKICAgbWliSUkvaXAuYyAsIG1pYklJL3RjcC5jICwgbWliSUkvdWRwLmMgLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBjaGFuZ2UgY2FjaGUgaW1wbGVtZW50YXRpb24gYWZ0ZXIgc29tZSBpbnRlcmVzdGluZyBwcm9maWxpbmcgKHNlZQogICAgICAgbGVuZ3RoeSBuZXcgY29tbWVudCBpbiBrZXJuZWxfc3Vub3M1LmMpCiAgIAoyMDAyLTAyLTI2IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIHNubXBsaWIvc25tcC10Yy5jICwKICAgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBSZW1vdmUgYXNzb3J0ZWQgZXh0cmFuZW91cyBeTSdzCiAgIAoyMDAyLTAyLTI2IDA3OjE0ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBBIHF1aWNrIGd1aWRlIHRvIGluc3RhbGxpbmcgdGhlIENvcmUgUGxhdGZvcm0gU0RLLCBuZWVkZWQgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNiAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgTW9zdGx5IGJlY2F1c2UgVkMrKyBpcyBmdXNzeSBhYm91dCBzb3J0LW9mLWNvbXBhdGlibGUgZGF0YSB0eXBlcwogICAgIChlLmcuIHNpZ25lZCB2cyB1bnNpZ25lZCBpbnRlZ2VycykuCiAgIAoyMDAyLTAyLTI2IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyLmRzdyAsIHdpbjMyLm9wdAogICAsIGxpYmFnZW50L2xpYmFnZW50LmRzcCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwICwKICAgc25tcGQvc25tcGQuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBSZW5hbWUgJ2xpYnVjZG1pYnMnIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiBwcm9qZWN0IG5hbWUsCiAgIGFuZCBhc3NvcnRlZCB0d2Vha3Mgc28gdGhhdCB0aGUgZnVsbCBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICAgIChOLkI6IFRoZSBhZ2VudCByZXF1aXJlcyAiTWljcm9zb2Z0IFBsYXRmb3JtIENvcmUgU0RLIiBpbiBvcmRlcgogICAgICAgdG8gYnVpbGQgdGhlICduZXRzbm1wbWlicycgcHJvamVjdCkKICAgCjIwMDItMDItMjYgMDY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICByZW1vdmUgZHVwbGljYXRlIHZhcmlhYmxlIGluIGEgd2FybmluZwogICAKMjAwMi0wMi0yNiAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTAyLTI1IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbW9yZSBpbnN0YWxsIGNoYW5nZXMKICAgCjIwMDItMDItMjUgMjE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGluc3RhbGxpbmcgREJEOjpGaWxlLgogICAKMjAwMi0wMi0yNSAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG9uZSB0b28gbWFueSAnMCdzIGluIGEgdXJsLgogICAKMjAwMi0wMi0yNSAyMDozMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHJld29yZC4KICAgCjIwMDItMDItMjUgMjA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBtb3ZlIHdhcm5pbmcgb3V0c2lkZSBzZWNvbmRhcnkgd2FybmluZyBhdWdtZW50YXRpb24gbG9vcC4KICAgCjIwMDItMDItMjUgMjA6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wMi0yNSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBmaW5kX3RhYmxlX2FycmF5X2hhbmRsZXIoKTsgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlL2NvbW1lbnRzOwogICBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgaGFuZGxlciBiZWZvcmUgdXNpbmcgdGhlIHZvaWQgcG9pbnRlcjsKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDItMjUgMTE6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmMgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICAyIG5ldyBmdW5jdGlvbnMuCiAgIAoyMDAyLTAyLTI1IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBzZWN1cml0eSBtb2RlbAogICAKMjAwMi0wMi0yNSAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLCB3aW4zMi93aW4zMi5kc3c6CgogICBDb250aW51aW5nIGltcHJvdmVtZW50cyB0byBjb21waWxhdGlvbiBvZiB0aGUgbGF0ZXN0IGNvZGUgdW5kZXIgVmlzdWFsIEMrKy4KICAgVGhlICdsaWJoZWxwZXJzJyBwcm9qZWN0IG5vdyBjb21waWxlcywgYW5kIHRoaXMgYWxzbyBhZGRyZXNzZXMgYSBudW1iZXIKICAgb2Ygd2FybmluZ3MgYW5kIGVycm9ycyBpbiB0aGUgbGliYWdlbnQgYW5kIGxpYnVjZG1pYnMgcHJvamVjdHMuCiAgICAgQnV0IHRoZXNlIHR3byBzdGlsbCBmYWlsIG9uICdPSURfTEVOR1RIJyBhbmQgJ2lwaGxwYXBpLmgnCiAgIAoyMDAyLTAyLTI1IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUHJvdmlkZSBhIHBsYXVzaWJsZSBtb2R1bGUgY29uZmlndXJhdGlvbiBsaXN0IGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjUgMDY6MDQgIGpicG4KCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgICAtIHJlc29sdmUgY29uZmxpY3RpbmcgU1lOVEFYZXMgZm9yIG5zVHJhbnNhY3Rpb25Nb2RlCiAgIAogICAgIC0gYWRkIHJhbmdlIGZvciBpbmRleCBuc1RyYW5zYWN0aW9uSUQKICAgCjIwMDItMDItMjUgMDM6MjMgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEVuc3VyZSB0aGUgbWFpbiBsaWJyYXJ5IGNvbXBpbGVzIGFuZCB3b3JrcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzoxOSAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuaCAsIHNubXB0cmFwZC5jOgoKICAgRW5zdXJlIHNubXB0cmFwZCBjb21waWxlcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzowOSAgZHRzMTIKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX3N0YXNoLmMgLCBzbm1wLXRjLmMgLAogICB1Y2RfY29tcGF0LmM6CgogICBNaW5vciB0d2Vha3MgdG8ga2VlcCBWaXN1YWwgQysrIGhhcHB5LgogICAKMjAwMi0wMi0yNSAwMjo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICBXcmFwIHdpdGggImV4dGVybiBDIgogICAKMjAwMi0wMi0yNSAwMjo1NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhbmRlciB0byBDUFAncyBpbmNyZWRpYmx5IGZ1c3N5IG5hdHVyZSwgYW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUgbmFtZS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBAZm9yZWFjaCAkdmFyMSAkdmFyMiBlbnVtc0AKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHJlbW92ZSB0cmFpbGluZyA7J3MgZnJvbSBzcWwgc3RhdGVtZW50cy4KICAgCjIwMDItMDItMjIgMTA6NTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwgc25tcGxpYi90b29scy5jOgoKICAgZGVmaW5lIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsCiAgIAoyMDAyLTAyLTIyIDEwOjUzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIHV0aWxpdGllcy4KICAgCjIwMDItMDItMjIgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gZG9uJ3QgbG9vcCBhZ2FpbiBmb3Igc2Vjb25kYXJ5IFNFVCBtb2RlcyBhbmQgY2FjaGUgaW5mb3JtYXRpb24gaW5zdGVhZC4KICAgLSB2YXJpb3VzIGZpeGVzLgogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsIGRpcmVjdG9yaWVzIGZvciBoZWFkZXJzCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jb21waWxlLXN1YmFnZW50IGZvciBhdXRvbWF0dGVkIHN1YmFnZW50IGNvbXBpbGF0aW9uIGZyb20KICAgbWlibW9kdWxlIC5jIGZpbGVzIDstKQogICAKMjAwMi0wMi0yMiAwOToyNyAgZHRzMTIKCiAgICogc25tcGxpYi86IE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYyAoVjQtMi1wYXRjaGVzLlsxLDFdKSwKICAgTVNHMDAwMDEuYmluICwgd2luc2VydmljZS5tYzoKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDg6NDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXB2My5jOgoKICAgVHdlYWtzIHJlcXVpcmVkIHRvIGdldCB0aGUgbGlicmFyeSBjb21waWxpbmcgdW5kZXIgV2luZG93cyBWQysrCiAgIAoyMDAyLTAyLTIyIDA4OjM3ICBkdHMxMgoKICAgKiB3aW4zMi86IHNubXBzbV9pbml0LmggLAogICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwICwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AgLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AKICAgLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCAsIHNubXBkL3NubXBkLmRzcCAsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwgc25tcGRmL3NubXBkZi5kc3AgLAogICBzbm1wZ2V0L3NubXBnZXQuZHNwICwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwKICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwICwgc25tcHNldC9zbm1wc2V0LmRzcCAsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AgLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCAsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKICAgLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAogICAsIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AgLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBQcm92aWRlIFdpbmRvd3Mtc3BlY2lmaWMgdmVyc2lvbnMgb2YgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLAogICBhbmQgYWRkIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUgdG8gdGhlIHByb2plY3QgZmlsZXMuCiAgIAoyMDAyLTAyLTIyIDA3OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIERlZmluZSBzdGFuZGFyZCBPSUQgbGVuZ3RocyBoZXJlICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSB0byBhbnkKICAgZmlsZSB3YW50aW5nIHRvIGFjY2VzcyB0aGUgT0lEIHN0cnVjdHVyZXMpCiAgIAoyMDAyLTAyLTIyIDAzOjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi4uLi4gLTN1IHtzZWNOYW1lfSAuLi4uIiBzeW50YXgKICAgKGluIHRoZSBub3JtYWwgZ2V0b3B0IHN0eWxlIC0gaS5lLiBubyBuZWVkIGZvciBzdXJyb3VuZGluZyBxdW90ZXMpCiAgIAogICBJdCBzaG91bGQgbm93IGJlIHBvc3NpYmxlIHRvIHN3aXRjaCB0byB0aGlzIGFzIHRoZSByZWNvbW1lbmRlZCBmb3JtCiAgIGZvciBTTk1QdjMgb3B0aW9ucyAtIGlmIHRoYXQncyB3aGF0IHdlIHdhbnQgdG8gZG8uCiAgICAgUW46ICBEbyB3ZSB3YW50IHRvPwogICAKMjAwMi0wMi0yMSAwODozOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi0zdSB7c2VjTmFtZX0iIHN5bnRheCAoKndpdGgqIHRoZSBxdW90ZXMsIHVuZm9ydHVuYXRlbHkpLgogICBOb3cgY29tZXMgdGhlIGZ1biBiaXQuLi4uLgogICAKMjAwMi0wMi0yMSAwNzo1NCAgZHRzMTIKCiAgICogd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgRml4IGJvZ3VzIHN0cnVjdHVyZSBjb21tZW50cyBpbiB0aGUgc25tcGQgcHJvamVjdCBmaWxlLgogICAKMjAwMi0wMi0yMSAwNzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gZHJvcCBpbmxpbmUgKG1vcmUgdHJvdWJsZSB0aGFuIGl0IGlzIHdvcnRoKQogICAKMjAwMi0wMi0yMSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGFuIFNOTVB2MyAiY29tYmluZWQtb3B0aW9uIiBjb21tYW5kLWxpbmUgZmxhZyAoLTN4KS4KICAgKEluICphZGRpdGlvbiogdG8gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIGZsYWdzLCBJIGhhc3RlbiB0byBhZGQhKQogICAKICAgU3VwcG9ydHMgICIuLi4gLTN1e3NlY05hbWV9IC4uLiIgYW5kICIuLi4gLTN1PXtzZWNOYW1lfSAuLi4iIHN5bnRheCwKICAgYnV0IG5vdCB0aGUgc2VwYXJhdGUgIi4uLiAtM3Uge3NlY05hbWV9IC4uLiIgc3R5bGUuCiAgIAogICBJIGhhdmVuJ3QgdG91Y2hlZCB0aGUgZG9jdW1lbnRhdGlvbiBvciB1c2FnZSBtZXNzYWdlIHRvIG1lbnRpb24gdGhpcy4KICAgCjIwMDItMDItMjAgMTg6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHVzZSBmb3IgaW5zdGVhZCBvZiBjb250aW51ZSBmb3IgbG9vcHMuCiAgIAoyMDAyLTAyLTIwIDEzOjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgLSBBZGQgYSAtLXF1aXQgb3B0aW9uIChhbmQgYSBjb25maWd1cmF0aW9uIHRva2VuKSBzbyB0aGF0IHlvdSBjYW4gbm93CiAgICAgY3JlYXRlIG5ldyB1c2VycyBieSBzaW1wbHkgY2FsbGluZyBzbm1wZCBhczoKICAgICAgIHNubXBkIC0tY3JlYXRlVXNlcj0ibXl1c2VyIE1ENSBteXBhc3N3b3JkIiAtLXF1aXQKICAgLSBDaGFuZ2UgUkVBRE1FLnNubXB2MyBkb2N1bWVudGF0aW9uIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KICAgCjIwMDItMDItMjAgMDY6MTYgIGpicG4KCiAgICogYXBwcy9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcHRyYXBkLmMgLCBjb25maWd1cmUKICAgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIGxpYndyYXAgc3VwcG9ydCB0byBzbm1wdHJhcGQgKHVudGVzdGVkKQogICAKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8gc25tcGQgbGlid3JhcCBzdXBwb3J0CiAgIAogICAgIC0gY29uZmlndXJlIGZpeGVzIGZvciBsaWJ3cmFwCiAgIAoyMDAyLTAyLTIwIDAzOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gbWFrZSBzdXJlIGJ1ZmZlciBpcyBpbml0aWFsbHkKICAgICAgIHplcm8tdGVybWluYXRlZCAoaW4gY2FzZSBvZiAwIHZhcmJpbmRzKS4gIEJ1ZyAjNTE4NzAwLCBub3RlZCBieQogICAgICAgQW5kcmVhcyBIYXJ0bWFubi4KICAgCjIwMDItMDItMjAgMDM6MDYgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMjAgMDM6MDMgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDbGVhbiB1cCB0aGUgb2JqZWN0IGZpbGVzIGFzIHdlbGwKICAgCjIwMDItMDItMjAgMDE6NDEgIGR0czEyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgSWdub3JlIHRoZSBuZXcgY3JvcCBvZiBnZW5lcmF0ZWQgbWFuIHBhZ2VzLgogICAKMjAwMi0wMi0yMCAwMTozNyAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgU3VwcGx5IG1pc3NpbmcgZG91YmxlLXF1b3RlICAob29wcykKICAgCjIwMDItMDItMTkgMDQ6MDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgSW5pdGlhbGlzZSB0aGUgbGlicmFyeSBpbnRlcm5hbHMgKmJlZm9yZSogcGFyc2luZyB0aGUgY29tbWFuZCBsaW5lLAogICBzbyB0aGF0IGRlZmF1bHRzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIFFuOiAgU2hvdWxkICdfaW5pdF9zbm1wJyBiZSBpbnZva2VkIGJ5ICdzbm1wX3BhcnNlX2FyZ3MnIGl0c2VsZj8KICAgCjIwMDItMDItMTkgMDM6NTkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIHN1cmUgdGhhdCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0IGZsYWdzIHdvcmsgaW4gYSBjb25zaXN0ZW50IG1hbm5lci4KICAgKGkuZS4gdGhlIGxhc3Qgb25lIGlzIHVzZWQsIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaW50ZXJuYWwgb3JkZXJpbmcpLgogICAKMjAwMi0wMi0xOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jICwgdGVzdGhhbmRsZXIuYzoKCiAgIGluY2x1ZGUgc3RkbGliLmgKICAgCjIwMDItMDItMTggMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGluY2x1ZGVzCiAgIAoyMDAyLTAyLTE4IDIxOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICAtIG1ha2UgY2FwYWJpbGl0eSB0byBjcmVhdGUgZGF0YSBjb250ZXh0cyBmcm9tIGEgbG9vcCBjb250ZXh0IChsZXNzCiAgICAgbWFsbG9jcyB3aGVuIG1hbGxvY3MgYXJlbid0IG90aGVyd2lzZSBhdm9pZGFibGUpLgogICAtIGRvbid0IGRvdWJsZSBmcmVlIHRoZSBkYXRhIGNvbnRleHQgcG9pbnRlci4KICAgCjIwMDItMDItMTggMjE6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgYWxsIGFnZW50IGhlbHBlcnMuCiAgIAoyMDAyLTAyLTE4IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmg6CgogICBwcm90ZWN0IGluY2x1ZGUgZnJvbSBkb3VibGUgaW5jbHVkZQogICAKMjAwMi0wMi0xOCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgZml4IGluY2x1ZGUgcGF0aHMKICAgCjIwMDItMDItMTggMDI6MzUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR3ZWFrIHRoZSBsaXN0IG9mIGhlYWRlciBmaWxlcyB0byBiZSBpbnN0YWxsZWQgKHRoYW5rcyB0byBDaHJpc3RvcGggTWFtbWl0enNjaCkKICAgCjIwMDItMDItMTggMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMgKFY0LTItcGF0Y2hlcy43KSwgaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNiAyMzoxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IE5FVC1TTk1QLU1JQi50eHQgLCBORVQtU05NUC1NT05JVE9SLU1JQi50eHQgLAogICBORVQtU05NUC1TWVNURU0tTUlCLnR4dCAsIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHdoaXRlIHNwYWNlIGNsZWFuIHVwLiAgKEFHRU5ULU1JQiBub3QgY2hlY2tlZCBpbiBkdWUgdG8gb3RoZXIKICAgaW5jb21wbGV0ZSBjaGFuZ2VzKS4KICAgCjIwMDItMDItMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1MgLCBhZ2VudC9zbm1wZC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGZpbmlzaCBpbXBsZW1lbnRpbmcgc25tcF9jb25maWcoIm15IGNvbmZpZyBsaW5lIikKICAgICAtIHdhcyBkb25lIGJlZm9yZSwgYnV0IHByZXZpb3VzbHkgaGFkIHRvIGJlIGNhbGxlZCBvbmx5IGFmdGVyCiAgICAgICBjb25maWd1cmF0aW9uIGZpbGVzIGhhZCBiZWVuIHJlYWQuICBOb3cgY2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZS4KICAgLSBtYWtlIGFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGFzIC0tbG9uZ29wdHMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgLSAtLXNvbWV0aGluZz12YWx1ZSAtPiAic29tZXRoaW5nIHZhbHVlIgogICAgIC0gLS1zb21ldGhpbmcgICAgICAgLT4gInNvbWV0aGluZyAxIiAod29ya3MgZm9yIHNldHRpbmcgYm9vbGVhbnMgdG8gdHJ1ZSkKICAgCjIwMDItMDItMTYgMDA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBmaXggcnBtIGZvciA0LjAuMyBhbmQgYWJvdmUgKG9yIHdoZW5ldmVyIGl0IHdhcyB0aGF0IHdlIG5vdyBuZWVkIGxpYnJwbWRiKQogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgaW5zdGFsbC9jbGVhbi9ldGMuCiAgIAoyMDAyLTAyLTE1IDIyOjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzOgoKICAgaW5zdGFsbCBhbGwgc3lzdGVtIGFuZCBtYWNoaW5lIGZpbGVzLCBzaW5jZSB0aGV5IGluY2x1ZGUgZWFjaCBvdGhlcgogICAKMjAwMi0wMi0xNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQgLCBtaWJzL05FVC1TTk1QLU1JQi50eHQgLAogICBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCAsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQKICAgLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIFNrZWxldG9uIGZyYW1ld29yayBmb3IgdGhlIE5ldC1TTk1QIGVudGVycHJpc2UgdHJlZS4KICAgKGluY29ycG9yYXRpbmcgdGhlIGluaXRpYWwgJ25zVHJhbnNhY3Rpb25UYWJsZScsIGJ1dCBub3RoaW5nIGVsc2UgYXMgeWV0KQogICAKMjAwMi0wMi0xNSAwOToxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFJlbW92ZSBzdXBwb3J0IGZvciBkZXByZWNhdGVkIGNvbW1hbmQtbGluZSBvcHRpb25zLgogICAKMjAwMi0wMi0xNSAwNzoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCAsIHNubXBsaWIvd2luc2VydmljZS5jCiAgICwgYWdlbnQvc25tcGQuYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMgLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aHUgUHJhYmh1KQogICAKMjAwMi0wMi0xNSAwNzoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgU3Rva2UgV2VzJyBzZW5zZSBvZiBwYXJhbm9pYSBieSBjb25jZWRpbmcgd2l0aG91dCBjb21tZW50LgogICAgICAgKFdoYXQgbWlnaHQgU2hpZWxkIGJlIHBsb3R0aW5nIG5vdy4uLi4uLikKICAgCjIwMDItMDItMTUgMDc6MTkgIGpicG4KCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICAgIC0gZml4IHRpbnkgZm9ybWF0dGluZyBlcnJvcgogICAKMjAwMi0wMi0xNSAwNzoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTk9USUZJQ0FUSU9OLUxPRy1NSUIgKHNpbmNlIGl0J3Mgb25lIG9mIHRoZSBkZWZhdWx0IGxvYWQgbGlzdCEpCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuaDoKCiAgIGZpbGUgd2luc2VydmljZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5yYzoKCiAgIGZpbGUgd2luc2VydmljZS5yYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGZpbGUgd2luc2VydmljZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEluY2x1ZGUgdGhlIDxzeXMvdGltZS5oPiBjYXNjYWRlLCB0byBwaWNrIHVwIHRoZSBkZWZpbml0aW9uIG9mICd0aW1ldmFsJwogICAKMjAwMi0wMi0xNSAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBicmluZyB1c2FnZSBtZXNzYWdlIGluIGxpbmUgd2l0aCBtYW5wYWdlCiAgIAoyMDAyLTAyLTE1IDAzOjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ2F0Y2ggdXNlIG9mIHRoZSB0cmFuc3BvcnQgYW5kIHBvcnQgb3B0aW9ucywgYW5kIGlzc3VlIGFuIGFwcHJvcHJpYXRlCiAgIGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgdXNlIG9mIHRoZSA8aG9zdG5hbWU+IHBhcmFtZXRlciBpbnN0ZWFkLgogICAKMjAwMi0wMi0xNSAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jICwgc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0ICpiZWZvcmUqIHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMsCiAgIHJhdGhlciB0aGFuIGFmdGVyLiAgVGhhdCdzIHByb2JhYmx5IGEgYml0IG1vcmUgZmxleGlibGU6LSkKICAgCjIwMDItMDItMTUgMDI6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmggLCBkZWZpbml0aW9ucy5oICwKICAgbWliX2FwaS5oICwgb3V0cHV0X2FwaS5oICwgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaAogICAsIHNubXB2M19hcGkuaCAsIHR5cGVzLmggLCB1dGlsaXRpZXMuaCAsCiAgIHZhcmJpbmRfYXBpLmg6CgogICBSZW1vdmUgJ25ldC1zbm1wLWNvbmZpZy5oJyBmcm9tIHRoZSBtYWluIEFQSSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgd2lsbCBoYXZlIHRvIGJlICNpbmNsdWRlZCBzZXBhcmF0ZWx5IChlaXRoZXIgZXhwbGljaXRseQogICBvciB2aWEgdGhlIGFsbC1pbi1vbmUgJ25ldC1zbm1wLWluY2x1ZGVzLmgnIGhlYWRlcikKICAgCjIwMDItMDItMTUgMDI6MzEgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBSRUFETUUgdG8gZGVzY3JpYmUgdGhlIHN0YXR1cyBvZiA8bmV0LXNubXAvbGlicmFyeT4gYW5kIDxuZXQtc25tcD4gaGVhZGVyIGZpbGVzLgogICAKMjAwMi0wMi0xNSAwMjoxMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIHtzeXN0ZW0sbWFjaGluZX0vKi5oIGhlYWRlciBmaWxlcyBhcyB3ZWxsLgogICAKICAgRG9pbmcgdGhpcyB2aWEgdGhlICdtYW4nICYgJ21pYnMnIE1ha2VmaWxlcyBpcyBhIGdyb3NzIGhhY2ssCiAgIGFuZCByZWFsbHkgbmVlZHMgdG8gYmUgaGFuZGxlZCBtb3JlIGNsZWFubHkuICBCdXQgaXQncyB0aGUKICAgYmVzdCBJIGNhbiBjb21lIHVwIHdpdGggYXQgdGhlIG1vbWVudC4gIFNvcnJ5IC0gRGF2ZS4KICAgCjIwMDItMDItMTUgMDE6NTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFVDRC1jb21wYXRhYmlsaXR5IGhlYWRlcnMgYXMgd2VsbC4KICAgCjIwMDItMDItMTUgMDE6NTcgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgT25seSBpbnN0YWxsIHN1YmRpcmVjdG9yeSBzdHVmZiAqb25jZSouICAoRG9uJ3QgYmUgc28gZW50aHVzaWFzdGljLCBEYXZlISkKICAgCjIwMDItMDItMTUgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBSZW1vdmUgcmVkdW5kZW50ICctQ04nIGFuZCAnLUNPJyBvcHRpb25zIGZyb20gdGhlIGV4YW1wbGUgc25tcHVzbSBjb21tYW5kLgogICAgIChhcyBtZW50aW9uZWQgYnkgV2VzIG9uIHRoZSB1c2VycyBtYWlsaW5nIGxpc3QgMjAwMi0wMi0xMykKICAgICBRbjogRG9lcyB0aGlzIG5lZWQgdG8gYmUgZG9uZSBvbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaCBhcyB3ZWxsPwogICAKMjAwMi0wMi0xNSAwMToxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBSZXN0b3JlICd2ZXJzaW9uLmgnIGFzIGJlaW5nIGEgInRvcC1sZXZlbCIgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTAyLTE1IDAxOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgZnVsbCBzZXQgb2YgbGlicmFyeSBoZWFkZXIgZmlsZXMsCiAgIHJldGFpbmluZyB0aGUgdG9wLWxldmVsIHZzIGxpYnJhcnkgc3ViZGlyZWN0b3J5IHNwbGl0LgogICAKMjAwMi0wMi0xNSAwMToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgTG9vayBmb3IgdHJhbnNwb3J0LXJlbGF0ZWQgaGVhZGVyIGZpbGVzIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgogICAKMjAwMi0wMi0xNSAwMTowOSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBFbnN1cmUgcGFydGlhbCBpbnN0YWxsIHRhcmdldHMgcmVjdXJzZSBwcm9wZXJseS4KICAgCjIwMDItMDItMTQgMDg6MTggIGR0czEyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIExvb2sgZm9yIG1pYl9tb2R1bGVfY29uZmlnLmggaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24KICAgCjIwMDItMDItMTQgMDg6MDYgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYW44IGluc3RhbGwgZGVmaW5pdGlvbnMKICAgCjIwMDItMDItMTQgMDc6NDggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3Vic3RpdHV0ZSB2YWx1ZXMgaW50byAnbmV0LXNubXAtY29uZmlnJyBwcm9wZXJseSwgYW5kIGRvbid0ICdtYWtlIGNsZWFuJyBpdCBhd2F5LgogICAKMjAwMi0wMi0xNCAwNzoyMiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzCiAgIAoyMDAyLTAyLTE0IDA3OjE0ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjEwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYyAsIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wc3RhdHVzLmMKICAgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwgYWdlbnQvYWdlbnRfdHJhcC5jCiAgICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHNwYWNlIGZyb20gQ1BQRkxBR1MKICAgCjIwMDItMDItMTQgMDY6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmggLCBkZWZpbml0aW9ucy5oICwKICAgbWliX2FwaS5oICwgbmV0LXNubXAtaW5jbHVkZXMuaCAsIG91dHB1dF9hcGkuaCAsCiAgIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmggLCBzbm1wdjNfYXBpLmggLCB0eXBlcy5oCiAgICwgdXRpbGl0aWVzLmggLCB2YXJiaW5kX2FwaS5oOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA2OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaCAsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaCAsIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oICwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmggLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaAogICAsIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvb2lkX2FycmF5LmMgLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNDo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2NhbGxiYWNrLmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgRmlyc3QgbW92ZXMgdG93YXJkcyB1c2luZyB0aGUgInB1YmxpYyIgQVBJIGhlYWRlciBmaWxlcyBpbiB0aGUgbGlicmFyeQogICBjb2RlIGFzIHdlbGwgKGNvbmNlbnRyYXRpbmcgb24gb3V0cHV0L2NvbmZpZy91dGlsaXR5IGhlYWRlciBmaWxlcykuCiAgIAoyMDAyLTAyLTE0IDAzOjE3ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDbG9zZSBhIGRhbmdsaW5nICJpZiIgYmxvY2suICAgKG9vcHMhKQogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMgKFY0LTItcGF0Y2hlcy40KSwgaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgTGF0ZXN0IFJlZEhhdCBycG0tcmVsYXRlZCBwYXRjaAogICAKMjAwMi0wMi0xNCAwMTozOSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIFJQTSBsaWJyYXJpZXMKICAgCjIwMDItMDItMTMgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTWFrZSBKb2huIHRydXN0IGhpcyBjb2RlCiAgIAoyMDAyLTAyLTEzIDA4OjM0ICBqYnBuCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgICAtIHRyYW5zcG9ydCBmaXhlcyAodW50ZXN0ZWQsIHN0aWxsICNpZiAwKQogICAKMjAwMi0wMi0xMyAwODowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtYXJrIHNvbWUgSm9obi10by1kby1zZWN0aW9ucwogICAKMjAwMi0wMi0xMyAwNzo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBtYW4vc25tcGNtZC4xLmRlZiAsCiAgIHNubXBsaWIvbWliLmM6CgogICBTd2l0Y2ggdG8gdXNpbmcgLU9TIHN0eWxlIG91dHB1dCBieSBkZWZhdWx0LCBhbmQgZHJvcCB0aGUgcmVxdWlyZW1lbnQKICAgZm9yIGZ1bGwgT0lEcyB0byBzdGFydCB3aXRoICcuJywgcGx1cyBjb21tYW5kLWxpbmUgb3B0aW9ucyB0byByZXN0b3JlCiAgIHRoZSBvcmlnaW5hbCBVQ0Qtc3R5bGUgYmVoYXZpb3VyLgogICAKMjAwMi0wMi0xMyAwNzozNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFwcGx5IEpvaG4ncyBmaXggZm9yIGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kCiAgIGNvbHVtbnMgaW4gd3Jvbmcgb3JkZXIpIHRvIHRoZSBtYWluIGJyYW5jaCBhcyB3ZWxsLgogICAKMjAwMi0wMi0xMiAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29uc3QgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvOiAuY3ZzaWdub3JlICwgQVNOLy5jdnNpZ25vcmUgLCBhZ2VudC8uY3ZzaWdub3JlCiAgICwgZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlOgoKICAgYWRkIC5jdnNpZ25vcmUgZmlsZS4KICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGFkZCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgKICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaDoKCiAgIGNvbnN0IGFkZGl0aW9ucy4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIEFkZCBzdHJpbmcuaAogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIGhlYWRlci4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeGVzIHRvIHJlZW5hYmxlIGRpc21hbiBldmVudCBzdHVmZiBmb3IgNS4wIGNvZGUuICBOb3QgZG9uZSB0aGUKICAgInJpZ2h0IiB3YXksIGJ1dCBpdCB3b3Jrcy4KICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSAtV2FsbCBmaXhlcwogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhZGQgc3RkbGliLmgKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIG5vIGxvbmdlciB1c2VkICJkdW1wX3ZhciIgcm91dGluZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgY29uc3Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBuZXcgcGVybCBzcGVjaWZpYyBmZWF0dXJlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLlBITk9ZIG1vZHMKICAgCjIwMDItMDItMTIgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kICwKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xvZ2dpbmdfYXBpLmggLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFJlbmFtZSB0aGUgbG9nZ2luZyAmIHJlbGF0ZWQgb3V0cHV0IEFQSSBoZWFkZXIgZmlsZSwgdG8gYmV0dGVyCiAgIHJlZmxlY3QgdGhlIHNjb3BlIG9mIHRoaXMgQVBJLiAgKEFzIHN1Z2dlc3RlZCBieSBXZXMgJiBKb2huKQogICAKMjAwMi0wMi0xMiAwNzoyMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MzkgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGxpYiBkZXBlbmRlbmN5IGZpeCBmb3Igc25tcGQgdGFyZ2V0CiAgIAoyMDAyLTAyLTExIDA4OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWliLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oICwgc25tcGxpYi9jbXVfY29tcGF0LmMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvcGFyc2UuYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgRXh0cmFjdCBDTVVfQ09NUEFUQUJJTElUWSBjb2RlLCBhbmQgZXhwbGljaXRseSBkZXByZWNhdGVkIFVDRCBjb2RlIGludG8gc2VwYXJhdGUgZmlsZXMuCiAgIAoyMDAyLTAyLTExIDA4OjIzICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA0OjQ1ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiAsIHNubXBfY29uZmlnLjUuZGVmICwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBzcGVsbGluZyB0d2Vha3MKICAgCjIwMDItMDItMTEgMDQ6MjcgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4gLCBkZWZhdWx0X3N0b3JlLjMudG9wICwgbWliX2FwaS4zCiAgICwgbWliX2FwaS4zLmRlZiAsIHNubXBfYWdlbnRfYXBpLjMgLAogICBzbm1wX2FnZW50X2FwaS4zLmRlZiAsIHNubXBfYWxhcm0uMyAsIHNubXBfYWxhcm0uMy5kZWYKICAgLCBzbm1wX2FwaS4zICwgc25tcF9hcGkuMy5kZWYgLCBzbm1wX3Nlc3NfYXBpLjMKICAgLCBzbm1wX3Nlc3NfYXBpLjMuZGVmICwgc25tcF90cmFwX2FwaS4zICwKICAgc25tcF90cmFwX2FwaS4zLmRlZiAsIHZhcmlhYmxlcy41ICwgdmFyaWFibGVzLjUuZGVmOgoKICAgICAtIGdlbmVyYXRlIHRoZSByZXN0IG9mIHRoZSBtYW51YWwgcGFnZXMgKHRvIGdldCB2ZXJzaW9uIGluIGZvb3RlcikKICAgCjIwMDItMDItMDggMTU6NTYgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmggLCBtaWJfbW9kdWxlX2NvbmZpZy5oICwKICAgbWliX21vZHVsZV9pbml0cy5oICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsIHNubXBkL3NubXBkLmRzcDoKCiAgIHdpbjMyIHNwZWNpZmljIHBvcnRpb25zIG9mIHBhdGNoIDUwMzI1NgogICAKMjAwMi0wMi0wOCAxNTo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHBhdGNoIzUwMzI1NjogaGVscGVycyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIHdpbjMyCiAgIAoyMDAyLTAyLTA4IDA5OjA4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdCB0d2Vha2FnZQogICAKMjAwMi0wMi0wOCAwODoyMiAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zICwgc25tcF9hZ2VudF9hcGkuMyAsIHNubXBfYWxhcm0uMwogICAsIHNubXBfYXBpLjMgLCBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wX3RyYXBfYXBpLjM6CgogICBSZWZlcmVuY2UgdGhlIG5ldyBoZWFkZXItZmlsZXMgaW4gc2VjdGlvbiAzIG1hbiBwYWdlIHN5bm9wc2VzLgogICAKMjAwMi0wMi0wOCAwNzo1MCAgamJwbgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgLCByZWFkX2NvbmZpZy4zLmRlZiAsIHNubXBfYWdlbnRfYXBpLjMKICAgLCBzbm1wX2NvbmZpZy41LmRlZiAsIHNubXBfdHJhcF9hcGkuMyAsCiAgIHNubXBjbWQuMS5kZWYgLCBzbm1wY29uZi4xLmRlZiAsIHNubXBkLmNvbmYuNS5kZWYgLAogICB2YXJpYWJsZXMuNToKCiAgICAgLSBtb3JlIG1pbm9yIHR3ZWFrcyAodWNkLXNubXAgLT4gTmV0LVNOTVAgZXRjLikKICAgCjIwMDItMDItMDggMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBsb2NhbCBtb2R1bGVzIGZyb20gZGVwZW5kZW5jeSBsaXN0CiAgIAoyMDAyLTAyLTA4IDA3OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2luZGV4LmMgLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYwogICAsIGF1dG9fbmxpc3QuYyAsIGtlcm5lbC5jICwgbWliX21vZHVsZXMuYyAsCiAgIHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jICwgc25tcGQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYyAsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGhlbHBlcnMvbnVsbC5jICwgaGVscGVycy9vbGRfYXBpLmMgLCBoZWxwZXJzL3JlYWRfb25seS5jCiAgICwgaGVscGVycy9zZXJpYWxpemUuYyAsIGhlbHBlcnMvdGFibGUuYyAsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGhlbHBlcnMvdGFibGVfZGF0YS5jICwKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBtaWJncm91cC9oZWFkZXJfY29tcGxleC5jICwgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMgLCBtaWJncm91cC9SbW9uL2FndXRpbC5jICwKICAgbWliZ3JvdXAvUm1vbi9hbGFybS5jICwgbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLCBtaWJncm91cC9SbW9uL3Jvd3MuYyAsCiAgIG1pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jICwKICAgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIG1pYmdyb3VwL21pYklJL2ljbXAuYyAsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAsIG1pYmdyb3VwL21pYklJL2lwLmMgLCBtaWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIG1pYmdyb3VwL21pYklJL2lwdjYuYyAsIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAsIG1pYmdyb3VwL21pYklJL3RjcC5jICwgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3VkcC5jICwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAsIG1pYmdyb3VwL21pc2MvZGxtb2QuYyAsIG1pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jICwgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jICwKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwgbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICwgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMgLAogICBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIG1pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYwogICAsIG1pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwgbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgVXNlIHRoZSBuZXcgJ25ldC1zbm1wLWluY2x1ZGVzJyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMsCiAgIGluIHBsYWNlIG9mIHRoZSAodW5pbnN0YWxsZWQpICdtaWJpbmNsLmgnLgogICAgIFdoZWVlZWUuLi4uLi4KICAgCjIwMDItMDItMDggMDc6MTcgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmICwgc25tcF9hZ2VudF9hcGkuMyAsCiAgIHNubXBfYWxhcm0uMyAsIHNubXBfYXBpLjMgLCBzbm1wX2NvbmZpZy41LmRlZiAsCiAgIHNubXBfc2Vzc19hcGkuMyAsIHNubXBkLjEuZGVmICwgc25tcGQuY29uZi41LmRlZiAsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgICAtIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIGdlbmVyYXRlIG1hbiBwYWdlcyBhdCBjb21waWxlIHRpbWUKICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMSAsIHNubXBidWxrd2Fsay4xICwKICAgc25tcGJ1bGtnZXQuMS5kZWYgLCBzbm1wYnVsa3dhbGsuMS5kZWYgLCBzbm1wY21kLjEKICAgLCBzbm1wY21kLjEuZGVmICwgc25tcGNvbmYuMSAsIHNubXBjb25mLjEuZGVmCiAgICwgc25tcGdldC4xICwgc25tcGdldC4xLmRlZiAsIHNubXBnZXRuZXh0LjEgLAogICBzbm1wZ2V0bmV4dC4xLmRlZiAsIHNubXBzZXQuMSAsIHNubXBzZXQuMS5kZWYgLAogICBzbm1wc3RhdHVzLjEgLCBzbm1wc3RhdHVzLjEuZGVmICwgc25tcHRhYmxlLjEgLAogICBzbm1wdGFibGUuMS5kZWYgLCBzbm1wdGVzdC4xICwgc25tcHRlc3QuMS5kZWYgLAogICBzbm1wdHJhbnNsYXRlLjEgLCBzbm1wdHJhbnNsYXRlLjEuZGVmICwgc25tcHRyYXAuMQogICAsIHNubXB0cmFwLjEuZGVmICwgc25tcHVzbS4xICwgc25tcHVzbS4xLmRlZiAsCiAgIHNubXB3YWxrLjEgLCBzbm1wd2Fsay4xLmRlZiAsIHNubXB0cmFwZC44ICwKICAgc25tcHRyYXBkLjguZGVmOgoKICAgICAtIHJlbmFtZSBtYW4gcGFnZXMgd2hpY2ggYXJlIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0aW1lIGluIG9yZGVyCiAgICAgICB0byBwaWNrIHVwIHRoZSB2ZXJzaW9uICh3aGljaCBnZXRzIHB1dCBpbiB0aGUgZm9vdGVyKS4KICAgCiAgICAgLSBhbHNvIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSkouaCAsIG1pYkpKL2ljbXAuYyAsIG1pYkpKL2ljbXAuaAogICAsIG1pYkpKL2lmX2ZpZWxkcy5oICwgbWliSkovaW50ZXJmYWNlcy5jICwKICAgbWliSkovaW50ZXJmYWNlcy5oICwgbWliSkovaXAuYyAsIG1pYkpKL2lwLmggLAogICBtaWJKSi9pcEFkZHIuYyAsIG1pYkpKL2lwQWRkci5oICwgbWliSkovaXBNZWRpYS5jICwKICAgbWliSkovaXBNZWRpYS5oICwgbWliSkovaXBSb3V0ZS5jICwgbWliSkovaXBSb3V0ZS5oCiAgICwgbWliSkovaXB2Ni5jICwgbWliSkovaXB2Ni5oICwgbWliSkova2VybmVsX2hwdXguYwogICAsIG1pYkpKL2tlcm5lbF9ocHV4LmggLCBtaWJKSi9rZXJuZWxfbGludXguYyAsCiAgIG1pYkpKL2tlcm5lbF9saW51eC5oICwgbWliSkovc25tcF9taWIuYyAsCiAgIG1pYkpKL3NubXBfbWliLmggLCBtaWJKSi9zeXNPUlRhYmxlLmMgLAogICBtaWJKSi9zeXNPUlRhYmxlLmggLCBtaWJKSi9zeXN0ZW1fbWliLmMgLAogICBtaWJKSi9zeXN0ZW1fbWliLmggLCBtaWJKSi90Y3AuYyAsIG1pYkpKL3RjcC5oICwKICAgbWliSkovdGNwVGFibGUuYyAsIG1pYkpKL3RjcFRhYmxlLmggLCBtaWJKSi91ZHAuYyAsCiAgIG1pYkpKL3VkcC5oICwgbWliSkovdWRwVGFibGUuYyAsIG1pYkpKL3VkcFRhYmxlLmggLAogICBtaWJKSi92YWNtX3ZhcnMuYyAsIG1pYkpKL3ZhY21fdmFycy5oOgoKICAgUmVtb3ZlIHRoZSBhdHRlbXB0ZWQgJ21pYklJJyByZS13cml0ZS4KICAgSWYgd2Ugd2FudCB0byB0aWR5IHVwIG1pYklJLCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIHVzZSB0aGUgbmV3IGFnZW50IEFQSXMuCiAgIAoyMDAyLTAyLTA4IDA2OjQ1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGFnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBCcmluZyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMgY2xvc2VyIGluIGxpbmUgd2l0aCB0aGUgZXhpc3RpbmcgIm1pYmluY2wuaCIgZmlsZQogICAKMjAwMi0wMi0wOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKICAgKFY0LTItcGF0Y2hlcy5bNiwzXSksIGhvc3QvaHJfc3RvcmFnZS5jICwgdWNkLXNubXAvbWVtb3J5LmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBDb25zb2xpZGF0ZSBpZGVudGljYWwgTUlCIG9iamVjdCBlbnRyaWVzIChXSU4zMi9ub24tV0lOMzIpCiAgIAoyMDAyLTAyLTA4IDAwOjUwICBqYnBuCgogICAqIG1hbi9SRUFETUU6CgogICAgIC0gcmVtb3ZlIGNocm9uaWNhbGx5IGRhdGVkIHVuaGVscGZ1bCBSRUFETUUKICAgCjIwMDItMDItMDcgMTM6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXMgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBtYWtlZmlsZWluZGVwZW5kLnBsICwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgogICAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKICAgLCBhcHBzL01ha2VmaWxlLmluICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKICAgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwgbG9jYWwvTWFrZWZpbGUuaW4KICAgLCBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQgLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtYWtlIG1ha2UncyBNYWtlZmlsZSdzIHRvIG1ha2UgYmV0dGVyIG1ha2luZwogICAKMjAwMi0wMi0wNyAxMzozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgbG9jYWwgcGF0aGVzCiAgIAoyMDAyLTAyLTA3IDEyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbnN1cmUgYWdlbnQgcmV0dXJucyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBmb3IgVU5ETyBhbmQgQ09NTUlUIGZhaWx1cmVzLgogICAKMjAwMi0wMi0wNyAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgLCBTTk1QLnhzICwgdC9zdGFydGFnZW50LnBsOgoKICAgYXR0ZW1wdCBhdCBwb3J0aW5nIEpvZSdzIFNOTVAgbW9kdWxlIHRvIG5ldC1zbm1wLgogICBJdCBjb21waWxlcywgYnV0IG9ubHkgc29tZSBvZiB0aGUgdGVzdHMgc3VjY2VlZC4KICAgCjIwMDItMDItMDcgMTA6MDkgIGpicG4KCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCAsIG1pYl9hcGkuMyAsCiAgIHJlYWRfY29uZmlnLjMuZGVmICwgc25tcC5jb25mLjUuZGVmICwgc25tcF9hZ2VudF9hcGkuMwogICAsIHNubXBfYWxhcm0uMyAsIHNubXBfYXBpLjMgLCBzbm1wX2NvbmZpZy41LmRlZgogICAsIHNubXBfc2Vzc19hcGkuMyAsIHNubXBfdHJhcF9hcGkuMyAsIHNubXBidWxrZ2V0LjEKICAgLCBzbm1wYnVsa3dhbGsuMSAsIHNubXBjb25mLjEgLCBzbm1wZC5jb25mLjUuZGVmCiAgICwgc25tcGRlbHRhLjEgLCBzbm1wZGYuMSAsIHNubXBnZXQuMSAsCiAgIHNubXBnZXRuZXh0LjEgLCBzbm1wbmV0c3RhdC4xICwgc25tcHNldC4xICwKICAgc25tcHN0YXR1cy4xICwgc25tcHRhYmxlLjEgLCBzbm1wdGVzdC4xICwKICAgc25tcHRyYW5zbGF0ZS4xICwgc25tcHRyYXAuMSAsIHNubXB0cmFwZC5jb25mLjUuZGVmCiAgICwgc25tcHVzbS4xICwgc25tcHdhbGsuMSAsIHZhcmlhYmxlcy41OgoKICAgICAtIGFkZCBOZXQtU05NUCBpbiBoZWFkZXIgb2YgYWxsIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwOTo1MiAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHVwZGF0ZSBzdHlsZSB0byBtYXRjaCBzbm1wZCBhbmQgc25tcHRyYXBkIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwODoxNSAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gZml4IHNwZWVsaW5nIG1pc3Rha2UKICAgCjIwMDItMDItMDcgMDg6MDAgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGJyaW5nIHVwIHRvIGRhdGUgd2l0aCBzbm1wdHJhcGQKICAgCjIwMDItMDItMDcgMDc6MjggIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEgLCBhY2NvbmZpZy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDcgMDY6MzAgIGpicG4KCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgICAtIGFscGhhYmV0aXNlIG9wdGlvbnMKICAgCiAgICAgLSBicmluZyBtYW4gcGFnZSBpbiBsaW5lIHdpdGggbmV3IHBvc2l0aW9uYWwgYXJndW1lbnRzIGxpc3RlbmluZwogICAgICAgYWRkcmVzcyBzcGVjaWZpY2F0aW9uIGFuZCBhZGQgc2VjdGlvbiBkZXNjcmliaW5nIHRoYXQKICAgCiAgICAgLSBwdXQgTmV0LVNOTVAgaW4gaGVhZGVyCiAgIAoyMDAyLTAyLTA2IDEwOjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaDoKCiAgICAgLSBmaXggYnVnIG5vdGVkIGJ5IE5pZWxzCiAgIAoyMDAyLTAyLTA2IDA5OjI1ICBqYnBuCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgLCBzbm1wdXNtLmM6CgogICAgIC0gbWlub3IgdHdlYWtzIGR1ZSB0byBjaGFuZ2UgaW4gZGVmaW5pdGlvbiBvZiBVU00gT0lEcy4KICAgCjIwMDItMDItMDYgMDk6MTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBtb3ZlIFVTTSBPSUQgZGVmaW5pdGlvbnMgaW50byBzbm1wdXNtLmMsIG1ha2UgdGhlbSBjb25zdAogICAKICAgICAtIGNvbnNlcXVlbnQgaW5jcmVhc2UgaW4gY29uc3QtbmVzcyBpbiBzb21lIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZSBpbnRlcm5hbCBub3RlIGFib3V0IHYzIGFwaSwgd2hpY2ggc2hvdWxkIGJlIHB1YmxpYwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaDoKCiAgIHJlbW92ZWQgdW5uZWVkZWQgZmlsZQogICAKMjAwMi0wMi0wNiAwOTowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBzbm1wbGliL2tleXRvb2xzLmMgLCBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gYWRkIGNvbnN0LW5lc3MgZm9yIHRyYW5zZm9ybSB0eXBlIGFyZ3MKICAgCjIwMDItMDItMDYgMDk6MDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oCiAgICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGFkZCBzb21lIGNvbnN0LW5lc3MgZm9yIE9JRCBhcmdzIChtYWlubHkgc28gdGhhdCBkZWJ1Z21zZ19vaWQgdGFrZXMKICAgICAgIGNvbnN0KS4KICAgCjIwMDItMDItMDYgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTdXBwb3J0IGZvciBEeW5peC9QVFggNC40LCBjb3VydGVzeSBvZiBQYXRyaWNrIEhlc3MuCiAgIAoyMDAyLTAyLTA2IDA3OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIGZpcnN0IGFyZ3VtZW50IG9mIHNubXBfZHVwX29iamlkKCkgY29uc3QuCiAgIAogICAgIC0gYmV0dGVyIGhhbmRsZSBOVUxMIHZhbHVlcyBpbiBzbm1wX2R1cF9vYmppZCgpLgogICAKMjAwMi0wMi0wNiAwNzowOSAgZHRzMTIKCiAgICogRkFRICwgbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIENsYXJpZnkgdGhlIGFwcGxpY2FiaWxpdHkgb2YgJ3NubXBfdHJhcF9hcGkoMyknIHJvdXRpbmVzIHRvIEFnZW50WCBzdWJhZ2VudHMuCiAgIAoyMDAyLTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jICwgbm90aWZpY2F0aW9uX2xvZy5jICwKICAgc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jICwgc25tcGRlbHRhLmMgLAogICBzbm1wZGYuYyAsIHNubXBnZXQuYyAsIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMKICAgLCBzbm1wc3RhdHVzLmMgLCBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLAogICBzbm1wdHJhbnNsYXRlLmMgLCBzbm1wdHJhcC5jICwgc25tcHRyYXBkLmMgLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYyAsIHNubXB0cmFwZF9sb2cuYyAsIHNubXB1c20uYwogICAsIHNubXB2YWNtLmMgLCBzbm1wd2Fsay5jICwgc25tcG5ldHN0YXQvaWYuYwogICAsIHNubXBuZXRzdGF0L2luZXQuYyAsIHNubXBuZXRzdGF0L2luZXQ2LmMgLAogICBzbm1wbmV0c3RhdC9tYWluLmMgLCBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgQXBwbGljYXRpb25zIGFtZW5kZWQgdG8gdXNlIHRoZSBuZXctc3R5bGUgbGlicmFyeSBoZWFkZXIgc3RydWN0dXJlLgogICAoSW4gbW9zdCBjYXNlcywgc2ltcGx5IGluY2x1ZGluZyB0aGUgc2luZ2xlICJmdWxsIEFQSSIgaGVhZGVyIGZpbGUpCiAgIAoyMDAyLTAyLTA2IDA1OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYXNuMS5oICwgY29uZmlnX2FwaS5oICwKICAgZGVmaW5pdGlvbnMuaCAsIGxvZ2dpbmdfYXBpLmggLCBtaWJfYXBpLmggLAogICBuZXQtc25tcC1pbmNsdWRlcy5oICwgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaCAsCiAgIHNubXB2M19hcGkuaCAsIHR5cGVzLmggLCB1dGlsaXRpZXMuaCAsIHZhcmJpbmRfYXBpLmg6CgogICBGcmFtZXdvcmsgZm9yIG5ldyBsaWJyYXJ5IGhlYWRlciBmaWxlIG9yZ2FuaXNhdGlvbiwgd2l0aCBlaWdodCBtYWluIGdyb3VwcwogICBvZiBBUEkgcm91dGluZXMuICBDdXJyZW50bHkgdGhlc2Ugc3RpbGwgcmVmZXIgdG8gdGhlIFVDRC1zdHlsZSBzdHlsZSBoZWFkZXIKICAgZmlsZXMgZm9yIHRoZSBhY3R1YWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgogICAKMjAwMi0wMi0wNiAwNTozMSAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gcmVwbGFjZSB1c2Ugb2YgJDwgd2l0aCBleHBsaWNpdCBmaWxlbmFtZSwgc2luY2Ugbm9uLUdOVSBtYWtlcyBzZWVtCiAgICAgICB0byBiYXJmIG9uIGl0CiAgIAoyMDAyLTAyLTA2IDAzOjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeCBpbmNvcnJlY3QgZGlyZWN0b3J5IHNwZWNpZmljYXRpb24gaW4gJ21ha2UgY2xlYW4nCiAgIAoyMDAyLTAyLTA2IDAzOjE4ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFByb3RlY3QgdGhlIHByb2plY3QgY29uZmlnIGZpbGUgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb24uCiAgIAoyMDAyLTAyLTA2IDAzOjA3ICBqYnBuCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMgYW5kCiAgICAgICBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cwogICAgICAgYW5kIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNSAxMTo0NCAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjcpLCBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHllYXIgdXBkYXRlIGZvciBOQUkgYW5kIENhbWJyaWRnZQogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBlcmwgZml4ZXMKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbW92ZSB0aGUgb2lkdHJlZV9jb21wYXJlIGZ1bmN0aW9uIHRvCiAgIHRoZSBtYWluIGxpYnJhcnkuCiAgIAoyMDAyLTAyLTA1IDA5OjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHBlcmwgYnVpbGQgZml4ZXMuCiAgIAoyMDAyLTAyLTA1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG9wcHMuICBSZW1vdmVkIGZvcmNlZCBwZXJsIGVtYmVkZGluZwogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBzaG91bGRuJ3QgYmUgY2hlY2tlZCBpbgogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhY2NvbmZpZy5oICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9zbm1wX3BlcmwuYwogICAsIGFnZW50L3NubXBfcGVybC5wbCAsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBTdXBwb3J0IGZvciBlbWJlZGRpbmcgcGVybCBzdWJyb3V0aW5lcyBpbnRvIHRoZSBhZ2VudCB0byBiZSBjYWxsZWQKICAgICBhcyBoYW5kbGVycy4KICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS13aXRoLXBlcmwtbW9kdWxlcyBhdHRlbXB0cyB0byBidWlsZCBjb250YWluZWQgbW9kdWxlcyAocG9vcmx5IGN1cnJlbnRseSkuCiAgICAgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhY3R1YWxseSBzcGVjaWZpZXMgdG8gZG8gcGVybCBlbWJlZGRpbmcKICAgICB3aXRoaW4gdGhlIGFnZW50LgogICAKMjAwMi0wMi0wNCAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0gLCBBU04vQVNOLnhzICwgQVNOL0NoYW5nZXMgLAogICBBU04vTUFOSUZFU1QgLCBBU04vTWFrZWZpbGUuUEwgLCBBU04vdGVzdC5wbCAsCiAgIGFnZW50L0NoYW5nZXMgLCBhZ2VudC9NQU5JRkVTVCAsIGFnZW50L01ha2VmaWxlLlBMICwKICAgYWdlbnQvYWdlbnQucG0gLCBhZ2VudC9hZ2VudC54cyAsIGFnZW50L3Rlc3QucGwgLAogICBhZ2VudC90eXBlbWFwICwgZGVmYXVsdF9zdG9yZS9DaGFuZ2VzICwKICAgZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCAsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwgLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0gLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMgLCBkZWZhdWx0X3N0b3JlL3Rlc3QucGwgLAogICBkZWZhdWx0X3N0b3JlL3R5cGVtYXA6CgogICBCZWdpbm5pbmdzIG9mIG5ldyBwZXJsIG1vZHVsZXMgbmVlZGVkIHRvIGltcGxlbWVudCBhbiBTTk1QIGFnZW50IChvcgogICBhZ2VudHggc3ViYWdlbnQpIGluc2lkZSBwZXJsLgogICAgIC0gbm90IGNvbXBsZXRlIHlldC4KICAgICAtIG1heSBjaGFuZ2UuCiAgICAgLSBidXQgd29ya3MuCiAgIAoyMDAyLTAyLTA0IDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAyLTAxIDAxOjUwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBwcm9jZWR1cmUgZm9yIGNvbXBpbGluZyB3aXRoICdjYycgcmF0aGVyIHRoYW4gJ2djYycKICAgCjIwMDItMDEtMzEgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHMvc25tcGxpYlwvLy87CiAgIAoyMDAyLTAxLTMxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZSBjbGVhbiBhcyByZXBvcnRlZCBieSBCcmFkbGV5IEJvemFydGguCiAgIAoyMDAyLTAxLTMwIDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgQnJpbmcgTUlCIHZhcmlhYmxlIHZlcnNpb25UYWcgaW50byBsaW5lIHdpdGggdGhlIG5ldyA8bmV0LXNubXAvdmVyc2lvbi5oPiB1c2FnZQogICAKMjAwMi0wMS0yOSAxNzo1MyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmggLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBNb3ZlZCB2ZXJzaW9uaW5nIGluZm9ybWF0aW9uIGZyb20gdmVyc2lvbi5oIHRvOgogICAgIC0gc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgIC0gZGVmaW5lIG5ldHNubXBfZ2V0X3ZlcnNpb24oKTsKICAgICAgIC0gY3JlYXRlIGEgY29uc3QgY2hhciAqTmV0U25tcFZlcnNpb25JbmZvCiAgICAgLSBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gZXh0ZXJuIHRoZSBhYm92ZSBjaGFyICoKICAgICAgIC0gcHJvdG90eXBlIHRoZSBmdW5jdGlvbgogICAgIC0gaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGNyZWF0ZSBhIHN0YXRpYyB2YXJpYWJsZSAodGhlIG9sZCB3YXkpIGFuZCBzZXQgaXQgdG8gTmV0U25tcFZlcnNpb25JbmZvCiAgIAoyMDAyLTAxLTI5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCAsIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0gLAogICB0ZXN0cy9UMDUwc25tcHYzdHJhcCAsIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCAsCiAgIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtICwgdGVzdHMvVDA1M2FnZW50djF0cmFwICwKICAgdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsCiAgIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLCB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsCiAgIHRlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgdHJhcCB0ZXN0IGZpeGVzIHNvIHRoZSBtYWpvcml0eSBvZiB0aGUgdGVzdHMgbm93IHdvcmsuCiAgIAoyMDAyLTAxLTI5IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGdlbmVyYXRlIHVjZC1zbm1wLWNvbmZpZy5oIGFueSBsb25nZXIuCiAgIAoyMDAyLTAxLTI5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmggLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0Lmg6CgogICBtb3ZlZCBzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS8qLmgKICAgbW92ZWQgbS9nZW5lcmljLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAogICAKMjAwMi0wMS0yOSAwOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtYyBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMi0wMS0yOSAwOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVmZXJlbmNlIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaW5zdGVhZCBvZiBqdXN0IGNvbmZpZy5oCiAgIAoyMDAyLTAxLTI5IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSB1bmtub3duIGVuZ2luZWlkL3Vua25vd24gdXNlciBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMi0wMS0yOCAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgd2hvb3BzLiAgTWlzc2VkIHNvbWUgLmggZmlsZSBjaGVja3MgaW4gY29uZmlndXJlLiAgVGhhbmtzIFJvYmVydC4KICAgCjIwMDItMDEtMjggMjE6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgbWlub3IgZml4LgogICAKMjAwMi0wMS0yOCAyMTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBhZGRlZCBjb2RlIGNvbnZlcnQgc2NyaXB0IGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBoZWFkZXIgY29udmVyc2lvbgogICAKMjAwMi0wMS0yOCAyMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgYXBwcy9zbm1wYnVsa2dldC5jICwgYXBwcy9zbm1wYnVsa3dhbGsuYyAsCiAgIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jICwgYXBwcy9zbm1wZ2V0LmMKICAgLCBhcHBzL3NubXBnZXRuZXh0LmMgLCBhcHBzL3NubXBzZXQuYyAsCiAgIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHRlc3QuYwogICAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgogICAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKICAgLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLCBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmggLCBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCAsIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAgICwgbWFuL01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9hc24xLmggLCBzbm1wbGliL2NhbGxiYWNrLmMKICAgLCBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL2RhdGFfbGlzdC5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuaCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLCBzbm1wbGliL2dldG9wdC5oICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9pbnQ2NC5oICwgc25tcGxpYi9rZXl0b29scy5jCiAgICwgc25tcGxpYi9rZXl0b29scy5oICwgc25tcGxpYi9sY2RfdGltZS5jICwKICAgc25tcGxpYi9sY2RfdGltZS5oICwgc25tcGxpYi9saWJzbm1wLmggLCBzbm1wbGliL21kNS5jCiAgICwgc25tcGxpYi9tZDUuaCAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL210X3N1cHBvcnQuaCAsCiAgIHNubXBsaWIvb2lkX2FycmF5LmMgLCBzbm1wbGliL29pZF9hcnJheS5oICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvb2lkX3N0YXNoLmggLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3BhcnNlLmggLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NjYXBpLmMgLCBzbm1wbGliL3NjYXBpLmggLCBzbm1wbGliL3NubXAtdGMuYwogICAsIHNubXBsaWIvc25tcC10Yy5oICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXAuaCAsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaCAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uaCAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmggLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmggLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5oICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5oICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oICwgc25tcGxpYi9zbm1wX2FsYXJtLmMKICAgLCBzbm1wbGliL3NubXBfYWxhcm0uaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmggLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5oICwKICAgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcF9lbnVtLmggLAogICBzbm1wbGliL3NubXBfaW1wbC5oICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmggLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuaCAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmggLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHVzbS5oICwgc25tcGxpYi9zbm1wdjMuYyAsIHNubXBsaWIvc25tcHYzLmgKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi9zeXN0ZW0uaCAsCiAgIHNubXBsaWIvdG9vbHMuYyAsIHNubXBsaWIvdG9vbHMuaCAsCiAgIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCAsIHNubXBsaWIvdmFjbS5jICwKICAgc25tcGxpYi92YWNtLmggLCB0ZXN0aW5nL1JVTlRFU1RTICwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmggLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9pbmRleC5jICwKICAgYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMKICAgLCBhdXRvX25saXN0LmMgLCBrZXJuZWwuYyAsIG1pYl9tb2R1bGVzLmMgLAogICBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYyAsIHNubXBkLmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBoZWxwZXJzL2luc3RhbmNlLmMgLCBoZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBoZWxwZXJzL251bGwuYyAsIGhlbHBlcnMvb2xkX2FwaS5jICwgaGVscGVycy9yZWFkX29ubHkuYwogICAsIGhlbHBlcnMvc2VyaWFsaXplLmMgLCBoZWxwZXJzL3RhYmxlLmMgLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIG1pYmdyb3VwL2hvc3RfcmVzLmggLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLCBtaWJncm91cC9taWJpbmNsLmggLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jICwgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIG1pYmdyb3VwL1Jtb24vYWxhcm0uYyAsCiAgIG1pYmdyb3VwL1Jtb24vZXZlbnQuYyAsIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwKICAgbWliZ3JvdXAvUm1vbi9yb3dzLmMgLCBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgLCBtaWJncm91cC9taWJJSS9hdC5jICwgbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgbWliZ3JvdXAvbWliSUkvaXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jICwgbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAsIG1pYmdyb3VwL21pYklJL3RjcC5jICwgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3VkcC5jICwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaAogICAsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgbWliZ3JvdXAvbWliSkovaWNtcC5jCiAgICwgbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgbWliZ3JvdXAvbWliSkovaXAuYwogICAsIG1pYmdyb3VwL21pYkpKL2lwQWRkci5jICwgbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jCiAgICwgbWliZ3JvdXAvbWliSkovaXB2Ni5jICwgbWliZ3JvdXAvbWliSkova2VybmVsX2xpbnV4LmMKICAgLCBtaWJncm91cC9taWJKSi9zbm1wX21pYi5jICwgbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBtaWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwgbWliZ3JvdXAvbWliSkovdWRwLmMgLAogICBtaWJncm91cC9taWJKSi91ZHBUYWJsZS5jICwgbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBtaWJncm91cC9taXNjL2RsbW9kLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvc211eC9zbXV4LmMgLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMgLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICwgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAxOTo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIERFRklORSBJVCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgZGVmaW5lIGl0IGluc3RlYWQKICAgCjIwMDItMDEtMjUgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlX29uZV9vaWRfaW5kZXg6CiAgICAgLSB1c2UgYW4gdW5zaWduZWQgaW50IGZvciBsZW5ndGgncyBwdWxsZWQgZnJvbSB0aGUgb2lkLgogICAgIC0gTWFrZSBzdXJlIHRoZXkncmUgYWx3YXlzIDwgMTI4CiAgIAoyMDAyLTAxLTI1IDA5OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2xvc2VyIGFkaGVyZW5jZSB0byBzdGF0ZSBtYWNoaW5lcyBkZXNjcmliZWQgaW4gUkZDIDI1NzQKICAgCjIwMDItMDEtMjUgMDk6MTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgdXNtRGVjcnlwdGlvbkVycm9yIHJlcG9ydHMgdG8gYmUgc2VudCBpbiBhIGNvdXBsZSBvZiBleHRyYQogICAgICAgY2FzZXM6IGJhZCBzYWx0IChsZW5ndGggIT0gOCkgYW5kIGxlbmd0aCBvZiBlbmNyeXB0ZWQgZGF0YSBub3QgYQogICAgICAgbXVsdGlwbGUgb2YgOCBvY3RldHMgKHBlciBSRkMgMjU3NCkuCiAgIAoyMDAyLTAxLTI1IDA5OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmb3IgdW5rbm93biBtZXNzYWdlIHR5cGVzLCBpbmNyZW1lbnQgc25tcEluQVNOUGFyc2VFcnJzIGFuZCBmYWlsCiAgICAgICBhdCB0aGUgcG9zdC1wYXJzZSBzdGFnZS4KICAgCiAgICAgLSBmb3Igbm90aWZpY2F0aW9uIHR5cGVzLCBpbmNyZW1lbnQgc25tcFVua25vd25QRFVIYW5kbGVycyBhbmQgYmFpbAogICAgICAgb3V0IGVhcmx5LgogICAKMjAwMi0wMS0yNSAwOTowMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZm9yIHVuaGFuZGxlZCBtZXNzYWdlcyAoZS5nLiBSRVNQT05TRSBtZXNzYWdlcyBzZW50IHRvIGFnZW50cyksCiAgICAgICBpbmNyZW1lbnQgdGhlIHNubXBVbmtub3duUERVSGFuZGxlcnMgY291bnRlci4KICAgCiAgICAgLSB0cnkgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmcyB3aGVuIHBvc3QtcGFyc2UgZmFpbHMuCiAgIAoyMDAyLTAxLTI1IDA2OjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy42KSwgdmFjbV92YXJzLmM6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCBwcmludCBvdXQgZGVidWdnaW5nIGluZm8gaW4gYSBmdXJ0aGVyIGNhc2Ugd2hlcmUgaXQgaGFzIGJlZW4KICAgICAgIGZyZWUoKWQuCiAgIAogICAgIC0gc2V0IHRoZSBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gZXJyb3Igbm9TdWNoTmFtZSB3aGVuCiAgICAgICB3ZSBoYXZlIHRoZSBpbmNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMuCiAgIAoyMDAyLTAxLTI1IDA0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL1JFQURNRS5uZXdsaWI6CgogICBmaWxlIFJFQURNRS5uZXdsaWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMi0wMS0yNSAwNDo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGJlZm9yZSB3aGVyZSAocG90ZW50aWFsbHkpIHRoZSBkYXRhIGl0IGlzCiAgICAgICB0cnlpbmcgdG8gcHJpbnQgZ2V0cyBmcmVlKClkLgogICAKMjAwMi0wMS0yNSAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0ga2VlcCBhc3AtPnZiY291bnQgY29ycmVjdCBpbiBjcmVhdGVfc3VidHJlZV9jYWNoZSgpIGlmIHdlIGR1bXAKICAgICAgIHZhcmJpbmRzIGluIHRoZSBHRVRORVhUIGNhc2UgYmVjYXVzZSBudW12YXJiaW5kcyA+IG5vbi1yZXBlYXRlcnMuCiAgICAgICBGYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCBjYXVzZSBwcm9ibGVtcyBsYXRlciB3aGVuIHlvdSBpdGVyYXRlIG92ZXIKICAgICAgIDAgLi4gYXNwLT52YmNvdW50IC0gMSBpbiByZWFzc2lnbl9yZXF1ZXN0cygpLgogICAKMjAwMi0wMS0yNCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHVwZGF0ZSBtYWNyb3MgdG8gcHV0IHBhcmVucyBhcm91bmQgcGFyYW1ldGVycyB3aGVuIHVzZWQsIGluIGNhc2UgYSBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzc2lvbiwgd2hpY2ggbWlnaHQgbXVjayBhYm91dCB3aXRoIG9wZXJhdG9yIHByZWNlZGVuY2UgcnVsZXMgYW5kIGNhdXNlIHVuZXhwZWN0ZWQgYW5kIHVuZGVzaXJhYmxlIGJlaGF2aW9yLgogICAKMjAwMi0wMS0yNCAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHRyeSB0byBmaW5kICYgaGFuZGxlIGV4dGVybmFsIGluZGV4ZXM7IHVzZSBuZXcgc3R5bGUgbmV0LXNubXAgaW5jbHVkZXM7IGFkZAogICByb3dfY29weTsgdXNlIGNvbnRleHQgdHlwZXMgJiBjYXN0cyBpbiBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgZ2VuZXJpYyB0eXBlcwogICByZWNhc3QgaW5zaWRlIG1ldGhvZAogICAKMjAwMi0wMS0yNCAwNjowMyAgamJwbgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjMpLCByZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGRvbid0IGF1dG9tYXRpY2FsbHkgYWNjZXB0IGEgbXNnVXNlck5hbWUgb2YgIiIgd2hlbiBwcm9jZXNzaW5nCiAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4KICAgCjIwMDItMDEtMjQgMDQ6MzAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJpZ2dlciBidWZmZXIgZm9yIG1zZ0F1dGhvcml0YXRpdmVFbmdpbmVJRCBmaWVsZCBzaW5jZSBpdCBpcyBub3QKICAgICAgIGxpbWl0ZWQgdG8gMzIgYnl0ZXMgbGlrZSBTbm1wRW5naW5lVEMuICBSZWFsbHkgdGhpcyBuZWVkcyB0byBiZQogICAgICAgYWxsb2NhdGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGUgYnV0IGZvciBub3cgd2UnbGwganVzdCBtYWtlIGl0CiAgICAgICB0d2ljZSBhcyBiaWcuCiAgIAoyMDAyLTAxLTI0IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFJWCBzdXBwb3J0IGZvciB0aGUgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAoVGhhbmtzIHRvIEFuZHkgSG9vZCkKICAgCjIwMDItMDEtMjMgMDg6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gc2V0IHZpZXdUeXBlIHRvIHRoZSBERUZWQUwgaW5jbHVkZWQoMSkgZm9yIG5ldyByb3dzCiAgIAoyMDAyLTAxLTIzIDA3OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBzZWNNb2RlbCBvZiAwIGlzIGEgcGFyc2UgZXJyb3IgaW4gSGVhZGVyRGF0YQogICAKMjAwMi0wMS0yMyAwNzoyMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmUgY2FyZWZ1bCB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWYgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXMgaW4KICAgICAgIHNubXB2M19wYXJzZSAtLSBmaXhlcyBtZW1vcnkgbGVha3Mgd2hlbiBtYWxmb3JtZWQgUERVcyBhcmUKICAgICAgIHJlY2VpdmVkLgogICAKMjAwMi0wMS0yMiAxOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgIGNoZyBhcGkgZm9yIHNubXBfb2lkX25jb21wYXJlLCBkb24ndCBpbXBsZW1lbnQgaXQgdmkgc25tcF9vaWRfY29tcGFyZQogICAKMjAwMi0wMS0yMiAxOTo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9hcnJheS5oOgoKICAgYWRkIEdldF9vaWRfZGF0YV9jb3VudCgpOyBhZGQgc3Vic2V0IHN1cHBvcnQKICAgCjIwMDItMDEtMjIgMTk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgIGFkZCBuZXRzbm1wX3N0cjJvaWQoKQogICAKMjAwMi0wMS0yMiAxOTo0MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb24KICAgCjIwMDItMDEtMjIgMTk6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uOyBhZGQgcHJlbGltaW5hcnkgbG9ja2luZyBjb2RlOyBhZGQgdGFfY2hlY2tfcm93X3N0YXR1cwogICAKMjAwMi0wMS0yMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNCksIHZhY21fdmFycy5jOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSBhIHBhcnNlIGVycm9yIGlmIHdlIHJlY2VpdmUgVXNtU2VjdXJpdHlQYXJhbWV0ZXJzIHdpdGggYQogICAgICAgbXNnVXNlck5hbWUgdGhhdCBpcyBpbGxlZ2FsbHkgbG9uZy4KICAgCjIwMDItMDEtMjIgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgICAtIG9vcHMsIGxlZnQgb2xkIGNvZGUgaW4gI2lmIDAgYnJhbmNoIEFHQUlOLiAgSSBhbSBnZXR0aW5nIGludG8gYmFkCiAgICAgICBoYWJpdHMhCiAgIAoyMDAyLTAxLTIyIDAzOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWtzIGluIHJvdyBjcmVhdGlvbi9kZXN0cnVjdGlvbgogICAKICAgICAtIG1vcmUgYWdncmVzc2l2ZSB2YWxpZGl0eSBjaGVja2luZyBvZiBzbm1wTm90aWZ5VGFnLCBzbm1wTm90aWZ5VHlwZQogICAgICAgYW5kIHNubXBOb3RpZnlTdG9yYWdlVHlwZS4KICAgCiAgICAgLSBwYXNzZXMgNi41LjEuMCAtLSA2LjUuOC4zCiAgIAoyMDAyLTAxLTIyIDAxOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldFBhcmFtc1RhYmxlCiAgIAoyMDAyLTAxLTIxIDIzOjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gdGlkeSB0aGluZ3MgdXAgYSBiaXQgKGhhZCBsZWZ0IHNvbWUgb2xkIGNvZGUgc2l0dGluZyBpZiAjaWYgMAogICAgICAgYnJhbmNoKS4KICAgCiAgICAgLSByZW1lbWJlciB0byBjbG9zZSAodGFyZ2V0LT5zZXNzKSB3aGVuIHdlIG1vdmUgYSB0YXJnZXQgdG8KICAgICAgIG5vdEluU2VydmljZSgyKS4KICAgCjIwMDItMDEtMjEgMTE6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCiAgIAoyMDAyLTAxLTIxIDA2OjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgICAgLSBpbXBsZW1lbnQgc25tcFRhcmdldFNwaW5Mb2NrIG9iamVjdAogICAKMjAwMi0wMS0xOCAwOToxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlLiAgUGFzc2VzIGFsbCB0aGUKICAgICAgIHJlbGV2YW50IFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuNC4wLjEgLS0gNS40LjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwODo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogdmFjbS5jICwgdmFjbS5oOgoKICAgICAtIGFkZCBhIHN3aXRjaCB0byB2YWNtX2dldFZpZXdFbnRyeSgpIHRvIGFsbG93IHRoZSBtYXNrIGVudHJpZXMKICAgICAgIHRvIGJlIGlnbm9yZSAod2hpY2ggaXMgd2hhdCB5b3Ugd2FudCB3aGVuIHlvdSBhcmUganVzdCB1c2luZyB0aGlzCiAgICAgICBmdW5jdGlvbiB0byBsb29rIHVwIGFuIGVudHJ5IGluIHRoZSB0YWJsZSBpbiBvcmRlciB0byB3cml0ZSBzb21lIG5ldwogICAgICAgdmFsdWUgdG8gb25lIG9mIHRoZSBjb2x1bW5hciBvYmplY3RzKS4KICAgCjIwMDItMDEtMTggMDY6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtQWNjZXNzVGFibGUuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS4zLjAgLS0gNS4zLjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21TZWN1cml0eVRvR3JvdXBUYWJsZSAoaS5lLiBkb24ndAogICAgICAganVzdCBkbyBldmVyeXRoaW5nIGluIHRoZSBDT01NSVQgcGhhc2UpLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuMi4wIC0tIDUuMi45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDQ6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBlcnJvciBzdGF0dXMgYWZ0ZXIgQ09NTUlUIG9yIFVORE8KICAgICAgIHBoYXNlcyB3aXRoIGNvbW1pdEZhaWxlZCBvciB1bmRvRmFpbGVkIChidXQgZG8gdHJhbnNsYXRlIGVycm9yCiAgICAgICByZXR1cm5zIGZyb20gdGhvc2UgcGhhc2VzIGludG8gdGhvc2UgZXJyb3JzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbgogICAgICAgZXhpc3RpbmcgZXJyb3Igc3RhdHVzKS4KICAgCjIwMDItMDEtMTcgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dJRCBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZSBwYWNrZXQKICAgICAgIGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNyAwNjozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ01heFNpemUgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUKICAgICAgIHBhY2tldCBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTUgMDg6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICB0b3AgbGV2ZWwgaW5jbHVkZSB3aGljaCBpbmNsdWRlcyB1c2VmdWwgc25tcGxpYiBoZWFkZXJzCiAgIAoyMDAyLTAxLTE1IDA4OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC86IGFnZW50X2luZGV4LmggLCBhZ2VudF9yZWFkX2NvbmZpZy5oCiAgICwgYWdlbnRfcmVnaXN0cnkuaCAsIGFnZW50X3RyYXAuaCAsIGFzbjEuaCAsCiAgIGF1dG9fbmxpc3QuaCAsIGNhbGxiYWNrLmggLCBkZWZhdWx0X3N0b3JlLmggLAogICBkc19hZ2VudC5oICwgaGVhZGVyX2NvbXBsZXguaCAsIGludDY0LmggLCBrZXl0b29scy5oCiAgICwgbWliLmggLCBtaWJfbW9kdWxlX2NvbmZpZy5oICwgbWliaW5jbC5oICwKICAgcGFyc2UuaCAsIHJlYWRfY29uZmlnLmggLCBzY2FwaS5oICwgc25tcC10Yy5oICwKICAgc25tcC5oICwgc25tcF9hZ2VudC5oICwgc25tcF9hbGFybS5oICwgc25tcF9hcGkuaAogICAsIHNubXBfY2xpZW50LmggLCBzbm1wX2RlYnVnLmggLCBzbm1wX2ltcGwuaCAsCiAgIHNubXBfbG9nZ2luZy5oICwgc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wX3ZhcnMuaCAsCiAgIHNubXB1c20uaCAsIHNubXB2My5oICwgc3RydWN0LmggLCBzeXN0ZW0uaCAsCiAgIHRvb2xzLmggLCB0cmFuc2Zvcm1fb2lkcy5oICwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAsIHVjZC1zbm1wLWNvbmZpZy5oICwgdWNkLXNubXAtaW5jbHVkZXMuaCAsCiAgIHV0aWxfZnVuY3MuaCAsIHZhcl9zdHJ1Y3QuaCAsIHZlcnNpb24uaDoKCiAgIGNyZWF0ZSA0LnggaGVhZGVycyB0aGF0IGFyZSB3cmFwcGVycyBwb2ludGluZyB0byBuZXcgaGVhZGVycwogICAKMjAwMi0wMS0xNCAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBVc2VyUm93QWN0aW9uIGFuZCB2b2lkIHBvaW50ZXIKICAgCjIwMDItMDEtMTQgMTM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLCBNYWtlZmlsZS5pbjoKCiAgIC0+IG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKICAgCjIwMDItMDEtMTQgMTM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZWQKICAgCjIwMDItMDEtMTQgMTM6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBjb3B5IHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggYW5kIHVwZGF0ZSB0byBuZXQtc25tcCB1c2UgbmV3IGFnZW50IGRpcgogICAKMjAwMi0wMS0xNCAwODowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9pbmRleC5oICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2FnZW50X3RyYXAuaCAsCiAgIGFnZW50L2F1dG9fbmxpc3QuYyAsIGFnZW50L2F1dG9fbmxpc3QuaCAsCiAgIGFnZW50L2RzX2FnZW50LmggLCBhZ2VudC9rZXJuZWwuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMKICAgLCBhZ2VudC9taWJfbW9kdWxlcy5oICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwgYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBSb3V0ZS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXB2Ni5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwogICAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgbW92ZWQgdGhlIC9hZ2VudCBpbnN0YWxsZWQgaGVhZGVycyB0byAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50CiAgIAoyMDAyLTAxLTEzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBhIGNvdXBsZSBtb3JlIGluc3RhbGwgaGVhZGVycy4KICAgCjIwMDItMDEtMTEgMTQ6MTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiAsIG5vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5oICwKICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuaAogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaAogICAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmggLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmggLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCAsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYXBwcy9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIEFkZCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSB0byBpbmNsdWRlIHBhdGguCiAgIC0gUmVuYW1lIDMgYWdlbnQgbGlicmFyaWVzIGZyb20gbGlidWNkKiAtPiBsaWJuZXRzbm1wKgogICAKMjAwMi0wMS0xMSAwNzo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBkb24ndCB1c2Ugd2hpbGUoeC0tID49IDApIGxvb3BzIGZvciBuZXcgdW5zaWduZWQgaW5kZXggY29tcG9uZW50cwogICAKMjAwMi0wMS0xMSAwNToyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBiZSBjYXJlZnVsIGFib3V0IHNpZ25lZGVzcyBvZiBpbmRleCBjb21wb25lbnRzIGluIHRhYmxlcwogICAKMjAwMi0wMS0xMCAxMzoxMiAgbmJhCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENyZWF0ZSB0aGUgaW5jbHVkZSBkaXJlY3Rvcnkgd2hlbiBidWlsZGluZyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDEtMTAgMDg6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBsb25nIGxvb3AgdmFyaWFibGUgaW4gdmFyX3N5c09SVGFibGUoKSB0byBhdm9pZAogICAgICAgaW5jb3JyZWN0IGxleGktb3JkZXJpbmcgd2hlbiBkb2luZyByZXF1ZXN0cyBsaWtlIEdFVE5FWFQKICAgICAgIHN5c09SRGVzY3IuNDI5NDk2NzI5NS4KICAgCiAgICAgLSBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGNoYW5nZXMKICAgCjIwMDItMDEtMTAgMDc6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhayBpbiByZWFzc2lnbl9yZXF1ZXN0cygpCiAgIAoyMDAyLTAxLTEwIDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzZXQgdHlwZSBmb3IgdW5oYW5kbGVkIEdFVCByZXF1ZXN0cyBpbiBoYW5kbGVfcGR1KCkgdG8gYmUKICAgICAgIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIG5vU3VjaE9iamVjdCAobm9TdWNoT2JqZWN0IGV4Y2VwdGlvbnMKICAgICAgIGFyZSBkZXRlY3RlZCBhbmQgZXhwbGljaXRseSBzZXQgZWFybGllcikuCiAgIAoyMDAyLTAxLTEwIDA1OjUyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGNvcnJlY3QgdHlwbyB0aGF0IG1lYW50IGVycm9yIHJldHVybnMgZnJvbSBvbGQtYXBpIHdyaXRlIG1ldGhvZHMKICAgICAgIHdlcmUgaWdub3JlZC4KICAgCjIwMDItMDEtMTAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIGNoYW5nZSB2YWx1ZSBvZiBTVEFUX1RBUkdFVF9TVEFUU19FTkQgc28gdGhhdCBtaWJJSS9zbm1wX21pYi5jIGNhbgogICAgICAgcmV0dXJuIHZhbHVlcyBvZiBtYW5kYXRvcnkgb2JqZWN0cyBzbm1wU2lsZW50RHJvcHMgYW5kCiAgICAgICBzbm1wUHJveHlEcm9wcy4KICAgCjIwMDItMDEtMDkgMDg6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdW5rbm93bi9pbGxlZ2FsIHZhcmJpbmQgdHlwZXMgaW4gdjEvdjJjIFBEVXMgY2F1c2UKICAgICAgIHNubXBJbkFTTlBhcnNlRXJycyB0byBiZSBpbmNyZW1lbnRlZC4KICAgCjIwMDItMDEtMDkgMDc6NTUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA5IDA3OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgICAgLSBicmluZyBhcHAtc3BlY2lmaWMgb3B0aW9ucyBpbiBsaW5lIHdpdGggc25tcGJ1bGt3YWxrICgtQyByYXRoZXIKICAgICAgIHRoYW4gLUIpCiAgIAoyMDAyLTAxLTA5IDA3OjMxICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gZm9ybWF0dGluZyBjaGFuZ2UgdG8gdXNhZ2UgbWVzc2FnZQogICAKMjAwMi0wMS0wOSAwNjozNSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA4IDA4OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gYWRkIG9wdGlvbnMgZnJvbSBzbm1wd2FsawogICAKICAgICAtIGFsbG93IG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMgdG8gYmUgc2V0CiAgIAogICAgIC0gY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2YgbWF4LXJlcGVhdGVycyB0byBhIGxvd2VyIHZhbHVlIHRvIGF2b2lkCiAgICAgICB0aW1lb3V0cyB3aXRoIHNsb3dlciBhZ2VudHMKICAgCjIwMDItMDEtMDggMDg6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHRyeSB0byBtYWxsb2MoKSBhIHplcm8tbGVuZ3RoIGJ1ZmZlciwgaW4gY2FzZSBzb21lIG1hbGxvYygpcwogICAgICAgY29tcGxhaW4uCiAgIAoyMDAyLTAxLTA4IDA4OjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBob3BlZnVsbHkgZmluYWwgR0VUQlVMSyBmaXggLS0gcGFzc2VzIGFsbCBTaWx2ZXJDcmVlaydzIEdFVEJVTEsKICAgICAgIHRlc3RzIChpbmNsLiBuZWdhdGl2ZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzKQogICAKMjAwMi0wMS0wOCAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAgIC0gR0VUQlVMSyBmaXggdG8gaWdub3JlIHZhcmJpbmRzIGZvciB3aGljaCB6ZXJvIHJlcGV0aXRpb25zIGFyZQogICAgICAgY2FsbGVkIGZvcgogICAKICAgICAtIGRyb3AgYXNwLT5zdGFydCBhbmQgYXNwLT5lbmQgd2hpY2ggYXJlIGhhcmRseSB1c2VkIGFuZCB3aGljaCBnZXQKICAgICAgIGluIHRoZSB3YXkgb2YgdGhpcyB0eXBlIG9mIHByb2Nlc3NpbmcKICAgCiAgICAgLSBpZ25vcmUgbmVnYXRpdmUgcmVwZXRpdGlvbnMgaW4gYnVsa190b19uZXh0IGhhbmRsZXIKICAgCjIwMDItMDEtMDcgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDEtMDcgMDg6MzggIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9JTlNUQUxMOgoKICAgUE5HR3JhcGggLT4gR0Q6OkdyYXBoCiAgIAoyMDAyLTAxLTA0IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDEtMDQgMTM6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmg6CgogICBtb3ZlIGFjY29uZmlnLmggYmFjayB0byB0aGUgdG9wIGRpciB3aGVyZSBpdHMgYXBwYXJlbnRseSBzdXBwb3NlZCB0byBsaXZlLgogICAKMjAwMi0wMS0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbW9yZSB1Y2Qtc25tcCAtPiBuZXQtc25tcCB0cmFuc2xhdGlvbnMuICB3YXJuaW5nOiBpbmNsdWRlcyB0aGUgZGVmYXVsdCBwZXJzaXN0ZW50IHN0b3JlLgogICAKMjAwMi0wMS0wNCAxMzowNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS86IG5ldC1zbm1wLy5jdnNpZ25vcmUgLCB1Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAxLTA0IDEzOjAyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGJ1aWx0IG5ldC1zbm1wLWNvbmZpZwogICAKMjAwMi0wMS0wNCAxMzowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluICwgZW5jb2RlX2tleWNoYW5nZS5jICwKICAgbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jCiAgICwgc25tcGRlbHRhLmMgLCBzbm1wZGYuYyAsIHNubXBnZXQuYyAsCiAgIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMgLCBzbm1wc3RhdHVzLmMgLAogICBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLCBzbm1wdHJhbnNsYXRlLmMgLAogICBzbm1wdHJhcC5jICwgc25tcHRyYXBkLmMgLCBzbm1wdHJhcGRfaGFuZGxlcnMuYwogICAsIHNubXB0cmFwZF9sb2cuYyAsIHNubXB1c20uYyAsIHNubXB2YWNtLmMKICAgLCBzbm1wd2Fsay5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJKSi9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcE1lZGlhLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcFJvdXRlLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcHY2LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3NubXBfbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3AuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwogICAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9vaWRfYXJyYXkuYyAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwogICAsIHNubXBsaWIvc25tcF9hbGFybS5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2F1dGguYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wX2VudW0uYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3NucHJpbnRmLmMgLCBzbm1wbGliL3N0cnRvbC5jICwKICAgc25tcGxpYi9zdHJ0b3VsLmMgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jCiAgICwgc25tcGxpYi92YWNtLmMgLCB0ZXN0aW5nL1QuYyAsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMgLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYyAsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYyAsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUudG9wICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hdXRvX25saXN0LmMgLAogICBhZ2VudC9rZXJuZWwuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jCiAgICwgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwogICAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbjoKCiAgIHJlbW92ZWQgdW5lZWRlZCBvbGRlciBmaWxlcwogICAKMjAwMi0wMS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwYXRjaCAjNDkyMDcyIHRvIG1haW4gYnJhbmNoCiAgIAoyMDAyLTAxLTAzIDE0OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBjaGVjayByZXN1bHRzIG9mIHNldG1udGVudCBiZWZvcmUgdXNpbmcgdGhlbS4KICAgCjIwMDItMDEtMDMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMi0wMS0wMyAxMTo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbToKCiAgIFBOR0dyYXBoIC0+IEdER3JhcGgKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGFuZ2UgZXhwb3J0IG5hbWUgdG8gIm5ldC1zbm1wIiBmcm9tICJ1Y2Qtc25tcCIKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFrZSB1c2Ugb2YgdGhlIG5ldyBtdWx0aS1hZGQgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGFzZXQuYyAsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGFkZCBtdWx0aXBsZSBkZWZhdWx0IHJvdyBjb2x1bW4gZGVmaW5pdGlvbnMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMgLCB0YWJsZS5oOgoKICAgYWRkIG11bHRpcGxlIGluZGV4ZXMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucyAoZ2V0U3RhdFB0ciBubyBsZXNzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluICwgb2lkX3N0YXNoLmMgLCBvaWRfc3Rhc2guaDoKCiAgIGRhdGEgc3Rhc2hpbmcgYmFzZWQgb24gYW4gb2lkIGNhY2hpbmcgdHJlZS4KICAgCjIwMDEtMTItMjYgMTU6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwgLCBNYWtlZmlsZS5QTCAsIG1hbmFnZXIucG06CgogICB1cGRhdGUgdG8gbWFrZSBpdCBhIGJpdCBlYXNpZXIgdG8gaW5zdGFsbCAoaW5jbHVkaW5nIGEgTWFrZWZpbGUgZm9yCiAgIGF1dG9tYXRlZCBpbnN0YWxsYXRpb24pLgogICAKMjAwMS0xMi0yNiAxMzoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCAsIGRpc3BsYXl0YWJsZS5wbSAsIGdldFZhbHVlcy5wbQogICAsIGdyZWVuLmdpZiAsIG1hbmFnZXIucG0gLCByZWQuZ2lmICwgc2V0dXBhdXRoCiAgICwgc2V0dXBkYiAsIHNldHVwdXNlciAsIHNubXB0b3NxbDoKCiAgIG1vdmluZyBtYW5hZ2VyIHRvIHBlcmwvbWFuYWdlcgogICAKMjAwMS0xMi0yNCAxNjoxMCAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMSApCiAgIAoyMDAxLTEyLTI0IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgbWliMmMgLCBtaWIyYy5jb25mOgoKICAgVXBkYXRlIHRvIG1ha2UgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBpdCdzIG5vdCBmaW5pc2hlZCBhbmQgeW91IG11c3QKICAgcmVmZXJlbmNlIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGZpbGUgYXQgdGhpcyBwb2ludC4KICAgCjIwMDEtMTItMjQgMTU6NTEgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLm5vdC5ldmVuLmNsb3NlICkKICAgCjIwMDEtMTItMjQgMTU6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1vcmUgY29tbWVudHMuCiAgIAoyMDAxLTEyLTI0IDE1OjQxICBoYXJkYWtlcgoKICAgKiBGQVEgLCBSRUFETUU6CgogICBtb3JlIHVwZGF0ZXMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZG94eWdlbiBjb21tZW50cwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogTkVXUyAsIFJFQURNRToKCiAgIDUuMCBjb21tZW50IHVwZGF0ZXMuCiAgIAoyMDAxLTEyLTI0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzIG9uIGEgZmV3IGZ1bmN0aW9ucy4KICAgCjIwMDEtMTItMjQgMTU6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTItMjQgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3Igbm9uLWV4aXN0ZW50IG1vZHVsZXMKICAgCjIwMDEtMTItMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZzoKCiAgIG9wcHMuICBEb24ndCBjaGVjayBpbiBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoyMDAxLTEyLTIzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggcnBtIHVzYWdlIChJIGhvcGUpLgogICAKMjAwMS0xMi0yMyAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZGVkIC5jdnNpZ25vcmUgZmlsZQogICAKMjAwMS0xMi0yMyAxNDo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy4KICAgCjIwMDEtMTItMjMgMTQ6NDcgIGhhcmRha2VyCgogICAqIE5FV1MgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBuZXQtc25tcC1jb25maWcgLCBuZXQtc25tcC1jb25maWcuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIGNyZWF0ZWQgYSBuZXQtc25tcC1jb25maWcgc2NyaXB0IHRvIHJlcG9ydCBjb21waWxlZCBsaWJzLgogICAtIHNlcGFyYXRlZCBsaWJzIG5lZWRlZCBieSBhZ2VudCBmcm9tIHRob3NlIG5lZWRlZCBieSB0aGUgcmVzdCBvZiB0aGUKICAgICBhcHBsaWNhdGlvbnMuCiAgIAoyMDAxLTEyLTIxIDE2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBob3cgdG8gaW5zdGFsbCBEQkkKICAgCjIwMDEtMTItMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgcmVtb3ZlIHZlcnNpb24gcmVxdWlyZW1lbnQgZm9yIEFueURhdGEKICAgCjIwMDEtMTItMjEgMTY6MzcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjIwMDEtMTItMjEgMTY6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCAsIElOU1RBTEwgLCBJTlNUQUxMICwKICAgSU5TVEFMTDoKCiAgIGJldHRlciBkZXNjcgogICAKMjAwMS0xMi0yMSAxNjowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoyMDAxLTEyLTIxIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpdCdzIHZlcnkgYWxwaGEgY29kZS4KICAgCjIwMDEtMTItMjEgMTY6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBuZXcgaW5zdHJ1Y3Rpb25zCiAgIAoyMDAxLTEyLTIxIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkb3h5Z2VuLgogICAKMjAwMS0xMi0yMSAxMDoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgY29tcGlsZSBpbiBhZ2VudCBzcGVjaWZpYyBzdXBwb3J0IG1pYnMuCiAgIAoyMDAxLTEyLTIxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKHN0aWxsIGluY29tcGxldGUpIDJuZCB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0yMSAwOTo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChpbmNvbXBsZXRlKSB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0xOSAxNzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggcmVhbGxvYyBmbG9hdCBhbmQgZG91YmxlIGJ1aWxkcy4KICAgCjIwMDEtMTItMTkgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc2MgZml4ZXMuCiAgIAoyMDAxLTEyLTE5IDE2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRlZmluZSBhIEMgZGF0YXR5cGUgYXMgJHZhci5kZWNsIChwZXIgUm9iZXJ0J3Mgc3VnZ2VzdGlvbi4gIFJvYmVydDogd2UKICAgcHJvYmFibHkgd2FudCBwb2ludGVycyBmb3IgdGhpbmdzIGxpa2Ugc3RyaW5ncywgbm8/ICBtYXliZSBvbmUgdHlwZQogICB0aGF0IGlzIGFsd2F5cyBhIHBvaW50ZXIgYW5kIGFub3RoZXIgdGhhdCBpcyBzb21ldGltZXMgZGVwZW5kaW5nIG9uCiAgIHRoZSB0eXBlPykKICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICBjaGFuZ2UgZGVmYXVsdCBidWxrIG51bWJlciB0byAxMDAgZnJvbSB0aGUgcmlkaWN1bG91cyAxMDAwLgogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsCiAgIGFwcHMvTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDEtMTItMTkgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIGdldGJ1bGsgdXBkYXRlcyB0byBtYWtlIGl0IHRoZSBtb2R1bGVzIHJlc3BvbnNpYmlsaXR5IHRvIHVwZGF0ZSB0aGUKICAgdmFyYmluZCBjaGFpbiBhbiB0aGUgcmVwZWF0IGNvdW50ZXIuCiAgIAoyMDAxLTEyLTE5IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaAogICAsIGhlbHBlcnMvTWFrZWZpbGUuaW4gLCBoZWxwZXJzL2FsbF9oZWxwZXJzLmMgLAogICBoZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuaDoKCiAgIEdFVEJVTEsgc3VwcG9ydCBmb3IgdGhlIG5ldyBBUEkuCiAgICAgLSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgc2xpZ2h0IG1vZGlmaWNhdGlvbnMuCiAgICAgLSBkZWZhdWx0cyB0byBHRVRORVhUIGZvciBhbnkgaGFuZGxlciB0aGF0IGRvZXNuJ3Qgc2V0IEhBTkRMRVJfQ0FOX0dFVEJVTEsuCiAgICAgLSBkb2Vzbid0IGRlYWwgcHJvcGVybHkgeWV0IHdpdGggZW5kLW9mLW1pYiBjb25kaXRpb24gcmVtb3ZhbC4KICAgCjIwMDEtMTItMTkgMDY6MDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIC1wIG9wdGlvbi4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMgb3B0aW9uYWwKICAgICAgIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gZHJvcCAobG9uZy1kZXByZWNhdGVkKSAtcSBvcHRpb24uCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBhbmQKICAgICAgIGNoYW5nZWQgZGVzY3JpcHRpb24gb2Ygc29tZSBvcHRpb25zIHRvIGJlIG1vcmUgc2ltaWxhciB0byBzbm1wZAogICAgICAgb3B0aW9ucyAod2hlcmUgYXBwcm9wcmlhdGUpLgogICAKMjAwMS0xMi0xOSAwNDozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMuICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzCiAgICAgICBvcHRpb25hbCBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgcGx1cwogICAgICAgbWlub3IgZm9ybWF0dGluZyB0d2Vha3MuCiAgIAogICAgIC0gcmUtd3JpdHRlbiBvcHRpb25zIHByb2Nlc3NpbmcgbG9vcCB0byB1c2Ugb3B0YXJnKCkuCiAgIAoyMDAxLTEyLTE4IDA4OjQ0ICBqYnBuCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuNSksIFVDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICB3YXJuaW5nIC0+IGRlYnVnLgogICAKMjAwMS0xMi0xNyAxMDoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIGdldE5leHQgcXVlcmllcyB3aGVyZSB0aGUgaW5pdGlhbCB2YXJiaW5kLT50eXBlIGlzCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFICh0aGVzZSBjdXJyZW50bHkgYXJpc2Ugb25seSBpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cyBidXQgdGhlIGhhbmRsaW5nIGlzIG5vdCBzcGVjaWZpYyB0byBBZ2VudFgpLgogICAKICAgICAgIEJhc2ljYWxseSB0aGlzIGlzIGRvbmUgYnkgcGVyZm9ybWluZyBhIEdFVCBmaXJzdCBvbiBhbGwgdGhlCiAgICAgICB2YXJpYWJsZXMgaW4gYSByZXF1ZXN0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGhhZCBhbiBpbml0aWFsIHR5cGUgb2YKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIHdlcmUgc2F0aXNmaWVkIGJ5IHRoaXMgaW5pdGlhbCBHRVQsIHdlIHVzZQogICAgICAgdGhpcyB2YWx1ZSBhcyB0aGUgcmVzdWx0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGRpZCBub3QgaGF2ZSBhbgogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UsIG9yIHZhcmlhYmxlIHRoYXQgaGFkIGFuZAogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UgYnV0IHdlcmUgbm90IHNhdGlzZmllZCBieSB0aGlzCiAgICAgICBHRVQgcmVxdWVzdCwgd2UgcHJvY2VlZCB0byBwZXJmb3JtIGEgR0VULU5FWFQgdHlwZSByZXF1ZXN0IGFzCiAgICAgICBub3JtYWwuCiAgIAoyMDAxLTEyLTE3IDEwOjA0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2ggZW11bGF0ZXMgb2xkCiAgICAgICBmdW5jdGlvbmFsaXR5LgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiByZWdpc3Rlcl9vbGRfYXBpKCkuCiAgIAoyMDAxLTEyLTE3IDA5OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGJvZ3VzIGluZGVudAogICAKMjAwMS0xMi0xNyAwOTozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcmlnaHQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVnaXN0ZXJfbWliX2NvbnRleHQyKCkgaW4KICAgICAgIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIGRpdHRvLgogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIGhhbmRsZXIgaW5qZWN0aW9uIG9yZGVyIChzZXJpYWxpemUgbmVlZHMgdG8gYmUgY2FsbGVkIGZpcnN0KQogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNoZWNrIGZvciBhbHJlYWR5IGFuc3dlcmVkIEFTTl9OVUxMcyBpbiBmaXJzdCBwYXNzLgogICAKMjAwMS0xMi0xMiAwOTozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiAuY3ZzaWdub3JlICwgSU5TVEFMTCAsIE1BTklGRVNUCiAgICwgUkVBRE1FICwgc25tcHNoOgoKICAgLSBkb2MgdXBkYXRlLgogICAtIHNubXBzaCBub3cgc3VwcG9ydHMgYWxpYXNlcyBzbyB5b3UgY2FuIGRlZmluZSBjb21tYW5kIHNldHMuCiAgIC0gc25tcHNoIG5vdyByZWFkcyBhIH4vLnNubXBzaHJjIGZpbGUgZm9yIHN0b3JpbmcgdGhlc2UgZGVmaW5lZCBhbGlhc2VzLgogICAKMjAwMS0xMi0xMiAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIG5ldyBmdW5jdGlvbiBqb2luX3N1YnRyZWUoKSB3aGljaCByZXBhaXJzICJwdW5jdHVyZWQiIHN1YnRyZWVzCiAgICAgICAodGhlc2UgYXJpc2UgaW4gcGFydGljdWxhciB3aGVuIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucyBhcmUKICAgICAgIHdpdGhkcmF3bikuCiAgIAogICAgIC0gY29weSByZWdpbmZvIHdoZW4gZG9pbmcgYSByYW5nZSByZWdpc3RyYXRpb24gKGFzIHdlIHVzZWQgdG8gZG8KICAgICAgIHdpdGggdGhlIHZhcmlhYmxlIHN0cnVjdHVyZSksIHNpbmNlIGVhY2ggbm9kZSBtdXN0IHN0YW5kIGFsb25lLgogICAKICAgICAtIGFkZCBwYXJhbWV0ZXIgdG8gcmVnaXN0ZXJfbWliX2NvbnRleHQyIHRvIGFsbG93IFJFR0lTVEVSX09JRAogICAgICAgY2FsbGJhY2tzIHRvIGJlIHdpdGhoZWxkIChmb3IgaW5zdGFuY2UsIHlvdSBuZWVkIHRoaXMgdG8gYXZvaWQKICAgICAgIGV4Y2VzcyBBZ2VudFggdHJhZmZpYyBmb3Igcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHJlbW92ZSByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgLS0gdGhpcyBoYXMgbW92ZWQgdG8gb2xkX2FwaS5jCiAgIAogICAgIC0gY2FsbCBqb2luX3N1YnRyZWUoKSBpbiB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpLgogICAKMjAwMS0xMi0xMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2hhbmRsZXIuaDoKCiAgICAgLSBhZGQgZnVuY3Rpb25zIHNubXBfaGFuZGxlcl9mcmVlKCksIHNubXBfaGFuZGxlcl9kdXAoKSwKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZHVwKCkgYW5kCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKS4KICAgCjIwMDEtMTItMTEgMTg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IGJ1ZyB3aGVyZSBwZHUtPmNvbnRleHROYW1lIGlzIE5VTEwuCiAgIAoyMDAxLTEyLTExIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEJJVFM6IGlwYWRkciAtPiBvY3RldF9zdHIKICAgCjIwMDEtMTItMTEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc2VuZCBJTkNMVVNJVkUgc2VhcmNoIHJhbmdlcyBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0xMCAyMDo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIG5vYWNjZXNzIGZsYWcgZm9yIG5vdC1hY2Nlc3NpYmxlIG5vZGVzCiAgIAoyMDAxLTEyLTEwIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IENoYW5nZXMgLCBEQkRfQW55RGF0YS5wYXRjaCAsCiAgIEZvcm1hdC5wbSAsIElOU1RBTEwgLCBNQU5JRkVTVCAsIE1ha2VmaWxlLlBMICwKICAgU3RvcmFnZS5wbSAsIHNubXBzaDoKCiAgIEZpcnN0IHZlcnNpb24KICAgCjIwMDEtMTItMTAgMDM6MjAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAgYXJnIHRvIGRzX3NldF9zdHJpbmcKICAgCjIwMDEtMTItMTAgMDM6MTkgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRpdHRvIGluIHNldF9wZXJzaXN0ZW50X2RpcmVjdG9yeSgpCiAgIAoyMDAxLTEyLTEwIDAzOjE4ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBpbiBzZXRfY29uZmlndXJhdGlvbl9kaXJlY3RvcnkoKSBiZWNhdXNlCiAgICAgICBkc19zZXRfc3RyaW5nKCkgYWxyZWFkeSBkb2VzIHRoYXQgZm9yIHlvdS4KICAgCjIwMDEtMTItMDcgMDk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgaGVscGVycy90YWJsZV9pdGVyYXRvci5oCiAgICwgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIC0gSW1wbGVtZW50IG5ldyBtYW50cmE6ICJhbHdheXMgcGFzcyBtb3JlIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiBsZXNzIi4KICAgLSBmaXggdGFibGUgaXRlcmF0ZXIgR0VUTkVYVHMgZm9yIG1pc3NpbmcgZGF0YSBwb2ludHMuCiAgIC0gYWRkIGEgbmV3IGhvb2sgdG8gZnJlZSBsb29wIGNvbnRleHRzIGF0IHRoZSBlbmQgb2YgdGhlIGVudGlyZSBpdGVyYXRpb24uCiAgIAoyMDAxLTEyLTA2IDA2OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jIChKQlBOLUNCTC00LjEpLCBjbGllbnQuYzoKCiAgICAgLSBpZiByZXF1ZXN0IElEcyBkb24ndCBtYXRjaCwgdGhlbiBjYWxsIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkgLS0KICAgICAgIGNvcGVzIGJldHRlciB3aXRoIHVuZXhwZWN0ZWQgcGFja2V0cywgaW4gcGFydGljdWxhciBmaXhlcwogICAgICAgaW50ZXJtaXR0ZW50IGR1cGxpY2F0ZSB0cmFwIGlzc3VlIChkdWUgdG8gcmVzZW50CiAgIGFnZW50eC1Ob3RpZnktUERVKS4KICAgCjIwMDEtMTItMDUgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQWhlbS4gIE9wcHMuICBNaXNzaW5nIGluY2x1ZGVzLgogICAgIC0gbm90ZSB0byBzZWxmOiBjb21waWxlIGZpcnN0LCAqdGhlbiogY2hlY2sgaW4gY2hhbmdlcy4KICAgCjIwMDEtMTItMDUgMTM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgYWRkIGluIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBORVctQUdFTlQtQVBJIGJyYW5jaC4KICAgICAoYW5kIHRvIGFuc3dlciBSb2JlcnQncyBwZW5kaW5nIHF1ZXN0aW9uIG9mIHdoYXQgaGFwcGVuZWQsIGl0IHdhcwogICAgICBsaWtlbHkgb25lIG9mIHRoZSBmaWxlcyB0aGF0IGZhaWxlZCB0byBjb21taXQgb24gbXkgc2lkZSB0aGF0IHlvdQogICAgICB0cmllZCB0byBmaXggYW5kIHNvbWV3aGVyZSBiZXR3ZWVuIHRoZSB0d28gb2YgdXMgdGhlIGNoYW5nZXMgd2VyZSBsb3N0KS4KICAgCjIwMDEtMTItMDUgMTA6MDMgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtaW5vciB0d2Vha3MKICAgCjIwMDEtMTItMDUgMDk6MTQgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBhZGQgVENQL0lQdjYgZG9tYWluIHRvIEFHRU5UIFNQRUMgc2VjdGlvbgogICAKICAgICAtIGluY29ycG9yYXRlIHN1Z2dlc3Rpb25zIGZyb20gcnN0b3J5CiAgIAoyMDAxLTEyLTA1IDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgICAgLSB1c2UgU09DS19TVFJFQU0gbm90IFNPQ0tfREdSQU0gKGR1aCEpLiAgWW91IHdvdWxkbid0IGJlbGlldmUgaG93CiAgICAgICBjb25mdXNpbmcgdGhpcyB3YXMgLS0gZS5nLiBob3cgb24gKmVhcnRoKiBjYW4gdGhhdCBjb25uZWN0KCkgYmUKICAgICAgIHN1Y2NlZWRpbmchCiAgIAoyMDAxLTEyLTA1IDA4OjM2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2Ugc3VyZSB0byBjbG9zZSBzb2NrZXQgaWYgeW91IGNhbid0IG1hbGxvYyB0aGUgZW5jb2RlZCBmYXItZW5kCiAgICAgICBhZGRyZXNzIGluIHNubXBfdGNwX3RyYW5zcG9ydCgpCiAgIAoyMDAxLTEyLTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AgLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCAsCiAgIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3A6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwODoyMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nICwgRkFRICwgTkVXUyAsIFJFQURNRSAsCiAgIFJFQURNRS53aW4zMiAsIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsCiAgIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsCiAgIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLCBsb2NhbC9taWIyYyAsIGxvY2FsL3RrbWliCiAgICwgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLAogICBwZXJsL1NOTVAvU05NUC5wbSAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zbm1wLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AgLCB3aW4zMi9jb25maWcuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmggLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi93aW4zMi5kc3cgLAogICB3aW4zMi93aW4zMi5vcHQgLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiAgICwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwICwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAogICAsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwICwgd2luMzIvc25tcGQvc25tcGQuZHNwCiAgICwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcAogICAsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AgLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AgLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiAgICwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCAsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwICwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDc6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGZpeCBidWcgaW4gYWRkcmVzcyBwYXJzZXIKICAgCjIwMDEtMTItMDUgMDc6NDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8sIGFoZW0sIG1ha2UgaXQgY29tcGlsZQogICAKMjAwMS0xMi0wNSAwNzo0MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBjb25kaXRpb25hbGlzZSAjaW5jbHVkZSA8ZmNudGwuaD4KICAgCjIwMDEtMTItMDUgMDc6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTEyLTA1IDA3OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW46CgogICAgIC0gbWVudGlvbiB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGluIGNvbmZpZywgYW5kIGFkZCBhICNkZWZpbmUgZm9yIGl0CiAgICAgICBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gY2FsbCBzbm1wX3RjcDZfY3RvcigpIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFRDUElQdjZEb21haW4uaDoKCiAgICAgLSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgVW50ZXN0ZWQuCiAgIAoyMDAxLTEyLTA1IDA3OjE5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtYWtlIGVuY29kZWQgYWRkcmVzc2VzIGF0IHRyYW5zcG9ydCBvcGVuIHRpbWUKICAgCjIwMDEtMTItMDUgMDc6MTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gbW92ZSAjZGVmaW5pdGlvbiBvZiBTTk1QX1NUUkVBTV9RVUVVRV9MRU4gZnJvbSBzbm1wVENQRG9tYWluLmMKICAgICAgIHRvIHNubXBfdHJhbnNwb3J0LmgKICAgCjIwMDEtMTItMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmM6CgogICByZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMgbGlrZSwgb2gsIEkgZG9uJ3Qga25vdywgZ2V0U3RhdFB0cigpLgogICAKMjAwMS0xMi0wNSAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMTItMDUgMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGNoYW5nZWQgdGV4dHVhbCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTItMDQgMjI6NTIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXggYmluZCBwYXJhbWV0ZXJzLCBzbyB0aGF0IHRoZSBhZ2VudCB3b3JrcwogICAKMjAwMS0xMi0wNCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIC0gbW92ZSBmb3Jnb3R0ZW4gZnVuY3Rpb24gdHlwZWRlZnMgdG8gaXRlcmF0b3Igc3BlY2lmaWMgaGVhZGVyIGZpbGUuCiAgIC0gYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBjYWxsYmFja3MgdG8gbWFrZSBmdW5jdGlvbnMgbW9yZSByZXVzYWJsZS4KICAgCjIwMDEtMTItMDQgMTM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtb3ZlIGl0ZXJhdG9yIHNwZWNpZmljIHRhYmxlIGluZm9ybWF0aW9uIGludG8gaXRzIG93biBzdHJ1Y3R1cmUuCiAgIAoyMDAxLTEyLTA0IDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBGaXggcHJvdG90eXBlIGFzIHBvaW50ZWQgb3V0IGJ5IEplcm9tZSBQZWR1Y2Fzc2UKICAgCjIwMDEtMTItMDQgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtZW50aW9uIHRoYXQgbm90IGFsbCB0cmFuc3BvcnQgZG9tYWlucyBhcmUgYWx3YXlzIGF2YWlsYWJsZS4KICAgCjIwMDEtMTItMDQgMDk6NTUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSByZW1vdmUgLXAgYW5kIC1UIG9wdGlvbnMgZnJvbSBkb2N1bWVudGF0aW9uLgogICAKICAgICAtIGFkZCBsZW5ndGh5IG5ldyBzZWN0aW9uIGRlc2NyaWJpbmcgbmV3IHRyYW5zcG9ydCBhZGRyZXNzCiAgICAgICBzcGVjaWZpY2F0aW9uIGZvcm1hdCwgd2l0aCBleGFtcGxlcyBhbmQgZXZlcnl0aGluZyEKICAgCjIwMDEtMTItMDQgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zIGZvciBhcHBzLgogICAKMjAwMS0xMi0wNCAwMzoxMCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gYWRkIGNyZWF0ZV9vc3RyaW5nIG1ldGhvZCwgZXhwb3J0IHVjZFNubXBVRFBJUHY2RG9tYWluW10KICAgCjIwMDEtMTItMDQgMDI6MTkgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIG1lbnRpb24gSVB2NiB0cmFuc3BvcnQgZG9tYWluIE9JRHMgaW4gcmVsZXZhbnQgY29tbWVudC4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFF1ZWxsIGEgY29uc3QgY2FzdCB3YXJuaW5nLgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkZWJ1ZyBvdXRwdXQgZnJvbSByZXRyaWVzLgogICAKMjAwMS0xMi0wMyAxNTowNiAgbmJhCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEhBVkVfU1lTX1RZUEVTX0ggaXMgbm90IGNvbmRpdGlvbmFsLgogICAKMjAwMS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYWxsb3cgY29tcGlsYXRpb25zIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeS4KICAgCjIwMDEtMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXhlcyB0byBtYWtlIFVEUElQdjYgdHJhbnNwb3J0IHdvcmsgZm9yIFNvbGFyaXMsIExpbnV4IGFuZCBGcmVlQlNELgogICBJdCBjb21waWxlcywgYW5kIHRoZSBhcHBzIHNlbmQgdjYgcGFja2V0cy4gQWdlbnQgbm90IHlldCB0ZXN0ZWQuCiAgIAoyMDAxLTEyLTAzIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiAsIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBjb3B5IHJvYmVydHMgc3BpZmZ5IGhlYWRlciB0ZXh0CiAgIAoyMDAxLTEyLTAzIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGRhdGVudGltZSBjb2x1bW4uCiAgIAoyMDAxLTEyLTAzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggcHJvYmxlbSB3aXRoIGRvdWJsZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgYWZ0ZXIgZ2V0bmV4dCBsb29wLgogICAKMjAwMS0xMi0wMyAwODowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQ6CgogICBub3RpZmljYXRpb24gbG9nIG1pYiBhZGRlZCB0byBkZWZhdWx0IGxpc3QuCiAgIAoyMDAxLTEyLTAzIDA1OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBkZWJ1Z2dpbmcgb3V0cHV0ICgiYmxhaCIpCiAgIAoyMDAxLTExLTMwIDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIENoYW5nZSBob3cgcmVxdWVzdCBwcm9jZXNzaW5nIGdldHMgZG9uZSBzdWNoIHRoYXQgcmVxdWVzdCBvYmplY3RzIGFyZQogICBhbGwgY2FsbG9jZWQgYXQgb25jZSBhbmQgZ2V0IHJldXNlZCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGVkLiAgQmlnIHNwZWVkCiAgIGltcHJvdmVtZW50cy4KICAgCjIwMDEtMTEtMzAgMTU6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgZG94eWdlbi5jb25mOgoKICAgIm1ha2UgZG9jIiB0byBydW4gZG94eWdlbi4KICAgCjIwMDEtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMgLCBtdWx0aXBsZXhlci5oOgoKICAgZG94eWdlbiBmaXhlcwogICAKMjAwMS0xMS0zMCAwOToyNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UgaW4gcmVnaXN0ZXJfaGFuZGxlcigpIGlmIGFwcHJvcHJpYXRlLgogICAKMjAwMS0xMS0zMCAwOToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkgd2hlbiBzdWJhZ2VudCB0cmllcyB0bwogICAgICAgcmVnaXN0ZXIgYSBNSUIgcmVnaW9uIHRoYXQgZmFpbHMgZWl0aGVyIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUKICAgICAgIG9yIGJlY2F1c2Ugb2Ygc29tZSBvdGhlciByZWFzb24uCiAgIAoyMDAxLTExLTMwIDA4OjQ0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBvZiBvbGRfaW5mbyAodGhhdCBuZXZlciBzZWVtcyB0byBnZXQgdXNlZCBmb3IKICAgICAgIGFueXRoaW5nIGFueXdheT8pCiAgIAogICAgIC0gZml4IG1lbW9yeSBsZWFrIHRoYXQgYXJpc2VzIGR1cmluZyByb3cgcmVnaXN0cmF0aW9uIChpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cykgYmVjYXVzZSBzdWNjZXNzaXZlIHZhcnMgY2F1c2UgYXBwYXJlbnQgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zICh0aGlzIGlzIGEgZGVmaWNpZW5jeSkgLS0gYnV0IGl0IHdvdWxkIGFwcGVhciB0aGlzCiAgICAgICBjb3VsZCBhcmlzZSBpbiBvdGhlciBzaXR1YXRpb25zIHRvbyAoZ2VudWluZSBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMpLgogICAKMjAwMS0xMS0zMCAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gZml4IGJyb2tlbiBwYXJzaW5nIGluIHNubXBkX3BhcnNlX2NvbmZpZ190cmFwc2VzcygpIC0tIGxvb3Agd2FzCiAgICAgICBjb3B5aW5nIHRoZSBzYW1lIChmaXJzdCkgdG9rZW4gTUFYX0FSR1MgdGltZXMuCiAgIAogICAgIC0gZWxpbWluYXRlIG1lbW9yeSBsZWFrIGluIGRpdHRvLgogICAKICAgICAtIGZpeCB0eXBvICgiUGF1c2libGUgY2F1c2UiIC0+ICJQb3NzaWJsZSBjYXVzZSkgaW4gZGl0dG8uCiAgIAoyMDAxLTExLTMwIDA2OjI5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwcmludCBmZCBpbiBzZXNzX3Byb2Nlc3NfcGFja2V0KCkgLS0gdXNlZnVsIGZvciBkZWJ1Z2dpbmcKICAgCjIwMDEtMTEtMzAgMDY6MjggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICAgIC0gcmVtb3ZlIGEgY291cGxlIG9mIHVubmVjZXNzYXJ5ICNpbmNsdWRlcyBmcm9tIHNubXBDYWxsYmFja0RvbWFpbi5oCiAgIAogICAgIC0gc2V0ICpvcGFxdWUgdG8gTlVMTCBhZnRlciB3ZSBmcmVlIGl0IC0tIGl0IG1pZ2h0IG1hdHRlci4KICAgCjIwMDEtMTEtMzAgMDM6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gY2xvbmUgUERVIGluIGhhbmRsZV9hZ2VudHhfc3ViYWdlbnQoKSBiZWZvcmUgc2VuZGluZyBpdCBvbiBjYWxsYmFjawogICAgICAgc2Vzc2lvbiB0byBhdm9pZCBkb3VibGUgZnJlZSgpIGFuZCBmcmVlKClkIG1lbW9yeSByZWFkcy4KICAgCiAgICAgLSBtb3JlIGNvbmNpc2UgKGFoZW0pIGRlY2xhcmF0aW9uIG9mIG15Y2FsbGJhY2sgaW4gaGFuZGxlX2FnZW50eF9wYWNrZXQoKS4KICAgCjIwMDEtMTEtMjkgMDU6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHB1dCBzZXNzaW9uIGFuZCBzdWJzZXNzaW9uIGluIHN1YmFnZW50IGRlc2NyaXB0aW9uIChoZWxwZnVsIGZvcgogICAgICAgZGVidWdnaW5nKQogICAKMjAwMS0xMS0yOSAwNTo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCBJTlNUQUxMSEVBREVSUwogICAKMjAwMS0xMS0yOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgc29tZSBkZWJ1Z2dpbmcgdG8gaW5pdF9zdWJhZ2VudCgpICh3aGljaCBzaG93ZWQgdGhhdCBpdCB3YXNuJ3QKICAgICAgIGJlaW5nIGNhbGxlZCwgc28uLi4pLgogICAKICAgICAtIGZpeCBjYXN0IGluIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoKQogICAKMjAwMS0xMS0yOSAwNTo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtYWtlIHN1cmUgaW5pdF9zdWJhZ2VudCgpIGdldHMgY2FsbGVkCiAgIAoyMDAxLTExLTI4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2hlY2sgZm9yIHNlc3Npb24gcmVnaXN0cmF0aW9ucyBpbiBhbGwgY29udGV4dHMuCiAgIAoyMDAxLTExLTI4IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBBZGQgc3lzL3R5cGVzLmggZm9yIGJ1ZyAjNDg2Mjc3LgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgICAgLSAjaW5jbHVkZSA8bmV0ZGIuaD4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogY29uZmlndXJlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBpbnN0YWxsIHNubXBfdHJhbnNwb3J0LmggYW5kIHNubXAqRG9tYWluLmggKGZvciB0aGUgY29uZmlndXJlZAogICAgICAgdHJhbnNwb3J0IGRvbWFpbnMpCiAgIAoyMDAxLTExLTI4IDAzOjI5ICBqYnBuCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgICAgLSByZXZlcnNlIG15c3RlcnkgcmVtb3ZhbCBvZiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiBhbmQgI2luY2x1ZGUKICAgPHN5cy90aW1lLmg+CiAgIAoyMDAxLTExLTI3IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIG1vcmUgaW50ZWxsaWdlbnRseSBhbGxvY2F0ZSB0cmVlIHNwYWNlIGJhc2VkIG9uIG51bWJlciBvZiB2YXJiaW5kcyBpbiByZXF1ZXN0LgogICAKMjAwMS0xMS0yNyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBtYWxsb2Mgb25lIGxhcmdlIHRyZWVfY2FjaGUgYXJyYXkgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb2YgdHJlZV9jYWNoZSBwb2ludGVycy4KICAgCjIwMDEtMTEtMjcgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGluY2x1ZGUgZmlsZSBuYW1lIGNoYW5nZS4KICAgCjIwMDEtMTEtMjcgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvbW1lbnQgY2hhbmdlcy4KICAgCjIwMDEtMTEtMjcgMDc6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXhlZCBNYWtlZmlsZSBmb3Igc25tcHRyYXBkLgogICAKMjAwMS0xMS0yNyAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluICwgYWxsX2hlbHBlcnMuYyAsCiAgIGFsbF9oZWxwZXJzLmggLCBkZWJ1Z19oYW5kbGVyLmMgLCBkZWJ1Z19oYW5kbGVyLmg6CgogICBkZWJ1ZyBoYW5kbGVyIGNyZWF0ZWQgZm9yIGluc2VydGluZyBkZWJ1Z2dpbmcgb3V0cHV0IGludG8gdGhlIGNhbGxpbmcgY2hhaW4uCiAgIAoyMDAxLTExLTI3IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBlbnVtIGRlZmluaXRpb25zIGZvciBtb2RlcyBhbmQgY2FuX21vZGVzLgogICAKMjAwMS0xMS0yNiAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IFBEVSB2YXJpYWJsZSB0byBOVUxMIHRvIGF2b2lkIGZyZWVpbmcgaXQgdHdpY2UuCiAgIAoyMDAxLTExLTI2IDExOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgcGx1ZyBhbm90aGVyIG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwOTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQgLCBUMDIxc25tcHYzZ2V0bmV4dCAsCiAgIFQwMjJzbm1wdjNnZXRNRDUgLCBUMDIzc25tcHYzZ2V0TUQ1REVTICwKICAgVDAyNHNubXB2M2dldFNIQTEgLCBUMDI1c25tcHYzZ2V0U0hBREVTICwKICAgVDAyOHNubXB2M2dldGZhaWwgLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uICwKICAgVDA1M2FnZW50djF0cmFwICwgVDA1NGFnZW50djJjdHJhcCAsIFQwNTVhZ2VudHYxbWludHJhcAogICAsIFQwNTZhZ2VudHYyY21pbnRyYXAgLCBUMTEwYWdlbnR4Z2V0ICwKICAgVDExMWFnZW50eHNldCAsIFQxMTJhZ2VudHhzZXRmYWlsICwgVDExM2FnZW50eHRyYXAgLAogICBUMTIwcHJveHlnZXQgLCBUMTIxcHJveHlzZXQgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZG9uJ3QgdXNlIGNvbnRleHRzIGluIHRlc3RzLgogICAKMjAwMS0xMS0yNiAwODo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpeCBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYyAsIGFnZW50eC9tYXN0ZXIuYyAsCiAgIHVjZC1zbm1wL3Byb3h5LmM6CgogICB1c2UgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSB0byBwbHVnIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTEtMjYgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaGFuZGxlci5oOgoKICAgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSByb3V0aW5lCiAgIAoyMDAxLTExLTI2IDA4OjE5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIHRoZSBhYmlsaXR5IHRvIGxpc3RlbiBmb3IgdHJhcHMgb24gbXVsdGlwbGUgdHJhbnNwb3J0cyB2aWEgdGhlCiAgICAgICAtcCBvcHRpb24gKGNvbnNpc3RlbnQgd2l0aCBzbm1wZCkuCiAgIAoyMDAxLTExLTI2IDA1OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3RyYW5zcG9ydF9vaWQoKSB0byBkbyBzZXNzaW9uIGNyZWF0aW9uIGZyb20KICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLCB0byBhbGxvdyBjcmVhdGlvbiBvZgogICAgICAgbm9uLUlQdjQgc2Vzc2lvbnMgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4KICAgCjIwMDEtMTEtMjYgMDQ6NDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgdHJhbnNwb3J0IGZyb20gYQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIuCiAgIAoyMDAxLTExLTI2IDAzOjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3N1cHBvcnQoKSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHRyYW5zcG9ydCBkb21haW4KICAgICAgIGlzIHN1cHBvcnRlZC4KICAgCjIwMDEtMTEtMjMgMTA6MjQgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbXVsdGlwbGUgdHJhbnNwb3J0IGRvbWFpbiBzdXBwb3J0IGZvciB0cmFwZCAtLSB0aGlzIHdhcyByZWFsbHkKICAgICAgIFJFQUxMWSBlYXN5IQogICAKMjAwMS0xMS0yMyAwOToyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBmdW5jdGlvbiBzbm1wX3RyYW5zcG9ydF9zdXBwb3J0KCkgKHJlcGxhY2VkIHdpdGgKICAgICAgIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkpLgogICAKMjAwMS0xMS0yMyAwODo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmM6CgogICAgIC0gdXNlIG5ldHdvcmsgb3JkZXIgZm9yIEFBTDVQVkMgdHJhbnNwb3J0IGFkZHJlc3MgZW5jb2RpbmcKICAgCjIwMDEtMTEtMjMgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIHNldCBsb2NhbF9sZW5ndGgsIHJlbW90ZV9sZW5ndGggYXMgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTEtMjMgMDg6MzkgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMS0yMyAwODozNCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBtYWtlIHRyYXBzIHdvcmsgd2l0aCBuZXctc3R5bGUgYWRkcmVzc2VzLCB1c2UgZG9tYWluLWJhc2VkIGFkZHJlc3MKICAgICAgIGVuY29kaW5ncyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLiAgTm90ZSB5b3UgY2FuIG5vdyBzZW5kIHRyYXBzL2luZm9ybXMKICAgICAgIG92ZXIgYW55IHN1cHBvcnRlZCB0cmFuc3BvcnQgdHlwZSBieSB1c2luZyB0aGUgdHJhcHNlc3MgZGlyZWN0aXZlIGFuZAogICAgICAgYSB0cmFuc3BvcnQ6YWRkcmVzcyB0eXBlIHNwZWNpZmljYXRpb24uCiAgIAoyMDAxLTExLTIzIDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBjcmVhdGUgYXBwcm9wcmlhdGVseS1lbmNvZGVkIGxvY2FsIG9yIHJlbW90ZSBlbmRwb2ludCBhZGRyZXNzZXMgYXQKICAgICAgIHRyYW5zcG9ydCBvcGVuIHRpbWUuCiAgIAoyMDAxLTExLTIzIDA2OjUwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gdXBkYXRlIGRlcGVuZGVuY2llcyBmb3IgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0yMiAwOTowOCAgamJwbgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2ggLCBldmFsX3Rvb2xzLnNoICwKICAgdGVzdHMvVDAwMXNubXB2MWdldCAsIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0ICwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwgLCB0ZXN0cy9UMDE0c25tcHYyY2dldCAsCiAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCAsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCAsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwgLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsCiAgICwgdGVzdHMvVDAyMHNubXB2M2dldCAsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0ICwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSAsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMgLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSAsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMgLAogICB0ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCAsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24gLAogICB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtICwgdGVzdHMvVDA1MHNubXB2M3RyYXAgLAogICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAgLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSAsCiAgIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLAogICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLCB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLCB0ZXN0cy9UMTAwYWdlbnRodXAgLAogICB0ZXN0cy9UMTEwYWdlbnR4Z2V0ICwgdGVzdHMvVDExMWFnZW50eHNldCAsCiAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsICwgdGVzdHMvVDExM2FnZW50eHRyYXAgLAogICB0ZXN0cy9UMTIwcHJveHlnZXQgLCB0ZXN0cy9UMTIxcHJveHlzZXQgLAogICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgICAtIHVzZSB1ZHA6PGhvc3RuYW1lPjo8cG9ydD4gaW5zdGVhZCBvZiAtcCB0byBtYWtlIHRlc3RzIHdvcmsgYWdhaW4KICAgCjIwMDEtMTEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMgLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBtb3JrIHdvcmUgb24gdGhlIG5vdGlmaWNhdGlvbiBsb2cgbWliLiAgSXQgbm93IHN1cHBvcnRzIHZhcmlhYmxlCiAgIHN0b3JhZ2UsIGJ1dCBzZWdmYXVsdHMgb24gYWNjZXNzIGR1ZSB0byBwZHUgY2xvbmluZyBwcm9ibGVtcyBJJ20gbm90CiAgIGdvaW5nIHRvIHdvcmsgb3V0IHJpZ2h0IG5vdy4KICAgCjIwMDEtMTEtMjEgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggc25tcHRyYXBkIGxpbmtpbmcuCiAgIAoyMDAxLTExLTIxIDIyOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmg6CgogICByZW1vdmUgZHVwbGljYXRlIE9JRF9MRU5HVEg7IHVzZSBhY3R1YWwgb2lkIHR5cGUgaW4gY2FsY3VsYXRpb24KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBhZGQgTlVMTCBwb2ludGVyIGZvciByYnVpbGQgaW4gc2Vzc2lvbiBjcmVhdGlvbi4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIG5ldGluZXQvaW4uaCBuZWVkZWQuCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHZhcmlhYmxlIGNsZWFuIHVwcy4KICAgCjIwMDEtMTEtMjEgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLCBsb2NhbC9taWIyYyAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mICwKICAgbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbiAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oCiAgICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zbm1wLXRjLmggLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmggLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXBpLmggLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmggLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmggLAogICBzbm1wbGliL3Rvb2xzLmMgLCBzbm1wbGliL3Rvb2xzLmggLCBzbm1wbGliL3ZhY20uYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMjowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiB2YWNtLmggLCBhc24xLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX2FycmF5Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMgLCBkYXRhX2xpc3QuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAxODo1NiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHZlcnNpb24uaCAsIGFnZW50L01ha2VmaWxlLmluICwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMKICAgLCBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwgYWdlbnQvdmFyX3N0cnVjdC5oCiAgICwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgogICAsIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaCAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmggLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmggLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCAsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLCBhZ2VudC9taWJncm91cC90YXJnZXQuaAogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmggLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsIGFwcHMvTWFrZWZpbGUuaW4gLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAwNjo0MyAgamJwbgoKICAgKiBjb25maWcuaC5pbjoKCiAgICAgLSBJUHY2IGNvbmZpZyBkZWZzCiAgIAoyMDAxLTExLTIxIDA2OjM2ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgbm93LWV4dHJhbmVvdXMgI2luY2x1ZGUgInNubXBCbGFoRG9tYWluLmgiIGxpbmVzCiAgIAoyMDAxLTExLTIxIDAzOjM5ICBqYnBuCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMTEtMjAgMDk6MzggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYyAsIHNubXBJUFhEb21haW4uaDoKCiAgICAgLSBkdWguICBGb3Jnb3QgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIGRvIHdpdGggZG9tYWluLWJhc2VkIHRyYW5zcG9ydAogICAgICAgYWRkcmVzcyBwYXJzaW5nLgogICAKMjAwMS0xMS0yMCAwOToyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIG5ldyBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZyBmb3IgYWdlbnQgTlNBUHMKICAgCjIwMDEtMTEtMjAgMDk6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5oCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5oICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmggLCBzbm1wX2FwaS5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTEtMjAgMDk6MTYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBOb3RlOiBpbmNvbXBsZXRlIQogICAKMjAwMS0xMS0yMCAwODoyOSAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIHVucmVnaXN0ZXJfe3N0cmluZyxpbnQsb2lkfV9pbmRleCgpIHV0aWxpdHkgZnVuY3Rpb25zIGNvbnRyaWJ1dGVkCiAgICAgICBieSBEYW1pYW4gR2lsbXVycmF5LgogICAKMjAwMS0xMS0yMCAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMTY6NTkgIGRyaWVodWlzCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IHR5cG8gaW4gY29tbWVudCBba2FybGhlZ0BtaWNyb3NoYXJwLmNvbV0KICAgCjIwMDEtMTEtMTYgMDg6MzQgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjQtMi1wYXRjaGVzLjUpLCBwcm90b2NvbC5jOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfdHJhcC5jICwKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA2OjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGxldCBWQUNNIGNoZWNrcyBzdWNjZWVkIGZvciBub24tSVB2NCB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTE1IDA1OjE5ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0ICwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTUgMDQ6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSAic25tcGQuaCIgKGZvciAjZGVmaW5pdGlvbiBvZiBNQVNURVJfQUdFTlQpCiAgICAgLSBkb24ndCBzdHJkdXAoKSBhZ2VudHhzb2NrZXQgdmFsdWUgLS0gZHNfc2V0X3N0cmluZyBkb2VzIGl0IGZvciB5b3UKICAgICAtIGNoYW5nZSBkZWJ1Z2dpbmcgdG8gZml0IGluIGJldHRlciB3aXRoIHJlc3Qgb2YgbW9kdWxlCiAgIAoyMDAxLTExLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls3LDddKSwgY29uZmlnLmguaW4KICAgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmMgLCBhZ2VudHhfY29uZmlnLmgKICAgLCBtYXN0ZXIuYyAsIG1hc3Rlci5oICwgc3ViYWdlbnQuaDoKCiAgIHNsaWdodGx5IG1vZGlmaWVkIHBhdGNoIGZyb20gSGFycmllIHRvIG1vdmUgYWdlbnR4IGNvbmZpZ3VyYXRpb24gaW50bwogICBhIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgZmlsZSBORVQtU05NUC1BR0VOVC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDA1OjI5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEzIDA0OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSB1c2UgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hlbiBhcHByb3ByaWF0ZSBpbgogICAgICAgdW5yZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKMjAwMS0xMS0xMyAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHJlc2V0IHZyLT5uYW1lbGVuIHdoZW4gd2UndmUgZmluaXNoZWQgd2l0aCBpdAogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgZmlsZSBhbGxfaGVscGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBmaWxlIGFsbF9oZWxwZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMDggMDg6MDkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gb2YgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCksIHdoaWNoIHVzZXMKICAgICAgIHJhbmdlcyBwcm9wZXJseSBpbiB0aGUgY2FsbGJhY2sgKGhlbmNlIG11Y2ggbW9yZSBlZmZpY2llbnQgZm9yCiAgICAgICBBZ2VudFgpLgogICAKMjAwMS0xMS0wNyAwOTo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgbm93LXJlZHVuZGFudCBhZ2VudHhfYnVpbGQgZnVuY3Rpb25zCiAgIAoyMDAxLTExLTA3IDA2OjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgbWFzdGVyX2FkbWluLmMgLAogICBwcm90b2NvbC5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFKCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIGZvciBtb3JlIGNvbXByZWhlbnNpdmUKICAgICAgIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAogICAgIC0gcGFyc2UgdW5yZWdpc3RlciByYW5nZXMgcHJvcGVybHksIGFuZCB1c2UgdGhlIHJhbmdlIHByb3Blcmx5IGZvcgogICAgICAgcGFzc2luZyB0byB1bnJlZ2lzdGVyX21pYl9jb250ZXh0KCkuCiAgIAoyMDAxLTExLTA3IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2RlYnVnLmMgLCBzbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHU01TR09JRFJBTkdFKCkgbWFjcm8gZm9yIGRlYnVnZ2luZyBPSUQgcmFuZ2VzCiAgIAoyMDAxLTExLTA2IDA2OjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZyBpbiBhIGNvdXBsZSBvZiBjYXNlcywgdG8gcHJldmVudCBzcHVyaW91cwogICAgICAgSU5DTFVTSVZFIGdldE5leHQgYmVoYXZpb3VyCiAgIAoyMDAxLTExLTA1IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGNvcnJlY3QgYnVnIGluIHJhbmdlX3N1YmlkIHR3ZWFrIGNvZGUKICAgCjIwMDEtMTEtMDUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjYWxjdWxhdGUgdXBwZXIgYm91bmQgZm9yIHRhYmxlIHJvdyByZWdpc3RyYXRpb25zIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgIAoyMDAxLTExLTAxIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgcHJvdG9jb2wuYyAsCiAgIHByb3RvY29sLmggLCBzdWJhZ2VudC5jOgoKICAgICAtIGltcGxlbWVudCByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIGFnZW50eF9idWlsZCgpIHJvdXRpbmVzLAogICAgICAgYW5kIHVzZSB0aGVtLgogICAKMjAwMS0xMS0wMSAwOTozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICAgIC0gc3VwcG9ydCBmb3IgcmVsb2NhdGFibGUgYnVmZmVyIGJ1aWxkIGNhbGxiYWNrcyB2aWEgb3Blbl9leCBjYWxscwogICAKMjAwMS0xMC0zMCAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gZml4IGJ1ZyB3aGVyZWJ5IGludGVyZmFjZSBjb3VudGVyIGlzIG5vdCByZXNldCwgbm90ZWQgYnkgKGFtb25nc3QKICAgICAgIG90aGVycykgVmljdG9yIEtpcmhlbnNodGVpbiBpbiBwYXRjaCAjNDc0MDY0LgogICAKMjAwMS0xMC0zMCAwMzoyNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB0aGUgaW5pdGlhbCBidWZmZXIgc2l6ZSAyMDQ4IGluIHNubXBfcmVzZW5kX3JlcXVlc3QgKGFzIGluCiAgICAgICBfc2Vzc19hc3luY19zZW5kKSB0byBtYWtlIHN1Y2Nlc3MvZmFpbCBiZWhhdmlvdXIgZm9yIEFnZW50WCBtb3JlCiAgICAgICBwcmVkaWN0YWJsZSAoc2luY2UgQWdlbnRYIFNUSUxMIGRvZXNuJ3QgdXNlIHJlbG9jYXRpbmcgYnVmZmVycywKICAgICAgIGJvbyBoaXNzKS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LWF1dG8uY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktdXNlci5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZmlsZSB0YWJsZV9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oOgoKICAgZmlsZSB0YWJsZV9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuaDoKCiAgIGZpbGUgb2lkX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZmlsZSBvaWRfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yNiAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGZ1bmN0aW9uIG5hbWUgaW4gZXJyb3IgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwNjowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAsIGludGVyZmFjZXMuaDoKCiAgICAgIC0gYWRkIHN1cHBvcnQgZm9yIHJ4IGFuZCB0eCBkcm9wIGNvdW50cyAoaWZJbkRpc2NhcmRzIGFuZAogICAgICAgIGlmT3V0RGlzY2FyZHMpIGZvciBMaW51eCAoMi4yKykKICAgCjIwMDEtMTAtMjYgMDU6NTcgIGpicG4KCiAgICogYWNsb2NhbC5tNDoKCiAgICAgLSBhZGQgaWZfaXFkcm9wcyBtZW1iZXIgdG8gc3RydWN0IGlmbmV0CiAgIAoyMDAxLTEwLTI2IDA0OjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBhZGQgdHJhbnNsYXRpb24gZm9yIGF0bSgzNykgdHlwZSBpbnRlcmZhY2VzIGZvciBMaW51eAogICAKMjAwMS0xMC0yNiAwMzo0MyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNCksCiAgIHN5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDg6NDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaHJfc3dpbnN0LmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0yNCAwMzozOCAgamJwbgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yMSAwNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZmlsZSBtaWIyYy5pdGVyYXRlLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBmaWxlIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTE1IDA2OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmM6CgogICAgIC0gemVybyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmVzLiAgSG9wZWZ1bGx5IGZpeGVzIHByb2JsZW1zIG9uIE5ldEJTRAogICAgICAgbm90ZWQgYnkgSm9ha2ltIEFsdGhpbmkgKHJlbGF0ZWQgdG8gc2FfbGVuIG1lbWJlciBwcm9iYWJseT8/KS4KICAgCjIwMDEtMTAtMTEgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT3Bwc2VzLgogICAKMjAwMS0xMC0xMSAxNDoxNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluICwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zICwKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmICwgbWFuL3NubXBfZXJyb3IuMyAsCiAgIG1hbi9zbm1wX3BlcnJvci4zICwgbWFuL3NubXBfc2Vzc19wZXJyb3IuMyAsCiAgIG1hbi9zbm1wY21kLjEgLCBtYW4vc25tcGQuMS5kZWYgLCBtYW4vc25tcGQuY29uZi41LmRlZgogICAsIG1hbi9zbm1wc2V0LjEgLCBtYW4vc25tcHRyYW5zbGF0ZS4xICwKICAgbWFuL3NubXB0cmFwZC44ICwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmICwKICAgbWFuL3NubXB3YWxrLjEgLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCAsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0ICwgbWlicy9NYWtlZmlsZS5taWIgLAogICBtaWJzL1JFQURNRS5taWJzICwgbWlicy9TTVVYLU1JQi50eHQgLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLCBtaWJzL21pYmZldGNoICwgbWlicy9yZmNsaXN0CiAgICwgbWlicy9zbWlzdHJpcCAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL2ludDY0LmMgLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaCAsIHNubXBsaWIvbXRfc3VwcG9ydC5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmggLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3NjYXBpLmMgLCBzbm1wbGliL3NjYXBpLmggLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfYXV0aC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmMgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jCiAgICwgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oICwgdGVzdGluZy9NYWtlZmlsZS5pbgogICAsIHdpbjMyL2NvbmZpZy5oICwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMTEgMTQ6MDEgIGhhcmRha2VyCgogICAqIENPUFlJTkcgLCBDaGFuZ2VMb2cgLCBGQVEgLCBNYWtlZmlsZS5pbiAsCiAgIE5FV1MgLCBSRUFETUUgLCBhY2NvbmZpZy5oICwgYWNsb2NhbC5tNCAsCiAgIGNvbmZpZy5ndWVzcyAsIGNvbmZpZy5oLmluICwgY29uZmlnLnN1YiAsCiAgIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGx0Y29uZmlnICwgbHRtYWluLnNoCiAgICwgbWFrZWZpbGVpbmRlcGVuZC5wbCAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaAogICAsIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3RyYXAuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcF92YXJzLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsIGFwcHMvTWFrZWZpbGUuaW4KICAgLCBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYyAsCiAgIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwgYXBwcy9zbm1wc2V0LmMKICAgLCBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMgLAogICBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcHRyYXAuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgogICAsIGxvY2FsL21pYjJjLmNvbmYgLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mICwKICAgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCAsIGxvY2FsL3RrbWliOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0wOSAwNzoxNCAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBTb21ldGltZXMgd2UgZmVlbCBsaWtlIGEgLW51dAogICAKMjAwMS0xMC0wOSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHByb3Blcmx5IGFjY291bnQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHN1ZmZpeCBpbiB0aGUgdmFyaWFibGUKICAgICAgIHRhYmxlIGluIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKMjAwMS0xMC0wOCAwODo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gZGVjbGFyZSB2ZXJzaW9uX3N5c29pZF9sZW4gYXMgZXh0ZXJuIElOVCBub3QgZXh0ZXJuIG9pZCwgc28gYXMgdG8KICAgICAgIG1hdGNoIGl0cyBhY3R1YWwgZGVmaW5pdGlvbiBpbiBzeXRlbV9taWIuYy4gIFRoaXMgY2F1c2VkIGFsbCBraW5kcyBvZgogICAgICAgZnVuICYgZ2FtZXMgb24gTGludXggb24gYSBBbHBoYS4KICAgCjIwMDEtMTAtMDQgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMgLCBjYWxsYmFjay5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBzbm1wX2NhbGxiYWNrX2xpc3QoKSB0byByZXR1cm4gbGlzdCBvZiBjYWxsYmFja3MgZm9yIGEKICAgICAgIGdpdmVuIDxtYWpvciwgbWlub3I+IHBhaXIuCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OgoKICAgZmlsZSBwYXNzX3BlcnNpc3R0ZXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDMgMDU6NDIgIGpicG4KCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgICAtIGNoYW5nZSBleHByZXNzaW9uIGF0IGwuIDQxNSBmcm9tOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyA9ICprY3N0cmluZyBeICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ciB0bzoKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgXj0gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGlzIG9rYXkgKHNpbmNlICprY3N0cmluZyBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlKS4gIFNpbWlsYXJseQogICAgICAgYXQgbC4gNTMwLiAgVGhlIHByZXZpb3VzIGNvbnN0cnVjdHMgY2F1c2Ugd2FybmluZ3Mgd2l0aCBHQ0MzIGFuZAogICAgICAgc29tZSBvdGhlciBjb21waWxlcnMuICBUaGFua3MgdG8gTmllbCBNYXJrd2ljayB3aG8gbm90ZWQgdGhpcyBpbgogICAgICAgYnVnICM0NjU5NjkuCiAgIAoyMDAxLTEwLTAzIDAzOjExICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gZG8gU05NUERfQ0FMTEJBQ0tfVU5SRUdJU1RFUl9PSUQgY2FsbGJhY2tzIGluCiAgICAgICB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpIC0tIGNhbGxlZCB3aGVuIEFnZW50WCBzdWJhZ2VudHMKICAgICAgIGRpc2FwcGVhci4KICAgCjIwMDEtMTAtMDIgMDY6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCBBU05fUFJJVl9FWENMX1JBTkdFIG9uLXRoZS13aXJlCiAgIAoyMDAxLTA5LTI2IDA4OjAzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYWxsb3cgc3BsaXRfc3VidHJlZSgpIHRvIGRvIGEgc3BsaXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbHVtbiwKICAgICAgIGtlZXBpbmcgdGhlIHJlbGV2YW50IHZhcmlhYmxlIGluIGJvdGggdGhlIG9sZCB0cmVlIGFuZCB0aGUgbmV3CiAgICAgICB0cmVlIChhcmlzZXMgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSBwYXRjaCBmcm9tIERhbWlhbiBHaWxtdXJyYXkgZm9yIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaAogICAgICAgYWxsb3dzIGl0IHRvIGNvcGUgd2l0aCBub24temVybyBsZW5ndGggdmFyaWFibGVzIGFuZCBhbHNvCiAgICAgICBub24tY29udGlndW91cyBPSURzIGZvciBhZGphY2VudCBjb2x1bW5zLgogICAKICAgICAtIHJld3JpdHRlbiBkdW1wX3JlZ2lzdHJ5KCkgdGhhdCB1c2VzIHJlYWxsb2NhdGluZyBwcmludCBmdW5jdGlvbnMKICAgICAgIGFuZCBhbHNvIHByaW50cyBvdXQgdmFyaWFibGUgbGlzdHMuCiAgIAoyMDAxLTA5LTI2IDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgb2Ygc3VidHJlZSBuYW1lIGJlaW5nIGxvbmdlciB0aGFuCiAgICAgICByZXF1ZXN0ZWQgbmFtZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBzdWZmaXggZm9yIHZhcmlhYmxlIG1hdGNoaW5nLgogICAKICAgICAtIGJlIHN0cmljdCBhYm91dCBzdWJ0cmVlIGNodW5rcyBiZWluZyBpbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IE9JRAogICAgICAgYW5kIGV4Y2x1c2l2ZSBvZiB0aGUgZW5kIE9JRCAoc2hvd3MgdXAgYmlnIHRpbWUgaW4gQWdlbnRYKS4KICAgCjIwMDEtMDktMjYgMDc6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZG9uJ3QgZG8gZ2V0TmV4dCByZXF1ZXN0cyBvbiBleGNsdXNpdmUgc2VhcmNoUmFuZ2VzIHRoYXQgYmVnaW4gaW4KICAgICAgIGEgdHJlZSBtYXJrZWQgYXMgYSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgKHRoZXkgYXJlIGRvb21lZCB0bwogICAgICAgZmFpbCkuICBTa2lwIHRvIHRoZSBuZXh0IHBhcnQgb2YgdGhlIHRyZWUgc3RyYWlnaHQgYXdheS4KICAgCjIwMDEtMDktMjYgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGJyaW5nIGRlYnVnZ2luZyB0b2tlbnMgaW50byBsaW5lIHdpdGggcmVzdCBvZiBBZ2VudFggY29kZQogICAKMjAwMS0wOS0yNSAwODoxNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYSBtaXNzaW5nIHNwYWNlIGNoYXJhY3RlcgogICAKMjAwMS0wOS0yNSAwMzo1OCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgY2FzdAogICAKMjAwMS0wOS0yNSAwMzo0NSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBpbmZlbGljaXR5IHdoZW4gcHJpbnRpbmcgYW5kIHN5c2xvZ2dpbmcgKG5vdCBzdXJlIHRoaXMgaXMKICAgICAgIGFjdHVhbGx5IHBvc3NpYmxlIGJ1dCkKICAgCjIwMDEtMDktMjUgMDM6MDkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBpbnRlZ3JhdGUgc29tZSBjaGFuZ2VzIGZyb20gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2g6IEhhcnJpZSdzCiAgICAgICBwcm90b3R5cGVzIGFuZCBXZXMncyBmaXggZm9yIGJ1ZyAgIzQ2MzIyNi4KICAgCjIwMDEtMDktMjUgMDM6MDEgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gZml4IHNpZ25lZG5lc3Mgb2YgdGltZSBzdHVmZgogICAKMjAwMS0wOS0yNSAwMjo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgLCBzbm1wX2xvZ2dpbmcuaDoKCiAgICAgLSBtYWtlIGFyZ3VtZW50IG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudCBjb25zdAogICAKICAgICAtIGRvbid0IHN0cmR1cCBERUZBVUxUX0xPR19JRCBpZiBhIE5VTEwgYXJnIGlzIGdpdmVuCiAgIAoyMDAxLTA5LTI0IDA5OjM5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgaW4gc25tcHRyYXBkX2xvZy5jIHdoaWNoCiAgICAgICBhdm9pZCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCiAgICAgLSBmaXggYnVnIG5vdGVkIGluIHN1cHBvcnQgcmVxdWVzdCAjNDU2NjQ2IChjdXN0b20gdHJhcCBmb3JtYXQgd2FzCiAgICAgICBiZWluZyBpZ25vcmVkIGZvciB2MiB0cmFwcyBhbmQgaW5mb3JtcykuICBUaGFua3MgdG8KICAgICAgIEcuUHJpbmNpcGF0b0Btb3Rvcm9sYS5jb20gZm9yIHNwb3R0aW5nIHRoaXMgb25lLgogICAKICAgICAtIGNvcnJlY3QgdXNhZ2UgZm9yIC1QIG9wdGlvbiB0byByZWZsZWN0IHRoYXQgaXQgY2F1c2VzIG91dHB1dCBvbgogICAgICAgc3RkZXJyIG5vdCBzdGRvdXQuCiAgIAoyMDAxLTA5LTI0IDA5OjM2ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gcmV3cml0ZSBvZiBvdXRwdXQgZnVuY3Rpb25zIHRvIGF2b2lkIHVzZSBvZiBmaXhlZC1sZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yMCAxMzowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBuZXcgbG9nbWF0Y2ggbWliIGZyb20gU3RlcGhhbiBXZW56ZWwuCiAgIAoyMDAxLTA5LTE1IDA4OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG92ZXJyaWRlIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0IG9wZXJhdGlvbnMgd2hlbiByZXRyeWluZwogICAgICAgb3BlcmF0aW9ucwogICAKMjAwMS0wOS0xNSAwODozOSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgICAgLSBpbXByb3ZlZCBzdXBwb3J0IGZvciBBZ2VudFgtc3R5bGUgaW5jbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQKICAgCjIwMDEtMDktMTQgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggIzQ0MzExNSBmcm9tIFlpbWluIEdlOiBkaXNraW8gc3VwcG9ydCBmb3IgZnJlZWJzZDQKICAgCjIwMDEtMDktMTQgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIFBhdGNoICM0NDAzMjAgZnJvbSBNYXJrIEZlcmxhdHRlOgogICAKICAgMSkgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byB0aGUgc25tcF9sb2dnaW5nIEFQSQogICAgICAoc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KGNoYXIgKmlkZW50KSkKICAgCiAgIDIpIFBvcnRzIHNubXB0cmFwZCB0byB1c2UgdGhlIGV4aXN0aW5nIHNubXBfbG9nZ2luZyBBUEkgaW5zdGVhZCBvZgogICAgICB1c2luZyBzeXNsb2cgZGlyZWN0bHkuCiAgIAogICAzKSBQb3J0cyBzbm1wX2xvZ2dpbmcuW2NoXSB0byB1c2UgdGhlIFdpbjMyIEV2ZW50IExvZyB3aGVuIGNvbXBpbGVkIG9uCiAgICAgIFdpbjMyLiBJIGRpZG4ndCB1cGRhdGUgdGhlIFZpc3VhbCBDIHByb2plY3QgZmlsZXMsIGJlY2F1c2UgSSBvbmx5CiAgICAgIGhhdmUgYWNjZXNzIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBWQywgYW5kIEkgZGlkbid0IGtub3cgaWYgeW91CiAgICAgIHdhbnRlZCB0aGVtIHVwZGF0ZWQuIFRoZSBhZHZhcGkzMiBsaWJyYXJ5IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZQogICAgICBwcm9qZWN0IGluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgb24gV2luMzIgKHRoYXQncyB3aGVyZSB0aGUgZXZlbnQKICAgICAgbG9nIEFQSSBpcykuCiAgIAoyMDAxLTA5LTE0IDE0OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZToKCiAgIEksIHVoLCBjb3VnaCwgdWggZm9yZ290IHRvIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyLiAgRGF2ZTogZG9uJ3Qga2lsbCBtZS4KICAgCjIwMDEtMDktMTQgMTQ6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgUGF0Y2ggIzQyODg4NDogQWRkIC1QUiBsaWtlIG9wdGlvbiB0byBwZXJsIG1vZHVsZSAoZnJvbSBKb2UgQ2xhcmtlKS4KICAgCjIwMDEtMDktMTQgMTQ6MDggIGhhcmRha2VyCgogICAqIFJFQURNRSAsIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgKICAgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgKICAgLCBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi9hc24xLmg6CgogICBBcHBsaWVkIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjNDI3MzQzIGZyb20gSGFycmllOgogICAgIG1ha2UgZW50ZXJwcmlzZSBJRCByZWxvY2F0YWJsZSB3aGVyZSBsZWdhbCB0byBkbyBzbwogICAKMjAwMS0wOS0xNCAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiAsIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMTI6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl91dGlscy5jICwgaHJfdXRpbHMuaDoKCiAgIHJlbW92ZWQuICBGdW5jdGlvbmFsaXR5IG1vdmVkIHRvIHNubXBsaWIvc25tcC10Yy5bY2hdCiAgIAoyMDAxLTA5LTE0IDEyOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LmggLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC10Yy5oOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBmaWxlIGNvbmZpZy5oLmJvcmxhbmQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOS0xNCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLAogICBtYXN0ZXJfcmVxdWVzdC5oOgoKICAgICAtIHVzZSBpbmNsdXNpdmUgc2VhcmNoIHJhbmdlIG9ubHkgd2hlbiBhcHByb3ByaWF0ZSBmb3IgZ2V0TmV4dAogICAgICAgcXVlcmllcwogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTA2IDA3OjQwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmM6CgogICAgIC0gaWYgaW5jbHVkZSBiaXQgaXMgc2V0IGluIGFuIEFnZW50WCBTZWFyY2hSYW5nZSAoaGVuY2UgdHlwZSBvZiB2YXJiaW5kCiAgICAgICBpcyBBU05fUFJJVl9JTkNMX1JBTkdFKSwgdHJ5IGFuIGV4YWN0IHF1ZXJ5IGZpcnN0IGJlY2F1c2UgYW4gb2JqZWN0CiAgICAgICB3aG9zZSBuYW1lIGlzIGxleGktZXF1YWwgaXMgYSB2YWxpZCByZXNwb25zZTsgaWYgZXhhY3QgcXVlcnkgZmFpbHMKICAgICAgIHRoZW4gZmFsbCBiYWNrIHRvIGFuIGluZXhhY3QgcXVlcnkuCiAgIAoyMDAxLTA5LTA2IDA3OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX3JlcXVlc3QuYyAsCiAgIHByb3RvY29sLmMgLCBzdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIHVzZWQgSU5DTC9FWENMIHdyb25nIHdheSByb3VuZCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKICAgCiAgICAgLSBiZXR0ZXIgdGVzdCBmb3Igc2NvcGluZyByZXF1aXJlbWVudHMgaW4gc3ViYWdlbnQKICAgCjIwMDEtMDktMDQgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMjggMDM6MDQgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy43KSwgc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0Lmg6CgogICBmaWxlIGRhdGFfbGlzdC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIGZpbGUgZGF0YV9saXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjIgMDg6NDUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgY2hlY2tpbmcgdGhhdCByZXN1bHRzIHRvIGJlIHJldHVybmVkIHRvIG1hc3RlciBhZ2VudCBhcmUgaW4KICAgICAgIHJlcXVlc3RlZCBzY29wZSAoaWYgYW55KSAoZ2V0QnVsayBub3QgeWV0IGRvbmUpCiAgIAoyMDAxLTA4LTE1IDA5OjMxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBpbiBkZWJ1Z21zZ19vaWQgdG8gcHJpbnQgbG9uZyBPSURzLgogICAKMjAwMS0wOC0xNSAwODozNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mIHNubXBJbkJhZENvbW11bml0eVVzZXMgd2hlbiBhdHRlbXB0aW5nIGFuCiAgICAgICBvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBieSB0aGUgZ2l2ZW4gY29tbXVuaXR5LCBwZXIgUkZDIDE5MDcuCiAgIAoyMDAxLTA4LTE1IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB3aGVuIHRyYW5zbGF0aW5nIHRoZSB2MisgZXJyb3Itc3RhdHVzIHZhbHVlIGF1dGhvcml6YXRpb25FcnJvcgogICAgICAgaW50byBub1N1Y2hOYW1lIGZvciBhIHYxIHNlc3Npb24sIGluY3JlbWVudCB0aGUgdmFsdWUgb2YKICAgICAgIHNubXBJbkJhZENvbW11bml0eVVzZXMsIHBlciBSRkMgMjU3Ni4KICAgCjIwMDEtMDgtMTQgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIGluIHNubXBfc2V0X3Zhcl9vYmppZCgpLCB0cnkgdG8gZGV0ZWN0IGEgcHJldmlvdXNseS1tYWxsb2MoKWVkCiAgICAgICBidWZmZXIgZm9yIHRoZSB2YXJpYWJsZSBuYW1lLCBhbmQgZnJlZSgpIGl0LCB0byBhdm9pZCBtZW1vcnkKICAgbGVha3MuCiAgIAoyMDAxLTA4LTEzIDAzOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHVzZSBXaW4zMiBjYWxscyB0byBjaGFuZ2UgYmxvY2tpbmcgc3RhdGUgb2Ygc29ja2V0cyBpZgogICAgICAgYXBwcm9wcmlhdGUuICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0xMyAwMzozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhbiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uIGlmCiAgICAgICB3ZSBnZXQgYW4gZXJyb3Igb24gYSBzdHJlYW0gcmVjZWl2ZSwgYXMgd2VsbCBhcyBpZiBpdCBpcyBjbG9zZWQgaW4KICAgICAgIGFuIG9yZGVybHkgZmFzaGlvbi4gIFRoaXMgbWFrZXMgbGlmZSBlYXNpZXIgb24gV2luMzIgaW5wYXJ0aWN1bGFyLgogICAgICAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCB3aXRoIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Lmg6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmg6CgogICBmaWxlIHRhYmxlX2RhdGEuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBmaWxlIHRhYmxlX2RhdGEuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjM6CgogICBmaWxlIHNubXBfYXBpX2VycnN0cmluZy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXNzX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2Vycm9yLjM6CgogICBmaWxlIHNubXBfZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA2IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMzAgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbW92ZSBzbm1wX3NvY2tldF9sZW5ndGggZnVuY3Rpb24gdG8gYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICAgIGZyb20gc25tcF9hcGkuYyAtLSB0aGlzIGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwbGFjZSB0aGF0IHVzZXMgdGhpcwogICAgICAgZnVuY3Rpb24sIHdoaWNoIGNlcnRhaW5seSBkb2Vzbid0IGJlbG9uZyBpbiBzbm1wX2FwaS5jIGFmdGVyIHRoZQogICAgICAgdHJhbnNwb3J0IGFic3RyYWN0aW9uIG1hbGFya2V5LgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHRyeSB0byByZXR1cm4gaW52YWxpZCgyKSBmb3IgdGhlIGlwUm91dGVUeXBlIGNvbHVtbiBpZiB0aGUgcm91dGUKICAgICAgIGlzIG5vdCB1cC4gIFNlZSBidWcgIzQyNjcxMCwgcmVwb3J0ZWQgYnkgcGp3ZWJlci4KICAgCjIwMDEtMDctMjcgMDc6MzIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBzZXQgZGVmYXVsdEF1dGhUeXBlIHRvIHVzbUhNQUNTSEExQXV0aFByb3RvY29sIGlmIFNIQSBzcGVjaWZpZWQKICAgICAgICh3YXMgc2V0IHRvIHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wgaW4gdGhpcyBjYXNlKS4gIFNwb3R0ZWQgYnkKICAgICAgIFdpbGxpYW0gS2VubmVtZXIgKGJ1ZyAjNDQ0ODYwKQogICAKMjAwMS0wNy0yNyAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBjaGFuZ2UgdG8gaGFuZGxlX2FnZW50eF9yZXNwb25zZSBPTkxZIHRvIHNlbmQgTkVXTFkgZGVsZWdhdGVkCiAgICAgICByZXF1ZXN0cyBhZnRlciBwcm9jZXNzaW5nIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS4gIFRoaXMgaXMgYWNoaWV2ZWQKICAgICAgIGJ5IHNhdmluZyB0aGUgdmFsdWUgb2YgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBhbmQgdGVtcG9yYXJpbHkKICAgICAgIHNldHRpbmcgaXQgdG8gTlVMTC4gIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHZhcmJpbmRzIGluIHRoZQogICAgICAgcmVzcG9uc2UsIHRoZXJlZm9yZSwgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBjb250YWlucyBvbmx5IG5ld2x5CiAgICAgICBkZWxlZ2F0ZWQgcmVxdWVzdHMsIGlmIGFueS4gIEFmdGVyIHNlbmRpbmcgdGhlc2UsIHRoZSBuZXcgcmVxdWVzdHMKICAgICAgIGFyZSBtZXJnZWQgd2l0aCB0aGUgc2F2ZWQgcXVldWUuCiAgIAogICAgICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IGFyaXNlcyBpZiB5b3UgcmVxdWVzdCB2YXJpYWJsZXMgZnJvbSB0d28gb3IKICAgICAgIG1vcmUgc2VwYXJhdGUgc3ViYWdlbnRzIHNpbXVsdGFuZW91c2x5LiAgV2hhdCB1c2VkIHRvIGhhcHBlbiBpcwogICAgICAgdGhhdCwgdXBvbiByZWNlaXZpbmcgdGhlIGZpcnN0IHJlc3BvbnNlLCB0aGUgbWFzdGVyIGFnZW50IHdvdWxkCiAgICAgICBub3RpY2UgdGhhdCBpdCBoYWQgYW4gb3V0c3RhbmRpbmcgcmVxdWVzdCwgYW5kIHJldHJhbnNtaXQgaXQuCiAgICAgICBUaGVuIHRoZSBzZWNvbmQgcmVzcG9uc2UgYXJyaXZlcywgYW5kIHRoZSBtYXN0ZXIgYWdlbnQgc2VuZHMgdGhlCiAgICAgICByZXBseSB0byB0aGUgKFNOTVApIHJlcXVlc3RlciBhbmQgZnJlZXMgdGhlIHJlcXVlc3RzIChpbmNsdWRpbmcKICAgICAgIGNhbGxiYWNrIGRhdGEpLiAgRmluYWxseSwgYW5vdGhlciBBZ2VudFggcmVzcG9uc2UgKHRvIHRoZQogICAgICAgZXJyb25lb3VzbHkgdHJhbnNtaXR0ZWQgcmVxdWVzdCkgYXJyaXZlcyBhbmQgdGhlIGNhbGxiYWNrIGlzCiAgICAgICBjYWxsZWQgcmVmZXJlbmNpbmcgZGVhbGxvY2F0ZWQgbWVtb3J5LCB3aGljaCBjYXVzZXMgYSBzZWdmYXVsdC4KICAgCjIwMDEtMDctMjYgMDc6MjggIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChORVctTElCUkFSWS1BUEkuNCksIHNubXBfYXBpLmM6CgogICBBZGRpbmcgYSAnZG91YmxlJy12YWx1ZWQgdmFyYmluZCBpc24ndCBpbmhlcmVudGx5IGFuIGludGVybmFsIGVycm9yIQogICAKMjAwMS0wNy0yNSAwNTo0NyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCjIwMDEtMDctMjUgMDI6MTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAogICAgIC0gYWRkIGNsb3NpbmcgcGFyZW50aGVzaXMgYWZ0ZXIgKHZpYSA8YWRkcmVzcz4gaW4gZm9ybWF0X3BsYWluX3RyYXAKICAgCjIwMDEtMDctMjMgMDc6NTMgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIHJlbW92ZSBleGNlc3NpdmUgZGVidWdnaW5nIGZyb20gc25tcF8ocmUpYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAxLTA3LTIzIDA0OjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZGVidWdnaW5nIG91dHB1dCB0byBwcmludCBsb3NpbmcgcGF0aCBjb3JyZWN0bHkgd2hlbgogICAgICAgYSByZW1vdGUgY29ubmVjdCBmYWlscy4KICAgCjIwMDEtMDctMTcgMDk6NTYgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdXBkYXRlIGZvciBuYW1pbmcgY29udmVudGlvbnMgYW5kIGZvciBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAxLTA3LTE3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGluaXRpYWwgY29kaW5nIHN0eWxlIGd1aWRlbGluZSBkb2N1bWVudC4KICAgCjIwMDEtMDctMTcgMDk6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVtZW1iZXIgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbihvdXItc2Vzc2lvbi13aXRoLW1hc3Rlci1hZ2VudCkKICAgICAgIGlmIHRoZSBtYXN0ZXIgYWdlbnQgc2Vzc2lvbiBnb2VzIGF3YXksIGJlY2F1c2Ugb3RoZXJ3aXNlIHlvdQogICAgICAgbWF5IHN1YnNlcXVlbnRseSB0cnkgdG8gdXNlIGl0LCB3aGljaCB3aWxsIHByb2JhYmx5IGR1bXAgY29yZSwKICAgICAgIGFuZCBpcyBjZXJ0YWlubHkgYW4gZXJyb3IuCiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugd2hlbiB0cmFwIHNlc3Npb24gaXMgcmVnaXN0ZXJlZCB0byBiZWluZyBpbW1lZGlhdGVseQogICAgICAgdGhlIHNlc3Npb24gaXMgb3BlbmVkIHNvIHRyYXBzIGNhbiBiZSBzZW50LCBlLmcuIGZyb20gdGhlCiAgICAgICBJTkRFWF9TVEFSVCBjYWxsYmFjayAoZm9yIGV4YW1wbGUgbGlua1VwIHRyYXBzIGluIHN1YmFnZW50cyB0aGF0CiAgICAgICByZWdpc3RlciBhIHJvdyBvZiBpZlRhYmxlKS4KICAgCjIwMDEtMDctMTcgMDg6NDggIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGNoYW5nZSB0byByZW1vdmVfdHJhcF9zZXNzaW9uKCksIHNvIGFzIG5vdCB0byBjbG9zZSBhbiBTTk1QCiAgICAgICBzZXNzaW9uIHNpbXBseSBiZWNhdXNlIHdlIGFyZSByZW1vdmluZyBpdCBmcm9tIHRoZSB0cmFwX3NpbmsKICAgICAgIGxpc3QuICBUaGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIHNlc3Npb24gbWF5IHN0aWxsIGJlIGluIHVzZSBmb3IKICAgICAgIG90aGVyIHB1cnBvc2VzLCBvciAobW9yZSB0byB0aGUgcG9pbnQpIHlvdSBtYXkgYmUgY2FsbGluZyB0aGlzCiAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBzZXNzaW9uJ3MgY2FsbGJhY2sgKGZyb20gd2hlcmUgY2xvc2luZyB0aGUKICAgICAgIHNlc3Npb24gaXNuJ3QgYSBnb29kIGlkZWEpLgogICAKMjAwMS0wNy0xMyAwNjowMiAgZHRzMTIKCiAgICogc25tcGxpYi9uZXRzbm1wLmg6CgogICBmaWxlIG5ldHNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaDoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBmaXggZm9yIGJ1ZyAjNDM5MDk0LCByZXBvcnRlZCBieSBFdmVydC1KYW4gdmFuIFR1aWpsLCB3aGVyZWJ5CiAgICAgICB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBleHBlY3RzIGEgcmVzcG9uc2UgdG8gYW4gYWdlbnR4LUNsZWFudXBTZXQtUERVCiAgICAgICBtZXNzYWdlIChpbmNvcnJlY3RseSkuICBUaGlzIG9ubHkgc2hvd3MgdXAgd2hlbiB0ZXN0aW5nIGFnYWluc3Qgb3RoZXIKICAgICAgIHN1YmFnZW50cyAoZS5nLiBqYXgpIGJlY2F1c2UgdGhlIG5ldC1zbm1wIHN1YmFnZW50IHNlbmRzIGEgcmVzcG9uc2UKICAgICAgIHRvIHRoZSBhZ2VudHgtQ2xlYW51cFNldC1QRFUgKGluY29ycmVjdGx5KS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0Lmg6CgogICBmaWxlIHZhY21fY29udGV4dC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmg6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTA1IDA2OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jICwgaW50ZXJmYWNlcy5oOgoKICAgICAtIG1ha2UgSW50ZXJmYWNlX1NjYW5fR2V0X0NvdW50IG5vbi1zdGF0aWMgYXMgaXQncyB2ZXJ5IHVzZWZ1bAogICAKMjAwMS0wNy0wNSAwMzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBmcmVlIHRoZSBjYWNoZWQgc2VjdXJpdHkgcGFyYW1ldGVycyB3aGVuIHdlIGhhdmUgYSBwYXJzZSBlcnJvcgogICAgICAgb24gaW5wdXQsIG90aGVyd2lzZSB3ZSBsZWFrIG1lbW9yeSAodHJpZ2dlcmVkIGJ5IFNDIDMuMC4xMy57MiwzfSkuCiAgIAoyMDAxLTA3LTA0IDA5OjUxICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2F0Y2ggc29tZSBtYWxmb3JtZWQgU05NUHYzIHBhY2tldHMKICAgCjIwMDEtMDctMDQgMDc6NDIgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYmFkIG1pc3Rha2UgaW4gc25tcHYzX3Njb3BlZFBEVV9oZWFkZXJfcmVhbGxvY19yYnVpbGQgd2hpY2gKICAgICAgIHdhcyBlbmNvZGluZyB0aGUgd3JvbmcgbGVuZ3RoIGludG8gdGhlIFNjb3BlZFBEVSBTRVFVRU5DRSBoZWFkZXIKICAgICAgICh3YXNuJ3QgaW5jbHVkaW5nIGxlbmd0aCBvZiBhY3R1YWwgZGF0YSwgaS5lLiBQRFUhKS4gIFRvdGFsbHkgbXkKICAgICAgIGZhdWx0IC0tIGludHJvZHVjZWQgd2hlbiBjaGFuZ2luZyBvdmVyIHRvIHJlYWxsb2NhdGluZyBidWZmZXIKICAgICAgIHR5cGUgZnVuY3Rpb25zLiAgQW1hemluZyB0aGlzIGhhc24ndCBjYXVzZWQgYWxsIHNvcnRzIG9mIHRyb3VibGUKICAgICAgIGZvciBwZW9wbGUhCiAgIAoyMDAxLTA3LTAyIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBmaWxlIHNubXAtdGMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wMiAwOTozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2xpZ2h0IGNoYW5nZSB0byBnZW5lcmF0aW9uIG9mIGVycm9yLWluZGV4OgogICAKICAgICAgIC0gZXhwbGljaXRseSB0ZXN0IGZvciBlcnJvci1zdGF0dXMgPT0gbm9FcnJvciwgYW5kIHNldCBlcnJvci1pbmRleAogICAgICAgICB0byB6ZXJvIGluIHRoaXMgY2FzZTsKICAgCiAgICAgICAtIG90aGVyd2lzZSB1c2UgdGhlIGNhY2hlZCB2YWx1ZTsKICAgCiAgICAgICAtIGRvbid0IHplcm8gdGhlIGNhY2hlZCB2YWx1ZSBpbiBoYW5kbGVfdmFyX2xpc3QgaWYgaGFuZGxlX29uZV92YXIKICAgICAgICAgcmV0dXJucyBub0Vycm9yCiAgIAogICAgIC0gdGhpcyBjb3BlcyBwcm9wZXJseSB3aXRoIFNFVCByZXF1ZXN0cywgd2hlcmUgYSBmYWlsaW5nIFNFVCB3aWxsIGhhdmUKICAgICAgIGEgRlJFRSBwaGFzZSB3aGljaCB3aWxsIHR5cGljYWxseSByZXR1cm4gbm9FcnJvci4gIFByZXZpb3VzbHkgdGhpcwogICAgICAgd291bGQgZXJyb25lb3VzbHkgY2F1c2UgdGhlIGVycm9yLWluZGV4IHRvIGJlIHNldCB0byB6ZXJvLgogICAKMjAwMS0wNy0wMiAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAgIC0gZml4IGJhZCBiZWhhdmlvdXIgaW4gaGVhZGVyX3NpbXBsZV90YWJsZSB3aGVuIHRoZSBpbmRleCBpcwogICAgICAgZXF1YWwgdG8gVUxPTkdfTUFYCiAgIAoyMDAxLTA2LTI4IDEwOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2hhbmdlIHNlbnNlIG9mIHNubXBfb2lkX2NvbXBhcmUoKSByZXN1bHQgY2hlY2sgaW4gdmFyX3VzbVVzZXIKICAgICAgIHRvIGRvIGxleGktb3JkZXJpbmcgY29ycmVjdGx5CiAgIAoyMDAxLTA2LTI4IDA3OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjb3VudCBtb3JlIHYxL3YyYyBwYXJzZSBlcnJvcnMgKFNDIDEuMS4xMi4xMCkKICAgCjIwMDEtMDYtMjggMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoZWNrIHRoYXQgdmVyc2lvbiBmaWVsZCBvZiBQRFUgaXMgb2YgaW50ZWdlciB0eXBlIHJhdGhlciB0aGFuIGp1c3QKICAgICAgIGFzc3VtaW5nIGl0IGlzIChTQyAxLjEuMTIuMi4xKQogICAKMjAwMS0wNi0yOCAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgc25tcEluQmFkQ29tbXVuaXR5TmFtZXMgd2hlbiB3ZSBzZWUgdW5rbm93biBjb21tdW5pdHkKICAgICAgIG5hbWVzLCBwZXIgUkZDMTkwNwogICAKMjAwMS0wNi0yNyAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiBuZXcgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHRvIG1hcmsgYWxsIG91cgogICAgICAgbm9kZXMgYXMgZGV0YWNoZWQgd2hlbiB3ZSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdCBpbmRpY2F0aW9uLgogICAKMjAwMS0wNi0yNyAwODowNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIGFkZCBhZGRpdGlvbmFsIGZsYWcgdG8gc3VidHJlZSBzdHJ1Y3R1cmUgdGhhdCBzdWJhZ2VudHMgY2FuIHVzZQogICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHJlZ2lzdGVyIGFuZCBPSUQKICAgICAgIHdpdGggYSBtYXN0ZXIgYWdlbnQgZHVyaW5nIGEgc2Vzc2lvbidzIGxpZmV0aW1lLiAgVGhpcyBhbGxvd3MKICAgICAgIG1hbnVhbCByZS1yZWdpc3RyYXRpb24gYW5kIGF1dG9tYXRpYyByZS1yZWdpc3RyYXRpb24gdG8gYmUgbWl4ZWQKICAgICAgIHdpdGhpbiBhIHN1YmFnZW50IChwZXJoYXBzIGJlY2F1c2UgeW91IGFyZSBkb2luZyBpbmRleCBzdHVmZikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB3aGljaCB1bnNldHMgdGhpcyBmbGFnIGZvcgogICAgICAgYWxsIGtub3duIG5vZGVzIChzdWJhZ2VudCB3b3VsZCB0eXBpY2FsbHkgY2FsbCB0aGlzIG9uIGRpc2Nvbm5lY3QKICAgICAgIGluZGljYXRpb24pLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKICAgICAtIGNvcnJlY3QgYmFkIHJlY3Vyc2l2ZSBiZWhhdmlvdXIgaW4gcmVnaXN0ZXJfbWliX3JlYXR0YWNoKCkgd2hpY2gKICAgICAgIHVzZWQgdG8gdHJ5IHRvIHJlLXJlZ2lzdGVyIE4gbm9kZXMgTiEgdGltZXMuICBPbmNlIHdpbGwgbm9ybWFsbHkKICAgICAgIGJlIGVub3VnaC4KICAgCiAgICAgLSBjaGFuZ2UgdG8gZHVtcF9yZWdpc3RyeSgpIGZvcm1hdCB0byBpbmNsdWRlIGhleCBkaXNwbGF5IG9mCiAgICAgICBmbGFncyBmaWVsZC4KICAgCjIwMDEtMDYtMjYgMDk6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCBlcnJvciBpbiBTTk1QdjIgdHJhcCBleGFtcGxlcyAgKElkZW50aWZpZWQgYnkgRGl3YWthciBTaGV0dHkpLgogICAKMjAwMS0wNi0yNiAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3RlZCBzZW5zZSBvZiBkdW1wX3JlYWxsb2Nfb2lkX3RvX3N0cmluZygpIHJldHVybiB2YWx1ZQogICAgICAgY2hlY2tzLCBhcyBzcG90dGVkIGJ5IFJvYmVydCBTdG9yeS4KICAgCjIwMDEtMDYtMjUgMDY6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gc21hbGwgdHdlYWsgaW4gaGFuZGxlX2FnZW50eF9yZXNwb25zZSgpIHdoZW4gcmV0cnlpbmcgdW5mdWxmaWxsZWQKICAgICAgIHJlcXVlc3RzOiBjb250aW51ZSBmcm9tIHRoZSAic3RhcnQiIE9JRCBvZiB0aGUgbmV4dCBub2RlIG9mIHRoZQogICAgICAgdHJlZSwgbm90IGZyb20gdGhlICJuYW1lIiBPSUQsIHdoaWNoIGNhdXNlcyBsb29waW5nLgogICAKMjAwMS0wNi0yMSAwOTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBoYW5kbGUgImhvbGVzIiBpbiByb3dzIG9mIHRhYmxlcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHN1YmFnZW50cwogICAKICAgICAgIFNpbmNlIHRoZSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgaXMgcmVnaXN0ZXJlZCwgd2UgaW50ZXJwcmV0CiAgICAgICBhIHJldHVybiBvZiBub1N1Y2hJbnN0YW5jZSB3aGVuIGRvaW5nIGFuIGluZXhhY3QgcXVlcnkgYXMgbWVhbmluZwogICAgICAgd2Ugc2hvdWxkIHJldHJ5IHRoZSBxdWVyeS4KICAgCjIwMDEtMDYtMjEgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBmb3Jnb3QgdG8gY29tbWl0IGF0IHRoZSBzYW1lIHRpbWUgYXMgbGFzdCBtaWIuYyBjb21taXQ7IHVwZGF0ZWQKICAgICAgIHByb3RvdHlwZSBmb3Igc3ByaW50X3JlYWxsb2NfaGludGVkX2ludGVnZXIKICAgCjIwMDEtMDYtMjAgMDY6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgYWdlbnRfaW5kZXguaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gY291bnRfaW5kZXhlcyB3aGljaCByZXR1cm5zIHRoZSBudW1iZXIgb2YgaW5kZXhlcwogICAgICAgYWxsb2NhdGVkIGZvciBhIGdpdmVuIE9JRC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nCiAgICAgICAicm93IGNvdW50IiBvYmplY3RzLCBlLmcuIGlmTnVtYmVyLgogICAKMjAwMS0wNi0yMCAwNTozNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUQVJUIGFuZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVE9QCiAgICAgICBjYWxsYmFja3Mgd2hpY2ggbWF5IGJlIHVzZWQgdG8gbWFuYWdlIGluZGV4IGFsbG9jYXRpb25zLgogICAKICAgICAgIE1hc3RlciBhZ2VudCBzaG91bGQgcHJvYmFibHkgY2FsbCB0aGVzZSBjYWxsYmFja3MgdG9vLCBhbHRob3VnaAogICAgICAgaXQncyBhIGJpdCBvZiBhIGRlZ2VuZXJhdGUgY2FzZS4KICAgCjIwMDEtMDYtMTkgMDk6NDQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSB1c2UgYW4gZXhwbGljaXQgZmllbGVkICJhbGxvY2F0ZWQiIGluIHNubXBfaW5kZXggc3RydWN0dXJlIHRvCiAgICAgICBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGN1cnJlbnRseSBhbGxvY2F0ZWQsIHJhdGhlcgogICAgICAgdGhhbiBvdmVybG9hZGluZyBhIE5VTEwgc2Vzc2lvbiB0byBtZWFuIHRoYXQgaXQgaXMgbm90LgogICAKICAgICAgIFRoaXMgYWxsb3dzIHN0YXJ0dXAgY29kZSBpbiBhIG1hc3RlciBhZ2VudCB0byBwcmUtcmVnaXN0ZXIgaW5kaWNlcwogICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gc2Vzc2lvbnMgb3Blbi4KICAgCjIwMDEtMDYtMTkgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMgLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtICBrZWVwIHRoZSB2YWx1ZSBvZiBORVRXT1JLX0JZVEVfT1JERVIgZnJvbSBoLmZsYWdzIGluIHRoZQogICAgICAgIGFnZW50eC1PcGVuLVBEVSBhbmQgdXNlIGl0IGZvciBzdWJzZXF1ZW50IG1hc3Rlci1pbml0aWF0ZWQKICAgICAgICBBZ2VudFggcHJvdG9jb2wgb3BlcmF0aW9ucywgcGVyIFJGQyAyNzQxIChzZWN0aW9uIDcuMS4xLAogICAgICAgIHBhcmFncmFwaCA0KS4KICAgCiAgICAgICAgRm9yIG5vdywgd2UgYXJlIHN0b3JpbmcgdGhpcyBpbiB0aGUgZmxhZ3MgZmllbGQgb2YgYQogICAgICAgIHN1YnNlc3Npb24uICBUaGlzIGlzIGxpa2VseSB0byBzdG9wIHdvcmtpbmcgaWYgdGhlIGZsYWdzCiAgICAgICAgZGVmaW5pdGlvbnMgY2hhbmdlIChpLmUuIGl0J3Mgbm90IGEgZ3JlYXQgc29sdXRpb24pCiAgIAogICAgIC0gIFRoYW5rcyB0byBQZXRlciBLb3JzdGVuIChzZXZlcml0eW9uZSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQpCiAgICAgICAgZm9yIGlkZW50aWZ5aW5nIHRoaXMgYnVnLCBhbmQgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMgZml4LgogICAKMjAwMS0wNi0xOSAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHJlaW5zdGF0ZSBzcGFjZSBiZXR3ZWVuIG51bWJlcnMgYW5kIHVuaXRzLgogICAKICAgICAtIHJlc3BlY3QgRElTUExBWS1ISU5UcyBmb3IgVW5zaWduZWQzMiwgR2F1Z2UsIEdhdWdlMzIgdHlwZXMuCiAgIAoyMDAxLTA2LTEzIDAzOjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBkZWJ1Z2dpbmcgdG8gcmVkdWNlICJub2lzZSBsZXZlbCIgZnJvbSBQdXJpZnkKICAgCjIwMDEtMDYtMTIgMTA6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZXRpdGlvbnMgZmllbGQgdmFsdWVzIG9mIDwgMCAoYnkKICAgICAgIHNldHRpbmcgdGhlbSB0byAwLCBwZXIgUkZDIDE5MDUpCiAgIAoyMDAxLTA2LTEyIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggYnVnIHRoYXQgY2F1c2VkIGEgbnVsbCBwb2ludGVyIHRvIGJlIGZvbGxvd2VkIHdoZW4gcHJvY2Vzc2luZyBhCiAgICAgICBHRVRCVUxLIHJlcXVlc3Qgd2l0aCBub24tcmVwZWF0ZXJzID4gMCwgbWF4LXJlcGV0aXRpb25zID09IDAgYW5kIG5vCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgcmVxdWVzdC4KICAgCjIwMDEtMDYtMTIgMDc6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMSksIHJlYWRfY29uZmlnLmM6CgogICBGaXggJ3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXInIHRvIGhhbmRsZSB0YWdzIG90aGVyCiAgIHRoYW4gdGhlIGZpcnN0IGluIHRoZSBsaXN0LiAgKFRoYW5rcyB0byBQYXVsIFNlcmljZSkuCiAgIAoyMDAxLTA2LTA2IDA3OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlKCkgcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKSBjYWxscwogICAKMjAwMS0wNi0wNiAwNzozNyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIG1vcmUgdW5pZm9ybSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpOiBtYWtlIGl0IGFsd2F5cyBhCiAgICAgICB2YXJiaW5kIHdoaWNoIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWUoKWluZywgb3IgZWxzZSBOVUxMLgogICAKMjAwMS0wNi0wNSAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGZpeCBmb3IgaW5kZXggYWxsb2NhdGlvbiwgc3VjaCB0aGF0IHJlcXVlc3RzIGZvciBzcGVjaWZpYyBpbmRpY2VzIHdoaWNoCiAgICAgICBoYXZlIHByZXZpb3VzbHkgYmVlbiBhbGxvY2F0ZWQsIGJ1dCBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UsIHN1Y2NlZWQuCiAgIAogICAgIC0gbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaDoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZmlsZSB0YWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmg6CgogICBmaWxlIG11bHRpcGxleGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZmlsZSBvbGRfYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5oOgoKICAgZmlsZSBudWxsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGZpbGUgaW5zdGFuY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmg6CgogICBmaWxlIHNldF9oZWxwZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oOgoKICAgZmlsZSB0YWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jOgoKICAgZmlsZSByZWFkX29ubHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpbGUgc2VyaWFsaXplLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oOgoKICAgZmlsZSBvbGRfYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaDoKCiAgIGZpbGUgaW5zdGFuY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaDoKCiAgIGZpbGUgcmVhZF9vbmx5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgZmlsZSBtdWx0aXBsZXhlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaDoKCiAgIGZpbGUgc2VyaWFsaXplLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZmlsZSBudWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDc6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbWlzYyBmaXhlcyBmb3Igb2lkIGZvcm1hdHRpbmcgcHJvYmxlbXMuCiAgIAoyMDAxLTA2LTAxIDA3OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgTWFydGluIE9sZGZpZWxkLgogICAKMjAwMS0wNi0wMSAwMjo1MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGZpeCBmb3IgYWJzb2x1dGVseSBtaW5kLWJlbmRpbmcgbWVtb3J5IGxlYWsgd2hlbiBBZ2VudFggc2Vzc2lvbnMKICAgICAgIHRpbWVvdXQuICBhZ2VudF9zZXNzaW9uX2xpc3QgaG9sZHMgYSBxdWV1ZSBvZiBzZXNzaW9ucyB3aXRoIG91dHN0YW5kaW5nCiAgICAgICByZXF1ZXN0cy4gIFdoZW4gYSBzZXNzaW9uIHRpbWVzIG91dCwgdGhpcyBtdXN0IGJlIHNjYXZlbmdlZCB0byBtYWtlCiAgICAgICBzdXJlIHRoZSBzZXNzaW9ucyB0aGF0IGhhdmUgdGltZWQgb3V0LCBhbmQgdGhlaXIgYXNzb2NpYXRlZCByZXF1ZXN0cwogICAgICAgYXJlIGZyZWUoKWQuCiAgIAoyMDAxLTA1LTMwIDAzOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJldHJ5IGluaXRpYWwgb3BlbiBvZiBBZ2VudFggbWFzdGVyIHNvY2tldCBpZiBBZ2VudFggcGluZ3MgYXJlCiAgICAgICBlbmFibGVkIChzaG91bGQgcmVhbGx5IGJlIGEgc2VwYXJhdGUgZGVmYXVsdF9zdG9yZSBvcHRpb24gYnV0CiAgICAgICBuZXZlciBtaW5kKQogICAKMjAwMS0wNS0zMCAwMzoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgaGFuZGxpbmcgb2YgdGltZW91dCBjb25kaXRpb25zIChhbHNvIGZpeCBtZW1vcnkKICAgICAgIGxlYWspCiAgIAoyMDAxLTA1LTMwIDAzOjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBtb3JlIGluZm9ybWF0aXZlIGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgICAgLSByZW1vdmUgbm9pc3kgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb3JlIGNvbXBhY3QgZGVidWdnaW5nIGluIF9zZXNzX3NlbGVjdF9pbmZvCiAgIAoyMDAxLTA1LTMwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY29weSBmbGFncyBpbiByZWF0dGFjaF9zdWJ0cmVlIChuZWVkZWQgZm9yIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKQogICAKMjAwMS0wNS0yOCAwODo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIGNsaWVudC5oICwKICAgbWFzdGVyX2FkbWluLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwgc3ViYWdlbnQuYzoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gdHdlYWsgdG8gZ2V0U3RhdFB0ciB0byBoYW5kbGUgZ2V0TmV4dCBvcGVyYXRpb25zIGluIGNvbWJpbmF0aW9uIHdpdGgKICAgICAgIEZVTExZX1FVQUxJRklFRF9JTlNUQU5DRSBub2RlcyAod2hpY2ggYXJpc2UgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pLgogICAKMjAwMS0wNS0yOCAwODo0NiAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc21hbGwgdHdlYWsgdG8gZGVidWdnaW5nIG91dHB1dAogICAKMjAwMS0wNS0yOCAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzICpwcm9wZXJseSouCiAgIAoyMDAxLTA1LTI4IDA0OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggcG9zc2libGUgbWVtb3J5IGxlYWsgaW4gX3Nlc3NfYXN5bmNfc2VuZCBlcnJvciBjYXNlcwogICAKMjAwMS0wNS0yOCAwNDoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBhZGQgcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcy4KICAgCjIwMDEtMDUtMjMgMDk6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlc3BlY3QgbXNnTWF4U2l6ZSBpbiByZWNlaXZlZCB2MyBQRFVzIChpbiB0aGUgd2VhayBzZW5zZSB0aGF0IGlmCiAgICAgICB0aGUgc2VyaWFsaXplZCByZXNwb25zZSBQRFUgaXMgbW9yZSB0aGFuIGl0LCB3ZSBkb24ndCBzZW5kIGl0KQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeS4gIFVzaW5nIHRoZXNlCiAgICAgICBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleSB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4KICAgICAgIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlCiAgICAgICBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDk6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVzcElwCiAgIAoyMDAxLTA1LTIzIDA4OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBlYXJseSBiYWlsIG91dCBvZiBoYW5kbGVfc25tcF9wYWNrZXQoKSBpZiB0aGUgY2FsbGJhY2sgb3BlcmF0aW9uCiAgICAgICB0eXBlIGlzIG5vdCBTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UuICBJbiBwcmFjdGljZSwgdGhlCiAgICAgICBvbmx5IHdheSB0aGlzIGFyaXNlcyBjdXJyZW50bHkgaXMgd2hlbiBhIHN0cmVhbSB0cmFuc3BvcnQgYmFzZWQKICAgICAgIGNvbm5lY3Rpb24gZ29lcyBhd2F5IGFuZCBhIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBvY2N1cnMuCiAgIAoyMDAxLTA1LTIzIDA4OjQ0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBuZXcgZmllbGRzIHJjdk1zZ01heFNpemUgYW5kIHNuZE1zZ01heFNpemUgaW4gc25tcF9zZXNzaW9uCiAgICAgICBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB2MyBtc2dNYXhTaXplCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5IGZyb20gcHVibGljCiAgICAgICBpbnRlcmZhY2UuICBVc2luZyB0aGVzZSBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleQogICAgICAgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLAogICAgICAgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA4OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYwogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBtc2dNYXhTaXplIGZpZWxkIHRvIHNubXBfdHJhbnNwb3J0IHN0cnVjdHVyZSB0byBzdXBwb3J0CiAgICAgICBtc2dNYXhTaXplIG5lZ290aWF0aW9uIGZvciB2MwogICAKMjAwMS0wNS0yMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX2hleHN0cmluZyBpbnN0ZWFkIG9mIHNwcmludF9oZXhzdHJpbmcgZm9yCiAgICAgICBTTk1QX1RFU1RJTkdfQ09ERSBkZWJ1Z2dpbmcgb3V0cHV0IG9mIElWLCBrZXkgYW5kIHBsYWludGV4dAogICAKMjAwMS0wNS0yMyAwNToyNSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBvcHRpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwNDoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgYW5kIC1FIG9wdGlvbnMsIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwMzo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeSBmdW5jdGlvbnMgZm9yIGlucHV0IHN0cmluZwogICAgICAgdG8gT0NURVQgU1RSSU5HIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgYXNjaWlfdG9fYmluYXJ5CiAgICAgICBhbmQgaGV4X3RvX2JpbmFyeQogICAKICAgICAtIG9taXQgdHJhaWxpbmcgbmV3bGluZSBmcm9tIHN0cmluZyAoaGVscGZ1bCBmb3Igb2JqZWN0cyB0aGF0IGRvbid0CiAgICAgICBhbGxvdyBub24tcHJpbnRpbmcgY2hhcmFjdGVycywgZS5nLiBzeXNMb2NhdGlvbi4wKQogICAKMjAwMS0wNS0yMCAwODoxMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmV3cml0dGVuIF9zZXNzX3JlYWQoKSBmdW5jdGlvbjoKICAgCiAgICAgICAtIGJldHRlciBoYW5kbGluZyBvZiBsb25nIHBhY2tldHMKICAgICAgIC0gemVyby1jb3B5IHJlY2VwdGlvbiBvZiBwYWNrZXRzIG9uIHN0cmVhbSB0cmFuc3BvcnRzCiAgICAgICAtIGxvd2VyIG1lbW9yeSBvdmVyaGVhZHMgZm9yIHBhY2tldCBmcmFnbWVudCBoYW5kbGluZyBmb3Igc3RyZWFtCiAgICAgICAgIHRyYW5zcG9ydHMKICAgCiAgICAgLSBhbGxvdyBwYXJzaW5nIG9mIGxhcmdlIG9iamVjdHMgKD44MTkyIG9jdGV0cykKICAgCjIwMDEtMDUtMjAgMDU6NDggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBjb250ZXh0TmFtZSwgc2VjdXJpdHlOYW1lIC0tIGNhdXNlcyBtaW5vciBtZW1vcnkKICAgICAgIGxlYWsuCiAgIAoyMDAxLTA1LTIwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHRlc3QgcmV0dXJuIG9mIGZjbnRsKEZfR0VURkwpLCBzbyBhcyBub3QgdG8gc2V0IGZsYWdzIHRvIGdhcmJhZ2UKICAgCiAgICAgLSBjb3JyZWN0aW9uIHRvIGNvbW1lbnQgLS0gc2V0IHNvY2tldCB0byAqYmxvY2tpbmcqIQogICAKICAgICAtIGNoZWNrIG9wYXF1ZSBiZWZvcmUgd3JpdGluZyB0byBpdCBpbiByZWN2CiAgIAoyMDAxLTA1LTIwIDA1OjAyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBwcm9wZXIgaGFuZGxpbmcgb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGluIHNubXBfc3luY2hfaW5wdXQ6CiAgICAgICBzZXQgYW4gZXJyb3IgY29uZGl0aW9uLCB3aXRoIGVycm5vIFNOTVBFUlJfQUJPUlQgKCJTZXNzaW9uIGFib3J0CiAgICAgICBmYWlsdXJlIiksIHdoaWNoIHNlZW1zIGxpa2UgYSBnb29kIGVub3VnaCBtYXRjaC4KICAgCjIwMDEtMDUtMTggMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBuZXdseS1hY2NlcHQoKWVkIHNvY2tldHMgYmxvY2tpbmc7IG90aGVyd2lzZSBwcm9ibGVtcyBhcmlzZQogICAgICAgbGF0ZXIgd2hlbiBzZW5kKClpbmcgbGFyZ2UgUERVcyAoc2luY2Ugb25seSBhIHNpbmdsZSBzb2NrZXQgYnVmZmVyJ3MKICAgICAgIHdvcnRoIG9mIGRhdGEgYXQgbW9zdCBjYW4gYmUgc2VudCB3aXRob3V0IGJsb2NraW5nKS4KICAgCjIwMDEtMDUtMTggMDc6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgaW5zdGVhZCBvZgogICAgICAgc3ByaW50X29iamlkIGFuZCBzcHJpbnRfdmFyaWFibGUgcmVzcGVjdGl2ZWx5LCB0byBhbGxvdyBsYXJnZSBQRFVzCiAgICAgICB0byBiZSBwcmludGVkIHdoZW4gZGVidWdnaW5nCiAgIAoyMDAxLTA1LTE4IDA3OjE2ICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gc25tcF9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTggMDc6MTUgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICAgIC0gcmVtb3ZlIGRlYnVnZ2luZyBmcm9tIG91dHB1dCByb3V0aW5lcwogICAKICAgICAtIG5ldyBmdW5jdGlvbiBzcHJpbnRfcmVhbGxvY19vYmppZAogICAKICAgICAtIG1ha2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGV4dGVybmFsbHkKICAgICAgIHZpc2libGUKICAgCjIwMDEtMDUtMTggMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIGFzbl9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTUgMDQ6MTAgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPSURzIGZvciBVRFAvSVB2NiBhbmQgVENQL0lQdjYKICAgCjIwMDEtMDUtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gYWRkZWQgXG4gdG8gdGV4dCBvZiBzbm1wX2xvZygpIG1lc3NhZ2VzIChidWcgIzQyMjk3OCkKICAgCjIwMDEtMDUtMTEgMDc6MzAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICAgIC0gYWRkZWQgc3ByaW50X3JlYWxsb2NfPHR5cGU+IGZhbWlseSBvZiBmdW5jdGlvbnMgd2hpY2ggdGFrZSBleHRyYQogICAgICAgcGFyYW1ldGVycyBhbmQgdXNlIHJlbG9jYXRpbmcgYnVmZmVycyB0byByZW1vdmUgbGltaXRhdGlvbnMgZHVlIHRvCiAgICAgICBmaXhlZC1zaXplIGJ1ZmZlcnMgKGUuZy4gc2VlIGJ1ZyAjNDA5MTgxKS4KICAgCiAgICAgLSBhbHNvIGZpeGVzIHBvdGVudGlhbCBwcm9ibGVtIG5vdGVkIGFzIGJ1ZyAjNDE0ODAzCiAgIAogICAgIC0gZnByaW50X3ZhcmlhYmxlLCBmcHJpbnRfb2JqaWQgYW5kIGZwcmludF92YWx1ZSB1c2UgbmV3IGZ1bmN0aW9ucwogICAgICAgc3VjaCB0aGF0IHNubXBnZXQgZXRjLiBhcmUgaW1wcm92ZWQgaW1tZWRpYXRlbHkKICAgCiAgICAgLSBvbGQgZnVuY3Rpb25zIHJlbWFpbiAqRk9SIE5PVyogLS0gYnV0IHJlYWxseSB0aGV5IHNob3VsZCBiZQogICAgICAgY29uc2lkZXJlZCB0byBiZSBkZXByZWNhdGVkIChuZXcgZnVuY3Rpb25zIHByb3ZpZGUgYSBzdXBlcnNldCBvZgogICAgICAgdGhlaXIgZnVuY3Rpb25hbGl0eSkuCiAgIAoyMDAxLTA1LTExIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgICAgLSBhZGRlZCBhZGRpdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXIgdG8gc3RydWN0IHRyZWUgdG8gcG9pbnQgYXQKICAgICAgIHJlbG9jYXRpbmcgYnVmZmVyIGNvbXBhdGlibGUgb3V0cHV0IGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTExIDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jICwgdG9vbHMuaDoKCiAgICAgLSBhZGRlZCB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfc3RyY2F0LCB3aGljaCBhcHBlbmRzIGEgc3RyaW5nIHRvIGEKICAgICAgIHJlbG9jYXRhYmxlIGJ1ZmZlcgogICAKMjAwMS0wNS0xMCAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICM0MjMxMDkgaW5jb3JyZWN0IGluZGV4IHBhcnNpbmcKICAgCjIwMDEtMDUtMDkgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmaXggc25tcF9jbGllbnQuYzo1Njk6IHdhcm5pbmc6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMDkgMTI6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uLmggLCBSbW9uL1JFQURNRSAsIFJtb24vYWd1dGlsLmMKICAgLCBSbW9uL2FndXRpbC5oICwgUm1vbi9hZ3V0aWxfYXBpLmggLCBSbW9uL2FsYXJtLmMKICAgLCBSbW9uL2FsYXJtLmggLCBSbW9uL2V2ZW50LmMgLCBSbW9uL2V2ZW50LmggLAogICBSbW9uL2hpc3RvcnkuYyAsIFJtb24vaGlzdG9yeS5oICwgUm1vbi9yb3dfYXBpLmggLAogICBSbW9uL3Jvd3MuYyAsIFJtb24vcm93cy5oICwgUm1vbi9zdGF0aXN0aWNzLmMgLAogICBSbW9uL3N0YXRpc3RpY3MuaCAsIFJtb24vdGVzdF9hbGFybS5zaCAsCiAgIFJtb24vdGVzdF9oaXN0LnNoOgoKICAgSW5jbHVkZSBBbGV4IFJvemluJ3MgUm1vbi4KICAgCjIwMDEtMDUtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jICwgc25tcF9jbGllbnQuaDoKCiAgIEFkZGVkIGEgY291cGxlIG9mIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgbWFuaXB1bGF0aW5nIHZhcmJpbmRsaXN0czoKICAgICBpbnQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHN0cnVjdCB2YXJpYWJsZV9saXN0ICpuZXd2YXIsIHVfY2hhciB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICp2YWxfc3RyLCBzaXplX3QgdmFsX2xlbik7CiAgICAgdm9pZCBzbm1wX3JlcGxhY2VfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBvbGRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld190eXBlKTsKICAgICB2b2lkIHNubXBfcmVzZXRfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBuZXdfdHlwZSk7CiAgIAoyMDAxLTA1LTA3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBkZWZpbmUgU05NUF9NQUxMT0NfVFlQRURFRigpCiAgIAoyMDAxLTA1LTA1IDA3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgZml4IHN0b3JlXyBuYW1lOyBkb24ndCBjYXN0IHRvIGFzbnkgdHlwZSBpZiBwYXJtIGV4cGVjdGluZyB1X2NoYXIqOyBmaXggX3ZhcmlhYmxlX29pZAogICBuYW1pbmc7IGNhc3QgcGFybSAyIG9mIG1lbWR1cCB0byB1X2NoYXIqCiAgIAoyMDAxLTA1LTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgICAgLS0gbW9yZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgcHJvYmxlbSBmb3VuZC4KICAgCjIwMDEtMDUtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgCjIwMDEtMDUtMDMgMTA6MDggIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQgLCBjb25maWcuZ3Vlc3MgLCBjb25maWcuc3ViICwKICAgY29uZmlndXJlICwgbHRtYWluLnNoOgoKICAgdXBkYXRlZCB0byBsaWJ0b29sIDEuNAogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICB1c2UgcmVhbGxvYyByb3V0aW5lcy4KICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KICAgCjIwMDEtMDUtMDEgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb24ndCBwcmludCBoZXggZm9yIHN0cmluZyBsZW5ndGhzIGxlc3MgdGhhbiA0LiAgU2hvdWxkIGhhdmUgZGllZCBhZ2VzIGFnby4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oOgoKICAgRml4IHByb3RvdHlwZSBzbyBpdHMgbm90IHN0YXRpYyAoaXQgc2hvdWxkbid0IGJlKS4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBtYWtlIFJPTkxZIHZhcmlhYmxlcyB3cml0YWJsZSAod2hpY2ggbWF5IG9yIG1heSBub3Qgd29yay4gIEknbSBiZXR0aW5nIG5vdC4pCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGFuIHJwbSBzdWJkaXJlY3RvcnkuCiAgIAoyMDAxLTA0LTIzIDIwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGJpZyBjbGVhbnVwIGFuZCBvdGhlciBmaXhlcyBJJ3ZlIGFscmVhZHkgZm9yZ290dGVuIGluIHRoZSBsYXN0IGZldyBtaW51dGVzLgogICAKMjAwMS0wNC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCB3YWxrIG9mZiBlbmQgb2YgbWliIHRyZWUgKHNpZ2gpLgogICAKMjAwMS0wNC0yMyAyMDoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGhlIG1pYiBpbmZvIGRpc3BsYXkgb3B0aW9ucy4KICAgc2F2ZSB0aGVtIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAxLTA0LTIzIDE4OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1vcmUgc2F2YWJsZSBvcHRpb24gaXRlbXMuCiAgIHVzZSBEYXRhOjpEdW1wZXIgdG8gc2F2ZSBtb3N0IHN0dWZmLgogICAKMjAwMS0wNC0yMyAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCBzYXZlIHNlc3Npb24gb3B0aW9ucyB0d2ljZS4KICAgTWFrZSBjb2xvciBvZiB3cml0YWJsZSBvYmplY3RzIGEgdmFyaWFibGUuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRrbWliIChWNC0yLXBhdGNoZXMuMiksIHRrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0yMyAxNjozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICByZWR1Y2Ugc2NyZWVuIHJlYWxlc3RhdGUgYWxsIG92ZXIgdGhlIHBsYWNlCiAgIAoyMDAxLTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHRlc3QgYWdhaW5zdCB2ZXJzaW9uIDUKICAgCjIwMDEtMDQtMTggMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmggLCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dAogICAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZGVkIExNLVNFTlNPUlMtTUlCIHN1cHBvcnQgKGRpc2tpbyBleHRlbnNpb24pIGZyb20gTWFydGluIE9sZGZpZWxkCiAgIAoyMDAxLTA0LTE4IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYWNraW5nIG9uIHNubXBfYWRkX3ZhciB0byBoYW5kbGUgbG9uZyB2YWx1ZXMKICAgCiAgICAgICAtIHVzZSBzbm1wX3toZXgsZGVjaW1hbH1fdG9fYmluYXJ5IGluc3RlYWQgb2YgaGV4X3RvX2JpbmFyeQogICAgICAgICBhbmQgYXNjaWlfdG9fYmluYXJ5OyB0aGVzZSBzaG91bGQgYmUgcmVtb3ZlZAogICAKICAgICAgIC0gZG9uJ3QgdXNlIHN0cnRvayBpbiBwcm9jZXNzaW5nIGJpdHN0cmluZ3MKICAgCjIwMDEtMDQtMTggMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gdXNlIHRoZSBnZW5lcmljIHNubXBfcmVhbGxvYyBmdW5jdGlvbiBpbiBhc25fcmVhbGxvYwogICAKMjAwMS0wNC0xOCAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAsIHRvb2xzLmg6CgogICAgIC0gbmV3LCByZWFsbG9jYXRpbmcgdXRpbGl0eSBmdW5jdGlvbnMgc25tcF9oZXhfdG9fYmluYXJ5IGFuZAogICAgICAgc25tcF9kZWNpbWFsX3RvX2JpbmFyeSB0byBjb252ZXJ0IGhleCBhbmQgZGVjaW1hbCBzdHJpbmdzIHRvIG9jdGV0CiAgICAgICBzdHJpbmdzIHJlc3BlY3RpdmVseS4KICAgCiAgICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3JlYWxsb2MgdG8gcGVyZm9ybSBidWZmZXIgKHJlLSlhbGxvY2F0aW9uCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDEwOjA2ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGV4dGVuZGVkIChhbmQgY29ycmVjdGVkISkgY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIG5ldyBBUEkuCiAgIAoyMDAxLTA0LTExIDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wLmMgLCBzbm1wLmg6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkX3Zhcl9vcCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMTEgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDIgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gYXNuX3JlYWxsb2MoKSBmdW5jdGlvbiBjaGVja3Mgd2hldGhlciBpdCBoYXMgYmVlbiBwYXNzZWQgYSBOVUxMCiAgICAgICBwb2ludGVyIGFuZCB1c2VzIG1hbGxvYygpIGluIHRoYXQgY2FzZSAodGhhbmtzIHRvIE1pY2hhZWwgU2xpZmNhawogICAgICAgZm9yIHBvaW50aW5nIG91dCB0aGUgZGFuZ2VyIGhlcmUpLgogICAKMjAwMS0wNC0xMSAwNjoxMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIEdldEJ1bGsgcmVxdWVzdHMgd2l0aCBtYXgtcmVwZXRpdGlvbnM9MCBwcm9wZXJseSAoYnVnICM0MTQ4NTUpCiAgIAoyMDAxLTA0LTEwIDA0OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHNldCBTT19TTkRCVUYgYW5kIFNPX1JDVkJVRiB0byAxMjhLYiBmb3IgbmV3bHktb3BlbmVkIFVEUCBzb2NrZXRzLAogICAgICAgdG8gZW5hYmxlIGxhcmdlIFBEVXMgdG8gYmUgc2VudCBhbmQgcmVjZWl2ZWQuICBTb21lCiAgICAgICBpbXBsZW1lbnRhdGlvbnMgZGVmYXVsdCB2ZXJ5IGxvdyAoU29sYXJpcyAyLjcgOEtiLCBMaW51eCAyLjQKICAgICAgIDY0S2IpLgogICAKMjAwMS0wNC0wOSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBtb2RpZmllZCB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBtYWtlIHVzZSBvZiByZWFsbG9jYXRpbmcKICAgICAgIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmg6CgogICAgIC0gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5oOgoKICAgICAtIGFsbG93IGFkZGl0aW9uYWwgcGFyYW1ldGVyIGZvciBvdXRnb2luZyBwYXJhbXMgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHByb3RvdHlwZXMgZm9yIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMKICAgCjIwMDEtMDQtMDkgMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIHRvIHVzZSByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyBpZgogICAgICAgdXNpbmcgcmV2ZXJzZSBlbmNvZGluZyBhdCBhbGwuCiAgIAoyMDAxLTA0LTA5IDA5OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgICAtIGFkZCBuZXcgZnVuY3Rpb24gc25tcF9yZWFsbG9jX3JidWlsZF92YXJfb3AoKSB3aGljaCB1c2VzCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyB0byBlbmNvZGUgdmFyYmluZHMuCiAgIAoyMDAxLTA0LTA5IDA5OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHByb3RvdHlwZSBmb3IgbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwKICAgICAgIHdoaWNoIHBlcmZvcm0gcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlCiAgICAgICBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAogICAgIC0gY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIGFib3ZlLgogICAKMjAwMS0wNC0wOSAwOTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LCB3aGljaCBwZXJmb3JtCiAgICAgICByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUgaXMgbm90IGVub3VnaAogICAgICAgc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCjIwMDEtMDQtMDYgMTI6MTIgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCAsIENPUFlJTkcgLCBDaGFuZ2VMb2cgLAogICBFWEFNUExFLmNvbmYuZGVmICwgRkFRICwgTkVXUyAsIFBPUlRJTkcgLAogICBSRUFETUUgLCBSRUFETUUuYWdlbnR4ICwgUkVBRE1FLnNubXB2MyAsIGNvbmZpZ3VyZQogICAsIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaAogICAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2RzX2FnZW50LmggLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4ICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLCBhcHBzL3NubXBkZWx0YS5jCiAgICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGxvY2FsL01ha2VmaWxlLmluICwgbG9jYWwvbWliMmMgLCBsb2NhbC9zbm1wY29uZgogICAsIGxvY2FsL3RrbWliICwgbG9jYWwvd2VzcmVzdGFydCAsIG1hbi9zbm1wY21kLjEKICAgLCBtYW4vc25tcGQuY29uZi41LmRlZiAsIG1hbi9zbm1wZGVsdGEuMSAsCiAgIG1pYnMvcmZjbGlzdCAsIG1pYnMvcmZjbWlicy5kaWZmICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldDoKCiAgIG1lcmdlMyAtPiBtZXJnZTQuICBJIGRvbid0ICp0aGluayogSSBicm9rZSBhbnl0aGluZy4KICAgICAtIFRoZSBtYWluIGxpbmUgc2hvdWxkIG5vdyBjb250YWluIGFsbCB0aGUgNC4yLjEgcGF0Y2hlcy4KICAgICAtIEkgbWF5IGRvdWJsZSBjaGVjayB0aGlzIGF0IGEgbGF0ZXIgZGF0ZS4KICAgCjIwMDEtMDQtMDUgMDY6MzcgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAsIHBhc3NfcGVyc2lzdC5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICBBbHNvIGFwcGxpZWQgdG8gJ3Bhc3NfcGVyc2lzdCcuCiAgIAoyMDAxLTA0LTA1IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMgLCBrZXJuZWwuYwogICAsIG1pYl9tb2R1bGVzLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmgKICAgLCBzbm1wX3ZhcnMuYyAsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wNSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNSAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIChBIGNsZWFuZXIgYXBwcm9hY2ggdGhhbiB0aGUgcHJldmlvdXMgcGF0Y2gpCiAgIAoyMDAxLTA0LTA1IDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYyAsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDUgMDQ6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gc2F2ZSBhIHN0cmNweSgpIGFuZCBhbGxvdyBsb25nIG9jdGV0IHN0cmluZyB2YWx1ZXMgd2l0aG91dCBjcmFzaGluZwogICAgICAodGhvdWdoIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBkdWUgdG8gdGhlIGxpYmVyYWwgdXNlIG9mIGZpeGVkCiAgICAgIHNpemUgYnVmZmVycyB3aXRoIG5vIGJvdW5kcyBjaGVja2luZyBhbGwgb3ZlciB0aGUgcGxhY2UuICBTaWdoKS4KICAgCjIwMDEtMDQtMDQgMDY6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDMgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAnZXh0bXAnIGNvbW1hbmQgdmFyaWFibGUgaXMgYWNjZXNzaWJsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgRVhFQ1YuCiAgIAoyMDAxLTA0LTAzIDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MjIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAsIHNubXB0cmFwZF9sb2cuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToxNSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jICwgcmVhZF9jb25maWcuYyAsIHNubXBUQ1BEb21haW4uaAogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5oICwgc25tcF9hcGkuYyAsIHNubXBfbG9nZ2luZy5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0LmggLCBzeXN0ZW0uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBQbHVnIGZpbGUtZGVzY3JpcHRvciBsZWFrIHdoZW4gdXNpbmcgY2FjaGVkIGRhdGEuICAoQnVnIzQxMjAwMCkKICAgCjIwMDEtMDQtMDIgMTA6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gY2hlY2sgZm9yIGxpbWl0cy5oIHByb3Blcmx5CiAgIAoyMDAxLTA0LTAyIDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gbWlub3IgdHlwZWZhY2UgY2hhbmdlcwogICAKMjAwMS0wMy0zMSAwNjoyNyAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHRvIHJlZmxlY3QKICAgICAgY3VycmVudCBiZWhhdmlvdXIKICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjI1ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAgLSBkb2N1bWVudCB0aGUgc25tcF9hbGFybV9yZWdpc3Rlcl9ociBmdW5jdGlvbgogICAKICAgIC0gZXhwYW5kIHRoZSBOT1RFUyBzZWN0aW9uIGRpc2N1c3NpbmcgdXNlIG9mIFNJR0FMUk0gKG9yIG5vdCkKICAgCjIwMDEtMDMtMzEgMDY6MTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkgYW5kIGNhbmNlbCBhbGwKICAgICAgY2FsbGJhY2tzIHdoaWNoIG1ha2UgcmVmZXJuY2UgdG8gdGhlIEFnZW50WCBzZXNzaW9uLgogICAKMjAwMS0wMy0zMSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgLSBGaXggbXVsdGlwbGUgZnJlZSgpIG9mIHBhcnRzIG9mIHRoZSBzdWJzZXNzaW9uIGJ5IHplcm9pbmcgb3V0CiAgICAgIGZpZWxkcyB0aGF0IHdlIGRvbid0IHVzZS4KICAgCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBDaGFuZ2VkIHBhY2tldCBoYW5kbGluZyBvbiBzdHJlYW0tbGlrZSB0cmFuc3BvcnRzIHNvIHRoYXQgYWxsCiAgICAgIGNvbXBsZXRlIHJlY2VpdmVkIHBhY2tldHMgYXJlIHByb2Nlc3NlZDoKICAgCiAgICAgIF9zZXNzX3JlYWQgaXMgcmVmYWN0b3JlZCBpbnRvIHR3byBmdW5jdGlvbnM6IF9zZXNzX3JlYWQgcmVtYWlucwogICAgICByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gdGhlIHRyYW5zcG9ydCBsYXllciwgYnV0IHRoZW4KICAgICAgY2FsbHMgKHBlcmhhcHMgbW9yZSB0aGFuIG9uY2UpIF9zZXNzX3Byb2Nlc3NfcGFja2V0IHRvIGRpc3BhdGNoCiAgICAgIGVhY2ggcGFja2V0IHJlYWQuCiAgIAogICAgLSBUaGUgcHJlc2VuY2Ugb2YgYSBzZXNzaW9uIHdpdGggYSBidWZmZXJlZCBwYXJ0aWFsIHBhY2tldCBubyBsb25nZXIKICAgICAgY2F1c2VzIHNubXBfc2VsZWN0X2luZm8gdG8gcmV0dXJuIHdpdGggYSB0aW1lb3V0IG9mIHplcm8uCiAgIAogICAgLSBGcmVlIHRoZSBzdWJzZXNzaW9ucyBvZiBhIHNlc3Npb24gd2hlbiBkb2luZyBhbiBzbm1wX3Nlc3NfY2xvc2U7CiAgICAgIHRoaXMgZml4ZXMgYW4gQWdlbnRYIG1lbW9yeSBsZWFrIHdoZW4gc3ViYWdlbnRzIGNvbWUgYW5kIGdvLgogICAKICAgIC0gUGVyZm9ybSBjYWxsYmFja3Mgd2l0aCBhbiBvcGVyYXRpb24gYXJndW1lbnQgb2YKICAgICAgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHdoZW4geW91IGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24uCiAgIAoyMDAxLTAzLTMxIDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIE1hZGUgdHJhbnNwb3J0IGRvbWFpbiBjb25zdAogICAKMjAwMS0wMy0zMSAwNTo1NSAgamJwbgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBGaXggbWVtb3J5IGxlYWsgdGhhdCBjYW4gb2NjdXIgd2hlbiBkZXJlZ2lzdGVyaW5nIGNhbGxiYWNrcwogICAKMjAwMS0wMy0zMCAwODowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGZpbGUgUkVBRE1FLmFnZW50eCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTI5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBJU1NVRVMgKFY0LTItcGF0Y2hlcy4xKSwgSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDA4OjIxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsLzogbGlic25tcC5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgbGlic25tcC5kZWY6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA2OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjM2ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMgLCBzbm1wX2FwaS5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGNoYW5nZSBmcHJpbnRmIC0+IHNubXBfbG9nLgogICBEb24ndCBhbGxvdyBtb2RpZmljYXRpb25zIG9mIHJlYWQtb25seSByb3dzIGluIG10ZU9iamVjdHNUYWJsZS4KICAgCjIwMDEtMDMtMjcgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCAsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYwogICAsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIFN1cHBvcnQgZm9yIG5ldyBmZWF0dXJlcyBpbiB0aGUgRElTTUFOLUVWRU5ULU1JQiBjb2RlOgogICAgIE5ldyBzbm1wZC5jb25mIHRva2VuczoKICAgICAgLSBtb25pdG9yIFstbyBvaWQuLi5dIFstdSB1c2VyXSBvaWQgWyg9fCE9fDw9fC4uLikgVkFMVUVdLgogICAgICAtIGRlZmF1bHRNb25pdG9ycyB5ZXMKICAgCjIwMDEtMDMtMjcgMTA6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNb3ZlZCAqIGZyb20gYmVnaW5uaW5nIG9mIHJvdXRpbmUgdG8gdGhlIHNhbWUgbGluZSBhcyB0aGUgcmV0dXJuCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uLiAgV2FzIGNhdXNpbmcgZXRhZ3MgZ3JpZWYgdGhlIG90aGVyIHdheS4KICAgCjIwMDEtMDMtMjcgMTA6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluOiB1c2UgJXMgaW5zdGVhZCBvZiBAcyBmb3Igc2VhcmNoL3JlcGxhY2UgZGVsaW1pdGVycy4KICAgCjIwMDEtMDMtMjcgMTA6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICB0cmFwX2ZtdF9mcmVlIG5lZWRzICgpcy4KICAgCjIwMDEtMDMtMjcgMDg6MTMgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEF2b2lkIGRvdWJsZS1mcmVlaW5nIG9mIGNhY2hlZCBhZGRyZXNzIHN0cmluZ3MuCiAgICAgIChKb2huJ3MgaW1wcm92ZW1lbnQgdG8gbXkgc3VnZ2VzdGVkIGZpeCkuCiAgIAoyMDAxLTAzLTI3IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAogICAoVjQtMi1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIHNubXBsaWIvdmFjbS5jICwgc25tcGxpYi92YWNtLmg6CgogICBGaXhlZCB2YWNtIHRvIGRyb3AgdjEvdjJjIHBhY2tldHMgcHJvcGVybHkgd2hlbiBubyBjb20yc2VjIGVudHJpZXMgYXJlIGZvdW5kLgogICAKMjAwMS0wMy0yNiAxMTowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBpcGYtbW9kLnBsIChWNC0yLXBhdGNoZXMuMSksIGlwZi1tb2QucGw6CgogICBhZGQgdXNhZ2UgY29tbWVudCBhdCB0b3AKICAgCjIwMDEtMDMtMjIgMDc6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBBU05fT0NURVRfU1RSIHJhdGhlciB0aGFuIHRoZSBoaXN0b3JpYyBBU05fQklUX1NUUiBmb3IgJ2InIG9iamVjdCB2YWx1ZXMKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMS0wMy0yMiAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMgKFY0LTItcGF0Y2hlcy4zKSwgYWdlbnRfdHJhcC5jOgoKICAgRml4IGZvciBtaW5vciBtZW1vcnkgbGVhayB3aXRoIHRyYXAtcmVsYXRlZCB2YXJiaW5kIHZhbHVlcy4KICAgVGhhbmtzIHRvIEpvaG4gVmlsbGFsb3ZvcyAoYW5kIHRoZSBJbnRlbCBTTk1QIHRlYW0pCiAgIAoyMDAxLTAzLTIxIDE3OjMwICBkcmllaHVpcwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQXZvaWQgY3Jhc2ggaW4gc25tcF9zaHV0ZG93biBvbiBwbGF0Zm9ybXMgdGhhdCBjaGVjayBwb2ludGVyIHZhbGlkaXR5CiAgIGluIGZyZWUoMyksIGUuZy4gRnJlZUJTRC4KICAgCjIwMDEtMDMtMjEgMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwogICAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgY29weV9ud29yZCBjcmVhdGVkIHRoYXQgY2hlY2tzIGJ1ZmZlciBsZW5ndGhzLgogICBNYWRlIGV2ZXJ5dGhpbmcgdXNlIGl0LgogICAKMjAwMS0wMy0yMSAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTIwIDA5OjEzICBqYnBuCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgUHVyaWZ5IGFuZCBORlMgc3R1ZmYKICAgCjIwMDEtMDMtMTYgMTA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYWRkZWQgTUlUX05FV19DUllQVE8gKGZvciBrc20pIGRlZmluaXRpb24gd2hpY2ggd2FzIG1pc3NpbmcKICAgCjIwMDEtMDMtMTYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHJpZGljdWxvdXMgbWVtb3J5IGxlYWsgaW4gZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICB3aG9vcHMuICBNaXNzZWQgYSBtZXJnZSBjb25mbGljdCBsaW5lCiAgIAoyMDAxLTAzLTE1IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBSRUFETUUud2luMzIgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYgLCBtYW4vc25tcGNtZC4xICwgbWFuL3NubXB0cmFwZC44CiAgICwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQgLCBtaWJzL01UQS1NSUIudHh0ICwKICAgbWlicy9NYWtlZmlsZS5taWIgLCBtaWJzL1JFQURNRS5taWJzICwKICAgbWlicy9UVU5ORUwtTUlCLnR4dCAsIG1pYnMvaWFuYWxpc3QgLCBtaWJzL21pYmZldGNoCiAgICwgbWlicy9yZmNsaXN0ICwgbWlicy9yZmNtaWJzLmRpZmYgLCBtaWJzL3NtaXN0cmlwCiAgICwgcGVybC9TTk1QL1NOTVAueHMgLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvbWliLmggLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwogICAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi9zeXN0ZW0uaCAsIHRlc3RpbmcvZXZhbF90b29scy5zaCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAogICAsIHdpbjMyL2NvbmZpZy5oICwgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCAsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCAsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4gLCBSVU5URVNUUyAsIFRFU1RDT05GLnNoCiAgICwgZXZhbF9vbmVzY3JpcHQuc2ggLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICwgYXBwcy9zbm1wdmFjbS5jICwgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwgdG8gcXVpZXQgc29tZSB3YXJuaW5ncy4KICAgCjIwMDEtMDMtMTQgMTA6MTkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmM6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCiAgIAoyMDAxLTAzLTE0IDA1OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0wMy0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBBZGQgYSBmdW5jdGlvbiB0byB0ZXN0IHdoZXRoZXIgYW4gT0lEIGNvcnJlc3BvbmRzIHRvIGEgc3VwcG9ydGVkIHRyYW5zcG9ydAogICBkb21haW4uCiAgIAoyMDAxLTAzLTExIDA3OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5oOgoKICAgQWRkICNpbmNsdWRlcyB0byBtYWtlIHN0cnVjdCBzb2NrYWRkcl9pbiBjb21wbGV0ZQogICAKMjAwMS0wMy0xMSAwNzo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmg6CgogICBSZW1vdmUgc3B1cmlvdXMgI2luY2x1ZGUKICAgCjIwMDEtMDMtMDkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IHJ3dXNlciAtcyBtb2RlbCB0byBhY3R1YWxseSB3b3JrLgogICAKMjAwMS0wMy0wOSAwNTo1MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFNldCBhIFBEVSdzIG9wYXF1ZSBkYXRhIG9uIGEgdGNwX3JlY3Y7IHRoaXMgaXNuJ3QgbmVjZXNzYXJ5IHRvIHNlbmQKICAgcmVwbGllcyAoYmVjYXVzZSB0aGUgdW5kZXJseWluZyBzb2NrZXQgaXMgc3Ryb25nbHkgY29ubmVjdGVkKSBidXQgaWYKICAgeW91IGRvbid0IGRvIHRoaXMgdGhlbiB5b3UgY2FuJ3QgZG8gImNvbTJzZWMiIHR5cGUgcHJvY2Vzc2luZyBmb3IgUERVcwogICByZWNlaXZlZCBvbiBUQ1Agc2Vzc2lvbnMuLi4gaW50ZXJlc3RpbmcuCiAgIAoyMDAxLTAzLTA5IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGJhZCBhc3N1bXB0aW9uIHRoYXQgY29tbXVuaXR5IHN0cmluZyBpcyB6ZXJvLXRlcm1pbmF0ZWQKICAgCjIwMDEtMDMtMDggMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNvcnJlY3QgdmVyc2lvbiBzdGF0ZW1lbnRzIHRvIGluZGljYXRlIG5ldC1zbm1wLgogICAtIHJlbW92ZSBteSBuYW1lIGFzIGF1dGhvciAoSSdtIGNlcnRhaW5seSBub3QgdGhlIG9ubHkgb25lKQogICAtIGFkZCB3ZWIgYWRkcmVzcy4KICAgCjIwMDEtMDMtMDggMTU6MzEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gQWRkZWQgS2VuIEhvcm5zdGVpbidzIG5hbWUgdG8gY29udHJpYnV0ZXJzIGxpc3QuCiAgIC0gUmVtb3ZlZCBtaW5lIGZyb20gYmVpbmcgbGlzdGVkIHNlcGFyYXRlbHkuCiAgIAoyMDAxLTAzLTA4IDE0OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBBZGRlZCBhIGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZHVsZSAoa3NtKS4KICAgICBIb3dldmVyLCBOZWVkcyBsaWJyYXJpZXMgKC1sa3JiNSAtbGNvbV9lcnIpIG5vdCBiZWluZyBjaGVja2VkIGZvciBjdXJyZW50bHkuCiAgIAoyMDAxLTAzLTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBXaG9vcHMuICBTaG91bGRudCBoYXZlIGEgbmVnYXRpb24gc2lnbiBvbiB0aGUgbW9zdCByZWNlbnQgY2hlY2tpbi4KICAgCjIwMDEtMDMtMDggMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIElmIE5PX1BST0JFIGlzIHNldCwgZG9uJ3QgZG8gYW55IHBvc3QgcHJvYmluZyBhY3Rpdml0aWVzIGVpdGhlciBsaWtlCiAgIHRpbWUgdXBkYXRpbmcgYW5kIHVzZXIgY3JlYXRpb24uCiAgIAoyMDAxLTAzLTA4IDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIFJlbW92ZSBzdHJkdXAoKXMgb24gc29tZSBzZXNzaW9uIHBhcmFtZXRlcnMgd2hpY2ggY2F1c2UgbWVtb3J5IGxlYWtzCiAgIChzaW5jZSBzbm1wX29wZW4gZGVlcCBjb3BpZXMgdGhlIGlucHV0IHNlc3Npb24gYW55d2F5KQogICAKMjAwMS0wMy0wOCAwODoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgTWFrZSBzdXJlIHNlc3MgZmllbGQgb2YgbmV3IGVudHJpZXMgaXMgaW5pdGlhbGlzZWQgdG8gTlVMTC4KICAgCjIwMDEtMDMtMDggMDc6NDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgTWFrZSBjb25maWcgdG9rZW4gcGFyc2VyIHVwZGF0ZSB0aW1lc3RhbXAgb24gZW50cnkgaXQgY3JlYXRlczsKICAgbW92ZSB1cGRhdGVfdGltZXN0YW1wIGZ1bmN0aW9uLgogICAKMjAwMS0wMy0wNyAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgU05NUC5wbSAsIFNOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byByZW1vdmUgdW5uZWVkZWQgdGltZXN0YW1wIHN1cHBvcnQKICAgCjIwMDEtMDMtMDYgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9jbGllbnQuYyAsIHNubXBfc2VjbW9kLmMKICAgLCBzbm1wX3NlY21vZC5oICwgc25tcHVzbS5jOgoKICAgc2VjbW9kIHN0cnVjdCBzeW1ib2wgbmFtZSBjaGFuZ2VzIHRvIHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZS4KICAgCjIwMDEtMDMtMDYgMTY6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9jbGllbnQuYzoKCiAgIC0gc2V0IHRoZSBkZWZhdWx0IHBkdSBzZWN1cml0eSBtb2RlbCB0byBTTk1QX0RFRkFVTFRfU0VDTU9ERUwgKG5vdCAwKS4KICAgLSBkb24ndCBmb3JjZSB0aGUgc2VjdXJpdHkgbW9kZWwgb2YgdGhlIHNlc3Npb24gb24gdGhlIHBkdSBpZiBhbHJlYWR5IHNldC4KICAgCjIwMDEtMDMtMDYgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgaG9wZWZ1bGx5IGZpeCB0byBhbGxvdyBvdGhlciAocmVnaXN0ZXJlZCkgc2VjdXJpdHkgbW9kZWxzIHRvIGJlIHVzZWQuCiAgIAoyMDAxLTAzLTA2IDA5OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoyMDAxLTAzLTA2IDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHByb3Blcmx5IGluc3RhbGwgc2VjbW9kIGhlYWRlciBsaXN0LgogICAKMjAwMS0wMy0wNiAwODo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgLSBidWcgZml4ZXMgZm9yIHNlY21vZCByZWxhdGVkIHN0dWZmIChpdCBjb21waWxlcyBub3cgKG9wcHMpKS4KICAgCjIwMDEtMDMtMDYgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIFBhc3MgaW4gcGR1IHRvIHNlY21vZCBlbmNvZGUvZGVjb2RlIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNiAwMzozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb2RpZmllZCBmdW5jdGlvbiBJbnRlcmZhY2VfSW5kZXhfQnlfTmFtZSAoU29sYXJpcyBzcGVjaWZpYykgdG8gY29wZSBtb3JlCiAgIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzIG9mIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzCiAgIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQgbWVtb3J5IHJlYWRzLgogICAKMjAwMS0wMy0wNSAxNjozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV2ZXJzZSBjYWxsYmFjayBvcmRlcmluZyBvZiBub3JtYWwgY2FsbGJhY2svc2VjbW9kIGNhbGxiYWNrCiAgIHByb2Nlc3NpbmcgaW4gc2Vzc19jb3B5KCkuCiAgIAoyMDAxLTAzLTA1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICByZW1vdmUgdW51c2VkIGZyZWUgZnVuY3Rpb24gY2FsbHMgZm9yIHNlY3VyaXR5IG1vZHVsZSB1bnJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAzLTA1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBtaW5vciBBUEkgY2hhbmdlcyB0byB0aGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVsIGhhbmRsaW5nLgogICAKMjAwMS0wMy0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvcGVybHkgcmVzcGVjdCB0aGUgRE9OVF9QUk9CRV9GTEFHLgogICAKMjAwMS0wMy0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oICwgc25tcF9zZWNtb2QuaDoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICBBZGQgYSBrcmI1IHNwZWNpZmljIGVycm9yIGNvZGUuCiAgIAoyMDAxLTAzLTA1IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBwcm9wZXJseSBoYW5kbGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZHVsZXMKICAgCjIwMDEtMDMtMDUgMTQ6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcmVzcGVjdCBub24tbG9jYWwgc3JjZGlycyBmb3IgdHJhbnNwb3J0L3NlY21vZHMKICAgCjIwMDEtMDMtMDUgMTA6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwgYXBwcy9zbm1wdHJhcGQuYwogICAsIHNubXBsaWIvLmN2c2lnbm9yZSAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hcGkuaCAsCiAgIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdXNtLmggLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgc3VwcG9ydCBmb3IgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVscy4gIEN1cnJlbnRseSBvbmx5IHRoZSBVU00gaXMKICAgYXZhaWxhYmxlLCBidXQgYSBuZXcga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kZWwgd2lsbCBiZSBhdmFpbGFibGUKICAgc2hvcnRseS4gIFRoZXNlIGNoYW5nZXMgc2ltcGx5IG1ha2UgaXQgcG9zc2libGUgdG8gdXNlIG1vcmUgdGhhbiBvbmUKICAgc2VjdXJpdHkgc2VydmljZS4KICAgCjIwMDEtMDMtMDUgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX3NlY21vZC5jICwgc25tcF9zZWNtb2QuaDoKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBhdXRob3JzIGxpc3QuCiAgIAoyMDAxLTAzLTA1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5oOgoKICAgQ29tbWVudCByZS1hcnJhbmdpbmcgdG8gYWN0dWFsbHkgYmUgbmVhciB0aGUgZnVuY3Rpb25zIHRoZXkncmUgZGVzY3JpYmluZy4KICAgCjIwMDEtMDMtMDUgMDY6MTAgIGpicG4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIGdldF9teWFkZHIoKSBmdW5jdGlvbiB0byBjb3BlIG1vcmUgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMKICAgb2YgaW50ZXJmYWNlcywgYW5kIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIG5vbi1JUHY0IGFkZHJlc3NlcyBvbiBzb21lCiAgIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQKICAgbWVtb3J5IHJlYWRzLiAgVXNlICJvZmZpY2lhbCIgZGVmaW5pdGlvbiBvZiBJTkFERFJfTE9PUEJBQ0suCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIGZpbGUgaWFuYWxpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIGZpbGUgcmZjbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9SRUFETUUubWliczoKCiAgIGZpbGUgUkVBRE1FLm1pYnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgZmlsZSByZmNtaWJzLmRpZmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMSAxOToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgLCByZWFkX2NvbmZpZy5oICwKICAgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnKGNoYXIgKmxpbmUpIHRvIHBhcnNlIGEgLmNvbmYgY29uZmlndXJhdGlvbgogICAgIGxpbmUgYXQgYW55IHRpbWUgaW4gdGhlIGNvZGUgKGhhbmRsZXJzIG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaGFuZCkuCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWdfcmVtZW1iZXIoY2hhciAqbGluZSkgdG8gbWVtb3JpemUgaXQgZm9yCiAgICAgbGF0ZXIgdXNlLgogICAtIHJlYWRfY29uZmlncywgZXQgYWwsIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIHRoZW0gYWZ0ZXIgcmVhZGluZwogICAgIGV2ZXJ5dGhpbmcgZWxzZS4KICAgLSBBZGRlZCBhIC1ZIGZsYWcgdG8gc25tcF9wYXJzZV9hcmdzIHRvIHN0b3JlIHJlYWQgY29uZmlnIGRpcmVjdGl2ZXMKICAgICBmb3IgbGF0ZXIgdXNlLCB0aHVzIGFsbG93aW5nIHlvdSB0byBzcGVjaWZ5IC5jb25mIGRpcmVjdGl2ZXMgb24gdGhlCiAgICAgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wMi0yNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCBpbmZpbml0ZSBsb29wIHdpdGggQWdlbnRYIHN1YmFnZW50cyBhbmQgVkFDTSBjaGVja2luZyBpbnRlcmFjdGlvbi4KICAgKEZpeCBwcm92aWRlZCBieSBGcmFuayBTdHJhdXNzKQogICAKMjAwMS0wMi0yMSAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHVjZC1zbm1wLWluY2x1ZGVzLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jIChWNC0yLXBhdGNoZXMuMiksIGludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZhcl9zdHJ1Y3QuaCAoVjQtMi1wYXRjaGVzLjEpLCB2YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE2IDA0OjE2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIENoYW5nZSBiZWhhdmlvdXIgb24gY3lnd2luIHRvIGV4Y2x1ZGUgVW5peCBkb21haW4gdHJhbnNwb3J0cyBieSBkZWZhdWx0CiAgIG9uIGN5Z3dpbiwgYW5kIGFsc28gZml4IGEgbWlub3IgYnVnLCB0aGFua3MgdG8gc3VnZ2VzdGlvbnMgYnkgUGV0ZXIgRm9say4KICAgCjIwMDEtMDItMTQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEyIDE0OjExICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkZWQgS2FybCdzIHBhdGNoIGZvciB1c2VudW1lcmljCiAgIAoyMDAxLTAyLTEyIDEzOjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNUICwgU05NUC5wbSAsIFNOTVAueHMgLAogICBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBhZGRlZCB0cmFwIHJlY2VwdGlvbiBBUEkgZnJvbSBQaGlsaXAgUHJpbmRldmlsbGUgPHBoaWxpcHBAY2lzY28uY29tPgogICAKMjAwMS0wMi0xMSAwODoyMyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfYWRkIG5vdCBzbm1wX3Nlc3NfYWRkICh0aGUgbGF0dGVyIGRvZXNuJ3QgYWRkIGEgc2Vzc2lvbiB0bwogICB0aGUgU2Vzc2lvbiBsaXN0LCBhbmQgaXQgdGhlcmVmb3JlIHdvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0KCkKICAgZmRzZXQsIGhlbmNlIHNubXB0cmFwZCB3aWxsIG5ldmVyIHJlY2VpdmUgdmVyeSBtdWNoKS4KICAgCjIwMDEtMDItMTEgMDg6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggaW1wcm9wZXJseS10ZXJtaW5hdGVkIGxpc3QgaW4gY29tMnNlYyBoYW5kbGluZy4KICAgCjIwMDEtMDItMTEgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENsZWFuIHVwIG1lcmdlICg+Pj4+Pj4sID09PT09PSBldGMuIGxlZnQgYmVoaW5kKS4KICAgCjIwMDEtMDItMTAgMDk6MjYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8uCiAgIAoyMDAxLTAyLTEwIDA5OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX2FkbWluLmMgLAogICBzdWJhZ2VudC5jOgoKICAgTWVtb3J5IGxlYWsgcGF0Y2hlcyAoc291cmNlZm9yZ2UgcGF0Y2ggIzEwMzYwNSkuCiAgIFJlbW92ZSBhIGZldyBzdHJkdXAoKXMsIGFuZCBjYWxsIGZyZWVfYWdlbnRfc25tcF9zZXNzaW9uKCkgcmF0aGVyIHRoYW4KICAgZnJlZSgpIGluIHN1YmFnZW50LmM6aGFuZGxlX2FnZW50eF9wYWNrZXQoKSBmb3IgQUdFTlRYX01TR19SRVNQT05TRQogICBhbmQgZGVmYXVsdCBjYXNlcywgdG8gZW5zdXJlIGZyZWUoKWluZyBvZiBjbG9uZWQgUERVIGFsbG9jYXRlZCBieQogICBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgCjIwMDEtMDItMTAgMDc6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBJUFhEb21haW4uaCAsIHNubXBUQ1BEb21haW4uYwogICAsIHNubXBUQ1BEb21haW4uaCAsIHNubXBVRFBEb21haW4uYyAsCiAgIHNubXBVRFBEb21haW4uaCAsIHNubXBVbml4RG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5oCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBXaG9vcHMuICBGb3Jnb3QgdGhlIG5ldyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBsdWdnYWJsZSB0cmFuc3BvcnQgc3R1ZmYuCiAgIAoyMDAxLTAyLTA5IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCAsIG10ZU9iamVjdHNUYWJsZS5jCiAgICwgbXRlT2JqZWN0c1RhYmxlLmggLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsIG10ZVRyaWdnZXJUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmggLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIEltcGxlbWVudGVkIGFuZCBtYWRlIHVzZSBvZiBtdGVPYmplY3RzVGFibGUgdG8gc2VuZCBhZGRpdGlvbmFsIG9iamVjdHMgb3V0IHdpdGggdHJhcHMgZ2VuZXJhdGVkLiAgQWxzbywgZG9uJ3QgcmV0dXJuIGRhdGEgZm9yIG1pc2MgdGFibGVzIHdoZW4gdGhhdCB0cmlnZ2VyIGlzbid0IGRlZmluZWQgdG8gdXNlIHRoYXQgdGVzdCB0eXBlLgogICAKMjAwMS0wMi0wOSAxMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYyAoVjQtMi1wYXRjaGVzLjIpLCBtaWJfbW9kdWxlcy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEyOiBmaXggbWVtb3J5IGxlYWsgaW4gbWliX21vZHVsZSBpbml0IGNvZGUKICAgCjIwMDEtMDItMDkgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjEpLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYwogICAsIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwLmMKICAgLCBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0ICwgVDAwMnNubXB2MWdldG5leHQgLAogICBUMDAzc25tcHYxZ2V0ZmFpbCAsIFQwMTRzbm1wdjJjZ2V0ICwgVDAxNXNubXB2MmNnZXRuZXh0CiAgICwgVDAxNnNubXB2MmNnZXRmYWlsICwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwgLCBUMDIwc25tcHYzZ2V0ICwKICAgVDAyMXNubXB2M2dldG5leHQgLCBUMDIyc25tcHYzZ2V0TUQ1ICwKICAgVDAyM3NubXB2M2dldE1ENURFUyAsIFQwMjRzbm1wdjNnZXRTSEExICwKICAgVDAyNXNubXB2M2dldFNIQURFUyAsIFQwMjhzbm1wdjNnZXRmYWlsICwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsIFQwNTNhZ2VudHYxdHJhcCAsCiAgIFQwNTRhZ2VudHYyY3RyYXAgLCBUMDU1YWdlbnR2MW1pbnRyYXAgLAogICBUMDU2YWdlbnR2MmNtaW50cmFwICwgVDA1OGFnZW50YXV0aHRyYXAgLCBUMTAwYWdlbnRodXAKICAgLCBUMTEwYWdlbnR4Z2V0ICwgVDExMWFnZW50eHNldCAsIFQxMTJhZ2VudHhzZXRmYWlsCiAgICwgVDExM2FnZW50eHRyYXAgLCBUMTIwcHJveHlnZXQgLCBUMTIxcHJveHlzZXQKICAgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluICwgbG9jYWwvdHJhcHRvZW1haWwgLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICB0cmFwdG9lbWFpbCBwZXJsIHNjcmlwdCBjcmVhdGVkIGFzIGFuIGV4YW1wbGUgdHJhcGhhbmRsZSBzY3JpcHQKICAgCjIwMDEtMDItMDggMTQ6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwKICAgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF90cmFwLmMgLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCAsIGFwcHMvc25tcGRlbHRhLmMKICAgLCBhcHBzL3NubXBzZXQuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHZhY20uYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLAogICBsb2NhbC9taWIyYyAsIG1hbi9zbm1wY21kLjEgLCBtaWJzL1JNT04tTUlCLnR4dCAsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsIHBlcmwvU05NUC9TTk1QLnBtICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWVyZ2UgZnJvbSBWNC0yLXBhdGNoZXM6IG1lcmdlIDEtPjIKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jIChWNC0yLXBhdGNoZXMuMSksIGRpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgdXNlIHNubXBfZW51bSdzIHByb3Blcmx5IChzdHJkdXAoKSB0aGUgc3RyaW5ncyBmaXJzdCkKICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYyAsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmggLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmggLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwgbXRlVHJpZ2dlckRlbHRhVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmggLAogICBtdGVUcmlnZ2VyVGFibGUuYyAsIG10ZVRyaWdnZXJUYWJsZS5oICwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIEluaXRpYWwgKG5vdC1jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERJU01BTi1FVkVOVC1NSUI6CiAgICAgLSBJbXBsZW1lbnRzIGFsbCAzIHRlc3RzIChib29sZWFuLCB0aHJlc2hvbGQgYW5kIGV4aXN0ZW5jZSkuCiAgICAgLSBub3Qgcmlnb3JvdXNseSB0ZXN0ZWQuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBxdWVyeWluZyB0aGUgbG9jYWwgYWdlbnQKICAgICAgIChtdGVUcmlnZ2VyVGFyZ2V0VGFnIG11c3QgYmUgJycpLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgc2VuZGluZyB0cmFwcyBhbmQgdGhlIG10ZU9iamVjdHNUYWJsZSBpcwogICAgICAgbm90IGltcGxlbWVudGVkIChteSBuZXh0IHRvZG8gaXRlbSkKICAgICAtIE9ubHkgdGhlIGRlZmF1bHQgdHJhcHMgYXJlIHNlbnQuICBUaGUgbXRlRXZlbnQqIG9iamVjdHMgaGF2ZW4ndAogICAgICAgYmVlbiBpbXBsZW1lbnRlZCAobm8gc2VsZi1kZWZpbmVkIHRyYXBzL3NldHMpLgogICAgIC0gbm8gZWFzeSB0byB1c2UgY29uZmlndXJhdGlvbiB5ZXQgKHNvb24pLgogICAgIC0gY29uZmlndXJlIHdpdGggLS13aXRoLW1pYi1tb2R1bGVzPWRpc21hbi9ldmVudC1taWIKICAgCjIwMDEtMDEtMzAgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBzcHJpbnRmIGZvciBzdHJpbmdzIHRoYXQgbWF5IG5vdCBiZSBudWxsIHRlcm1pbmF0ZWQuCiAgIAoyMDAxLTAxLTMwIDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIEltcGxlbWVudGVkIGdldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKSBhbmQgc2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpOgogICAgIC0gVGhlc2UgYWxsb3cgYSBtaWIgbW9kdWxlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50CiAgICAgICBhZ2VudF9zbm1wX3Nlc3Npb24gcG9pbnRlciBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCiAgICAgLSBUaGlzIHNob3VsZCBwcm9iYWJseSBkb25lIGRpZmZlcmVudGx5IGxhdGVyIHdoZW4gd2UgY2hhbmdlIHRoZSBtaWIKICAgICAgIG1vZHVsZSBhcGkuCiAgICAgLSBUaGlzIHdpbGwgY29tcGxldGVseSBmYWlsIHRvIHdvcmsgcHJvcGVybHkgaW4gYSBtdWx0aS10aHJlYWRlZAogICAgICAgYWdlbnQgKHdoaWNoIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueXdheSkuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBkZWJ1Z2dpbmcgc3RhdGVtZW50IGF0IGluaXRpYWxpemF0aW9uIHRpbWUuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBwcm9wZXJseSBtYWxsb2MgYSAxIGJ5dGUsIE5VTEwgY2hhcmFjdGVyIHN0cmluZyBmb3IgIiIgcmVhZCBzdHJpbmdzLgogICAKMjAwMS0wMS0yOSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jICwgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiAsCiAgIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIG5ldyBkYXRhIHR5cGVzICh1aW50MzIsIHVuc2lnbmVkLCBiaXRzKS4KICAgCjIwMDEtMDEtMDkgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICBkc19hZ2VudC5oICwgdmFyX3N0cnVjdC5oICwgbWliZ3JvdXAvbWliaW5jbC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgU3ViQWdlbnQgcGluZyBzdXBwb3J0OgogICAgIC0gYWdlbnR4UGluZ0ludGVydmFsIHNwZWNpZmllcyBTRUNPTkRTIGJldHdlZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgICAgIHRyaWVzIHRvIHBpbmcgdGhlIG1hc3RlciBhZ2VudC4KICAgICAtIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCBpdCB0cmllcyB0byByZWNvbm5lY3QuCiAgICAgLSBmYWlsaW5nIHRoYXQgaXQgdHJpZXMgZXZlcnkgU0VDT05EUyBhZ2FpbiB0aWxsIGl0IHN1Y2NlZWRzLgogICAgIC0gcmUtcmVnaXN0ZXJzIGl0cyBvaWQncyBiYXNlZCBvbiB0aGUgY3VycmVudCBzdWJ0cmVlIGxpc3QuCiAgICAgICAtIG1heSBuZWVkIHNvbWUgdGhvdWdodC4gIEFzc3VtZXMgKmFsbCogbmVlZCB0byBiZSByZS1yZWdpc3RlcmVkLgogICAgICAgLSBuZWVkcyB0byByZS1yZWdpc3RlciBzeXNvcnRhYmxlIGVudHJpZXMgdG9vLCBidXQgZG9lc24ndC4KICAgICAtIGN1cnJlbnRseSBzZWctZmF1bHRzIG9uIGFib3V0IHRoZSAyLTR0aCB0aW1lIG9yIHNvLiAgTm90IHN1cmUgd2h5LgogICAgIC0gU2hvdWxkIG1ha2UgRGF2ZSBzbWlsZSBvciBjcmluZ2Ugb3IgZ2lnZ2xlLCBub3Qgc3VyZSB3aGljaC4KICAgCjIwMDEtMDEtMDkgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jICwgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMgLCBzbm1wX2VudW0uaDoKCiAgIC0gZ2VuZXJpYyBzbm1wIGVudW0gbGlzdCBzdXBwb3J0LiAgTm90IHVzZWQgYW55d2hlcmUgKHlldCkuCiAgIAoyMDAxLTAxLTA0IDE2OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAogICAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2FnZW50X3RyYXAuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcAogICAsIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiAsIG1hbi9zbm1wY21kLjEgLCBzbm1wbGliL21pYi5jOgoKICAgLSBhZGRlZCBuZXcgcHJpbnRIZXhUZXh0IHNubXAuY29uZiB0b2tlbi4KICAgLSBkb2N1bWVudGVkIC1PVCwgYW5kIHRoZSB0b2tlbi4KICAgCjIwMDEtMDEtMDQgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmggLCBtaWIuYzoKCiAgIFBhdGNoICMxMDMwOTEgYXBwbGllZDoKICAgICAtIEFkZGVkIC1PVCBvcHRpb24gdG8gdmlldyBoZXggc3RyaW5ncyB3aXRoIHRleHQgaW4gdGhlbS4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjIgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTE5IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBpbml0X3NubXB2MygpIGRlYWwgd2l0aCBhIE5VTEwgYXJndW1lbnQgcHJvcGVybHkuCiAgIAoyMDAwLTEyLTE4IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IHJlbW92ZSBwYXNzdGVzdCBmcm9tIHRoZSAuY3ZzaWdub3JlIGZpbGUgKGJ1ZyAjMTI2OTQpCiAgIAoyMDAwLTEyLTE4IDEwOjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgc25tcGxpYi92YWNtLmM6CgogICAtIHZhY21fdmFycy5jLCB2YWNtLmM6IGluZGV4aW5nIG9mIHZhY21WaWV3VHJlZUZhbWlseUVudHJ5IHdhcyBob3NlZCwgYXNzdW1pbmcKICAgCXRoYXQgdGhlIFN1YnRyZWUgaW5kZXggaGFkIGFuIElNUExJRUQgYXR0cmlidXRlLgogICAKMjAwMC0xMi0wOCAxNDo0NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgLCBocl9wYXJ0aXRpb24uYzoKCiAgIC0gaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzogZml4IHNvbWUgemVybyBpbmRleCB2YWx1ZXMuCiAgIAoyMDAwLTEyLTA4IDE0OjQzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBmaXggcmV0dXJucyBvZiB6ZXJvRG90WmVybyAoc3VjaCBhcyBpZlNwZWNpZmljKQogICAKMjAwMC0xMi0wOCAxNDozOCAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcGQuYzogc2VjdXJpdHkgbW9kZWwgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUgaXMgc25tcCB2ZXJzaW9uIHZhbHVlcwogICAKMjAwMC0xMi0wNiAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBMaW51eCBrZXJuZWwgMi4wLnggaGFzIG5vIEFSUEhSRF9ISVBQSQogICAKMjAwMC0xMi0wNSAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCByc25tcCdzIC91c3IvbG9jYWwgaGFyZGNvZGVkIHBhdGguCiAgIAoyMDAwLTEyLTA0IDE3OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiBmaXgKICAgCjIwMDAtMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjMgLT4gVjQuMi40CgkKMjAwMi0wNC0wNCAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBwYXRjaCBmcm9tIFBldHRlciBMYXJzZW4gdG8gYWRkIGEgZnVuY3Rpb24gZm9yIGV4dHJhY3RpbmcgdGhlIGZkIGFzc29jaWF0ZWQgd2l0aCBhIHNlc3Npb24KICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwODozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTMgKQogICAKMjAwMi0wNC0wMiAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIEFwcGx5IHBhdGNoICM1MTU1NzcgdG8gZml4IG9uZSBjYXNlIG9mIGEgcmVnaXN0cnkgcHJvYmxlbS4KICAgCjIwMDItMDQtMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgcy9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBMZXQgaW5pdF9zbm1wIHByb3RlY3QgaXRzZWxmLgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBhcHBseSBmcmVlYnNkNSBwYXRjaCAjNTE3MzMzCiAgIAoyMDAyLTAzLTI4IDIzOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBidWcgIzUyNTg0NC4gIHBlcmwgU05NUCB3YXMgdXNpbmcgYSB0cmFwIGFkZHJlc3Mgb2YgMC4wLjAuMC4KICAgCjIwMDItMDMtMjggMjM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI3IDAxOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo0NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICctbGhscGFwaScgdG8gdGhlIGFnZW50IGxpYnJhcmllcyB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgRExMSUJTIGlzIG5vdCBhcyBzdWl0YWJsZSBhcyBBR0VOVF9MSUJTIGZvciB0aGlzCiAgIChzZWUgdGhlIGVxdWl2YWxlbnQgcGF0Y2ggb24gdGhlIG1haW4gYnJhbmNoKSwgYnV0IGl0IHNob3VsZCBkby4KICAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE4OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBmaXggYnVnIzUwMjEyMyBhZ2VudHggaW5maW5pdGUgbG9vcC4KICAgCjIwMDItMDMtMjQgMDU6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBSZXN0cmljdCBoclNXUnVuUGFyYW1zIHJldHVybnMgdmFsdWVzIHRvIDEyOCBvY3RldHMKICAgCjIwMDItMDMtMjQgMDU6MDQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMSAwNzoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnICM1MzI2OTYgZml4aW5nIHJwbSBmb3IgbmV3ZXIgcnBtIHZlcnNpb25zCiAgIAoyMDAyLTAzLTIwIDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTE5IDAyOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgICAtIHBhdGNoIGZyb20gSm9zaHVhIEdpbGVzIHRvIGluY3JlYXNlIHRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGgKICAgICAgICgjNTI3NjUwKS4KICAgCjIwMDItMDMtMTggMTQ6MzggIG5iYQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCBtaXNzaW5nIGV4cG9ydHMgZm9yIFZDKysgYnVpbGQKICAgCjIwMDItMDMtMTggMTM6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBQcm9wZXIgdGVzdCBmb3Igc3VjY2Vzc2Z1bCBvcGVuIG9mIEVUQ19NTlRUQUIKICAgCjIwMDItMDMtMTggMTM6MDkgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGludGVyY2hhbmdlZCBwYXJhbWV0ZXJzIGZvciBzdHJuY3B5CiAgIAoyMDAyLTAzLTE4IDA4OjUxICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBBcHBseSBET1MtdHlwZSBsaW5lIGVuZGluZ3MgdG8gdGhlIERTVy9EU1AgZmlsZXMuCiAgIAoyMDAyLTAzLTE4IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFVzZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIGZvciBvdXRwdXQgYnVmZmVyIGFuZCBzaXplIGNhbGN1bGF0aW9uLgogICAKMjAwMi0wMy0xOCAwNTozOSAgamJwbgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBzL2hwdXguaDoKCiAgICAgLSBjb21taXQgSm9oYW5uZXMncyB1cGRhdGUgdG8gdGhlIEhQVVgtMTEgcGF0Y2gKICAgCjIwMDItMDMtMTggMDI6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGV4dGVuZCB0Y3Bfd3JhcHBlcnMgc3VwcG9ydCB0byBBZ2VudFguICBUaGlzIG1ha2VzIGl0IG1vcmUKICAgICAgIHJlYXNvbmFibGUgdG8gaW1wbGVtZW50IGEgZGlzdHJpYnV0ZWQgc3ViYWdlbnQgYXJjaGl0ZWN0dXJlCiAgICAgICB3aXRob3V0IG1hc3NpdmUgc2VjdXJpdHkgd29ycmllcy4KICAgCjIwMDItMDMtMTQgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkb250X3Byb2JlIGJ1ZyBwb2ludGVkIG91dCBieSBTdGVmYW4gQWVzY2hiYWNoZXIuCiAgIAoyMDAyLTAzLTEzIDE4OjU4ICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ2xhcmlmeSB1bnNpZ25lZCBjaGFyIGFyZ3VtZW50IGZvciB0aGUgbm9pc3kgb3IgY29uZnVzZWQgY29tcGlsZXIuCiAgIAoyMDAyLTAzLTEzIDE4OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHF1ZWxsIHNldmVyYWwgd2FybmluZ3MgYWJvdXQgc2lnbmVkIHZzIHVuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMi0wMy0xMyAxODo0NCAgc2xpZgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIHRvIHJlc3RvcmUgYnVpbGRpbmcgZWl0aGVyIERlYnVnIG9yIFJlbGVhc2UgdGFyZ2V0cy4KICAgCjIwMDItMDMtMTMgMTg6NDMgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICB0cmFjayBjaGFuZ2Ugc2V0ZW52IC0tPiBzbm1wX3NldGVudgogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIG1hbGxvYyBhdCBsZWFzdCBvbmUgYnl0ZSBpbiBoZXhfdG9fYmluYXJ5MgogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBQYXRjaCBmcm9tIGRhbmllbCBTdWxseSB0byBpbXByb3ZlIHNvbGFyaXMgc3dhcCBpbmZvCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmMsCiAgIHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgYmV0dGVyIHByaW50aW5nIGFwaXMKICAgCjIwMDItMDMtMTEgMTA6MDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCBhcGkgaW4gYSBjb21tZW50IChob3cgcGlja3kgYW0gST8pCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBCcmluZyB0aGUgNHgtIGFuZCBtYWluLWJyYW5jaCBGQVFzIGludG8gYWdyZWVtZW50LgogICAKMjAwMi0wMy0xMSAwNToxNiAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IGJhZCB0eXBlIGFzc2lnbm1lbnQgaW4gYnVpbGRfdHJhbnNsYXRpb25fdGFibGUoKSwgbm90aWNlZCBieQogICAgICAgUGV0ZXIgU3RldmVucy4KICAgCjIwMDItMDMtMTAgMTQ6MDcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgT29wcyAtIGZvcmdvdCB0byByZW1vdmUgdGhlICNpZmRlZiBmb3IgdW5zYWZlIHNwcmludF8qIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6NTQgIG5iYQoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBGaXggdXAgb3V0LW9mLW9yZGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDItMDMtMTAgMTM6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgRG9uJ3QgZGllIG9uIHYyIGV4Y2VwdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6NDEgIG5iYQoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2RlYnVnLmM6CgogICBSZW1vdmUgc29tZSBjYWxscyB0byBvbGQgc3ByaW50XyogZnVuY3Rpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIEFkZCBzbnByaW50XyogcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBhbGwgc3ByaW50XyogZnVuY3Rpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIERvY3VtZW50IHNucHJpbnRfe29iamlkLHZhcmlhYmxlLHZhbHVlfQogICAKMjAwMi0wMy0xMCAwODozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIGluY2x1ZGUgdGhlIHNucHJpbnRmIGNvdW50ZXJwYXJ0cyBmcm9tIHRoZSA1LjAgY29kZS4KICAgCjIwMDItMDMtMDggMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVkZWZpbmUgYSB2YXJpYWJsZSBvbiBmcmVlYnNkIGZvciAyLjIuNQogICAKMjAwMi0wMy0wOCAxNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIGEgYnJva2VuIGZpeCBJIGFjY2lkZW50aWNhbGx5IGNvbW1pdHRlZAogICAKMjAwMi0wMy0wOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggZnJvbSBNaWhhaWwgQmFsaWtvdiB0byBzdXBwb3J0IHVwIGJ1dCBubyBpcCBpbnRlcmZhY2VzLgogICAKMjAwMi0wMy0wOCAxNzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGFjbG9jYWwubTQ6CgogICBwYXRjaCBmcm9tIFBhdWwgUmFzbXVzc2VuIHRvIGZpeCAtLWVuYWJsZS1zaGFyZWQKICAgCjIwMDItMDMtMDggMTY6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb2xkIHBhdGNoIGZyb20gQmVydCBEcmllaHVpcyB0byBmaXggYzY0cyBpbiBwZXJsCiAgIAoyMDAyLTAzLTA4IDE0OjUzICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSAxMDAwIGxpbmVzIG9mIGR1cGxpY2F0ZSBjb2RlIGJ5IHVzaW5nIHRoZSBzcHJpbnRfcmVhbGxvY18qIGZ1bmN0aW9ucwogICBpbiB0aGUgaW1wbGVtZW50YWlvbiBvZiB0aGUgbm9uLXJlYWxsb2MgY291bnRlcnBhcnRzLgogICAKMjAwMi0wMy0wOCAxNDo1MSAgbmJhCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgIFJlbW92ZSBsYXN0IHNwcmludF9ub25yZWFsbG9jIGNhbGxzCiAgIAoyMDAyLTAzLTA3IDAzOjIwICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAgIC0gcGF0Y2ggZnJvbSBHdXkgSGFycmlzIHRvIGRlc2NyaWJlIG5ldyBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAyOjU4ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmg6CgogICAgIC0gZGVjbGFyZSB0aGUgc3ByaW50X3JlYWxsb2NfYmxhaCBmdW5jdGlvbnMuICBUaGFua3MgdG8gR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBY3R1YWxseSB1c2UgdGhlIGNvbW1vbiAnZGVmUGFzc3BocmFzZScgdmFsdWUgaWYgJ2RlZntBdXRoLFByaXZ9UGFzc3BocmFzZScgaXNuJ3Qgc2V0LgogICBRbjogU2hvdWxkIHRoZSBBdXRoUGFzc3BocmFzZSBhbHNvIGJlIHVzZWQgZm9yIHByaXZhY3kgaWYgbm8gb3RoZXIgdmFsdWUgaXMgYXZhaWxhYmxlPwogICAKMjAwMi0wMy0wNiAwMzoxOSAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyBjbGVhbiAodGhpcwogICAgICAgaGFwcGVucyBhbGwgdGhlIHRpbWUgb24gdGhlIGNvbXBpbGUgZmFybSBiZWNhdXNlIGUuZy4gSSBjYW4ndAogICAgICAgZGVsZXRlIFdlcydzIHRlc3QgZGlyZWN0b3JpZXMgYW5kIGl0J3MgYSBudWlzYW5jZSBiZWNhdXNlIHRoZW4gdGhlCiAgICAgICByZXN0IG9mIHRoZSBkaXJlY3RvcmllcyBkb24ndCBnZXQgY2xlYW5lZCB1cCBwcm9wZXJseSkuCiAgIAoyMDAyLTAzLTA2IDAyOjI0ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGFub3RoZXIgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBwcm9ibGVtIGFzIHJlcG9ydGVkIGluIGJ1ZwogICAgICAgIzUyNjI2Mi4KICAgCjIwMDItMDMtMDUgMTA6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIG1pc3NlZCBhIG1vZGlmaWNhdGlvbiB0byB0aGUgcGF0Y2guCiAgIAoyMDAyLTAzLTA1IDA5OjUxICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBIG1vZGlmaWVkIHBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyIGZvciBsb25nZXIgY29uZmlndXJlIHN0cmluZ3MuCiAgIAoyMDAyLTAzLTA1IDA4OjIzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIFJldmVyc2UgbXkgZWFybGllciAoYm9ndXMpIGZpeC4KICAgVGhpbmdzIHdlcmUgZmluZSBhcyB0aGV5IHdlcmUgLSBJIG11c3QgYmUgY3JhY2tpbmcgdXAuLi4uLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICBCcmluZyBkZWNsYXJhdGlvbiBvZiAnaW5pdF9hZ2VudCcgaW50byBsaW5lIHdpdGggY29kZSBkZWZpbml0aW9uLgogICAKMjAwMi0wMy0wNSAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIHVjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY291cGxlIG9mIG1hbGxvY3MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDQgMjE6MzggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUyICkKICAgCjIwMDItMDMtMDQgMDE6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ2F0Y2ggYW5kIHJlcG9ydCBpbnZhbGlkIG5vZGUgc3BlY2lmaWNhdGlvbnMuCiAgIChUaGlzIG91Z2h0IHRvIGJlIGhhbmRsZWQgYnkgdGhhdCB0ZXN0IHRoYXQgZm9sbG93cyBpbW1lZGlhdGVseSwgYnV0CiAgICAiJFNOTVA6Ok1JQnskb2lkfSIgYXBwZWFycyB0byByZXR1cm4gdGhlIGNvcmUgbWliLTIgb2JqZWN0IHJlZ2FyZGxlc3MpCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGJ1ZyAjNTI0NTI5CiAgIAoyMDAyLTAzLTAxIDA3OjE3ICBuYmEKCiAgICogbHRtYWluLnNoLCBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBQdWxsIGluIHVwLXRvLWRhdGUgbGlidG9vbCwgd2hpY2ggc2hvdWxkIGhlbHAgRGFyd2luCiAgIAoyMDAyLTAzLTAxIDA3OjE1ICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgUHVsbCBpbiB1cC10by1kYXRlIGNvbmZpZyBzY3JpcHRzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjYgMTQ6MTggIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIFNhdmUgRmlsZS9saW5lIGZvciBtZXNzYWdlcyBhYm91dCB1bmxpbmtlZCBPSURzCiAgIAoyMDAyLTAyLTI1IDE1OjQ2ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2g6CgogICBNYWtlIHN1cmUgdGhhdCB3ZSBmZXRjaCBJQU5BaWZUeXBlLU1JQiBmcm9tIHRoZSBtYWludGFpbmVkIGxvY2F0aW9uLgogICAKMjAwMi0wMi0yNSAxNTo0NSAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBVcGRhdGUgZm9yIFJGQyAzMjMxCiAgIAoyMDAyLTAyLTI1IDA4OjU5ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IFJGQydzIGlzc3VlZCB3aXRoIG1pYnM6CiAgIDMyMDEgICBDSVJDVUlULUlGLU1JQgogICAzMjAyICAgRlJTTEQtTUlCCiAgIDMyMzEgICBESVNNQU4tU0NIRURVTEUtTUlCCiAgIAoyMDAyLTAyLTI1IDA4OjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBGcmVlQlNENCBoYXMgbmV3IGRpc2sgbmFtZXMKICAgCjIwMDItMDItMjUgMDg6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQcm9wZXJseSBicmFja2V0IHJ1bl9scHN0YXQgcHJvdG90eXBlCiAgIAoyMDAyLTAyLTI1IDAyOjQ4ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBvbmx5IGNvcHkgdGhlIGZpcnN0IERFU0NSSVBUSU9OIGNsYXVzZSBvZiBNT0RVTEUtQ09NUExJQU5DRQogICAgICAgc3RhdGVtZW50cyB0byBhdm9pZCBhIG1lbW9yeSBsZWFrIChzZWUgYnVnICM1MjIzNjMpLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgZGVidWcgdG9rZW4gZm9yIGRpc3BsYXlpbmcgdGhlIGxpc3Qgb2YgbW9kdWxlcwogICAoc3BvdHRlZCBieSBCcmlhbiBTaGF2ZXIpCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jICwKICAgTVNHMDAwMDEuYmluICgxLjEpLCB3aW5zZXJ2aWNlLm1jICgxLjEpOgoKICAgQWRkIG1pc3NpbmcgZmlsZXMgZm9yIFdpbmRvd3Mgc2VydmljZSBvcGVyYXRpb24uCiAgIAoyMDAyLTAyLTIyIDA4OjQyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSnVzdCBjbG9zZSB0aGUgbWFpbiBzZXNzaW9uIHdoZW4gc2h1dHRpbmcgZG93biB1bmRlciBXaW5kb3dzLAogICBub3QgZXZlcnl0aGluZyAoc28gdGhhdCBpdCBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlIHNodXRkb3duIHRyYXApLgogICAKMjAwMi0wMi0yMiAwMTo0OSAgamJwbgoKICAgKiBGQVEsIFJFQURNRS53aW4zMjoKCiAgICAgLSB1cGRhdGUgY29tbWVudHMgb24gV2luMzIgcG9ydCBpbiBGQVEKICAgCiAgICAgLSBkaXNjdXNzIHdoYXQgSVBITFBBUEkue0xJQixETEx9IGlzIGFuZCB3aGVyZSBpdCBjYW4gYmUgb2J0YWluZWQKICAgICAgIGZyb20gaW4gUkVBRE1FLndpbjMyCiAgIAoyMDAyLTAyLTIxIDA3OjAyICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDAzOjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgICAtIGVtaXQgZXJyb3Igb24gb3Zlci1sZW5ndGggcGFzc3dvcmQgaW5zdGVhZCBvZiB3cml0aW5nIG9mZiBlbmQgb2YKICAgICAgIGJ1ZmZlciAoYnVnICM1MjA2NDksIG5vdGVkIGJ5IEpvaG4gU2VsbGVucykuCiAgIAoyMDAyLTAyLTIwIDA5OjI3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgICAtIGNoYW5nZXMgdG8gYXZvaWQgbmFtZXNwYWNlIGNsYXNoIHByb2JsZW1zIHdpdGggc2V0ZW52KCkgd2hpY2ggYXJlCiAgICAgICBjYXVzZWQgYnkgbGlid3JhcCBzdXBwbHlpbmcgYSBmdW5jdGlvbiBvZiB0aGF0IG5hbWUgYXMgd2VsbCBhcyB1cy4KICAgCiAgICAgLSBhbGwgY2FsbHMgaW4gdGhlIGNvZGUgdG8gc2V0ZW52KCkgYXJlIHJlcGxhY2VkIHdpdGggYSBjYWxsIHRvCiAgICAgICBzbm1wX3NldGVudigpLgogICAKICAgICAtIHNubXBfc2V0ZW52KCkgY2FsbHMgc2V0ZW52KCkgaWYgc3VjaCBhIGZ1bmN0aW9uIGV4aXN0cywgb3RoZXJ3aXNlCiAgICAgICBpdCBzaW11bGF0ZXMgdGhlIGVmZmVjdCBieSBjYWxsaW5nIHB1dGVudigpLgogICAKMjAwMi0wMi0yMCAwNTo0MyAgamJwbgoKICAgKiBORVdTOgoKICAgICAtIG1lbnRpb24gdGNwX3dyYXBwZXJzIHN1cHBvcnQgZm9yIHNubXB0cmFwZAogICAKMjAwMi0wMi0yMCAwNTo0MSAgamJwbgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgZm9yIHNubXB0cmFwZAogICAKMjAwMi0wMi0yMCAwNToyMCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBleGl0IHdpdGggYW4gZXJyb3IgaWYgLS13aXRoLWxpYndyYXAgaXMgZ2l2ZW4gYW5kIHdlIGNhbid0IGZpbmQgaXQKICAgCjIwMDItMDItMjAgMDM6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMTkgMDY6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUGF0Y2ggZnJvbSBKZXJvZW4gUnVpZ3JvayB0byBtZXJnZSBhIGZldyBpZmRlZnMKICAgCjIwMDItMDItMTkgMDE6NTEgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgICAtIGFkZCBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHN0cnVjdCBubGlzdCB0byBhdm9pZCBjb21waWxlcgogICAgICAgY29tcGxhaW50cy4gIFRoYW5rcyB0byBBbmR5IEhvb2QuCiAgIAoyMDAyLTAyLTE4IDA4OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIHBhdGNoIGZyb20gSmVyb2VuIFJ1aWdyb2sgZm9yIG1pbm9yIGlmZGVmIGNsZWFuIHVwcwogICAKMjAwMi0wMi0xOCAwMjozNiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1bmhlbHBmdWwgT1NGIGRlZmluaXRpb25zICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE4IDAyOjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHJlbW92ZSB0cm91Ymxlc29tZSBpbmxpbmUgcXVhbGlmaWVycy4gIFRoYW5rcyB0byBBbmR5IEhvb2QgZm9yCiAgICAgICBub3RpbmcgdGhhdCB0aGVzZSBjYXVzZSBwcm9ibGVtcyBvbiBBSVguCiAgIAoyMDAyLTAyLTE4IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICAgIC0gcmVtb3ZlIC8vLXN0eWxlIGNvbW1lbnRzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZCBmb3IgcG9pbnRpbmcgdGhpcwogICBvdXQuCiAgIAoyMDAyLTAyLTE4IDAwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGRvbid0IGJ1aWxkIG9pZCdzIHdpdGggPjEyOCBsZW5ndGggc3ViaWRzLiAgKHNlZSBidWcgIzUxODg1NSkKICAgCjIwMDItMDItMTUgMjI6MDcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUxICkKICAgCjIwMDItMDItMTUgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBmaXggYnVnIzUwODEyNiB3aGljaCBhY3R1YWxseSBsZWQgbWUgdG8gYW5vdGhlci4KICAgICAtIG9pZCBwYXJzaW5nIGFuZCBzZWFyY2hpbmcgaW4gZ2V0bmV4dHMgY291bGQgc29tZXRpbWVzIGxvb3AuCiAgIAoyMDAyLTAyLTE1IDE3OjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc3VwcG9ydCAtLWRpc2FibGUtc2hhcmVkLXZlcnNpb24gY29uY2VwdCBmcm9tIFBhdWwgUmFzbXVzc2VuLgogICAKMjAwMi0wMi0xNSAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZHluaXggYnJva2UgbGludXguICBCYWQgZHluaXguICBObyBib25lLiAgR28gdG8geW91ciByb29tLgogICAKMjAwMi0wMi0xNSAxNjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgYWRkIGJhY2sgaW4gbmV0aW5ldC9pbi5oIGFuZCBzeXMvdGltZS5oIChpbiBwcm9wZXIgcHJvdGVjdGVkIGZvcm0pCiAgIHdoaWNoIHdhcyBkZWxldGVkIGZyb20gNC4yLjMgZm9yIHNvbWUgcmVhc29uIHdlIG5ldmVyIGZpZ3VyZWQgb3V0LgogICAKMjAwMi0wMi0xNSAxNjoyMSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFJFQURNRToKCiAgIHVwZGF0ZXMgZm9yIHdoYXQgd2lsbCBiZSA0LjIuNAogICAKMjAwMi0wMi0xNSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGNoZWNrIGVuZCBvZiBtaWJ2aWV3IGNvbmRpdGlvbnMKICAgCjIwMDItMDItMTUgMDg6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUG9wdWxhdGUgYW4gZW1wdHkgY2FzZSBzdGF0ZW1lbnQgKHNwb3R0ZWQgYnkgSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE1IDA3OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVtb3ZlIHVubmVlZGVkIC1DTiBhbmQgLUNPIGV4YW1wbGUgb3B0aW9ucwogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHNubXBsaWIvd2luc2VydmljZS5oLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE0IDExOjExICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBNYWtlIGJ1ZmZlciBwb2ludGVyIHN0YXRpYyBzbyBpdCBkb2Vzbid0IGxlYWsKICAgCjIwMDItMDItMTQgMTE6MTAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICBGaXggYmFkIHBhcmFudGhlc2lzCiAgIAoyMDAyLTAyLTE0IDA3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGVtYWlsIGFkZHJlc3MgYnVnICM1MTcxNzgKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgSW5jbHVkZSBSZWRIYXQgcGF0Y2hlcyBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0CiAgIAoyMDAyLTAyLTE0IDAxOjM4ICBkdHMxMgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgcnBtIGxpYnJhcnkgcmVxdWlyZW1lbnRzCiAgIAoyMDAyLTAyLTEzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGVuYWJsZSBzaGFyZWQgYnkgZGVmYXVsdCBleGNlcHQgZm9yIGRldmVsb3BlcnMKICAgCjIwMDItMDItMTMgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICByZW1vdmUgaW5saW5lIGZ1bmN0aW9uIGZyb20gYmVpbmcgZGVjbGFyZWQgaW4gYW5vdGhlciBmdW5jdGlvbi4KICAgCjIwMDItMDItMTMgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHJlbW92ZSBpbmxpbmUgZnVuY3Rpb24gZnJvbSBiZWluZyBkZWNsYXJlZCBpbiBhbm90aGVyIGZ1bmN0aW9uLgogICAKMjAwMi0wMi0xMyAwODoxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc2V0cyBvZiB1bnNpZ25lZDMyJ3MuCiAgIAoyMDAyLTAyLTEzIDA3OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRFNfTElCX1BSSU5UX1NVRkZJWF9PTkxZIGlzIGFuIGludGVnZXIgb3B0aW9uLCBub3QgYSBib29sZWFuIGZsYWcuCiAgIChBdHRlbXB0aW5nIHRvIHNldCB0aGlzIHZpYSB0aGUgU1VGRklYIGVudmlyb25tZW50YWwgdmFyaWFibGUgd2lsbAogICB0dXJuIG9uIHBhY2tldCBkdW1waW5nIGluc3RlYWQhKQogICAKMjAwMi0wMi0xMyAwNDoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICAgIC0gZml4IGJ1ZyAjNTE2OTA0IChzbm1wZCBkaWVzIGlmIG5vIHByaW50Y2FwIHdpdGggY2dldGVudCksIG5vdGVkIGJ5CiAgICAgICBBbm9ueW1vdXMgLS0gY2hlY2sgcmV0dXJuIHZhbHVlIG9mIGNnZXRuZXh0KCkgcHJvcGVybHkgaW4KICAgICAgIEluaXRfSFJfUHJpbnQoKS4KICAgCjIwMDItMDItMTIgMDc6MTEgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MjkgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSAtLSBVU0VfTElCV1JBUAogICAgICAgd2FzIG5vdCBiZWluZyAjZGVmaW5lZCBpbiB0aGUgY2FzZSB3aGVyZSAtbG5zbCBpcyBuZWVkZWQgaW4gYWRkaXRpb24KICAgICAgIHRvIC1sd3JhcC4KICAgCjIwMDItMDItMTIgMDE6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgSW1wbGVtZW50IHRoZSBCYWRDb21tdW5pdHl7TmFtZXMsVXNlc30gY291bnRlcnMuCiAgIAoyMDAyLTAyLTExIDEwOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kIGNvbHVtbnMgaW4KICAgICAgIHdyb25nIG9yZGVyKS4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA1OjMwICBqYnBuCgogICAqIEZBUToKCiAgICAgLSBtZW50aW9uIEhQVVgtMTEgYW5kIER5bml4L1BUWCA0LjQgc3VwcG9ydCwgYW5kIHNvbWUgc3BlbGxpbmcgZml4ZXMKICAgCjIwMDItMDItMDggMDY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjQyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb2Nlc3MgdGhlIGZ1bGwgbGlzdCBvYmplY3RzIGluIGVhY2ggcGFzcyBvZiBhIFNFVCwgZXZlbiBpZiBvbmUgZW50cnkgZmFpbHMKICAgbWlkd2F5IHRocm91Z2guICBUaGlzIGlzIGxlc3MgZWZmaWNpZW50IHRoYW4gZmFpbGluZyBpbW1lZGlhdGVseSwgYnV0IGJyaW5ncwogICB0aGUgYmVoYXZpb3VyIGluIGxpbmUgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiwgYW5kIGVuc3VyZXMgdGhhdCBhbGwgcmVzb3VyY2VzCiAgIHdpbGwgYmUgcmVsZWFzZWQuCiAgIAoyMDAyLTAyLTA4IDAyOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZXR1cm4gdGhlIGNvcnJlY3QgZXJyb3IgaW5kZXggZm9yIHByb2JsZW1zIGluIFNFVCBoYW5kbGluZy4KICAgKHBhdGNoICM0NjcxNTUsIGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBSZWdpc3RlciBJUCBSb3V0aW5nIHRhYmxlIG9iamVjdHMgYXMgd3JpdGFibGUuCiAgIAoyMDAyLTAyLTA3IDA3OjM5ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgcy9ocHV4Lmg6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNSAxMTo0NSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDQgMDM6MTcgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDEtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1pcnJvciBzZWN0aW9uIHVwZGF0ZQogICAKMjAwMi0wMS0yOCAxMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgd2FybmluZyBhZGRlZCBhYm91dCBzZW5kX3RyYXBfdmFycyBhbmQgZW50ZXJwcmlzZSBvaWQgdXNlZC4KICAgCjIwMDItMDEtMjUgMDY6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI0IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBhdm9pZCBmb3JtYXQgc3RyaW5nIG5hc3RpZXMgaW4gcmVhZF9jb25maWdfc3RvcmUoKSB3aGVuIHdyaXRpbmcgdG8KICAgICAgIGZpbGVzIChleHBvc2VkIGUuZy4gYnkgdGhlIHBlcnNpc3RlbnQgc3lzTmFtZS4wIHN0dWZmIC0tIHRyeQogICAgICAgc25tcHNldCBob3N0IHN5c05hbWUuMCBzICIlMDh4IiAtLSBvb3BzKQogICAKMjAwMi0wMS0yNCAwMzoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIHMvYWl4Lmg6CgogICBBSVggc3VwcG9ydCBmb3IgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMiAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggYnVnIGp1c3QgaW50cm9kdWNlZCB3aGVyZSBzZXR0aW5nIGFuIGV4aXN0aW5nIHJvdydzIHN0YXR1cyB0bwogICAgICAgY3JlYXRlQW5kR28oNCkgb3IgY3JlYXRlQW5kV2FpdCg1KSB3b3VsZCBkZWxldGUgdGhlIHJvdy4KICAgCjIwMDItMDEtMjIgMDQ6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGJhY2twb3J0IG9mIHJlY2VudCBpbXByb3ZlbWVudHMgdG8gc25tcFRhcmdldFBhcmFtc1RhYmxlLAogICAgICAgc25tcFRhcmdldEFkZHJUYWJsZSBhbmQgc25tcE5vdGlmeVRhYmxlLgogICAKMjAwMi0wMS0yMSAwNDoyMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzZXQgbm9TdWNoT2JqZWN0IHRvIEZBTFNFIGlmIHdlIGhhdmUgYSB2YWxpZCB3cml0ZV9tZXRob2QgKHRoaXMKICAgICAgIGNhdXNlcyB0aGUgY29ycmVjdCBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgdG8gYmUgZ2VuZXJhdGVkIGlmIHRoZQogICAgICAgcmVxdWVzdGVkIG9iamVjdCBkb2Vzbid0IGV4aXN0KS4KICAgCjIwMDItMDEtMjEgMDQ6MjAgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDItMDEtMjEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgICAgLSBiYWNrcG9ydCBvZiByZWNlbnQgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlLCB2YWNtQWNjZXNzVGFibGUgYW5kCiAgICAgICB2YWNtVmlld1RyZWVGYW1pbHlUYWJsZSBjaGFuZ2VzIChjb3JyZWN0ZWQgc3RhdGUgbWFjaGluZXMpLgogICAgICAgQmVmb3JlOiBwYXNzZWQgMjAsICBmYWlsZWQgODAsIHVudGVzdGVkIDExCiAgICAgICBBZnRlcjogIHBhc3NlZCAxMDcsIGZhaWxlZCAxLCAgdW50ZXN0ZWQgMwogICAKICAgICAgIFRoZSBzdGlsbC1leHRhbnQgZmFpbHVyZXMgYXJlIGR1ZSB0byB0aGUgbm9uLWltcGxlbWVudGVkCiAgICAgICB2YWNtQ29udGV4dFRhYmxlLgogICAKMjAwMi0wMS0xNSAxMjo0NCAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgRml4IHN0dXBpZCBtaXNzaW5nIHNpemVvZihvaWQpIGZhY3RvciBpbiBtZW1jcHkKICAgCjIwMDItMDEtMTUgMTI6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIERvbnQgdXNlIHN0YXRpYyBidWZmZXIgd2hlbiByZWFkaW5nIC9wcm9jL3N0YXQKICAgCjIwMDItMDEtMTUgMTI6NDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBzL3NvbGFyaXMyLjYuaCwgcy9zb2xhcmlzMi43LmgsCiAgIHMvc29sYXJpczIuOC5oOgoKICAgRml4IGhyTWF4UHJvY2Vzc2VzIGZvciBTb2xhcmlzCiAgIAoyMDAyLTAxLTE1IDEyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU29tZSBhZGRpdGlvbmFsIGRlYnVnIHN0YXRlbWVudHMKICAgCjIwMDItMDEtMDkgMDg6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgQWRkIGZ1bmN0aW9uIHRvIGFjY2VzIHJhdyBrc3RhdCBkYXRhCiAgIAoyMDAyLTAxLTA5IDA4OjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBVc2UgdGhhdCBzeXNjb25mIHJldHVybnMgYSBsb25nLCB0byBzYXZlIGxhcmdlIHBoeXMgbWVtCiAgIAoyMDAyLTAxLTA5IDA4OjI0ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BIHZlcnNpb24KICAgCjIwMDItMDEtMDkgMDg6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDYXJlIGZvciBMaW51eCBkcml2ZXJzIHRoYXQgbWFpbnRhaW4gb2N0ZXQgY291dGVycyBhcyBsb2cgbG9uZyB2YWx1ZXMKICAgCjIwMDItMDEtMDkgMDI6MjAgIGpicG4KCiAgICogRkFROgoKICAgICAtIGFkZCBPUyBYIHRvIGxpc3Qgb2Ygc3VwcG9ydGVkIE9TZXMsIHRvIGZpeCBidWcgIzUwMTE3OSAoISkKICAgCjIwMDItMDEtMDMgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGZpeCBidWcgIzQ5ODgwOSAoSSB0aGluaykgYnkgY2hlY2tpbmcgc2V0bW50ZW50IHJldHVybiB2YWx1ZS4KICAgCjIwMDItMDEtMDMgMTM6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMS0xMi0xOCAwODo0OSAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgICAgLSBhZGQgT1NUWVBFIGRlZmluZSBmb3Igd2luMzIKICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPQkpFQ1QgSURFTlRJRklFUiBmb3Igd2luMzIgYWdlbnQKICAgCjIwMDEtMTItMTggMDY6NTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHBhdGNoIGZyb20gTGF0aGEgUHJhYmh1IHRvIHByb2R1Y2UgbW9yZSBtZWFuaW5nZnVsIHN5c0Rlc2NyLjAKICAgICAgIHN0cmluZ3MgZm9yIE1pY3Jvc29mdCBwbGF0Zm9ybXMuCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoIGZyb20gSmFzb24gR2xvdWRvbiB0byBmaXggbGVha2luZyBzZXNzaW9uIHN0cnVjdHVyZXMgZnJvbSBzbm1wX3RpbWVvdXQoKS4KICAgCjIwMDEtMTItMDMgMTQ6NTIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb21wbGV0ZSB0aGUgQlNEIElQU1RBVFMgY29uZmlndXJlIHRlc3RzLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIE1vcmFlcwogICAoYnVnIyA0ODc3MDgpCiAgIAoyMDAxLTExLTI5IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICA0LjIuMyBjaGFuZ2VzCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjIgLT4gVjQuMi4zCgkKMjAwMS0xMS0yOSAxNDoyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4zICkKICAgCjIwMDEtMTEtMjkgMTM6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTb2xhcmlzIDggcmVuYW1lZCB0aGUga3N0YXQgaWZzcGVlZCBhdHRyaWJ1dGUgdG8gaWZTcGVlZCBhbmQgc29tZXdoZXJlCiAgIGFsb25nIHRoZSBsaW5lIGNoYW5nZWQgaXRzIHZhbHVlIGZyb20gTWJwcyB0cCBicHMKICAgCjIwMDEtMTEtMjggMTQ6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGltcHJvdmVkIGlyaXggc3VwcG9ydC4KICAgCjIwMDEtMTEtMjggMTQ6MzEgIGhhcmRha2VyCgogICAqIHMvaXJpeC5oOgoKICAgbGFzdCBmaXhlcyBmb3IgaXJpeCBJIHRoaW5rCiAgIAoyMDAxLTExLTI4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjcmVhdGUgaXNsYW5kcyBpbiB0aGUgc3RyZWFtCiAgIAoyMDAxLTExLTI4IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBzL2lyaXguaDoKCiAgIGlyaXggZml4ZXMgZm9yIGJyb2tlbiBpcml4IGhlYWRlcnMKICAgCjIwMDEtMTEtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgdmVyc2lvbiBzdGFtcCAoNC4yLjMucHJlMSAob3BwcykpCiAgIAoyMDAxLTExLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgZml4IGZvciB2ZXJzaW9uIHN0YW1waW5nIHRoZSBwZXJsIG1vZHVsZS4KICAgCjIwMDEtMTEtMjcgMTc6MDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDQuMi4zCiAgIAoyMDAxLTExLTI3IDExOjA5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICB1c2UgYXQgb3duIHJpc2sgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGRlcGVuZGFuY2llcwogICAKMjAwMS0xMS0yNyAwNjo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgICAtIHRyeSBoYXJkZXIgdG8gZ2V0IGhyU3lzdGVtTWF4UHJvY2Vzc2VzLjAgcmlnaHQsIGRyYXdpbmcgb24gcGF0Y2gKICAgICAgICM0ODU3NjUsIHN1Ym1pdHRlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIsIGZvciBMaW51eCwgYW5kCiAgICAgICBhbHNvIHVzaW5nIHN5c2N0bCgpIG1vcmUgd2lkZWx5LgogICAKMjAwMS0xMS0yNyAwNjo1MSAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIHMvbGludXguaDoKCiAgICAgLSBMb29rIGZvciA8bGludXgvdGFza3MuaD4sIGluIG9yZGVyIHRvIGdpdmUgYSBiZXR0ZXIgdmFsdWUgZm9yCiAgICAgICBoclN5c3RlbU1heFByb2Nlc3Nlcy4wLiAgRnJvbSBwYXRjaCAjNDg1NzY1LCBzdWJtaXR0ZWQgYnkKICAgICAgIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDEtMTEtMjcgMDM6NTYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgsIHRjcC5jOgoKICAgICAtIGdpdmUgY29ycmVjdCB2YWx1ZXMgZm9yIHRjcEluRXJycy4wIGFuZCB0Y3BPdXRSc3RzLjAgdW5kZXIgTGludXgKICAgICAgIGlmIHRoZSBrZXJuZWwgbWFrZXMgdGhlIGRhdGEgYXZhaWxhYmxlLiAgRnJvbSBwYXRjaCAjNDg1NzY1LAogICAgICAgc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDEtMTEtMjYgMDk6NTEgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0OgoKICAgICAtIGxvbmdlciB0aW1lb3V0IGZvciBpbml0aWFsIEdFVCAoZml4IHNwdXJpb3VzIHRlc3QgZmFpbHVyZXMpCiAgIAoyMDAxLTExLTIxIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBoZWxwIHVwZGF0ZSB0byByZW1vdmUgdGhlIHN1cHBvcnQgZGF0YWJhc2UKICAgCjIwMDEtMTEtMjEgMDQ6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgICAtIGZpeCBjb21waWxhdGlvbiBmb3IgVWx0cml4IDQuNSAoYnVnICMgNDE1MTk3KSAtLSBtYWtlIHN1cmUKICAgICAgIHZmcy5mX2JzaXplIGV4aXN0cyBpbiB2YXJfZXh0ZW5zaWJsZV9kaXNrKCksIGFuZCBkZWZhdWx0IGl0IHRvCiAgICAgICAxMDI0LgogICAKMjAwMS0xMS0yMCAwMjoyNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAwNTo0OCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudGF0aW9uIG9mIGlnbm9yZWRpc2sgZGlyZWN0aXZlLgogICAKMjAwMS0xMS0xOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9kaXNrLmgsIGhyX3BhcnRpdGlvbi5jLAogICBocl9wYXJ0aXRpb24uaDoKCiAgICAgLSBwYXRjaCBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciB0byBhZGQgZGlyZWN0aXZlICJpZ25vcmVkaXNrIiB0bwogICAgICAgc2tpcCBjZXJ0YWluIGRldmljZXMgKGFuZCBoZW5jZSBhdm9pZCB0aGUgYHNubXB3YWxrIHRpbWVzIG91dCcgdHlwZQogICAgICAgcHJvYmxlbXMgZnJlcXVlbnRseSByZXBvcnRlZCkuICBBbHNvIGV4dGVuZHMgc2VhcmNoIHJhbmdlcyB0byBjb3BlIHdpdGgKICAgICAgIGxhcmdlciBudW1iZXJzIG9mIGRpc2tzIGV0Yy4KICAgCjIwMDEtMTEtMTYgMDU6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTYgMDM6MjEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gbW9yZSBjb25zdC1uZXNzIGluIHFzb3J0X2NvbXBhcmUgPT4gZmV3ZXIgd2FybmluZ3MKICAgCjIwMDEtMTEtMTYgMDI6NTQgIGpicG4KCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gYWRkIHByb3RvdHlwZXMgZm9yIHRpbWVyU2V0KCkgYW5kCiAgICAgICB0aW1lclBhdXNlKCkuCiAgIAoyMDAxLTExLTE2IDAyOjUyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byAjaW5jbHVkZSA8Z3JwLmg+IGlmIHdlIGhhdmUgaXQKICAgCjIwMDEtMTEtMTYgMDI6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmV0dXJuIGEgdmFsdWUgZnJvbQogICAgICAgbm90aWZ5VGFibGVfdW5yZWdpc3Rlcl9ub3RpZmljYXRpb25zKCkgdG8gYXZvaWQgd2FybmluZ3MKICAgCjIwMDEtMTEtMTYgMDI6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtYWtlIHNpZ25hdHVyZSBvZiBxc29ydF9jb21wYXJlCiAgICAgICBmdW5jdGlvbiBtYXRjaCB0aGF0IGV4cGVjdGVkIGJ5IHFzb3J0KDMpIC0tIGFkZHMgY29uc3QgdG8gYXJncy4KICAgCjIwMDEtMTEtMTYgMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1ha2UgZGVmaW5pdGlvbiBvZiBwcmludF90cmVlX25vZGUKICAgICAgIHN0YXRpYyB0byBtYXRjaCBmb3J3YXJkIGRlY2xhcmF0aW9uLgogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGZpeCBiYWQtbG9va2luZyBleHByZXNzaW9uIHdoaWNoIHdhcyBjYXVzaW5nIHByb2JsZW1zIGRlc2NyaWJlZCBpbgogICAgICAgZW1haWwgdGl0bGVkICJEZWZlY3QgcmVwb3J0IG9uIFVDRCBTTk1QIHRvb2xraXQgKGNyYXNoIGluCiAgICAgICBrZXJuZWxfc3Vub3M1LmMpIiBzZW50IHRvIG5ldC1zbm1wLXVzZXJzIG9uIDIwMDEtMDctMTcuCiAgIAoyMDAxLTExLTE1IDA4OjMzICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgaWYgdmFsdWUgaXMKICAgICAgIGNvbmZpZ3VyZWQgdmlhIHRoZSBhdXRodHJhcGVuYWJsZSB0b2tlbgogICAKMjAwMS0xMS0xNSAwODoyOCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA1OjE2ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0LCBUMTIxcHJveHlzZXQ6CgogICAgIC0gdXNlIHBzeXNjb250YWN0IG5vdCBzeXNjb250YWN0IHRvIHNldCBpbml0aWFsIHZhbHVlIG9mIHN5c0NvbnRhY3QuMAogICAgICAgb2JqZWN0IHNpbmNlIHRoZSBsYXR0ZXIgYWxzbyBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seS4KICAgCjIwMDEtMTEtMTUgMDU6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE0IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMy5wcmUxICkKICAgCjIwMDEtMTEtMTQgMTc6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgbnVtZXJpYyBjb21tZW50cyBpbiBib3RoIGhleCBhbmQgZGVjaW1hbAogICAKMjAwMS0xMS0xNCAxNzo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNsdWRlIElOVEVHRVIzMiBpbiBJTlRFR0VSIGNhc2UgY2hlY2tpbmcuCiAgIAoyMDAxLTExLTE0IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdmVyc2lvbiB0YWcgcGVybC9TTk1QL1NOTVAucG0gd2l0aCB0aGUgdWNkLXNubXAgdmVyc2lvbiBudW1iZXIuCiAgIAoyMDAxLTExLTE0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gc25tcGNvbmYuCiAgIAoyMDAxLTExLTE0IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTE6NTggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gbWFrZSBhIG5ldyBjYWxsYmFjayBmb3IgcHJlLXVwZGF0ZS1jb25maWcgY29uZGl0aW9ucy4KICAgLSBtYWtlIHRoZSBzbm1wTm90aWZ5VGFibGUgbWFrZSB1c2Ugb2YgaXQgdG8gcmVtb3ZlICJyZWFkT25seSIgZW50cmllcwogICAgIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gZ2VuZXJhdGVkIHZpYSBjb25maWd1cmF0aW9uIHBhcnNpbmcuCiAgICAgLSBub3RlIHRoYXQgdGhpcyBkb2Vzbid0IHJlbW92ZSB0aGUgZ2VuZXJhdGVkIHRhcmdldCBlbnRyaWVzLCB3aGljaAogICAgICAgaXMgbm90IGlkZWFsLCBidXQgYXQgbGVhc3QgZHVwbGljYXRlIHRyYXBzIGFyZW4ndCBzZW50LgogICAKMjAwMS0xMS0xMyAxMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gbG9vayBmb3IgZXJpIGludGVyZmFjZXMuCiAgIAoyMDAxLTExLTEzIDA1OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEyIDIzOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYzoKCiAgIE1TIEMrKyB3YXJuaW5nIGZpeGVzIGZyb20gSGFycmllIEhhemV3aW5rZWwKICAgCjIwMDEtMTEtMTEgMjE6NDggIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlc3RvcmUgdGhlIG9sZCB2YWx1ZSBvZCBUSU1FX1dJVEhfU1lTX1RJTUUKICAgCjIwMDEtMTEtMDkgMTI6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEFkZGVkIGEgZ2VybWFueSBiYXNlZCBtaXJyb3IKICAgCjIwMDEtMTEtMDkgMTE6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1lbnRpb24gbmV3IG1pcnJvcgogICAKMjAwMS0xMS0wOSAxMToyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgYXBwbGllZCBlbmdsaXNoL3R5cG8vY2hhbmdlcyBub3RlZCBpbiBidWcgIzQ3MTE3OQogICAKMjAwMS0xMS0wOSAwOTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyA0NzkzNjU6IHVzZSBzdHJuY3B5IGluIHNubXBfYWRkX3ZhcigpLgogICAKMjAwMS0xMS0wOSAwNzo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBmaXggYnVnICM0NzQ0ODg6IGFkZCBleHRlcm4gQyB3cmFwcGVycwogICAKMjAwMS0xMS0wOSAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggT0lEcyB0byBpbmNsdWRlIGVudHJ5IG5vZGUKICAgCjIwMDEtMTEtMDggMDk6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFVOSVQgc3BlY3MgZm9yIHRoZSBmaWxlVGFibGUgdG8gc2F5IGtCIGV4cGxpY2l0bHkKICAgCjIwMDEtMTEtMDggMDk6NDIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB0aGF0IHRoZSBmaWxlVGFibGUgaXMgaW4ga0IuCiAgIAoyMDAxLTExLTA2IDA4OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCB0a21pYjoKCiAgIGFkZCBmaXhlcyB0byBjaGVjayBmb3IgdGhlIFNOTVAgYW5kIFRrIHBlcmwgbW9kdWxlcyBhbmQgcHJpbnQgYSBiZXR0ZXIKICAgZXJyb3IgbWVzc2FnZSBpZiB0aGV5J3JlIG5vdCBhdmFpbGFibGUgdGVsbGluZyB1c2VycyBob3cgdG8gZ2V0IHRoZW0uCiAgIAoyMDAxLTExLTA2IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBhc25fYnVpbGRfYml0c3RyaW5nIHRvIGNoZWNrIGZvciBOVUxMIHZhbHVlcyAocG9pbnRlZCBvdXQgYnkgVGF0YSBLYWx5YW4pLgogICAKMjAwMS0xMS0wNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBsZW5ndGggY2hlY2sgZml4ZWQgZm9yIHdyYXBwZWQgYWRkaXRpb24uICBCdWcgcG9pbnRlZCBvdXQgYnkgVGF0YSBLYWx5YW4KICAgCjIwMDEtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBtYWtlIHBhdGhzIG1vcmUgY29uZmlndXJhYmxlIGZyb20gd2l0aGluIEMgY29kZS4KICAgCjIwMDEtMTAtMzAgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMjYgMDk6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGFnZW50eC9jbGllbnQgLT4gYWdlbnR4L3N1YmFnZW50IGhlbHAgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwMzozNCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDk6NTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzozMyAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTI0IDAzOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gdXNlIHBrZ2luZm8gaW50ZXJmYWNlIHRvIGRldGVybWluZSB0eXBlIG9mIHNvZnR3YXJlIHBhY2thZ2UgbW9yZQogICAgICAgc3BlY2lmaWNhbGx5IGlmIHBvc3NpYmxlLiAgU2xpZ2h0IHZhcmlhdGlvbiBvbiBwYXRjaCAjNDczNjY5LCBzdWJtaXR0ZWQKICAgICAgIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAxLTEwLTE3IDA3OjUyICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTA4IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjEgLT4gVjQuMi4yCgkKMjAwMS0xMC0wOCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBBcHBseSBwYXRjaGVzIHN1Z2dlc3RlZCBpbiBidWcgIzQ2OTA4MiB0byBmaXggaWxsZWdhbCByb3cgY3JlYXRpb25zCiAgIHdoZW4gcm93c3RhdHVzIGlzIHNldCB0byBkZXN0cm95LgogICAKMjAwMS0xMC0wNiAwNzo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWlub3IgdHdlYWtzIHRvIHRoZSBkb3dubG9hZCBsaXN0LgogICAKMjAwMS0xMC0wNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIERhdmlkIExhd3JlbmNlJ3MgdGV4dCBhYm91dCBjb250cmlidXRpbmcgcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDUgMTg6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTYgKQogICAKMjAwMS0xMC0wNSAxODowMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICBDaGFuZ2UgX1JFRU5UUkFOVCBkZWZpbmUgdG8gTlNfUkVFTlRSQU5UIHRvIG5vdCBjb25mbGljdCB3aXRoIEJTRC9PUyA0LjMuCiAgIAoyMDAxLTEwLTA1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgcy9pcml4Lmg6CgogICBpcml4IHNwZWNpZmljIGZpeGVzIG1lbnRpb25lZCBpbiBidWcgIzQwNTQ1NAogICAKMjAwMS0xMC0wNSAxNzoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggIzQ0MDgwOCBwb3NzaWJseSBvdmVyd3JpdGluZyBhIG9pZCBidWZmZXIuCiAgIAoyMDAxLTEwLTA1IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgZml4IHVuc2lnbmVkMzIgcmV0dXJuIHZhcmlhYmxlIHVzYWdlCiAgIAoyMDAxLTEwLTA1IDE2OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgbW92ZSBhcnB0YWJfY3VycmVudCBhbmQgYXJwdGFiX3NpemUgZGVmaW5pdGlvbnMgdXAgb3V0IG9mIGlmZGVmIG1lc3MuCiAgIAoyMDAxLTEwLTA1IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIGRvbid0IGNyZWF0ZSByb3dzdGF0dXMgZW50cmllcyB3aXRoICdkZXN0cm95JyBhcyBpbml0aWFsIHZhbHVlLgogICAKMjAwMS0xMC0wNSAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBmaXhlZCBVTkRPIGNsYXVzZXMuCiAgIAoyMDAxLTEwLTA1IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBmb3IgcGlja3kgY29tcGlsZXJzLgogICAKMjAwMS0xMC0wNSAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgYmV0dGVyIGVycm9yIGRlc2NyaXB0aW9uIGZvciB0cmFwc2VzcwogICAKMjAwMS0xMC0wNSAwODo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgQWRkZWQgbWlycm9yIHNpdGVzLgogICAKMjAwMS0xMC0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNNVVgtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1JQiBwcm9ibGVtcyBwb2ludGVkIG91dCBieSBNYXJlayBNYWxvd2lkemlraQogICAKMjAwMS0xMC0wNCAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIERvbid0IHdyaXRlIGEgbnVsbCBwYXN0IHRoZSBlbmQgb2YgdGhlIGNvbW11bml0eSBzdHJpbmcgYnVmZmVyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9leHRlbmRpbmcsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggZnJvbSBULiBKLiBNYXRoZXI6IERvY3VtZW50YXRpb24gb2YgdGhlIHBhc3NfcGVyc2lzdCBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIFBhdGNoIGZyb20gVC4gSi4gTWF0aGVyOiBBbiBleGFtcGxlIChwZXJsKSBwYXNzX3BlcnNpc3Qgc2NyaXB0LgogICAKMjAwMS0xMC0wNCAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCiAgICAgICBBbHNvIG5vdGVkIHdpdGggZXh0ZW5zaXZlIGFuYWx5c2lzIGJ5IFRlZCBSdWxlIGluIGJ1ZyAjNDY3NTUxLgogICAKMjAwMS0xMC0wMyAxMToyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNSApCiAgIAoyMDAxLTEwLTAzIDExOjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi90b29scy5jOgoKICAgcHJvcGVyIGNvbnN0IGNhc3RpbmcgaW4gZnJvbnQgb2YgTWFya2t1J3MgY2FzdGluZyBwYXRjaC4KICAgCjIwMDEtMTAtMDMgMTE6MTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi90b29scy5jOgoKICAgUGF0Y2g6IHByb3BlciBjYXN0cyBmb3IgcGlja3kgY29tcGlsZXJzIGZyb20gTWFya2t1IExhdWtrYW5lbi4KICAgCjIwMDEtMTAtMDMgMDk6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJidWlsZCBiZXlvbmQgdGhlIGVuZCBvZiBhIGJ1ZmZlciAobmVlZGVkIGJ1ZmZlciArIGxlbmd0aCAiLSAxIikuCiAgIAoyMDAxLTEwLTAzIDA1OjM4ICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ2hhbmdlIG9pZCBsZW5ndGhzIHRvIHNpemVfdCBmcm9tIGludCAoc2VnZmF1bHRzIG9uIGFuIGFscGhhL2xpbnV4KS4KICAgCjIwMDEtMTAtMDIgMTc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgQWRkIHByb3RvdHlwZSBmb3IgZ2V0VG90YWxTd2FwKCkuCiAgIAoyMDAxLTEwLTAyIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgcmV0dXJuIE5PVF9XUklUQUJMRSBpbnN0ZWFkIG9mIFJFQURPTkxZIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIGFyYWplc2hAaW5kaWEuYWR2ZW50bmV0LmNvbS4KICAgCjIwMDEtMTAtMDIgMTc6MDMgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgUGF0Y2ggZnJvbSBNYXJjIE1vZWxsZXIgdG8gZGVmaW5lIHNucHJpbnRmIGFzIF9zbnByaW50ZgogICAKMjAwMS0xMC0wMiAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUGF0Y2ggZnJvbSBNYXJjIE1vZWxsZXIgdG8gY2hlY2sgZm9yIEhBVkVfTFBTVEFUIGJlZm9yZSBjYWxsaW5nIGl0LgogICAKMjAwMS0xMC0wMiAxNzowMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIFJvbi4KICAgCjIwMDEtMTAtMDIgMTc6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBnZXRfdXB0aW1lKCkgaW1wbGVtZW50YXRpb24gZm9yIHdpbmRvd3MgZnJvbSBSb24gTWV2aXNzZW4uCiAgIAoyMDAxLTEwLTAxIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU0ICkKICAgCjIwMDEtMTAtMDEgMTc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgbWFrZWZpbGVpbmRlcGVuZAogICAKMjAwMS0xMC0wMSAxNzozNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIHRyYW5zbGF0ZSAubyAtPiAubG8gYnkgaGFuZC4KICAgCjIwMDEtMTAtMDEgMTc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX3ByaW50LmM6CgogICBBcHBsaWVkIHBhdGNoICM0NjU1NDUgdG8gZml4IGRlbGF5cyBpbiBob3N0IHJlc291cmNlcyBtaWIgd2hlbiBsb29raW5nCiAgIGF0IGRldmljZXMgYW5kIHByaW50ZXJzLgogICAKMjAwMS0xMC0wMSAxNjo0NSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgTmV3IHN0dWZmIGluIDQuMi4yCiAgIAoyMDAxLTEwLTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xOgoKICAgbWFrZSBzbm1wd2FsayBkZWZhdWx0IHRvIGRldGVjdGluZyBpbGxlZ2FsIE9JRCBpbmNyZWFzZXMuICAtQ2MgdHVybnMKICAgaXQgb2ZmIGluc3RlYWQgb2Ygb24uCiAgIAoyMDAxLTEwLTAxIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZWRpdGluZyB0d2Vha3MgYnkgSm9obiB0byBjb3VudCB0aGluZ3MgcHJvcGVybHkuICBXZXMgbG9vc2VzIHRoZQogICBhYmlsaXR5IHRvIGNvdW50IGJleW9uZCB0aGUgbnVtYmVyIDIuCiAgIAoyMDAxLTEwLTAxIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZGl0dG8uCiAgIAoyMDAxLTEwLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgVmFyaW91cyBjb3B5cmlnaHQgdXBkYXRlcy4KICAgCjIwMDEtMTAtMDEgMDI6NTIgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCAjaW5jbHVkZSAic25tcF9sb2dnaW5nLmgiIHRvIGF2b2lkIGNvbXBpbGF0aW9uIHByb2JsZW1zIG9uCiAgICAgICBzb21lIHBsYXRmb3JtcyBpbnRyb2R1Y2VkIGJ5IG5ldyBlcnJvciBtZXNzYWdlcy4gU2VlOgogICAgICAgPFVSTDpodHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFpZD00NjU4MDcmZ3JvdXBfaWQ9MTI2OTQmYXRpZD0xMTI2OTQ+CiAgIAoyMDAxLTA5LTI5IDA2OjA2ICBuYmEKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIEFkZCBhIG1pc3NpbmcgcHJvdG90eXBlIGZvciBzbm1wX3JlYWxsb2NfYnlfdHlwZQogICAKMjAwMS0wOS0yOSAwNjowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgRml4IGEgYmFkICNpZmRlZiBwYXJhbnRoZXNlcwogICAKMjAwMS0wOS0yNiAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBzbXV4IGlzICpub3QqIGEgcHJvcGVyIGRlbGVnYXRpb24gc3ViYWdlbnQuCiAgIAoyMDAxLTA5LTI1IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUzICkKICAgCjIwMDEtMDktMjUgMTE6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzY2FwaS5oOgoKICAgQmV0dGVyIGVycm9yIG1lc3NhZ2VzIHdoZW4gZW5jcnlwdGlvbiBzdXBwb3J0IGlzbid0IGF2YWlsYWJsZS4KICAgCjIwMDEtMDktMjUgMDc6NTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGFub3RoZXIgc3BhY2UgdGhhdCB3b3VsZCBtYWtlIHRoZSB0ZXN0IHN1aXRlIGZhaWwKICAgCjIwMDEtMDktMjUgMDc6NTMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZQogICAKMjAwMS0wOS0yNSAwNTo0MyAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oOgoKICAgICAtIGluY29ycG9yYXRlIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGZyb20gbWFpbiBicmFuY2ggdG8gYXZvaWQKICAgICAgIGZpeGVkIGxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTI1IDA1OjQxICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSB1c2UgcmVsb2NhdGluZyBidWZmZXIgdmVyc2lvbiBvZiBzcHJpbnQgZnVuY3Rpb25zCiAgIAoyMDAxLTA5LTI1IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHBhcnNlLmg6CgogICAgIC0gYWRkIHJlbG9jYXRpbmcgYnVmZmVyIGNvZGUgZnJvbSBtYWluIGJyYW5jaAogICAKMjAwMS0wOS0yNSAwNTozOSAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBhZGQgc25tcF9yZWFsbG9jKCkgYW5kIHNubXBfc3RyY2F0IGZ1bmN0aW9ucyB3aGljaCB0aGUgcmVsb2NhdGluZwogICAgICAgYnVmZmVyIGNvZGUgdXNlcwogICAKMjAwMS0wOS0yMSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBHbGVubiBNYW5zZmllbGQgdG8gZml4IGludGVyZmFjZSBjb3VudGluZyBvbiBpbnRlcmZhY2VzCiAgIHdpdGhvdXQgaXAgYWRkcmVzc2VzLgogICAKMjAwMS0wOS0yMCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgY2hlY2sgc2tpcF93aGl0ZSgpIHJldHVybiAoYXMgbWVudGlvbmVkIGluIHBhdGNoICM0NjIyMDEpLgogICAKMjAwMS0wOS0yMCAxMTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeGVkIGEgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93IGJ1ZyBpbiBzcHJpbnRfYXNjaWlzdHJpbmcgYXMgcG9pbnRlZAogICBvdXQgYnkgYnVnICM0NjMyMjYuCiAgIAoyMDAxLTA5LTIwIDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IHdhcm4gYWJvdXQgbWlzc2luZyBvcGVuc3NsIHVubGVzcyBleHBsaWNpdGx5IGFza2VkIChhbmQgdGhlbiBlcnJvcikuCiAgIAoyMDAxLTA5LTIwIDA5OjEyICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBtb3ZlIGhlYWRlcnMgYXJvdW5kIHRvIGZpeCBjb21waWxhdGlvbiBvbiBTb2xhcmlzIDIuNzsgc3lzL3N0cmVhbS5oCiAgICAgICBuZWVkcyB0byBiZSBpbmNsdWRlZCBiZWZvcmUgc3lzL3NvY2tldHZhci5oIGZvciB0aGlzIHBsYXRmb3JtLgogICAKMjAwMS0wOS0yMCAwOTowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgInN5c3RlbS5oIiB3aGljaCB1c2VzIHRoZSB0eXBlIGluX2FkZHJfdCB0aGVyZWJ5CiAgICAgICBjYXVzaW5nIHByb2JsZW1zLCBhbmQgc2VlbXMgdG8gYmUgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMS0wOS0yMCAwNjo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTWFrZSBzdXJlIEhhcnJpZSdzIG5hbWUgaXMgaW4gdGhlIHBhdGNoZXMgUkVBRE1FIGFzIHdlbGwgYXMgdGhlIG1haW5saW5lLgogICAKMjAwMS0wOS0yMCAwNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfZGVidWcuYywgc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIHByb3BlciBwcm90b3R5cGVzIGZvciBzb21lIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDktMTkgMTc6MTkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTIgKQogICAKMjAwMS0wOS0xOSAxNzowMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMSApCiAgIAoyMDAxLTA5LTE5IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMiApCiAgIAoyMDAxLTA5LTE4IDE3OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVbmRvIE5pZWxzJyBjaGFuZ2UgdG8gYWxsb3cgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gb3ZlcnJpZGUgLmNvbmYKICAgZmlsZXMuICBSaWdodCBnb2FsLCB3cm9uZyBicmFuY2ggdG8gZG8gaXQgaW4gYXMgaXQgYnJva2UgU05NUHYzIGFtb25nCiAgIG90aGVyIHRoaW5ncy4gIFRoZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGlzIHJhdGhlciBzZW5zaXRpdmUgdG8KICAgb3JkZXJpbmcuCiAgIAoyMDAxLTA5LTE4IDE1OjA4ICBuYmEKCiAgICogcy9kYXJ3aW4uaDoKCiAgIEZpeCBhbiBvdmVyc2lnaHQgaW4gdGhlIERhcndpbiBwYXRjaAogICAKMjAwMS0wOS0xOCAxNTowOCAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGFuIG92ZXJzaWdodCBpbiB0aGUgRGFyd2luIHBhdGNoZXMKICAgCjIwMDEtMDktMTcgMDk6MDAgIG5iYQoKICAgKiBzL2Rhcndpbi5oOgoKICAgVGhlIGRhcndpbiBzeXN0ZW0gZmlsZSwgd2hpY2ggSSBmb3Jnb3Qgd2hlbiBjb21taXR0aW5nIHRoZSByZXN0IG9mCiAgIHRoZSBkYXJ3aW4gcGF0Y2guCiAgIAoyMDAxLTA5LTE3IDA3OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGF1dG9oZWFkZXIgcnVuCiAgIAoyMDAxLTA5LTE3IDA0OjEzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBuZXdsaW5lcyBpbnNpZGUgdXNhZ2Ugc3RyaW5nLgogICAKMjAwMS0wOS0xNiAxNDo1NiAgbmJhCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBNb3ZlIHRoZSBzbXV4X2xpc3Rlbl9zZCB2YXJpYWJsZSB0byBzbXV4LmMuIFRoaXMgd2F5IGl0IHdpbGwgYmUgaW4gdGhlCiAgIGxpYnJhcnkgc28gdGhlIGxpbmtlciB3b250IGJlIHVwc2V0IHdoZW4geW91IGxpbmsgd2l0aCB0aGUgYWdlbnQgbGlicmFyeS4KICAgCjIwMDEtMDktMTYgMTQ6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBzL29wZW5ic2QuaDoKCiAgIFBhdGNoZXMgZm9yIE9wZW5CU0QgMi45CiAgIAoyMDAxLTA5LTE2IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBkaXNraW8gc3VwcG9ydCBmb3IgRnJlZUJTRDQuIFRoYW5rcyB0byBZaW1pbiBHZQogICAKMjAwMS0wOS0xNiAxNDoxNiAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgUGF0Y2hlcyB0byBzdXBwb3J0IERhcndpbiAoTWFjIE9TL1gpCiAgIFRoYW5rcyB0byBUZXggQ2xheXRvbiA8dGV4QGRhcnR3YXJlLmNvbT4KICAgCjIwMDEtMDktMTYgMTQ6MDMgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGVhZGVyIHJlYXJyYW5nZW1lbnRzIHRvIG1ha2UgQlNEJ3MgaGFwcHkgYWZ0ZXIgdGhlIFdJTjMyIHBhdGNoCiAgIAoyMDAxLTA5LTE1IDA2OjA4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGFyZ3VtZW50IHRvIHNucHJpbnRmIChlcnJwcmUgY29ycmVzcG9uZGluZyB0byAlcykgLS0KICAgICAgIGl0IHdhcyBtaXNzaW5nIGZyb20gdGhlIHBhdGNoICgjNDUyMDI3KQogICAKMjAwMS0wOS0xNCAxNzoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIGRlYnVnZ2luZyBjb21waWxhdGlvbiBmaXhlcwogICAKMjAwMS0wOS0xNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtYW55IG5lZWRlZCBjaGFuZ2VzIGZyb20gbWFpbmxpbmUgbWVyZ2VkIGludG8gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDEtMDktMTQgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgUGF0Y2ggIzQ1MjAyNyBmcm9tIE1hcmN1cyBNZWlzc25lcjoKICAgICBzZWN1cml0eSBmaXggdG8gbWFrZSBzdXJlIHRoYXQgbG9uZyBhc24gbGVuZ3RocyBjYW4ndCBiZSB1c2VkIGFuZAogICAgIGFyZW4ndCBpbXByb3Blcmx5IGNhc2VkIHRvIGEgc2lnbmVkIHZhbHVlLgogICAKMjAwMS0wOS0xNCAxNDoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNDMyOTgyIGZyb20gSG9sbGlzOiBmaXggLS13aXRoLWxpYndyYXAgd2l0aG91dCBhIHBhdGggb3B0aW9uCiAgIAoyMDAxLTA5LTE0IDEzOjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIG1pYklJL3VkcFRhYmxlLmM6CgogICBTb2xhcmlzIHN1cHBvcnQgZm9yIHVkcFRhYmxlLgogICBUaGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIDxqc2ZASW50ZXJGYWNlLUFHLmNvbT4KICAgCjIwMDEtMDktMTQgMDk6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGZyb20gcGF0Y2ggIzQyMzQ2NjogYWRkIGFiaWxpdHkgdG8gdXNlIHRoaXMgZmlsZSB3aXRoaW4gdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgQWRkZWQgY29uZmlnLmggZmlsZSBmb3IgYm9ybGFuZCBjb21waWxlcnMgKHdoaWNoIGRpZmZlcnMgc2xpZ2h0bHkpLgogICAgIEZyb20gcGF0Y2ggIzQyMzQ2NgogICAKMjAwMS0wOS0xNCAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgaXBBZGRyLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYywgdmFyX3JvdXRlLmM6CgogICBNaWItMiBzdXBwb3J0IGZvciBXaW5kb3dzIHN5c3RlbXMuCiAgICpNYW55KiB0aGFua3MgdG8gTGF0aGEgUywgZm9yIGZpbGxpbmcgdGhpcyBsb25nLWF3YWl0ZWQgbmVlZC4KICAgCjIwMDEtMDktMTQgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCBpcEFkZHIuYywgdGNwLmMsIHRjcFRhYmxlLmMsCiAgIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgTW92ZSBwYWNrYWdlLXByb3ZpZGVkIGhlYWRlciBpbmNsdWRlcyAoJ21pYmluY2wnIGFuZCAndXRpbF9mdW5jcycpCiAgIHRvIGFmdGVyIHRoZSBzeXN0ZW0gaW5jbHVkZXMuICBUaGlzIHNob3VsZG4ndCBhZmZlY3QgbW9zdCBzeXN0ZW1zLAogICBidXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgV2luZG93cyBwb3J0LgogICAKMjAwMS0wOS0xNCAwODoyOCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgUHJvcG9nYXRlIHRlc3QgZm9yIDxuZXRpbmV0L2lwX2ljbXAuaD4gdGhyb3VnaCB0byB0aGUgYml0IHRoYXQgZG9lcyB0aGUgd29yay4KICAgCiAgICAgKE91ciBpbGx1c3RyaW91cyBsZWFkZXIgY2xlYXJseSBoYXMgbm8gY29uZmlkZW5jZSBpbiB0aGUgY29tcGV0YW5jZQogICAgICBvZiBoaXMgbWluaW9ucy4gIEknZCB0YWtlIHVtYnJhZ2UsIGlmIGhlIHdhc24ndCByaWdodCEpCiAgIAoyMDAxLTA5LTE0IDA4OjAxICBkdHMxMgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgQWRkIHRlc3QgZm9yIDxuZXRpbmV0L2lwX2ljbXAuaD4KICAgCjIwMDEtMDktMTQgMDc6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIGlwQWRkci5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgV3JhcCB2YXJpb3VzICNpbmNsdWRlcyB3aXRoIGFwcHJvcHJpYXRlICNpZiBIQVZFX1hYWF9IIGRlY2xhcmF0aW9ucwogICAod2hlcmUgdGhpcyBoYXMgbm90IGFscmVhZHkgYmVlbiBkb25lKS4KICAgCjIwMDEtMDktMTEgMTQ6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1lbW9yeV9mcmVlYnNkMi5oLCBtZW1vcnlfbmV0YnNkMS5jLCBtZW1vcnlfbmV0YnNkMS5oLAogICBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgsIHZtc3RhdC5jLCB2bXN0YXQuaCwKICAgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oLCB2bXN0YXRfZnJlZWJzZDIuYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBNYWtlIHN1cmUgdGhhdCB0aGUgT0lEIGRlZmluZXMgYXJlIG9ubHkgaW4gb25lIHBsYWNlLiBObyBmdW5jdGlvbmFsIGNoYW5nZS4KICAgCjIwMDEtMDktMTEgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmM6CgogICBIZWFkZXIgcmVvcmRlcmluZyB0byBhbGxvdyBkbWFsbG9jIHRvIHdvcmsuCiAgIAoyMDAxLTA5LTExIDE0OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYzoKCiAgIEZpeCBhIG1pc3BsYWNlcyA7IGluIGEgbG9vcC4KICAgVGhhbmtzIHRvIE1hbGEgUmFtYWtyaXNobmFuIDxtYWxhQHJvdXRlc2NpZW5jZS5jb20+CiAgIGFuZCBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgPGpzZkBJbnRlckZhY2UtQUcuY29tPgogICAKMjAwMS0wOS0xMCAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY2hhbmdlIGludGVyZmFjZSBjb3VudGluZyB0byBoYXBwZW4gbW9yZSBmcmVxdWVudGx5IHRvIGRldGVjdCBuZXcgY2FyZHMuCiAgICAgLSBzZWUgYnVnICM0NTcyOTAKICAgCjIwMDEtMDktMTAgMTE6MTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtUCB0byB1c2FnZSBpdCBwcmludHMgdG8gc3RkZXJyIChidWcgIzQ1OTM3MikKICAgCjIwMDEtMDktMTAgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGZpeCB3aGl0ZXNwYWNlIHBhcnNpbmcgYnVnIHJlcG9ydGVkIGl0IGJ1ZyAjNDU3MjY3LgogICAKMjAwMS0wOS0xMCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBhcHBseSBmcmVlYnNkIHNwZWNpZmljIHBhdGNoIGZyb20gYnVnIzQ1NTkyNCB0byBmaXggdm1zdGF0J3Mgc3dhcCByZXBvcnQuCiAgIAoyMDAxLTA5LTEwIDEwOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFVzZSBhIG1vcmUgcG9ydGFibGUgREJQUlQgbWFjcm8uCiAgIAoyMDAxLTA5LTEwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgUm93U3RhdHVzIHZhbHVlIGNoZWNrcyBtZW50aW9uZWQgaW4gYnVnIzQ0OTUwMgogICAKMjAwMS0wOS0wNCAwNzoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGJyZWFrOyBhZnRlciBwcm9jZXNzaW5nIC1QIG9wdGlvbiwgbm90ZWQgYnkgQm90b25kCiAgICAgICBUYXJuYXkgKHNlZSBwYXRjaCAjNDU4MzI3KQogICAKMjAwMS0wOC0zMSAxMzoxOSAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NSSVBULU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgUkVBRE1FLm1pYnMsIHJmY2xpc3QsCiAgIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBvZiBESVNNQU4tU0NSSVBULU1JQiwgYW5kIGEgZmV3IGNvc2V0aWMgY2hhbmdlcwogICB0byBzbWlzdHJpcCBldCBhbC4KICAgCjIwMDEtMDgtMzEgMTM6MTggIG5iYQoKICAgKiBsdGNvbmZpZzoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sIDEuNC4gVGhpcyBlbnN1cmVzIHRoYXQgbWFrZSBpbnN0YWxsIHdpbGwgd29yayBmb3IgTmV0QlNECiAgIAoyMDAxLTA4LTMxIDEzOjE3ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICBVcGRhdGUgdG8gbGlidG9vbCAxLjQuIFRoaXMgd2lsIGVuc3VyZSB0aGF0IG1ha2UgaW5zdGFsbCB3b3JrIG9uIE5ldEJTRAogICAKMjAwMS0wOC0yOCAxNTowNCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggYSBiYWQgZml4CiAgIAoyMDAxLTA4LTI4IDE1OjAzICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oOgoKICAgQysrIGJyYWNrZXQgdGhlIGluc3RhbGxlZCBzZ2VudCBoZWFkZXJzCiAgIAoyMDAxLTA4LTI4IDA3OjM1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBhIG1hbGZvcm1lZCBtdWx0aS1saW5lIHN0cmluZwogICAKMjAwMS0wOC0yOCAwMzowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgPHRjcGQuaD4gaWYgdXNpbmcgbGlid3JhcCwgbm90ZWQgYnkgTmF0aGFuCiAgICAgICBOZXVsaW5nZXIgKHBhdGNoICM0NTM4MzEpLgogICAKMjAwMS0wOC0yOCAwMjozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjcgMjI6MTUgIG5iYQoKICAgKiBtYW4vOiBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBGaXggc29tZSBwbGFjZXMgd2hlcmUgYWN0dWFsIGxpbmVzIHN0YXJ0ZWQgd2l0aCBhIHBlcmlvZC4KICAgCjIwMDEtMDgtMTcgMTU6MTIgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBGaXggbWlzc3BlbGxlZCBtYW4gcGFnZSBuYW1lIChzbm1wZXJyb3IgPT4gc25tcF9wZXJyb3IpCiAgIAoyMDAxLTA4LTE3IDE1OjA5ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2g6CgogICBJQU5BIGhhcyBtb3ZlZCB0aGVpciBtaWJzIGludG8gYW4gaWFuYS5taWIgZGlyZWN0b3J5LgogICBGaXggUkZDIG51bWJlciBmb3IgUk1PTi1NSUIuCiAgIE1ha2UgIm1ha2UgYWxsbWFpYnMiIGV4dHJhY3QgbWlicyB0byBhbm90aGVyIGRpcmVjdG9yeS4KICAgCjIwMDEtMDgtMTcgMTU6MDMgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBZZXQgYW5vdGhlciB1cGRhdGUgZnJvbSBmdHAuZ251Lm9yZwogICAKMjAwMS0wOC0xNyAxNDowOSAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIEFkZCBzb21lIG5lZWRlZCBlcnJvciBjaGVja2luZyB0byB0aGUgdWlkL2dpZCBwYXJzaW5nIGNvZGUuCiAgIEFsbG93IHN5bWJvbGljIHVpZC9naWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wOC0xNyAxNDowNyAgbmJhCgogICAqIEZBUToKCiAgIEFkZCBhIG1pc3NpbmcgYXJndW1lbnQgdG8gdGhlIHNubXB0cmFwIGV4YW1wbGVzLgogICAKMjAwMS0wOC0wNyAxNDo1NSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL21pYi5jOgoKICAgVGltZXRpY2tzIGFyZSB1bnNpZ2VkISBUaGFua3MgdG8gSm9zaCBXaWxtZXMgPGpvc2gtdWNkQGhpdGNoaGlrZXIub3JnPgogICAKMjAwMS0wOC0wNyAxNDo0MiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENoYW5nZXMgdG8gYWxsb3cgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBvdmVycmlkZSBzbm1wLmNvbmYgc2V0dGluZ3MuCiAgIAoyMDAxLTA4LTA3IDE0OjAyICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gb2YgSUFOQWlmVHlwZS1NSUIuCiAgIEFkZCByZmMgMzE0NCBJTlRFUkZBQ0VUT1BOLU1JQiB0byByZmNsaXN0LgogICAKMjAwMS0wOC0wNyAxNDowMCAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gZnJvbSBmdHAuZ251Lm9yZwogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX3BlcnJvci4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcGNtZC4xLAogICBtYW4vc25tcHRyYXBkLjg6CgogICBBIGJ1bmNoIG9mIG1pbm9yIGZpeGVzIHRvIHVzYWdlIG1lc3NhZ2VzIGFuZCBtYW51YWwgcGFnZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU2ICBuYmEKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgRml4IHBhcnNpbmcgb2Ygb2lkIHZhbHVlcyBmb3Igc2V0CiAgIAoyMDAxLTA4LTA3IDA3OjA5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMjYgMDE6NDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAoyMDAxLTA3LTIzIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBjYXJlZnVsbHkgY29uc3RydWN0IHRtcCBmaWxlIG5hbWVzLgogICAKMjAwMS0wNy0yMyAxMDo1MyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIHNldGdyb3VwcyB3aGVuIGF2YWlsYWJsZS4KICAgCjIwMDEtMDctMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgYWRkIE5FVFdPUkstU0VSVklDRVMtTUlCIHRvIG1pYiByZXF1aXJlIGxpc3QKICAgCjIwMDEtMDctMDkgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGZpeCB0cmFwc2VzcyBwYXJzaW5nIHNvIGFzIHRvOgogICAgIC0gc2V0IHRoZSBkZWZhdWx0IHBvcnQgdG8gMTYyCiAgICAgLSBkb24ndCBmcmVlIG1lbW9yeSBwYXNzZWQgdG8gc25tcF9wYXJzZV9hcmdzKCkgc2luY2UKICAgICAgIHNubXBfcGFyc2VfYXJncyBpcyBicm9rZW4gYW5kIG5lZWRzIHRvIGNvcHkgbWVtb3J5IHJhdGhlciB0aGFuCiAgICAgICBqdXN0IG1ha2UgdXNlIG9mIGl0LgogICAKMjAwMS0wNi0yNyAxNTo0OCAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgU2ltcGxlIGZpeCB0byB0cmFwc2VzcyBhcmd1bWVudCBsaXN0CiAgIAoyMDAxLTA2LTI1IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCAnbWlicyAiIicuCiAgIAoyMDAxLTA2LTIyIDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBbGxvdyBpbnRlcmZhY2Ugc25tcGQuY29uZiB0b2tlbnMgdG8gY29tcGxldGVseSBvdmVycmlkZSBzeXN0ZW0KICAgdmFsdWVzLiAgW2J1ZyM0MjY5NzVdCiAgIAoyMDAxLTA2LTIyIDExOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZGVmaW5lIHVsb25nX3JldAogICAKMjAwMS0wNi0yMiAwMTo0NCAgZHRzMTIKCiAgICogRkFRLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEluY2x1ZGUgYSB3YXJuaW5nIG9mIHRoZSBleHBlcmltZW50YWwgbmF0dXJlIG9mIEFnZW50WCBpbiB0aGUgbWFuIHBhZ2UsCiAgIGFuZCB1cGRhdGUgdGhlIEZBUSB0byByZWZsZWN0IHRoZSBmdWxsZXIgaW50ZWdyYXRpb24gb2YgdGhpcyBzdXBwb3J0LgogICAKMjAwMS0wNi0yMSAxNToyMiAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBFbGltaW5hdGUgbG9uZyBsb25nIHZhcmlhYmxlcwogICAKMjAwMS0wNi0yMSAxNToyMiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBXYXJuIGFib3V0IGRlcHJlY2F0ZWQgLWIgLXcgYW5kIC1pIG9wdGlvbnMuCiAgIAoyMDAxLTA2LTIxIDE1OjE1ICBuYmEKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXBzZXQuMSwgc25tcHdhbGsuMToKCiAgIFVwZGF0ZSB0aW1lIHN0YW1wcwogICAKMjAwMS0wNi0yMSAxNTowOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICBBZGQgLW0gYW5kIC1NIG9wdGlvbnMgdG8gaGVhZGVyLiBVcGRhdGUgU0VFIEFMU08gdG8gcmVmZXJlbmNlIHNubXBjbWQKICAgYW5kIFJGQyAyNTc4LTgwIGluIHBsYWNlIG9mIDExNTUKICAgCjIwMDEtMDYtMjEgMTU6MDEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggcGFyc2luZyBvZiB4eCAuLi46Oj0geyB5eSB9CiAgIAoyMDAxLTA2LTIxIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICB0eXBvcyAoSU9EIC0+IE9JRCkKICAgCjIwMDEtMDYtMjEgMTA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBtZW50aW9uICJtYXN0ZXIgYWdlbnR4IgogICAtIGZpeCBjb25maWcgZmlsZSByZS1yZWFkaW5nIG9pZC4KICAgCjIwMDEtMDYtMjEgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIG1ha2Ugc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24gYWNjZXB0ICIiIHN0cmluZ3MuCiAgIAoyMDAxLTA2LTIxIDA5OjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gQXBwbGllZCBhcmcgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIERhdmlkIEVpc25lcgogICAKMjAwMS0wNi0xNCAyMzoxOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIERvY3VtZW50IC1uIG9wdGlvbgogICAKMjAwMS0wNi0xMiAxNToxNCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUHJvcGVybHkgZGV0ZWN0IGFuZCBkaWFnbm9zZSBiYWQgYm9vbGVhbiBhbmQgaW50ZWdlciBjb25maWd1cmF0aW9uIHZhbHVlcwogICAKMjAwMS0wNi0xMiAxNToxMiAgbmJhCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmM6CgogICBQcm9wZXJseSBkaWFnbm9zZSBiYWQgLUMgb3B0aW9ucwogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0xMSAxNTo0NCAgbmJhCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjE6CgogICBBZGQgYW4gb3B0aW9ucyAoLUNjKSB0byBzbm1wd2FsayB0aGF0IHdpbGwgdmFsaWRhdGUgdGhhdCB0aGUgcmV0dXJuZWQgb2JqZWN0cwogICBhcmUgaW5kZWVkIGxleGljb2dyYXBoaWNhbGx5IGluY3JlYXNpbmcuCiAgIAoyMDAxLTA2LTExIDE1OjQzICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmMsIG1hbi9zbm1wc2V0LjEsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFsbG93IGEgc2ltcGxlciBzbm1wc2V0IG5vdGF0aW9uIHdoZW4gTUlCIGRhdGEgYXJlIGxvYWRlZDogVXNpbmcgJz0nIGZvcgogICB0eXBlIHR5cGUgd2lsbCBpbmZlciBpdCBmcm9tIHRoZSBNSUIuCiAgIAoyMDAxLTA2LTExIDE1OjM5ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgRml4IHNvbWUgbG9uZyBzdGFuZGluZyBidWdzIHdoZW4gc2V2ZXJhbCBNSUIgZmlsZXMgZGVmaW5lIHRoZSBzYW1lIG9iamVjdHMKICAgd2l0aCBkaWZmZXJlbnQgbmFtZXMuIEhvcGVmdWxseSB0aGUgcmVzdWx0cyB3aWxsIGJlIGNvbnNpc3RlbnQgbm93LgogICAKMjAwMS0wNi0xMSAxMjoxMiAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIEFub3RoZXIgdHJ5IGF0IENvdW50ZXI2NCBwcm9ibGVtcywgdGhhbmtzIHRvIEphc29uIEdsb3Vkb24gPHNubXBAZ2xvdWRvbi5jb20+CiAgIAoyMDAxLTA2LTExIDExOjUyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggZm9yIGEgbWlzc2luZyAwLWJ5dGUgdG8gdGVybWluYXRlIGNvbW11bml0eSBzdHJpbmcuCiAgIFRoYW5rcyB0byAiS1VCT1RBLFRha2F5YSIgPHRha2F5YUBwby5udHRzLmNvLmpwPi4KICAgCjIwMDEtMDYtMDYgMjE6MzggIG5iYQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBVc2UgPHV0bXB4Lmg+IGlmIGF2YWlsYWJsZSAodG8gZml4IGNvdW50aW5nIHVzZXJzIGZvciBTb2xhcmlzKQogICAKMjAwMS0wNi0wNiAyMTozMyAgbmJhCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIE1lbnRpb24gLXMgYW5kIC1QIHBpZGZpbGUgYXJndW1lbnRzCiAgIAoyMDAxLTA2LTA2IDIxOjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc2VuZGluZyBvZiB0cmFwcyB3aXRob3V0IHZhcmJpbmRzCiAgIAoyMDAxLTA2LTA2IDIxOjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgTW9yZSBtZWFuaW5nZnVsIGFyZ3VtZW50cyB0byBzZXRQZXJyb3JzdGF0dXMgKHRydWUgZmlsZSBuYW1lcykKICAgCjIwMDEtMDUtMTcgMTI6MzYgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGEgVHJ1bHkgU3R1cGlkIEJ1ZyB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRSA8YWJla2F0c3VAY3lzb2xzLmNvbT4KICAgCjIwMDEtMDUtMDQgMDk6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGwgZnJvbSAlbGxkIHByaW50ZiBzeW50YXgKICAgCjIwMDEtMDUtMDQgMDc6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zYWxsIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjIwMDEtMDUtMDMgMTA6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgc25tcC10Yy5oIHRvIGluc3RhbGwgbGlzdAogICAKMjAwMS0wNS0wMiAwNzowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEFkZCAtVCBmbGFnIHRvIHVzYWdlIG91dHB1dC4KICAgCjIwMDEtMDUtMDEgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBGaXggdXNlIG9mIGEgLTEgYXNzaWduZWQgdG8gYSB1X2xvbmcgYXMgYSBmYWlsdXJlIGNoZWNraW5nIGNhc2UuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB3YWxrIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDEtMDQtMTcgMTI6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBHZXQgZGF0YSBmb3IgaHJTV1J1blBlcmZUYWJsZSBmb3IgY3lnd2luIHVuZGVyIE5UIChvciBiZXR0ZXIpCiAgIAoyMDAxLTA0LTE3IDExOjMzICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVwZGF0ZSB0byBhIHJlY2VudCB2ZXJzaW9uIG9mIGNvbmZpZy5ndWVzcy9jb25maWcuc3ViLiBVcGRhdGUgY29uZmlndXJlCiAgIHRvIGhhbmRsZSB0aGUgbmV3IE5ldEJTRCB2YXJpYW50IHRoYXQgaW5jbHVkZSB0aGUgb2JqZWN0IGZvcm1hdC4KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMDY6MDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwOTozMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIGZpeGVkIHNlZ2ZhdWx0IHdoZW4gcm93IGhhcyBob2xlcy4KICAgCjIwMDEtMDQtMDYgMTY6MjAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIEFkZGVkIGRvY3VtZW50b3Rpb24gZm9yIC1PdAogICAKMjAwMS0wNC0wNiAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgdHJhcHMvaW5mb3JtcyByZXZlcnNlZAogICAKMjAwMS0wNC0wNSAwOTozNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gc25tcF9vaWRfbWluX2NvbXBhcmUuCiAgIAoyMDAxLTA0LTA1IDA5OjEzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTA0LTA1IDA4OjIxICBzbGlmCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBtYWxsb2MgdG8gZGVjcmVhc2Ugc3RhY2sgc2l6ZSBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIEV4dGVuZCByZWNlbnQgJ3Bhc3MnIGNoYW5nZXMgdG8gJ3Bhc3NfcGVyc2lzdCcuICAoVGhhbmtzLCBNaWtlISkKICAgCjIwMDEtMDQtMDUgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgCjIwMDEtMDQtMDQgMTQ6NTYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xICkKICAgCjIwMDEtMDQtMDQgMTQ6NTUgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgQ2hhbmdlIHdvcmRpbmcgdG8gc2F5IDQuMiBsaW5lIGlzIHRoZSBsYXN0IHRvIHVzZSB0aGUgdWNkLXNubXAgbmFtZS4KICAgCjIwMDEtMDQtMDQgMTQ6NTEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMiAtPiBWNC4yLjEKCjIwMDEtMDQtMDQgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIGZpeCBtaXNzaW5nIHZhcmlhYmxlIG9uIHNvbGFyaXMgMi42CiAgIAoyMDAxLTA0LTA0IDE0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICB1c2Uga2lsbCAtVEVSTSBpbnN0ZWFkIG9mIGtpbGwgLVNJR1RFUk0gZm9yIHBvcnRhYmlsaXR5IChicmVha3Mgb24gc29sYXJpcykuCiAgIAoyMDAxLTA0LTA0IDEyOjM5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENsZWFudXAgZGVidWcgbWVzc2FnZXMsIGJ1aWxkLgogICAKMjAwMS0wNC0wNCAwOToxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXggbmV0d29yayBieXRlIG9yZGVyIGZvciBJcEFkZHJlc3MgZGlzcGxheWVkLgogICAKMjAwMS0wNC0wNCAwODo1MCAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcXVpZXQgZXhpdCBvbiBTSUdURVJNL1NJR0lOVCwgc2FtZSBhcyBzbm1wZC4KICAgCjIwMDEtMDQtMDQgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICBmaXggZm9yIGF1dG9fbmxpc3QgYm9ndXMgZGVmaW5pdGlvbnMgZm9yIG1hY2hpbmVzIHdpdGhvdXQgbmxpc3QuCiAgIAoyMDAxLTA0LTA0IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIHRvIHdoZW4gYWdlbnQgcmVtb3ZlcyAiY3JlYXRlVXNlciIgZGlyZWN0aXZlcy4KICAgCjIwMDEtMDQtMDQgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBBcHBsaWVkIHBhdGNoICM0MTIwODA6IGFkZCBmcmVlYnNkNSB0byBtb2R1bGUgaW5jbHVkZSBsaXN0LgogICAKMjAwMS0wNC0wNCAwODoxMiAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIERvY3VtZW50IGhvdyB0byBlbmFibGUgdGhlIEFnZW50WCBmYWNpbGl0eSBpbiB0aGUgbWFzdGVyIGFnZW50LgogICAKMjAwMS0wNC0wNCAwNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggYnVnICM0MTE5MTc6IGNoYW5nZSB3YWxrIGVuZCBjb25kaXRpb24gYXMgc3VnZ2VzdGVkIGJ5IHN1Ym1pdHRlci4KICAgCjIwMDEtMDQtMDQgMDc6NDMgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA0IDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRml4IHR5cG8gaW4gY2FzdCAobWlzc2luZyAnc3RydWN0JykKICAgCjIwMDEtMDQtMDQgMDc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBhIGxhcmdlciBtYWxsb2NlZCBidWZmZXIgd2hlbiBkZWNvZGluZyBhIGxhcmdlIGluY29taW5nIGVuY3J5cHRlZCBtZXNzYWdlLgogICAKMjAwMS0wNC0wNCAwNzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBMaW1pdCBzaXplIG9mIGhleCBtZXNzYWdlcyB0byAxLzV0aCBidWZmZXIgc2l6ZSAodG8gYmUgc2FmZSkuCiAgIAoyMDAxLTA0LTA0IDA3OjI0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgLSBjYWxsIGV4dGVybmFsIHNpZ25hbCBoYW5kbGVycyBiZWZvcmUgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCksCiAgICAgIHJhdGhlciB0aGFuIGFmdGVyIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpIGJ1dCBiZWZvcmUgc2VsZWN0KCkuCiAgICAgIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgcHJvYmxlbSB0aGF0IGNvdWxkIGFyaXNlIGlmIGEgc2lnbmFsIGhhbmRsZXIKICAgICAgY2xvc2VkIGEgc2Vzc2lvbiwgd2hpY2ggd291bGQgY2F1c2Ugc2VsZWN0KCkgdG8gcmV0dXJuIC0xIHdpdGgKICAgICAgRUJBREYsIGFuZCB0aHVzIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCiAgIAoyMDAxLTA0LTA0IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBFbnN1cmUgdGhhdCBjaGVja2luZyBmb3IgJ3N0YXR2ZnMnIGlzIGRvbmUgY29uc2lzdGVudGx5CiAgIAoyMDAxLTA0LTA0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBlbnN1cmUgdGhhdCAnZXhlY19jb21tYW5kJyBpcyB1c2VkIGNvbnNpc3RlbnRseSB3aXRoIHRoZSBhdmFpbGFiaWxpdHkgb2YgZXhlY3YKICAgCjIwMDEtMDQtMDQgMDY6NDUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMjI6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IG1heGltdW0gZW5jcnlwdGVkIHBhY2tldCBsZW5ndGggc3VwcG9ydCBmb3IgcmV2ZXJzZSBlbmNvZGVkIHBhY2tldHMuCiAgIAoyMDAxLTA0LTAzIDE4OjA3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgZml4IHJ3Y29tbXVuaXR5CiAgIAoyMDAxLTA0LTAzIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC93ZXNyZXN0YXJ0OgoKICAgcmVtb3ZlIG9sZCB1bnVzZWQgc2NyaXB0CiAgIAoyMDAxLTA0LTAzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9vcGVyYXRpb246CgogICBBZGQgc25tcGNvbmYgZGlyZWN0aXZlIHN1cHBvcnQgZm9yIHRoZSBuZXcgIm1hc3RlciIgdG9rZW4uCiAgIAoyMDAxLTA0LTAzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIEZpeCBidWcgaW4gbWVudXMgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgY29udGFpbmluZyBvbmx5ICJncm91cHMiLgogICAKMjAwMS0wNC0wMyAxNjo0MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlIG15IG5hbWUgLT4gbmV0LXNubXAgZGV2ZWxvcGVycy4KICAgCjIwMDEtMDQtMDMgMTU6MzYgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBtZW50aW9uIHNubXBjb25mCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICB1cmwgY2hhbmdlcyBtb3N0bHkuCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgNC4yLjEgdXBkYXRlIChwbGVhc2UgY2hlY2spLgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgZnRwIHNpdGUgdXBkYXRlLgogICAKMjAwMS0wNC0wMyAxNDowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGRlZCBhZ2VudHggdG8gZGVmYXVsdCBtb2R1bGVzIHRvIGNvbXBpbGUgaW4KICAgCjIwMDEtMDQtMDMgMTA6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGEgY29tbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBtaWIyYyBvdXRwdXQgZXhwbGFpbmluZyB0aGF0IGl0cwogICBtZXJlbHkgYSB0ZW1wbGF0ZS4KICAgCjIwMDEtMDQtMDMgMDg6MjcgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCwgRkFRLCBQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBXZWIgcGFnZS9mdHAgc2l0ZSB1cGRhdGVzLiAgVXNlcyB3d3cubmV0LXNubXAub3JnIGV2ZXJ5d2hlcmUgbm93LgogICAKMjAwMS0wNC0wMyAwNjoyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXggc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUuCiAgIAoyMDAxLTA0LTAzIDA2OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAyMzoyMiAgbmJhCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIEZpeCBhbiBpbmNvbXBsZXRlbHkgaW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDEtMDQtMDIgMjM6MjEgIG5iYQoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIFRoZSBhbnN3ZXJzIGZvciB0aGUgImxvYWQgd2hpY2ggZmlsZXMiIG1lbnUgYXJlIGtlcHQgc2VjcmV0IGZyb20gdGhlIGNvZGUKICAgdGhhdCBsb2FkcyB0aGUgZmlsZXMgLi4uLiBmaXhlZC4KICAgCjIwMDEtMDQtMDIgMjA6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mLmRpci9zbm1wdHJhcGQuY29uZi9mb3JtYXR0aW5nLAogICBzbm1wY29uZi5kaXIvc25tcHRyYXBkLmNvbmYvdHJhcGhhbmRsZToKCiAgIEFkZGVkIHNubXB0cmFwZCBjb25maWd1cmF0aW9uIGZpbGUgZGlyZWN0aXZlcyB0byBzbm1wY29uZi4KICAgCjIwMDEtMDQtMDIgMTA6MDggIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAoyMDAxLTA0LTAyIDA5OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAoyMDAxLTA0LTAyIDA4OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBVc2UgdGhlICdzdGFuZGFyZCcgY29uZmlnIGhhbmRsZXIgcmVnaXN0cmF0aW9uIHJvdXRpbmUsCiAgIGFuZCByZWNvZ25pc2UgdGhlIGNvbmZpZyBzZXR0aW5nICdtYXN0ZXIgYWxsJwogICAKMjAwMS0wNC0wMiAwNjo1MyAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHNvbWUgbWlzc2luZyBxdW90aW5nIG9uIC5JUCBwYXJhbWV0ZXJzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRS5hZ2VudHgsIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgbW92ZWQgYWdlbnR4IFJFQURNRSB0byB0b3AKICAgCjIwMDEtMDMtMzAgMDc6MjIgIGR0czEyCgogICAqIEZBUToKCiAgIFR5cG8gaW4gQWdlbnRYIFJFQURNRSBmaWxlbmFtZQogICAKMjAwMS0wMy0zMCAwNzoyMCAgZHRzMTIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4LCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIFByb3ZpZGUgJ21hc3RlcicgY29uZmlnIGRpcmVjdGl2ZSB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IHRvCiAgIGFjdGl2YXRlIGV4dGVuc2libGUgc3ViYWdlbnQgc3VwcG9ydC4KICAgICBJbml0aWFsbHkgcmVzdHJpY3RlZCB0byBBZ2VudFggc3VwcG9ydCBvbmx5LgogICAKMjAwMS0wMy0zMCAwMzo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICBVcGRhdGUgdG8gcmVmbGVjdCB0aGUgaW5jcmVhc2VkIG1hdHVyaXR5IG9mIHRoZSBBZ2VudFggaW1wbGVtZW50YXRpb24uCiAgIAoyMDAxLTAzLTMwIDAzOjM0ICBkdHMxMgoKICAgKiBGQVE6CgogICBUd2Vha2VkIHZhcmlvdXMgZW50cmllcywgYW5kIGFkZGVkIGEgZmV3IG5ldyBvbmVzLiAgR2VuZXJhbCBTaGllbGQgbWVkZGxpbmcuCiAgIAoyMDAxLTAzLTMwIDAxOjAwICBkdHMxMgoKICAgKiBSRUFETUU6CgogICBBZGQgcHJvbWluZW50IHdhcm5pbmcgcmVnYXJkaW5nIHVjZC1zbm1wID0+IG5ldC1zbm1wIHN3aXRjaC4KICAgCjIwMDEtMDMtMzAgMDA6NDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBpbnRlcnByZXRhdGlvbiBvZiAicHVyZSBudW1lcmljIiBwZWVybmFtZSBzdHJpbmdzIChpLmUuIGxpc3RlbiBvbiB0aGUKICAgICBzcGVjaWZpZWQgcG9ydCBvbiBhbGwgaW50ZXJmYWNlcykgLSBwcm9ibGVtIGlkZW50aWZpZWQgYnkgTWFsYSBSYW1ha3Jpc2huYW4uCiAgIAoyMDAxLTAzLTMwIDAwOjA0ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwbGFjZSBhdG9pL2F0b2wgd2l0aCBzdHJ0byh1KWwgd2hpY2ggaGFzIGJldHRlciBvdXQtb2YtcmFuZ2UgcmV0dXJucy4KICAgVGhpcyBpcyBub3QgYSBwZXJmZWN0IHNvbHV0aW9uLCBidXQgaXQgaXMgYmV0dGVyIC4uLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgbWlub3IgZm9ybWF0dGluZy4KICAgCjIwMDEtMDMtMjkgMTQ6MzMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBVbSwgZ290IHRoZSB5ZWFyIHJpZ2h0IHRoaXMgdGltZS4KICAgCjIwMDEtMDMtMjkgMTQ6MzIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB1cGRhdGUgZm9yIDIwMDE6IGFkZGVkIG15IHJlcXVpcmVkIE5BSSBCU0QgY29weXJpZ2h0LgogICAKMjAwMS0wMy0yOSAwODoyMyAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtZXJnZSBjaGFuZ2UgZnJvbSBtYWluIGJyYW5jaCAocmV0dXJuX3ZhbHVlPTEgc3RhdGVtZW50KS4KICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAyMjoxMiAgbmJhCgogICAqIG1pYnMvOiByZmNsaXN0LCByZmNtaWJzLmRpZmY6CgogICBBZGQgUHJpbnRlci1NSUIgdG8gdGhlIHJmY2xpc3Qgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwYXRjaC4KICAgCjIwMDEtMDMtMjggMTM6MDYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBQcm9wZXJseSBpZ25vcmUgbm9uLXJlc3BvbnNlIFBEVSdzIHdoZW4gZG9pbmcgYXN5bmMgdHJhbnNhY3Rpb24uCiAgIAoyMDAxLTAzLTI4IDEzOjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYzoKCiAgIEZpeCBpbmRleCBoYW5kbGluZyB0byBwcm9wZXJseSBhY2NlcHQgaW5kZXhpbmcgd2l0aCBUaW1lVGlja3MuCiAgIEltcGxlbWVudCAtSXIgdG8gZGlzYWJsZSBpbmRleCBjaGVja3MuCiAgIAoyMDAxLTAzLTI4IDA2OjIwICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMS5wcmUyICkKICAgCjIwMDEtMDMtMjcgMTA6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICAKMjAwMS0wMy0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDAyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9pcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IE1JQiBpbiBSRkMgMzA4MzogRE9DUy1CUEktTUlCCiAgIAoyMDAxLTAzLTIyIDE0OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIHMvY3lnd2luLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYzoKCiAgIE1ha2UgbW9zdCBvZiB0aGUgaG9zdCByZXNvdXJjZXMgbWliIGNvbXBpbGUgdW5kZXIgQ3lnd2luLiBXZSBjYW4gbm93IGRvCiAgIC0td2l0aC1taWItbW9kdWxlcz1ob3N0IC0td2l0aC1vdXQtbWliLW1vZHVsZXM9aG9zdC9ocl9uZXR3b3JrCiAgIAoyMDAxLTAzLTIyIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBmaXggaGVhZGVyX3NpbXBsZV90YWJsZSgpIGZvciB0b28gbG9uZyByZXF1ZXN0cwogICAKMjAwMS0wMy0yMiAwODoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJhZCBXZXM6IGZpbmQgYWxsIGluc3RhbmNlcyBvZiBjdXQtbi1wYXN0ZSBlcnJvcnMgYmVmb3JlIGNvbW1pdHRpbmcuCiAgIAoyMDAxLTAzLTIyIDA4OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQmFkIFdlczogZG9uJ3QgY2FsbCBmdW5jdGlvbiB3aXRob3V0IHRoZSAoKXMuICAoYXQgbGVhc3QgaW4gQykuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MjIgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCdWdmaXggZm9yIGNyYXNoIGF0IHNubXBfc2h1dGRvd24gdGltZSB3aXRoIE9TJ3MgdGhhdCBjaGVjayBwb2ludGVyCiAgIHZhbGlkaXR5IChlLmcuLCBGcmVlQlNEKQogICAKMjAwMS0wMy0yMSAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgam9pbiBicm9rZW4gc25tcF9sb2cgbGluZXMKICAgCjIwMDEtMDMtMjEgMDg6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLUYgKEkgdGhpbmspCiAgIAoyMDAxLTAzLTIxIDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggdmFyaWFibGUgdHlwZXMgKGludCAtPiBzaXplX3QpCiAgIAoyMDAxLTAzLTIwIDA4OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzL2xpbnV4Lmg6CgogICBGaXggdGhlIGF0VGFibGUgYW5kIGlwTmV0VG9wTWVkaWFUYWJsZSBmb3IgTGludXggdG8gcmV0dXJuIHRoZSBpZkluZGV4CiAgIAoyMDAxLTAzLTE5IDEzOjE0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgbWFuL3NubXBkZWx0YS4xOgoKICAgTWFqb3Igb3B0aW9uIHBhcnNpbmcgc3VyZ2VyeSB0byBjYXRoZXIgZm9yIHRoZSBnZXRvcHQgdXNpbmcgdmVyc2lvbiBvZgogICBzbm1wX3BhcnNlX2FyZ3MuIFNlZW1zIHRvIGhhdmUgYmVlbiBmb3Jnb3R0ZW4gd2hlbiB0aGUgcmVzdCBvZiB0aGUgYXBwcwogICB3ZXJlIHVwZGF0ZWQuCiAgIAoyMDAxLTAzLTE5IDEzOjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmUtb3JkZXIgc3lzL2NvbmYuaCBhbmQgc3lzL3BhcmFtLmggdG8gbWFrZSBGcmVlQlNELTUgaGFwcHkKICAgCjIwMDEtMDMtMTUgMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBmaXhlZCBidWcgIzQwNTAwMDogZHJvcHBlZCBzdXBwb3J0IGZvciBJUE9VVE5PUk9VVEVTLCBzaW5jZSBubwogICBjYWxjdWxhdGlvbiBvZiBpdCBzZWVtcyBjbG9zZSB0byBjb3JyZWN0LgogICAKMjAwMS0wMy0xNSAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICBmaXggcGFydCAyIG9mIGJ1ZyA0MDU1MTkgYWRkaW5nIGZ1bGxzb2NrIHRvIHVkcGluZXJyb3JzCiAgIAoyMDAxLTAzLTE1IDEzOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIGZpeCBidWcgIzQwODM4OCB3aGVyZSBtZW1tb3ZlIGlzIGNhbGxlZCB3aXRoIHRvbyBzaG9ydCBhIGxlbmd0aC4KICAgCjIwMDEtMDMtMTUgMTE6MjEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xLnByZTEgKQogICAKMjAwMS0wMy0xNSAwMzozNCAgamJwbgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBraWxsIC1TSUdLSUxMIGlzbid0IGxlZ2FsIHN5bnRheCBvbiBTb2xhcmlzIG9yIExpbnV4OyBjaGFuZ2VkIHRvIGtpbGwgLTkKICAgd2hpY2ggaXMgbGlrZWx5IHNhZmVyCiAgIAogICBkb24ndCBzZXQgcmV0dXJuX3ZhbHVlIHRvIDEgYWZ0ZXIga2lsbGluZyBzbm1wZCwgd2hpY2ggY2F1c2VzIHNwdXJpb3VzCiAgIHRlc3QgZmFpbHVyZXMKICAgCjIwMDEtMDMtMTQgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggaXBuZXR0b21lZGlhIGluZGV4aW5nIG9uIHNvbGFyaXMuCiAgIAoyMDAxLTAzLTE0IDEwOjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFVzZSBjb25maWcuaCwgZG9uJ3QgdXNlIHVjZC1zbm1wIGRpcmVjdG9yeSB0byBidWlsZCBpbiB0aGUgbWliZ3JvdXAgdHJlZS4KICAgCjIwMDEtMDMtMTQgMTA6MTggIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHF1aWV0ICJ3aGljaCIgb3V0cHV0LiAgbmV2ZXIgZW5kaW5nIHNhZ2EuLi4KICAgCjIwMDEtMDMtMTQgMTA6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBxdWlldCB1bnNpZ25lZCBsb25nIGNvbXBhcmUuCiAgIAoyMDAxLTAzLTE0IDEwOjAwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIEdldCBhIGRlY2wgb2YgaW5fYWRkcl90IGZyb20gbmV0aW5ldC9pbi5oLCB3aGVyZSBuZWNlc3NhcnkuCiAgIAoyMDAxLTAzLTE0IDEwOjAwICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEF2b2lkIHdhcm5pbmdzIG9mIHN0cnVjdCB0aW1ldmFsIGRlY2wgaW4gc3lzdGVtLmggYnkgaW5jbHVkaW5nICp0aW1lLmgqLgogICAKMjAwMS0wMy0xNCAwOTo0NyAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwKICAgCjIwMDEtMDMtMTQgMDk6NDAgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGRvbid0IHJ1biB0ZXN0cyB3aXRob3V0IG5lZWRlZCBwcm9ncmFtczogc25tcGQsIHNubXBnZXQsIHNubXBnZXRuZXh0LgogICAKMjAwMS0wMy0xNCAwODoyNCAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFByb3ZpZGUgYW4gZW1wdHkgRExMSUJTIHZhbHVlIGZvciBub24tZGxtb2QgdXNlcy4KICAgCjIwMDEtMDMtMTQgMDc6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBjYXN0IHVfbG9uZyB0byB1X2NoYXIgd2hlbiBzdG9yaW5nIDgtYml0IHZhbHVlcy4KICAgCjIwMDEtMDMtMTQgMDc6MzMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCB1bnNpZ25lZCBsZW5ndGggY29tcGFyZXMuCiAgIAoyMDAxLTAzLTE0IDA1OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCiAgIAoyMDAxLTAzLTEzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gY2hlY2sgZm9yIE5VTExzIGluIERFQlVHIG1zZwogICAKMjAwMS0wMy0xMiAxNDowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgRml4IHNvbWUgbWlub3IgbGVha3MuCiAgIAoyMDAxLTAzLTEyIDE0OjA1ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNvbWUgbWlub3IgZml4ZXMgdG8gYXJndW1lbnQgcHJvY2Vzc2luZywgaW5jbHVkaW5nIHRlcm1pbmF0aW5nIHNubXBkIG9uCiAgIGV4dHJhbmVvdXMgbm9uLW9wdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAzLTEwIDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQnVnICM0MDQ5ODg6IGRvbid0IHVzZSBpcHN0YXQuaXBzX2ZyYWd0aW1vdXQgYXMgYSBudW1iZXIgb2Ygc2Vjb25kcy4KICAgCjIwMDEtMDMtMDcgMTA6MjYgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgCiAgIG5ldyBERUxBWSBmdW5jdGlvbjsgc3RhcnQvc3RvcCBkYWVtb25zIHVzaW5nIG5ldyBTVEFSVFBST0cvU1RPUFBST0cgd2l0aCBERUxBWTsKICAgbG9nIGNvbW1hbmRzIGlzc3VlZCBhbmQgZmluYWwgcmVzdWx0IHRvIFNOTVBfVE1QRElSL2ludm9rZWQ7CiAgIHN1cHByZXNzICJraWxsIiBvdXRwdXQgdG8gaGVscCBDeWd3aW4gdXNlcnMgaGFwcHkuCiAgIAoyMDAxLTAzLTA3IDEwOjIzICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAKICAgYWRkIC1TIHBhcmFtZXRlciBmb3IgREVMQVkgc2Vjb25kczsgYWRkIHRyYXAgZm9yIGludGVycnVwdCBjb250cm9sOwogICBwYXNzIHRlc3QgbnVtYmVyIGFuZCBkaXNwbGF5LWhlYWRlci1vbmx5IHRvIGV2YWxfb25lc2NyaXB0LnNoOwogICBhZGQgd2hpY2ggdGVzdCB0byB2ZXJib3NlIGxvY2F0aW5nIG1lc3NhZ2VzIChDeWd3aW4gdXNlcyB0eXBlLCBub3Qgd2hpY2gpLgogICAKMjAwMS0wMy0wNyAxMDoyMCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoOgoKICAgCiAgIAogICBJbmNvcnBvcmF0ZSB0ZXN0IG51bWJlciBpbnRvIHRlc3QgcmVzdWx0cyBkaXIgbmFtZS4KICAgUHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGVzdCBudW1iZXIgYW5kIGRpc3BsYXktaGVhZGVyLW9ubHkgZmxhZy4KICAgCjIwMDEtMDMtMDcgMTA6MTkgIHNsaWYKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIAogICAKICAgIm1ha2UgY2xlYW4iIHJlbW92ZXMgYW55IHRlc3QgcmVzdWx0IGRpcnMgIi90bXAvc25tcC10ZXN0LSoiLgogICAKMjAwMS0wMy0wNyAxMDoxNSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NGFnZW50djJjdHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICAKICAgUmVwbGFjZSBzbGVlcCB3aXRoIGNvbW1lbnRlZCBvdXQgREVMQVkgOyBlYWNoIHN0YXJ0L3N0b3AgYWN0aW9uIG5vdwogICBpbnZva2VzIERFTEFZLgogICAKMjAwMS0wMy0wNyAxMDoxNCAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIAogICBSZXBsYWNlIHNsZWVwIHdpdGggREVMQVkuCiAgIAoyMDAxLTAzLTA3IDEwOjEzICBzbGlmCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgCiAgIAogICBDaGFuZ2UgZWxlbWVudCBzZXBhcmF0b3IgdG8gV2luMzIgJzsnIGluIERFRkFVTFRfTUlCUwogICBEZWNsYXJlIFdpbjMyIGhhcyBnZXRwaWQhLgogICAKMjAwMS0wMy0wNyAxMDoxMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIFdpbjMyIGluY2x1ZGUgaW8uaCB0byBkZWNsYXJlIG1rdGVtcC4KICAgRXhwYW5kIHRoZSBjb21tZW50IG5lYXIgbWt0ZW1wIHVzYWdlIHRvIGV4cGxhaW4gd2h5IGl0IGlzIG5lZWRlZC4KICAgCjIwMDEtMDMtMDcgMTA6MDkgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAKICAgCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBpZm5kZWYgV0lOMzIuICBpZmRlZiBTSUdBTFJNIGlzIHN1ZmZpY2llbnQuCiAgIAoyMDAxLTAzLTA3IDEwOjA3ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAKICAgCiAgIFdpbjMyIGluY2x1ZGUgcHJvY2Vzcy5oIHRvIGRlY2xhcmUgZ2V0cGlkLgogICAKMjAwMS0wMy0wNyAxMDowNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgCiAgIAogICBVc2UgcHJvcGVyIGRlZmluZSB0byBxdWFsaWZ5IGluY2x1ZGUtaW5nIGEgaGVhZGVyLgogICAKMjAwMS0wMy0wNyAxMDowNCAgc2xpZgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAKICAgCiAgIEFwcGx5IHRoZSB0aW1lIGdvbyBjb25zaXN0ZW50bHk6IG1vdmUgaGVhZGVyIGluY2x1ZGVzIG91dCBvZiBzeXN0ZW0uaC4KICAgCjIwMDEtMDMtMDYgMTA6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgZm9yY2UgaW5jbHVzaW9uIG9mIC1sZGwuCiAgIAoyMDAxLTAzLTA1IDA2OjMwICBzbGlmCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAKICAgCiAgIEZvbGxvdyBtZXRob2QgdXNhZ2UsIGRvbid0IGRlY2xhcmUgZ2V0SHdBZGRyZXNzIHVubGVzcyB1c2VkLgogICAKMjAwMS0wMy0wNSAwNjozMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIFJlbW92ZSBuZXN0ZWQgdmFyaWFibGUgZXAgLSBvbmUgYWxyZWFkeSBleGlzdHMuCiAgIAoyMDAxLTAzLTA1IDA2OjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIAogICAKICAgQ29tbWVudCBvdXQgZXhhbXBsZSB2YXJpYWJsZXMgdGhhdCBhcmUgbm90IHVzZWQuCiAgIAoyMDAxLTAzLTA0IDE3OjQxICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIAogICAKICAgcGF0Y2ggdG8gYnVpbGQgbW9yZSBtb2R1bGVzLCBpbmNsdWRpbmcgYWdlbnRYLCBvbiBXaW4zMiB1c2luZyBNUy1WQy4KICAgCjIwMDEtMDMtMDQgMTc6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgCiAgIAogICBwYXRjaCB0byBidWlsZCBtb3JlIG9mIHRoZSBhZ2VudCB1c2luZyBNUy1WQyBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBNVEEtTUlCLnR4dCwgTWFrZWZpbGUubWliLAogICBSRUFETUUubWlicywgVFVOTkVMLU1JQi50eHQsIGlhbmFsaXN0LCBtaWJmZXRjaCwgcmZjbGlzdCwKICAgcmZjbWlicy5kaWZmLCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkFpZlR5cGUtTUlCLCBwbHVzIGFkZGl0aW9uIG9mIFJFQURNRSBhbmQgdG9vbHMgdG8gZ2V0CiAgIGEgY29tcGxldGUgc2V0IG9mIElFVEYgTUlCIGZpbGVzLgogICAKMjAwMS0wMy0wMyAwNzoxMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgcHJvdG90eXBlCiAgIAoyMDAxLTAzLTAzIDA2OjM2ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44LCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEFkZCBhIG5ldyAlUCBmb3JtYXR0aW5nIHNlcXVlbmNlIHRvIHVzZXIgc3BlY2lmaWVkIGxvZyBmb3JtYXRzLiBJdCBwcmludAogICB0aGUgc2VjdXJpdHkgaW5mb3JtYXRpb24gZnJvbSB0aGUgUERVIChjb21tdW5pdHksIHVzZXIsIGNvbnRleHQgYXMgYXZhaWxhYmxlKQogICBBbHNvIG1vZGlmeSB0aGUgZGVmYXVsdCB0cmFwIG91dHB1dCB0byB1c2UgaXQuCiAgIAoyMDAxLTAzLTAzIDA2OjIxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggc3BlY2lmaWVycyBsaWtlICUuM3MKICAgCjIwMDEtMDMtMDMgMDY6MTAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdGhlIHBhcnNlciB0byBkaWFnbm9zZSBvaWQgc3BlY3MgbGlrZTo6PSB7IHNpbmdsZSB9CiAgIEJlIHNpbGVudCBmb3IgaW50ZXJuYWwgbGlua3Mgd2hlbiBtb3Zpbmcgbm9kZXMgdG8gdGhlIGFkb3B0aW9uIGxpc3QuIFRoaXMKICAgc2hvdWxkIGhlbHAgZ2l2aW5nIG9ubHkgYSBzaW5nbGUgbWVzc2FnZSBmb3IgbWlzc2luZyBpbXBvcnRzIG9mIGVudGVycHJpc2VzLgogICAKMjAwMS0wMy0wMiAxMzoyNCAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIAogICAKICAgY2xlYW51cCBmb3IgTVMtVkMgV2luMzIgYnVpbGQKICAgCjIwMDEtMDMtMDIgMDc6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHNvdXJjZXJmb3JnZSAtPiBzb3VyY2Vmb3JnZQogICAKMjAwMS0wMy0wMiAwNzoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byBmaXggdGltZXN0YW1wcyBpbiBzeW5jaG9ub3VzIGNhc2VzCiAgIAoyMDAxLTAzLTAyIDA2OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gc25tcF9vaWRfY29tcGFyZSgpLgogICAKMjAwMS0wMy0wMSAxOTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTIxIDE1OjMxICBuYmEKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjE6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MKICAgCjIwMDEtMDItMjEgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIGZpeCBidWcgIzEzMzQxNiAodTY0U3VidHJhY3Rpb24gbWF0aCkgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBzdWJtaXR0b3IKICAgCjIwMDEtMDItMjEgMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFRyeSBmaXhpbmcgaW5jb25zaXN0ZW50IGluZGV4aW5nIG9uIEJTRAogICAKMjAwMS0wMi0xOSAwODo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgCiAgIAogICAtIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE0IDE4OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgc25tcF9hbGFybS5oIGluY2x1ZGUKICAgCjIwMDEtMDItMTMgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgIzEzMDc0MCB1c2luZyBzdWdnZXN0ZWQgY2xvc2UoKSB3cmFwcGVyIGFyb3VuZCBta3N0ZW1wKCkKICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMTogZml4IG1lbW9yeSBsZWFrIGZvciBkdXBsaWNhdGUgb2lkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAyLTA5IDExOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYwNDogQWRkIHN1cHBvcnQgZm9yIFYxIHRyYXBzIGFuZCBpbnQvaW50MzIgZGlmZmVyZW5jZXMKICAgCjIwMDEtMDItMDkgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wNiAxNDoyNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBBZGQgYSBkZXBlbmRlbmN5IGZvciBsaWJzbm1wCiAgIAoyMDAxLTAyLTA2IDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBJbXBsZW1lbnQgcmF3IGludGVycnVwdCBhbmQgY29udGV4dCBzd2l0Y2ggY291bnRlcnMKICAgCjIwMDEtMDItMDYgMTQ6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBNYWtlIGRtYWxsb2MgaGFwcHkgYnkgZml4aW5nIGEgbWFsbG9jIHJlYWQgb3ZlcnJ1bgogICAKMjAwMS0wMi0wNiAxNDoxNiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jOgoKICAgQmFja3BvcnQgLU9UIG91dHB1dCB0byA0LTItcGF0Y2hlcyBicmFuY2gKICAgCjIwMDEtMDItMDYgMDY6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmaXgKICAgCjIwMDEtMDEtMzEgMjM6MDIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggdmFsdWUgdmFsaWRhdGlvbiBmb3Igc25tcHNldC9zbm1wdHJhcAogICAKMjAwMS0wMS0zMSAyMzowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBGaXggYmFkIHJldHVybiBvZiBhIHBvaW50ZXIgdG8gbm9uLXN0YXRpYyBzdG9yYWdlCiAgIAoyMDAxLTAxLTMxIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIEJhcnRlbHMgZm9yIGZyZWVic2QgZml4ZXMKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0yOSAxMzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggYnVnICMxMzA0MTA6ICBzZXQgdGhlIHdyaXRlX21ldGhvZCBpbiB2YXJfc211eCBiZWZvcmUgcmV0dXJuaW5nCiAgIE5VTEwgdG8gbWFrZSBzdXJlIHRoYXQgc2V0cyBoYXBwZW4gb24gT0lEcyB0aGF0IGRvbid0IGV4aXN0IGZpcnN0LgogICAKMjAwMS0wMS0yOSAxMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggc3VnZ2VzdGVkIGluIGJ1ZyAjMTI5OTQ4OiBjaGVjayBmb3IgLSBhcmd1bWVudHMgYXQgdGhlIGJlZ2dpbm5pbmcKICAgb2YgdGhlIGNvbW1hbmQgbGluZSB0b2tlbiAoZG9uJ3QgbWF0Y2ggbWliLTIsIGVnKS4KICAgCjIwMDEtMDEtMjkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGZpeCBzdWdnZXN0ZWQgaW4gYnVnICMxMjk4NzY6IGNoZWNrIGZvciBoaW50ICE9IE5VTEwgYmVmb3JlIGZyZWVpbmcuCiAgIAoyMDAxLTAxLTI2IDA1OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgRml4IGJ1ZyBvbiBGcmVlQlNEIHdoZW4gL2V0Yy9wcmludGNhcCBpcyBlbXB0eQogICAKMjAwMS0wMS0yNSAxNDozOCAgbmJhCgogICAqIG1pYnMvUk1PTi1NSUIudHh0OgoKICAgVXBkYXRlZCB0byBSRkMgMjgxOQogICAKMjAwMS0wMS0yNCAyMTozNyAgbmJhCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBsaWJyYXJpZXMgYmVmb3JlIGFnZW50IHNvIHRoYXQgbGlidG9vbCBjYW4gcmVsaW5rLgogICAKMjAwMS0wMS0yMCAwNTo1NCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIFR3byBDb3VudGVyNjQgZ2xpdGNoZXMgZGV0ZWN0ZWQgYnkgSmFzb24gR2xvdWRvbiA8c25tcEBnbG91ZG9uLmNvbT4KICAgCjIwMDEtMDEtMjAgMDU6NDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRG9udCBzZXQgdXAgdGhlIHNlbGVjdCBwYXJhbWV0ZXJzIGJlZm9yZSBjYWxsaW5nIGludGVycnVwdCBoYW5kbGVycyEKICAgVGhhbmtzIHRvIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAxLTIwIDA1OjQyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGVuY29kaW5nIG9mIEJJVFMgdmFyaWFibGUsIHRoYW5rcyB0byBGcmFuayBTdHJhdXNzCiAgIAoyMDAxLTAxLTIwIDA1OjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBSYXcgSU8gY291bnRlcnMgZnJvbSBKb2NoZW4gS21pZXRzY2gKICAgCjIwMDEtMDEtMjAgMDU6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgUHJlcGFyZSBmb3IgbW9yZSByYXcgY291bnRlcnMKICAgCjIwMDEtMDEtMTUgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgdW5kbyBhIGNoYW5nZSB0aGF0IHNuZWFrZWQgaW4gYnkgbWlzdGFrZQogICAKMjAwMS0wMS0xNSAxNDowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmg6CgogICBFeHRlbmQgdGhlIHN5c3RlbVN0YXRzLmNwdVJhdyBzZWN0aW9uIHRvIGluY2x1ZGUgbW9yZSByYXcgY291bnRlcnMgZm9yIHZhcmlvdXMKICAgb3BlcmF0aW5nIHN5c3RlbXMuICBCYXNpYyB0ZXN0aW5nIHBlcmZvcm1lZCBmb3IgU29sYXJpcyBhbmQgRnJlZUJTRC4gQ29kZQogICBndWVzc3RpbWF0ZSBmb3IgTmV0QlNEIGFuZCBCU0RpLgogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBiaXRfc3RyaW5nIGZpeGVzCiAgIC0gbWFrZSBzbm1wX2FkZF92YXIgY2FsbCBzbm1wX3BhcnNlX29pZCgpIGluc3RlYWQgb2YgcmVhZF9vYmppZCgpLgogICAKMjAwMS0wMS0xMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuc3RvcmFnZS5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTEwIDIxOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGNhbGxpbmcgb2YgaW5pdF9jYWxsYmFja3MgZXZlbiBpZiBpbml0X3NubXAgY2FsbGVkIHdpdGggTlVMTCBwYXJhbWV0ZXIKICAgCjIwMDEtMDEtMTAgMjE6NTMgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggYmFkbHkgYXBwbGllZCBwcmV2aW91cyBwYXRjaAogICAKMjAwMS0wMS0xMCAyMTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEZpeCB1c2FnZSBtZXNzYWdlICgtZSBpcyBub3cgLUNlKQogICAKMjAwMS0wMS0xMCAyMTo1MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4IGEgYmFkIGlwUm91dGVQcm90b2NvbCByZXR1cm4KICAgCjIwMDEtMDEtMTAgMjE6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggcHJvYmxlbSB3aGVuIHJ1bm5pbmcgLS13aXRob3V0LXJvb3QtYWNjZXNzIGZvciBGcmVlQlNELiBUaGFua3MgdG8KICAgQmVydCBEcmllaHVpcy4KICAgCjIwMDEtMDEtMTAgMjE6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgdGhlIGlmc3BlZWQgYXR0cmlidXRlIGZyb20gZHJpdmVyIHdoZW4gYXZhaWxhYmxlCiAgIAoyMDAxLTAxLTA5IDA2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBcHBseWluZyBwYXRjaCBmb3VuZCBpbiBidWcgIzEyNzI5OToKICAgICAtIHN3aXRjaCBpZkFkbWluIGFuZCBpZk9wZXJTdGF0dXMgbWVhbmluZ3MgdG8gbWF0Y2gga2VybmVsIHBhcmFtZXRlcnMgYmV0dGVyLgogICAKMjAwMS0wMS0wOSAwNjoyMSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgYWRkZWQgZ2V0b3B0LmMgdG8gbGlzdAogICAKMjAwMS0wMS0wOCAwODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUGF0Y2ggZnJvbSBBbmRlcnMgRWxsZWZzcnVkCiAgICAgLSBmaXggaHJfc3dydW4gd2hlbiBwcm9ncmFtcyBoYXZlIGV4aXRlZCBzbyB3ZSBkb24ndCB0cnVuY2F0ZQogICAgICAgZ2V0bmV4dCBxdWVyaWVzLgogICAKMjAwMS0wMS0wOCAwODoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IEJJVFMgZW5jb2RpbmcgbGVuZ3RoIHdoZW4gbWliIGtub3dsZWRnZSBpcyBhdmFpbGFibGUuCiAgIAoyMDAxLTAxLTA0IDIzOjE4ICBuYmEKCiAgICogYXBwcy86IHNubXBzZXQuYywgc25tcHRyYXAuYzoKCiAgIFRyeSBmaXhpbmcgcHJvYmxlbXMgd2l0aCBzbm1wc2V0IG9mIG5lZ2F0aXZlIHZhbHVlcwogICAKMjAwMS0wMS0wNCAyMzoxNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jOgoKICAgQWRkIHRoZSByYXcgY3B1IGNvdXRlcnMgZm9yIEJTRGkuIENvdXJ0ZXN5IEJlcnQgRHJpZWh1aXMuCiAgIAoyMDAxLTAxLTA0IDIzOjEyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIFNhdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzCiAgIAoyMDAxLTAxLTA0IDIzOjA5ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQWRkIG1pc3NpbmcgZG1hbGxvYyBzdXBwb3J0IGZvciBzb21lIGZpbGVzCiAgIAoyMDAxLTAxLTA0IDIzOjA0ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBFbnN1cmUgc29ydCBvcmRlciBmb3IgY29uZmlnLmguaW4KICAgCjIwMDEtMDEtMDQgMTA6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHNlbWktY29sb24gcHJvYmxlbS4gIFBhdGNoICMxMDMxMDEuCiAgIAoyMDAxLTAxLTAzIDA3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAvcHJvYy8lZC9jbWRsaW5lIG1heSBiZSBhbiBlbXB0eSBmaWxlIGZvciBzb21lIHByb2Nlc3Nlcy4gIFJldHVybiAiIiBpZiBzby4KICAgCjIwMDEtMDEtMDIgMDk6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBhZGQgYSAiJXMiIGZvcm1hdHRpbmcgc3RyaW5nIHRvIHRoZSBzeXNsb2coKSBjYWxsIChyZWRoYXQgYnVnICMxODE1MykuCiAgIAoyMDAwLTEyLTI5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gYmV0dGVyIGNoZWNraW5nIGZvciBmb3JtYXR0aW5nIG9mIHRoZSAvcHJvYy9uZXQvZGV2IGZpbGUgdG8gYXZvaWQKICAgICAgIGxpbnV4IGNvcmUgZHVtcHMgd2hlbiB0aGUga2VybmVsIG1pcy1iZWhhdmVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMTEzYWdlbnR4dHJhcDoKCiAgIC0gdHJhcCBBUEkgdGVzdGluZyBzdWl0ZSBlbmhhbmNlZCB0byB0ZXN0IG1vcmUgY2FzZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaDoKCiAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB3b3JrIG1vcmUgdmlhIGNhbGxiYWNrcyBhbmQgcmVtb3ZlIGlmZGVmcyBpbgogICAgIGFnZW50X3RyYXAuYwogICAtIE1ha2UgdGhlIGFnZW50X3RyYXAuYyBmaWxlIGNoZWNrIGZvciBjYWxsYmFjayByZWdpc3RyYXRpb25zIGFuZAogICAgIGhhbmRsZSBpdCBpbnRlcm5hbGx5IHVzaW5nIHRoZSBvbGQgdHJhcHNpbmsgc3VwcG9ydCBpZiBubyBjYWxsYmFjawogICAgIGlzIGZvdW5kLgogICAtIFRoaXMgZml4ZXMgdGhlIHByb2JsZW0gd2hlbiBpbml0X21pYl9tb2R1bGVzKCkgaXNuJ3QgY2FsbGVkIGluIHN1YmFnZW50cy4KICAgCjIwMDAtMTItMjcgMTY6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIG1ha2UgdGhlIGV4YW1wbGUgdHJhcHMgYmUgc2VudCB1c2luZyBhIGVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcCBvZiA5OQogICByYXRoZXIgdGhhbiAzLiAgV2UgbmVlZCB0byBkZWZpbmUgaXQgaW4gdGhlIG1pYiBzdGlsbC4KICAgCjIwMDAtMTItMjcgMTU6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGJyb2tlbiBjb21waWxlciBwcmVjZWRlbmNlIGFzIHJlcG9ydGVkIGluIHN1cHBvcnQgIzExMDQ3My4KICAgCjIwMDAtMTItMjIgMDg6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCByZXZlcnNlIGVuY29kaW5ncy4KICAgCjIwMDAtMTItMjIgMDY6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTIxIDE0OjQzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogZml4IHByb2JsZW0gd2l0aCBwb3NpdGlvbmFsIGNvbW11bml0eSBhcmd1bWVudCB0byBzbm1wbmV0c3RhdAogICAKMjAwMC0xMi0yMSAxNDozNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBtYWtlIHN1cmUgaW5pdF9taWJfaW50ZXJuYWxzIGlzIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW55dGhpbmcKICAgCXNlcmlvdXMgaW4gaW5pdF9taWIKICAgCjIwMDAtMTItMjEgMDg6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc3VwcG9ydCBmb3IgQklUUwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMS4yIC0+IFY0LjIKCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgoJLSAoTkVXUywgUkVBRE1FKTogdXBkYXRlcy4KCQoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgoJZW5zdXJlIG1pYmxvYWQudCB1c2VzIGNvcnJlY3QgTUlCRElSIGZvciB0ZXN0aW5nCgkKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCgktIChBR0VOVC50eHQsIEZBUSwgUkVBRE1FKTogY29udmVydCB1cmwncyB0byB3d3cubmV0c25tcC5vcmcuCgkKMjAwMC0xMi0wNCAwODo0NSAgaGFyZGFrZXIKCgktIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KCQoyMDAwLTEyLTAzIDA3OjI5ICBuYmEKCgktIHNubXB0cmFwZF9sb2cuYzogZm94IG1pc3NpbmcgbGVhZGluZyB6ZXJvZXMgZm9yICUuMmQgbGlrZSBmb3JtYXRzLgoJCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgoJCjIwMDAtMTItMDIgMTg6MjIgIG1hcnoKCglmb3VuZCB0aGUgdW5pbml0aWFsaXplZCBkYXRhIGJ1Zy4uLm11c3QgaGF2ZSBiZWVuIGluIHRoZXJlIGRvcm1hbnQgZm9yIGEgd2hpbGUsIG90aGVyIHRlc3QgZml4ZXMgLSBnb29kIHRvIGdvIQoJCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjM1ICBoYXJkYWtlcgoKCS0gKEFHRU5ULnR4dCk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKCS0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgoJCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgoJLSAoUkVBRE1FKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTY6MzMgIGhhcmRha2VyCgoJLSAoYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IHJlbW92ZSB0aGUgYnVnIHJlcG9ydCBzY3JpcHQuCgkKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgoJLSAobWFuL3NubXB0cmFwZC5jb25mLjUuZGVmKTogbWVudGlvbiB0aGUgZmFjdCB0aGF0IHNubXB2MyB0cmFwcyBhcmUKCSAgdGhlIHNhbWUgYXMgc25tcHYyIHRyYXBzLgoJCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgoJLSAoTkVXUyk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE1OjMxICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE1OjE2ICBoYXJkYWtlcgoKCS0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgZm9yIHByb3h5IHN1cHBvcnQuCgkKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgYSBmZXcgdGhpbmdzLgoJCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKCS0gbWliLmM6IGRpYWdub3NlIHdyb25nIHF1b3RpbmcgaW4gaW5kaWNlcwoJCjIwMDAtMTItMDEgMTQ6MjMgIG5iYQoKCS0gcGFyc2UuYzogYWRkIFJGQy0xMjEzIGFzIGFuIGFsaWFzZSBmb3IgUkZDMTIxMy1NSUIgKHVzZWQgaW4gbWFueSBtaWJzKQoJCjIwMDAtMTItMDEgMTQ6MTkgIG5iYQoKCS0gc211eC5jOiByZWZvcm1hdCBzb21lIGRlYnVnIG1lc3NhZ2VzIGZvciByZWFkYWJpbGl0eQoJCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKCS0gaW50ZXJmYWNlcy5jOiBmaXggaWZUeXBlIHZhbHVlcyBmb3IgTGludXgKCQoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCgktIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCgkKMjAwMC0xMi0wMSAxMDowNCAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHF1b3RlIHRoaW5ncyB3aXRoIHNwYWNlcyBpbiB0aGVtLgoJCjIwMDAtMTItMDEgMDk6NDkgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYuMSk6IHF1aWNrIG1hbiBwYWdlIGZvciBzbm1wY29uZi4KCQoyMDAwLTEyLTAxIDA5OjE1ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL21vbml0b3IpOiBjbGVhbnVwcy4KCQoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcGFyc2UuYyk6IGNoYW5nZSBuby1wYXJlbnQgbG9nIG1lc3NhZ2UgaW50byBhIHdhcm5pbmcuCgkKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMi0wMSAwOToxMCAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTItMDEgMDc6NTkgIGhhcmRha2VyCgoJLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKCSAgLSBzdXBwb3J0IHYyLT52MSB0cmFwIGNvbnZlcnNpb24uCgkKMjAwMC0xMi0wMSAwNzo1NiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHR5cG8uCgkKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKCWFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQoJCjIwMDAtMTEtMzAgMTQ6MDYgIG5iYQoKCS0gZ2V0b3B0LmgsIHNubXBfcGFyc2VfYXJncy5oOiBleHRlcm4gIkMiIGJyYWNrZXRpbmcKCQoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCgktIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCgkKMjAwMC0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCgktIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTEtMzAgMTA6MTggIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IGJhZCBzZXRzIGZvciBhZ2VudHguCgkKMjAwMC0xMS0zMCAwOToxOSAgaGFyZGFrZXIKCgktIChvdi9SRUFETUUpOiBtaW5vciBjb3JyZWN0aW9ucywgcHJvYmFibHkgc3RpbGwgaW5jb3JyZWN0LgoJCjIwMDAtMTEtMzAgMDk6MTggIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4sIHNubXBjb25mLCBhY2wsIGJhc2ljX3NldHVwLCBtb25pdG9yLCBvcGVyYXRpb24sCgkgIHN5c3RlbSwgdHJhcHNpbmtzKToKCSAgLSBncm91cGluZyBzdXBwb3J0LgoJICAtIHNvcnQtb2YtcXVpZXQgb3V0cHV0IHN1cHBvcnQuCgkgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCgkKMjAwMC0xMS0zMCAwOToxMyAgaGFyZGFrZXIKCgktIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKCSAgcGVyc2lzdGVudCBkYXRhIGZpbGUuCgkKMjAwMC0xMS0zMCAwOToxMSAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMpOiBDbGVhbnVwIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KCQoyMDAwLTExLTMwIDA5OjEwICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCgkKMjAwMC0xMS0zMCAwOTowOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1lbnRpb24gdGhlIFRVTk5FTC1NSUIgc3VwcG9ydC4KCQoyMDAwLTExLTI5IDE4OjIxICBzbGlmCgoJVXBkYXRlIGUtbWFpbCBhZGRyZXNzIGZvciBTbGlmY2FrCgkKMjAwMC0xMS0yOSAxMTozNCAgbWFyegoKCWZpeGVkIG9yZGVyIG9mIGZ1bmN0aW9uIGNoZWNraW5nIHNvIHRoYXQgdnNucHJpbnRmIGlzIG5vdCBmb3VuZCBpbiBsaWJkYiAoQlNEIGRiKSBieSBtaXN0YWtlCgkKMjAwMC0xMS0yOSAwNToxOCAgbWFyegoKCXBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCgkKMjAwMC0xMS0yOCAxODowMCAgbWFyegoKCXBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCgkKMjAwMC0xMS0yNyAxNDozNyAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9iYXNpY19zZXR1cCk6IGJhc2ljIHNldHVwIHNlcmllcyBvZiBxdWVzdGlvbnMuCgkKMjAwMC0xMS0yNyAxNDozNiAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9hY2wpOiB0eXBvcy4KCQoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mKToKCSAgLSBhZGQgc3VwcG9ydCBmb3IgImdyb3VwcyIgb2YgaXRlbXMuCgkgIC0gZG9uJ3QgdXNlIElPOjpEaXIsIGFzIGl0cyBub3QgaW4gdGhlIHN0YW5kYXJkIHBlcmwgbW9kdWxlIGRpc3RyaWJ1dGlvbnMuCgkKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oKTogcmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlIHJlZmVyZW5jZS4KCQoyMDAwLTExLTI3IDE0OjMzICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IGF1dG8tc2V0IHN1cHBvcnQgZm9yIHRoZSBhZ2VudCAoYW5kIHBsdWcgYSBtZW1vcnkgbGVhaykuCgkKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgoJLSBzbm1wLmNvbmYuNS5kZWY6IGRvY3VtZW50IHRva2VucyBleHRlbmRlZEluZGV4IGFuZCBub1JhbmdlQ2hlY2sKCQoyMDAwLTExLTI3IDEzOjQxICBuYmEKCgktoHBhcnNlLmM6IGZpeCBhIEMrKyBzdHlsZSBjb21tZW50CgkKMjAwMC0xMS0yNCAxNToxNCAgbmJhCgoJLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CgkKMjAwMC0xMS0yMiAxMzo0OCAgaGFyZGFrZXIKCgktIChtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jKTogUGF0Y2ggZnJvbSBTZWFuIEhhcmRpbmc6CgkgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgoJCjIwMDAtMTEtMjEgMTU6MTcgIG5iYQoKCS0gbWliLmM6IGZpeCBwYXJzaW5nIG9mIG9pZCBsaWtlIDk5LjEzLlwiZ3VmXCI4CgkKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgoJLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCgkJdHlwZXMgaW4gdGhlIHBhcnNlciBjcmVhdGVkIHByb2JsZW1zIGZvciB0aGUgcGVybCBtb2R1bGUgYW5kIGluIHR1cm4KCQlmb3IgbWliMmMuIFNvcnJ5IGZvciBub3QgY2F0Y2hpbmcgdGhpcyBiZWZvcmUgcHJlMiA6LSgKCQoyMDAwLTExLTE5IDEyOjU4ICBuYmEKCgktIGZpeGVzIHRvIC4vY29uZmlndXJlIC0td2l0aC1kZWZhdWx0cyAtLWVuYWJsZS1taW5pLWFnZW50OyBtYWtlIGluc3RhbGwKCQlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldCA6LSkKCQoyMDAwLTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQoJCjIwMDAtMTEtMTggMDc6MTIgIGhhcmRha2VyCgoJLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgoJCjIwMDAtMTEtMTcgMTE6MDEgIG5iYQoKCS0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAoJCWluZGljZXMuIEFsc28gZml4IGEgYnVnIHdpdGggcXVvdGVkIGluZGljZXMuCgkKMjAwMC0xMS0xNyAxMDozMiAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KCQoyMDAwLTExLTE3IDEwOjMwICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogZml4IGNhc2VzIHdoZXJlIHRoZSBmb3JtYXQgc3RyaW5ncyBhcmUgc3BlY2lmaWVkLgoJCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKCS0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCgkKMjAwMC0xMS0xNyAwODozMiAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKCSAgLSBmaXggbWVtb3J5IGxlYWtzLgoJICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KCQoyMDAwLTExLTE2IDE3OjU1ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcHYzLmMpOiBhZGRlZCBhIHNwYWNlIGluIGEgZGVidWdnaW5nIG91dHB1dCBzdGF0ZW1lbnQuCgkKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzaW1wbGUgZGVidWdnaW5nIHN0YXRlbWVudCBhZGRlZC4KCQoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNldCBEU19MSUJfQVBQVFlQRSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgeWV0LgoJCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgoJLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogYWRkIENPTkZJR1RSQVBELgoJCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKCSAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKCSAgLSBzdXBwb3J0IC1JciBmb3IgImRvbnQgY2hlY2sgcmFuZ2UvdHlwZSB2YWx1ZXMiIChsZXR0ZXIgciBzdWJqZWN0IHRvIGRlYmF0ZSkuCgkKMjAwMC0xMS0xNiAxNzoyNSAgaGFyZGFrZXIKCgktIChjYWxsYmFjay5jKTogYmV0dGVyIGRlYnVnZ2luZyBvdXRwdXQgdG8gZGlzcGxheSBhIGNhbGxiYWNrIGNvdW50IHdoZW4gZG9uZS4KCQoyMDAwLTExLTE2IDE2OjUyICBoYXJkYWtlcgoKCS0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCgkKMjAwMC0xMS0xNiAxNjo1MCAgaGFyZGFrZXIKCgktIChUMDU4YWdlbnRhdXRodHJhcCk6IHNsZWVwIHNvbWUgYW5kIG9ubHkgcGVyZm9ybSBvbmUgZ2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCgktIChUMDU0YWdlbnR2MmN0cmFwKTogc2xlZXAgYSBiaXQgYW5kIG9ubHkgc2VuZCBvbmUgc25tcCBzZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCgktIGdldG9wdC5jOiBxdWVsbCBjb21waWxlciB3YXJuaW5ncwoJCjIwMDAtMTEtMTYgMTU6MzEgIG5iYQoKCS0gcGFyc2UuW2NoXSwgbWliLmMsIHNubXBfYXBpLmM6IHJlbmFtZSBUWVBFX1VJTlRFR0VSMzIgYmFjayB0byBUWVBFX1VJTlRFR0VSCgkKMjAwMC0xMS0xNiAxNToxNiAgbmJhCgoJLSBzbm1wdHJhcGQuYywgc25tcHRyYXBkLmNvbmY6IG5ldyBjb25maWcgZGlyZWN0aXZlcyBmb3JtYXQxIGFuZCBmb3JtYXQyIHRvCgkJc2V0IGxvZyBmb3JtYXRzIGZvciBUUkFQMSBhbmQgVFJBUDIgcGR1cy4KCQoyMDAwLTExLTE2IDEzOjUwICBuYmEKCgktIHNubXBfYXBpLmM6IGFkZCBmdW5jdGlvbmFsaXR5IHRvIGNoZWNrIHZhbHVlIHR5cGVzIGluIGFkZGl0aW9uIHRvIHJhbmdlcwoJCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KCQoyMDAwLTExLTE2IDEzOjQ3ICBuYmEKCgktIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCgkJKGkuZS4gREVGVkFMIHsgeyAwIDAgfSB9IGV0YykKCQoyMDAwLTExLTE2IDExOjM5ICBoYXJkYWtlcgoKCS0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDExOjM1ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYyk6CgkgIC0gc2VuZCBhIHYyYyB0cmFwIHVzaW5nIGl0cyBvd24gZGF0YSwgbm90IHRoZSBzeXN0ZW1fbWliJ3MuCgkgIC0gbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCQoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKCS0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgoJICAtIG5ldyB0ZXN0cyBmb3IgdHJhcHMgc2VudCBieSB0aGUgYWdlbnQuCgkKMjAwMC0xMS0xNiAwOTo1NiAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IERvbid0IGRlbGV0ZSBSRUFET05MWSB0cmFwIHNlc3Npb25zLgoJCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgoJLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgoJCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMSk6IHN1cHBvcnQgLUNpIGZvciBzZW5kaW5nIGluZm9ybXMuCgkKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgoJCjIwMDAtMTEtMTUgMTQ6MTggIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBtYWtlJ2luZyBpbiByZW1vdGUgZGlyZWN0b3J5CgkKMjAwMC0xMS0xNSAxNDoxMSAgbmJhCgoJLSBtYWluLmM6IHVwZGF0ZSB0byB1c2UgZ2V0b3B0IGZvciBhcmd1bWVudCBwYXJzaW5nLgoJCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBmaXggYSBjb25mdXNpbmcgaW5kZW50YXRpb24uCgkKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgoJLSBhZ2VudF90cmFwLmM6IG1ha2Ugc3VyZSBjb21tdW5pdHkgaXMgXDAtdGVybWluYXRlZCBpbiB0YXJnZXRQYXJhbXNUYWJsZQoJCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKCS0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCgkJc2luZ2xlIHBhcmFtZXRlci4gRml4IGEgYmFkIGxpbWl0IHRlc3QgaW4gc3RyX2FwcGVuZC4KCQoyMDAwLTExLTE1IDE0OjAwICBuYmEKCgktIHNubXB0cmFuc2xhdGUuYzogZml4IGEgc3R1cGlkIHBlcnJvciBmb3Igc25tcF9wZXJyb3IKCQoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCgktIHBhcnNlLltjaF0sIG1pYi5jOiBlbmhhbmNlIHRoZSBwYXJzZXIgdG8gZGlzdGluZ3Vpc2ggSU5URUdFUiwgSW50ZWdlcjMyLAoJCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCgkKMjAwMC0xMS0xNSAxMzo1NSAgbmJhCgoJc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQoJCjIwMDAtMTEtMTUgMDc6NDkgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmMsIHN1YmFnZW50LmMpOiBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQ6CgkgIC0gRG9uJ3QgbWFrZSBpbml0X2FnZW50KCkvc3ViYWdlbnRfcHJlX2luaXQoKSBleGl0IGJ1dCByZXR1cm4gYW4KCSAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KCQoyMDAwLTExLTEyIDA4OjA4ICBoYXJkYWtlcgoKCS0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgoJCjIwMDAtMTEtMTIgMDQ6NDUgIG5iYQoKCXNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgoJCjIwMDAtMTEtMTIgMDQ6NDEgIG5iYQoKCS0gbWliLmM6IGdpdmUgdGhlIHRyZWUtdG9wIGEgbmFtZSB0byBwcm90ZWN0IGVycm9yIG1lc3NhZ2Ugd2hlbiBsb29raW5nIHVwIC5mb28KCQoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCgktIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKCQoyMDAwLTExLTEyIDA0OjM0ICBuYmEKCgktIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgoJLWFnZW50X3RyYXBzLmM6IE1vdmUgYSBjb25kaXRpb25hbGx5IHVzZWQgdmFyaWFibGUKCQoyMDAwLTExLTEyIDA0OjMyICBuYmEKCglGaXggYSBib2d1cyAjaWZkZWYKCQoyMDAwLTExLTEwIDA5OjE4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYXBwbHkgcGF0Y2ggIzEwMjIyNCBmcm9tIGpicG4gZm9yIGNyb3NzLWNvbXBpbGluZy4KCQoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgoJIC0gZmlyc3QgcGFzcyBhdCBhIHRlc3Rpbmcgc2NyaXB0IHRvIHRlc3QgdHJhcCBmdW5jdGlvbmFsaXR5LgoJICAgLSB3aGljaCBldmVuIHVuY292ZXJlZCBhIGJ1Zy4KCQoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkLmMpOgoJICAtIGZvcmsgaWYgZmlsZSBsb2dnaW5nIG9yIHN5c2xvZ2dpbmcsIGJ1dCBub3QgcHJpbnRpbmcuCgkgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KCQoyMDAwLTExLTEwIDA4OjUzICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkX2xvZy5jKTogcHJvcGVybHkgbnVsbCB0ZXJtaW5hdGUgbG9nIHN0cmluZ3MuCgkKMjAwMC0xMS0wOSAxNjo0MCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUuaW4pOiBhdHRlbXB0IHRvIGltcGxlbWVudCBhIC0td2l0aC1yc2FyZWYgZmxhZy4KCQoyMDAwLTExLTA5IDE1OjMyICBoYXJkYWtlcgoKCS0gKFJFQURNRSwgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KCQoyMDAwLTExLTA5IDE1OjMxICBoYXJkYWtlcgoKCS0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCgkKMjAwMC0xMS0wOSAxNDo1NiAgaGFyZGFrZXIKCgktIChleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50KTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgoJCjIwMDAtMTEtMDkgMTQ6NTMgIGhhcmRha2VyCgoJLSAoTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KCQoyMDAwLTExLTA4IDIzOjMzICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgoJCjIwMDAtMTEtMDggMjM6MDIgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgoJCjIwMDAtMTEtMDggMjI6NDUgIGhhcmRha2VyCgoJLSAoZGlza2lvLmMpOiBmaXggT0lELgoJCjIwMDAtMTEtMDggMTc6MDYgIGhhcmRha2VyCgoJLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KCQoyMDAwLTExLTA4IDE3OjAzICBoYXJkYWtlcgoKCS0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgoJCjIwMDAtMTEtMDggMTY6MjAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBsaWJyc2FyZWYsIGV0YywgaWYgbmVlZGVkLgoJCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAoJICBhZ2VudC9zbm1wZC5jKToKCSAgLSB1aWQvZ2lkIGNoYW5nZXMuCgkKMjAwMC0xMS0wNyAxNToxMCAgaGFyZGFrZXIKCgktIChTTk1QLnhzKTogZml4IFRZUEVfTk9USUYgLT4gVFlQRV9OT1RJRlRZUEUuCgkKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCgktIChTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cyk6IFBhdGNoIGZyb20gSm9lIENsYXJrZToKCSAgLSBpbXBsZW1lbnQgYmVzdC1ndWVzcyAoLUliKSBwYXJzaW5nLgoJICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgoJICAtIHJhbmdlIGFjY2Vzcy4KCQoyMDAwLTExLTA3IDExOjAwICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgYnVpbGQgY3JlYXRlZCBmaWxlcy4KCQoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKCS0gKFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCgkKMjAwMC0xMS0wNyAxMDo1NCAgaGFyZGFrZXIKCgktIChTTk1QL1NOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBtdWx0aXBsZSBjYWxsYmFjayBwYXRjaCBmb3IgcGVybC9TTk1QL1NOTVAueHMuCgkKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIG9wdGlvbmFsIGNvbmZpZyBmaWxlIERORS4KCQoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKCS0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KCQoyMDAwLTExLTA3IDEwOjI5ICBoYXJkYWtlcgoKCS0gKGlmX2ZpZWxkcy5oLCBpbnRlcmZhY2VzLmMsIGlwTWVkaWEuYywgaXBSb3V0ZS5jLCB0Y3AuYywgdGNwVGFibGUuYywKCSAgdWRwLmMsIHVkcFRhYmxlLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gbWliSkogZml4ZXMgW0ZyZWVCU0Qvb3RoZXIgQlNEJ3NdLgoJCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgoJLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKCSAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gaW1wbGVtZW50IHVpZC9naWQgY2hhbmdlcyBhZnRlciBzdGFydHVwIGZvciB0aGUgYWdlbnQuCgkKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IGEgYmV0dGVyIHNhbml0eSBjaGVjayBmb3Igc2Vzc2lvbiBkZWxldGlvbi4KCQoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogUGF0Y2ggZnJvbSBEYXZlIHRvIHNhbml0eSBjaGVjayBwYXJhbS0+dXBkYXRlVGltZS4KCQoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKCS0gKG1kNS5jKTogY2hlY2sgdG8gc2VlIHRoYXQgTURzaWduKCkgZGF0YSBsaWVzIG9uIGEgMzIgYnl0ZSBib3VuZHJ5LgoJICAtIGl0cyBwb3NzaWJsZSBzb21lIGNvbXBpbGVycyB3aWxsIGNob2tlIG9uIHRoaXMgaGFjay4KCSAgLSBmaXhlcyBidWcgIzEyMTc1LgoJCjIwMDAtMTEtMDMgMTc6NTQgIGhhcmRha2VyCgoJLSAobWliMmMpOiBzb3J0IE9JRHMgcHJvcGVybHkuCgkKMjAwMC0xMS0wMyAxNjo0NCAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGZpeCBtaWIgcmVnaXN0cmF0aW9ucyBmb3IgZHVwbGljYXRlIE9JRHMgYmVpbmcgdXNlZCBmb3IgdGhlIHRyYXAgZXhhbXBsZXMuCgkKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCgkgIC0gVW0sIGFwcGxpZWQgY29ycmVjdGx5IHRoaXMgdGltZSAoSSBob3BlKS4KCQoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KCQoyMDAwLTExLTAyIDIyOjE5ICBuYmEKCglDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgoJCjIwMDAtMTEtMDIgMjI6MTYgIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBzb21lICQoc3JjZGlyKSByZWZlcmVuY2VzIHdoZW4gcnVubmluZyBvdXRzaWRlIHNvdXJjZQoJCjIwMDAtMTEtMDIgMjI6MTUgIG5iYQoKCS0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKCQoyMDAwLTExLTAyIDIyOjE0ICBuYmEKCgktIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwoJCjIwMDAtMTEtMDIgMjI6MTIgIG5iYQoKCURvY3VtZW50IHRoZSAtT1ggb3V0cHV0IG9wdGlvbgoJCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKCURvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgoJCjIwMDAtMTEtMDIgMTY6MTcgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCk6IGFkZCB1Y2Qtc25tcC9wcm94eS4KCQoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiBjaGFuZ2UgY3ZzIGFyY2hpdmUgc2l0ZSBhbmQgcGFja2FnZSBuYW1lLgoJCjIwMDAtMTEtMDIgMTM6MjMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggMTAyMjM5IGZyb20gZG91Z3dhcnogdG8gZml4IGEgcHJldmlvdXNseSBiYWQgc211eC5jIHBhdGNoLgoJCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMSApCgkKMjAwMC0xMS0wMSAxNjoxNCAgaGFyZGFrZXIKCgktIChUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwgVDEyMnByb3h5c2V0ZmFpbCk6IHByb3h5IHRlc3Qgc3VpdGUuCgkKMjAwMC0xMS0wMSAxNjowOCAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oKToKCSAgLSBtaW5pbWFsIFNFVCBzdXBwb3J0IGZvciB0aGUgcHJveHkgY29kZS4KCQoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKCS0gKFQxMTJhZ2VudHhzZXRmYWlsKTogdGVzdCBmb3IgYWdlbnR4IHNldHMgdGhhdCBzaG91bGQgZmFpbCBwcm9wZXJseS4KCQoyMDAwLTEwLTMxIDE0OjMwICBuYmEKCgktIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKCQoyMDAwLTEwLTMxIDE0OjI4ICBuYmEKCgktIHNtdXguYzogZml4IHdyb25nIHZhcmlhYmxlIGxlbmd0aAoJCjIwMDAtMTAtMzEgMTQ6MjUgIG5iYQoKCS0gcHJvdG9jb2wuYzogZml4IHNvbWUgc3VzcGljaW91cyBsb29raW5nIGNvZGUKCQoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCgktIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCgkKMjAwMC0xMC0zMSAxMjo0MSAgbmJhCgoJLSBtaWIuYzogYWRkIC1PWCBvdXRwdXQgZm9ybWF0LCBmb3IganVzdCBhbm90aGVyIHdheSBvZiBwcmludGluZyBpbmRpY2VzCgkKMjAwMC0xMC0zMSAxMjoyNyAgbmJhCgoJLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKCQoyMDAwLTEwLTMxIDEyOjI1ICBuYmEKCgktIGFwcHMvKjogbWFrZSBzdXJlIHdlIHJlcG9ydCBhbnkgZXJyaW5kZXgvZXJyY29kZSBpbiB0aGUgcmVzcG9uc2UKCQoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCgktIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0zMSAxMDoxMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBwYXRjaCAjMSBmcm9tIGJ1ZyAjMTE3MjczIGFwcGxpZWQgdG8gZml4IHNtdXggc29ja2V0IHByb2JsZW1zLgoJCjIwMDAtMTAtMzEgMDk6MjQgIGhhcmRha2VyCgoJLSAoU05NUC54cyk6IHByaW50IGNvdW50ZXI2NCdzIGFzIHVuc2lnbmVkLgoJCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHN1YmFnZW50LmMsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKCSAgLSBmaXggbm90aWZpY2F0aW9ucyBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCgkKMjAwMC0xMC0zMCAyMjowMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBmaXggYnVnICMxMTk3ODY6IG1ha2Ugc211eCByZXVzZSBzb2NrZXQgYWRkcmVzcy4KCQoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgoJICAtIGZpeCBidWcgIzM4MgoJICAtIGZpeCBhZ2VudHggbm9uLXJvb3QgdGVzdHMgdG8gdXNlIC14IC90bXAvYmxhaC9hZ2VudHhfc29ja2V0LgoJCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBmaXggYSB0eXBvIHBvaW50ZWQgb3V0IGJ5IENocmlzIFBlcHBlci4KCQoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMTFhZ2VudHhzZXQpOiB0ZXN0IHNjcmlwdCBmb3IgQWdlbnRYIHNldCBzdXBwb3J0LgoJCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgoJLSAodGVzdHMvVDExMGFnZW50eGdldCk6IGhlYWRlciBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIHdvcmQgR0VULgoJCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKCS0gdWNkLXNubXAvdm1zdGF0XyosIG1lbW9yeV9mcmVlYnNkMi5jLCBkbG1vZC5jOiBNYWtlIHNzUmF3Q3B1IG9iamVjdHMgQ291bnRlcnMsCgkJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKCQoyMDAwLTEwLTMwIDExOjA3ICBuYmEKCgktIENsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CgkgIC0gcmVuYW1lZCB0aGUgYWdlbnR4IHRlc3Qgc2NyaXB0LgoJCjIwMDAtMTAtMzAgMTE6MDMgIGhhcmRha2VyCgoJLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZG9uJ3QgYWRkIC1jIENPTkZJR0ZJTEUgaWYgaXQgZG9lc24ndCBleGlzdC4KCQoyMDAwLTEwLTMwIDEwOjM5ICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgoJCjIwMDAtMTAtMjcgMTE6MjkgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGQuYyk6IGFkZCAtbyBmbGFnIHRvIGxvZyB0byBhIHBhcnRpY3VsYXIgZmlsZS4KCQoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHVzZSBta3N0ZW1wIGlmIGF2YWlsYWJsZS4KCQoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNlYXJjaCBmb3IgbWtzdGVtcCgpLgoJCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGxpbnV4IGtlcm5lbCBsaXN0IHRvIGluY2x1ZGUgMi4yLgoJCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCk6IG1ha2UgU0tJUElGTk9UIGNoZWNrIHRoZSBtaWIgbW9kdWxlIGxpc3QgdG9vLgoJCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgoJLSAodGVzdHMvVDEwMWFnZW50eCk6IEFnZW50WCBzdWJhZ2VudCB0ZXN0IGZvciBzaW1wbGUgZ2V0IHJldHJpZXZhbC4KCQoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBBZGQgLVggb3B0aW9uIHRvIHNubXBkIHRvIHJ1biBhcyBhIHN1YmFnZW50LgoJCjIwMDAtMTAtMjUgMTc6MDYgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGZpeCBmb3IgY2FzZXMgd2hlbmUgZGVidWdnaW5nIGlzIGFsd2F5cyBvZmYuCgkKMjAwMC0xMC0xNyAxNTozMCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuCgkKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyLmMpOiBTcGVjaWZ5IHRoZSBsZW5ndGggb2YgdGhlIChwc2V1ZG8tKWFuc3dlciB0byBhIHJlcXVlc3QuCgkJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCgkKMjAwMC0xMC0xNiAwMzoxMSAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBtb2RlIGluZm9ybWF0aW9uCgkJVGhpcyBzaG91bGQgaGVscCB3aXRoIChzb21lIG9mKSB0aGUgU0VUIGhhbmRsaW5nIHByb2JsZW1zLgoJCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgoJCVRoaXMgaG9sZHMgaW5mb3JtYXRpb24gdGhhdCBuZWVkcyB0byBwZXJzaXN0IGFjcm9zcyBtdWx0aS1wYXNzIHJlcXVlc3RzLgoJCUkgcmVhbGlzZSB0aGF0IHRoaXMgaW50cm9kdWNlcyBhIG1lbW9yeSBsZWFrLCBidXQgdGhpcyBpc24ndCB0aGUKCQljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgoJCjIwMDAtMTAtMTIgMTQ6NTIgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IGFkZCAtSSB0byB0aGUgaGVscCBvdXRwdXQuCgkKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCgktIChhZ2VudC9kbG1vZHMvKik6IHJlbW92ZSBvYnNvbGV0ZSB2ZXJzaW9ucwoJCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlKTogdXBkYXRlLgoJCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTWF0dCBCcmFpdGh3YWl0ZToKCSAgLSB1ZHAgY29uZmlndXJhdGlvbiBjaGFuZ2VzIHRvIGNoZWNrIGZvciBtaXNjIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KCQoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKFRVTk5FTC1NSUIudHh0KTogVFVOTkVMLU1JQiBkZWZpbml0aW9uLgoJCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgoJLSAodHVubmVsLmgpOiBjb25maWdfYWRkX21pYihUVU5ORUwtTUlCKS4KCQoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKCS0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gaW1wbGVtZW50IHRoZSBUVU5ORUwtTUlCLgoJCjIwMDAtMTAtMTAgMTQ6MzMgIG1zbGlmY2FrCgoJRml4IHVubGlua190cmVlIGZvciAidG9wIGxldmVsIiB0cmVlIG5vZGVzLgoJCjIwMDAtMTAtMTAgMTE6MDIgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiByZXZlcnNlIGxpYnJhcnkgbGluayBvcmRlcmluZyBhZ2Fpbi4uLgoJCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgoJUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KCQoyMDAwLTEwLTEwIDA2OjUzICBtc2xpZmNhawoKCVJlbW92ZSB1bm5lZWRlZCBkZWNsIG9mIHZzbnByaW50ZiB3aXRob3V0IHN0ZGFyZy92YXJhcmdzIGRlY2wgb2YgdmFfbGlzdC4KCQoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKCUFwcGx5IHBhdGNoIGZvciBERUMgQWxwaGEgRVY2LCBzdXBwbGllZCBieSBTaHVtb24gSHVxdWU8c2h1cXVlQGlzYy51cGVubi5lZHU+CgkKMjAwMC0xMC0wOSAxNzowNiAgbXNsaWZjYWsKCglwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgoJCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgoJLSAoZGxtb2QuYyk6IG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgYWRkaXRpb25zLgoJCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KCQoyMDAwLTEwLTA5IDExOjQzICBoYXJkYWtlcgoKCS0gKEZBUSwgUkVBRE1FKTogYWRkIG5ldyBtaXJyb3IuCgkKMjAwMC0xMC0wOSAxMDoyNiAgbXNsaWZjYWsKCglNb3ZlIGNvbmZpZy0gYW5kIHN0b3JlLXJlbGF0ZWQgY2xlYW51cCBmcm9tIHNodXRkb3duX21pYiB0byBzbm1wX3NodXRkb3duLgoJCjIwMDAtMTAtMDkgMDI6MzYgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUXVhbGlmeSBhbiBpbmRpdmlkdWFsIGludGVyZmFjZSB0eXBlIHRlc3Qgc3ltYm9sCgkJKFFuOiBzaG91bGQgYW55L2FsbCBvZiB0aGUgb3RoZXJzIGJlIHF1YWxpZmllZCBhcyB3ZWxsPykKCQoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKCVN1cHBvcnQgZm9yIHNodXRkb3duX21pYiAtIGNsZWFyaW5nIHRoZSBNSUIgdHJlZXMgYW5kIGNvbmZpZ3VyZWQgcmVnaXN0cmF0aW9ucy4KCQoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKCVBsdWcgbWVtb3J5IGxlYWsgZm9yIHVjZC1zdXBwbGllZCBzZXRlbnYgb24gV2luMzIgcGxhdGZvcm0uCgkKMjAwMC0xMC0wNiAwNDo1OCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTA1IDIzOjQ1ICBuYmEKCgktIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCgkJaW50byBzdWItaWRzIHdlIGtub3cgbm90aGluZyBhYm91dAoJCjIwMDAtMTAtMDUgMTY6MDMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCgkKMjAwMC0xMC0wNCAxNzo1OSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGluc3RhbGwgImV4dGVuZGluZyIgc25tcGNvbmYgZmlsZS4KCQoyMDAwLTEwLTA0IDE3OjU4ICBoYXJkYWtlcgoKCS0gKGV4dGVuZGluZyk6IGFkZCBzbm1wY29uZiBzdXBwb3J0IGZvciBleHRlbmRpbmcgdGhlIGFnZW50IChwYXNzLCBleGVjLCAuLi4pCgkKMjAwMC0xMC0wNCAxNzo1OCAgaGFyZGFrZXIKCgktIChtb25pdG9yKTogbWlzYyB1cGRhdGVzIGFuZCBhZGQgImZpbGUiIHdhdGNoaW5nLgoJCjIwMDAtMTAtMDQgMTc6NTcgIGhhcmRha2VyCgoJLSAoYWNsKTogZG9uJ3Qgc3BlY2lmeSBsaW5lIHNwZWNpZmljYXRpb25zIGZvciBkZWZhdWx0IHNubXBjb25mIHVzYWdlLgoJCjIwMDAtMTAtMDQgMTQ6NTAgIG5iYQoKCS0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgoJCjIwMDAtMTAtMDQgMTM6MjUgIGhhcmRha2VyCgoJLSAocGFzc19wZXJzaXN0LmMpOiBvcGFxdWVzIGluIHBhc3NfcGVyc2lzdC4KCQoyMDAwLTEwLTA0IDEwOjM1ICBoYXJkYWtlcgoKCS0gKHBhc3MuYyk6IHN1cHBvcnQgb3BhcXVlIHJldHVybiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA3OjE1ICBtc2xpZmNhawoKCUZpeCBwYXJzaW5nIHByb2JsZW0gZm9yIC1QYyBvcHRpb247IHJlcG9ydGVkIGJ5IENocmlzdGlhbiBNYXV0bmVyLgoJCjIwMDAtMTAtMDQgMDc6MDIgIG1zbGlmY2FrCgoJcXVhbGlmeSBuZXcgaS9mIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDY6NTIgIG1zbGlmY2FrCgoJcXVhbGlmeSBzeW1ib2xzIGZvciBuZXcgaS9mIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDY6NTEgIG1zbGlmY2FrCgoJVGVybWluYXRlIGxpc3QgdG8gY29tcGlsZSAoYWRkIGEgY29tbWEpLgoJCjIwMDAtMTAtMDQgMDA6MTggIG5iYQoKCS0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKCQlHRVRCVUxLCgkKMjAwMC0xMC0wMyAxODoxOSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBhZGQgYSBwYXNzYmFjayBhcmd1bWVudCB0byByZWdpc3Rlcl9yZWFkZmQoKSBjYWxsYmFja3MuCgkKMjAwMC0xMC0wMyAxODoxNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgoJCjIwMDAtMTAtMDMgMTg6MDcgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gRnJpZWRyaWNoOgoJICAtIGZpeCBnZXRuZXh0IHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KCQoyMDAwLTEwLTAzIDE3OjI2ICBoYXJkYWtlcgoKCS0gKG1pYkpKL2ludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgoJCjIwMDAtMTAtMDMgMTc6MjQgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCgkKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CgkgIC0gZml4IG9pZCBwYXJzaW5nIGluIHRyYXBzLgoJCjIwMDAtMTAtMDMgMTY6MjMgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwoJICBJIGhhdmUgdmVyeSBzYWRseSBmb3Jnb3R0ZW4uICBJJ3ZlIGJlZW4gbG9va2luZyBmb3IgdGhhdCBtZXNzYWdlIGZvcgoJICBhIHdoaWxlIHRvIHByb3Blcmx5IGF0dHJpYnV0ZSB0aGlzIHBhdGNoLiAgU2lnaC4KCQoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRG91Z2xhcyBXYXJ6ZWNoYToKCSAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KCQoyMDAwLTEwLTAzIDA5OjEyICBtc2xpZmNhawoKCUZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCgkKMjAwMC0xMC0wMyAwODowMyAgbXNsaWZjYWsKCglDYXN0aW5nIHRvIGZpeCBwcm9ibGVtcyBidWlsZGluZyB3aXRoIGFDQwoJVGhhbmtzIHRvIE1hcmtrdSBMYXVra2FuZW4gPHBreUBtb3JlbWFnaWMuY29tPgoJCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgoJUmVtb3ZlIGNoZGlyIHRvIHVuZG8gZml4IGZvciAoQlVHIzI5OCkKCQoyMDAwLTEwLTAyIDIxOjQxICBuYmEKCgktIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCgkKMjAwMC0xMC0wMiAyMTozOSAgbmJhCgoJLSBzbm1wX2xvZ2dpbmcuYzogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KCQoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCgkJY29uZmlndXJhdGlvbiBmaWxlcwoJCjIwMDAtMTAtMDIgMjE6MzcgIG5iYQoKCS0gc25tcHNldC5jOiBEbyBhIGV4aXQoMikgZm9yIGZhaWx1cmUgaW4gc2V0dGluZyB0aGUgdmFyaWFibGUuCgkKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgoJLSBocl9zd3J1bi5jOiBhZGQgYSBzYWZlZ3VhcmQgZm9yIHZlcnkgbG9uZyBhcmd1bWVudCBsaXN0cy4KCQoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCgktIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgoJCjIwMDAtMTAtMDIgMjE6MzMgIG5iYQoKCS0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCgkKMjAwMC0xMC0wMiAxMTo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcHVzbS5oLgoJCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOgoJICAtIG5ldyBvcHRpb25zIGZvciBpbnN0YWxsaW5nIGNyZWF0ZWQgZmlsZXMuCgkgIC0gbW9yZSBjb21tZW50cyBpbiB0aGUgY29kZS4KCSAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgoJICAtIG1pc2MuCgkKMjAwMC0xMC0wMiAxMDo0NyAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC1sZXNzLgoJCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgYnl0ZSBzdGF0UCBtYWxsb2NzLgoJCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKCSAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KCQoyMDAwLTEwLTAxIDE2OjQwICBtc2xpZmNhawoKCVBlciBOaWVscyByZWNvbW1lbmRhdGlvbiwgY2hkaXIgdG8gUEVSU0lTVEVOVF9ESVJFQ1RPUlkgKHJlOiBidWcgIzI5OCkKCQoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKCUZpeCBERUJVR01TR1RMIG5vdCBmb3VuZCBlcnJvciBmb3IgYnVpbGRzIHdpdGhvdXQgZGxtb2Qgc3VwcG9ydC4KCVRoYW5rcyB0byBzaW1vbkB6aWQudHV3ZWluLmFjLmF0CgkKMjAwMC0wOS0zMCAwODo1MCAgbXNsaWZjYWsKCglGaXggc29tZSBrZXJuZWwgc3ltYm9scyAtIHRoYW5rcyB0byBzaW1vbkB6aWQudHV3aWVuLmFjLmF0CgkKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCgktICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgKyAubyAtPiAubG8gZml4ZXMuCgkKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCgktIChtYWtlZmlsZWluZGVwZW5kLnBsKTogc2tpcCBlbXB0eSBkZXBlbmQgbGluZXMuCgkKMjAwMC0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IGRyb3AgZHVwbGljYXRlIGxpbmVzIGZyb20gcmVhZCBpbiBzbm1wZC5jb25mIGZpbGVzLgoJCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KCQoyMDAwLTA5LTI5IDEzOjQyICBoYXJkYWtlcgoKCS0gKG1vbml0b3IpOiBtaW5vciB3b3JkaW5nIGFkanVzdG1lbnRzLgoJCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCgkKMjAwMC0wOS0yOSAxMTozMSAgaGFyZGFrZXIKCgktICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCgkKMjAwMC0wOS0yOSAxMToxMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgoJCjIwMDAtMDktMjkgMTE6MDEgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KCSAgLSBkb24ndCBpbnRlcnByZXRlIHRoZW0gYXMgYW4gaXAtcG9ydC4KCQoyMDAwLTA5LTI5IDEwOjM5ICBoYXJkYWtlcgoKCS0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gamJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tOgoJICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgoJICAgIHNubXBsaWIvc25tcF9hbGFybS5jIHdoaWNoIGNhbiBjYXVzZSBhIHNlZ21lbnRhdGlvbiBmYXVsdC4gKEJ1ZyAjMzY3KQoJCjIwMDAtMDktMjkgMTA6MzQgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCB1c2Ugb2YgTlVMTCB0aW1lc3RhbXAgcG9pbnRlciBpbiBuZXcgcm93IGNyZWF0aW9uIChCdWcgIzM0NikKCQoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCgktIG1pYl9hcGkuMzogYWRkIGEgZmV3IGZ1bmN0aW9ucyB0byB0aGUgaGVhZGVyCgkKMjAwMC0wOS0yOCAxNDoxNCAgbmJhCgoJLSBzbm1wdHJhcC5jOiByZW1vdmUgYW4gZXh0cmFuZW91cyBzbm1wX2ZyZWVfcGR1CgkKMjAwMC0wOS0yOCAxNDoxMyAgbmJhCgoJLSBtYW4vOiBhZGQgbWFuIGVudHJpZXMgZm9yIG1hbnkgbGlicmFyeSBmdW5jdGlvbnMgKHBvaW50aW5nIHRvIHNubXBfYXBpLjMpCgkKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCglyZW1vdmUgc2Vjb25kIGNvcHkgb2Ygc3lzL3NvY2tldC5oCgkKMjAwMC0wOS0yOCAxMTowOCAgbXNsaWZjYWsKCglGb3IgYnVpbGRpbmcgb24gVWx0cml4IFY0LngKCQoyMDAwLTA5LTI3IDEyOjU5ICBoYXJkYWtlcgoKCS0gKGRsbW9kLmgpOiBhZGQgdGhlIFVDRC1ETE1PRC1NSUIgdG8gdGhlIGRlZmF1bHQgbG9hZCBsaXN0LgoJCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1Y2Rfc25tcC5oLCBkbG1vZC5jKToKCSAgLSBpbmNsdWRlIHVjZC1zbm1wL2RsbW9kIGJ5IGRlZmF1bHQuCgkgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KCQoyMDAwLTA5LTI3IDA4OjMxICBoYXJkYWtlcgoKCS0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZG9uJ3QgcHJpbnQga2VybmVsIGJhc2VkIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiAtciwgZXRjLCBpcyBzcGVjaWZpZWQuCgkKMjAwMC0wOS0yNiAxNjowNyAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBtaW5vciBidWcgZml4ZXMuCgkKMjAwMC0wOS0yNiAxNDoyMSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0sIG1hbmFnZXIucG0pOgoJICAtIGRpc3BsYXRhYmxlIHN1cHBvcnRzIC1tYXJrLy1vbm1hcmtlZC4KCSAgLSB1c2VyJ3Mgb25jYWxsIHNjaGVkdWxlIGlzIG1vZGlmaWFibGUgdmlhIHRoZSB3ZWIuCgkKMjAwMC0wOS0yNiAxMzoxNyAgbXNsaWZjYWsKCglGb3IgV2luMzIgQVBJOiBEZWNsYXJlIHN0cnRvdWwsIHZzbnByaW50ZjsgRW5hYmxlIHJldmVyc2UgQkVSIGVuY29kaW5nLgoJCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgoJSW5jbHVkZSBzeXN0ZW0uaCAodnNucHJpbnRmIGRlY2wpCgkKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCglGaXggdW5zaWduZWQgY29tcGFyaXNvbi4KCQoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKCUZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KCQoyMDAwLTA5LTI2IDEzOjEzICBtc2xpZmNhawoKCUZpeCBzaWduZWQgY29tcGFyaXNvbjsgUmVtb3ZlIHVudXNlZCB2YXIuCgkKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCglJbmNsdWRlIGdldG9wdC5oIChvcHRhcmcgZGVjbCk7IFJlbW92ZSB1bnVzZWQgdmFyLgoJCjIwMDAtMDktMjYgMTM6MTEgIG1zbGlmY2FrCgoJTWF0Y2ggSW5pdGlhbGlzZV9UYWJsZSBhcmdzIDMsNCBkZWNsYXJhdGlvbnMgd2l0aCBkZWZpbml0aW9ucy4KCQoyMDAwLTA5LTI2IDEyOjU4ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IG1ha2UgdGhlIGFkbWluc3RhdHVzIFJPTkxZLgoJCjIwMDAtMDktMjYgMTA6MjEgIGhhcmRha2VyCgoJLSAobWliMmMpOiBjaG9tcCgkMSkgaXMgaWxsZWdhbC4KCQoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKCUV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgoJCjIwMDAtMDktMjUgMTc6NDkgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogV2VzIGFjdHVhbGx5IGRvY3VtZW50ZWQgc29tZXRoaW5nPyAgeW91IG11c3QgYmUga2lkZGluZyEKCQoyMDAwLTA5LTI1IDE2OjU2ICBtc2xpZmNhawoKCWNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQoJcmVzb2x2ZWQuCgkKMjAwMC0wOS0yNSAxNTowOCAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBtaW5vciBncmFwaGluZyBjaGFuZ2VzCgkKMjAwMC0wOS0yNSAwOTozNSAgbXNsaWZjYWsKCgljYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgoJCjIwMDAtMDktMjIgMDY6MDMgIG5iYQoKCSAtbWlicy86IE1JQiB1cGRhdGVzCgkKMjAwMC0wOS0yMiAwNTo1NSAgbmJhCgoJLSBtaWJzLzogTUlCIHVwZGF0ZXMKCQoyMDAwLTA5LTIyIDA1OjUyICBuYmEKCgktIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwoJCjIwMDAtMDktMjIgMDU6NTAgIG5iYQoKCS0gc25tcHN0YXR1cy5jOiBzaG93IGVycm9yIG9iamVjdAoJCjIwMDAtMDktMjIgMDQ6MjkgIG5iYQoKCS0gc25tcHVzbS5jOiBpc3N1ZSBlcnJvciBtZXNzYWdlIHdpdGggb2JqZWN0CgkKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgoJLSBzeXN0ZW0uaDogcHJvdmlkZSBwcm90b3R5cGVzIGZvciBzdHJ0b2wsIHN0cnRvdWwsIHNucHJpbnRmLCB2c25wcmludGYKCQoyMDAwLTA5LTIyIDA0OjI3ICBuYmEKCgktIHZhY21fdmFycy5jOiBwcm90ZWN0IGFnYWluc3Qgb3ZlcnJ1biBvZiBzdHJpbmdzCgkKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgoJLSBhcHBzLzogZGlzcGxheSBmYWlsZWQgb2JqZWN0IHdoZW4gb25lIGlzIGlkZW50aWZpZWQgYnkgcGR1LT5lcnJpbmRleAoJCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBkZi4xKTogZG9jdW1lbnQgdGhlIHNubXBkZiBjb21tYW5kLgoJCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKCS0gc25tcHRhYmxlOiB1c2UgR0VUQlVMSyB0byBjb2xsZWN0IGRhdGEgd2hlbiBwcm90b2NvbCBhbGxvd3MgaXQuIEFkZAoJCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgoJCjIwMDAtMDktMjEgMTU6MzggIG5iYQoKCS0gbWliLmM6IHJld3JpdGUgaW5kZXggaGFuZGxpbmcgaW4gb2JqZWN0IGlkcywgdG8gYWxsb3cgc3ltYm9saWMgZW51bXMuCgkJQWRkIERhdmVzIHN1Z2dlc3RlZCAtT3Ygb3V0cHV0LiBBbHNvIGVuaGFjZSAtVGQgb3V0cHV0IHRvCgkJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCgkKMjAwMC0wOS0yMSAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wZGYuYyk6IHVzZSB0aGUgVUNELVNOTVAtTUlCJ3MgZHNrVGFibGUgaWYgdGhlCgkgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCgkKMjAwMC0wOS0yMSAxNToyOCAgbmJhCgoJLSBwYXJzZS5jOiBhZGQgYWJpbGl0eSB0byBjb2xsZWN0IFZBUklBQkxFUy9PQkpFQ1RTIGZvciBUUkFQLVRZUEUKCQlhbmQgTk9USUZJQ0FUSU9OLVRZUEUuIElnbm9yZSBmaWxlcyB0aGF0IGRvZXMgbm90IGhhdmUgREVGSU5JVElPTlMKCQlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KCQoyMDAwLTA5LTIxIDE1OjIyICBuYmEKCgktIHNubXBsaWI6IGFkZCBzbnByaW50Ziwgc3RydG9sLCBzdHJ0b3VsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSB0aGVtCgkKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCgktIChtaWIuaCk6IGFkZCBmYWtlIHN0cnVjdCBkZWZpbml0aW9uIGZvciBlbnVtcwoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc3RydG91bC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc3RydG9sLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzbnByaW50Zi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMDY6MTYgIGhhcmRha2VyCgoJLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KCQoyMDAwLTA5LTIxIDAwOjI1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IGJ1ZyAjMzYwIHdoZXJlIGEgY2xpZW50IG1pZ2h0IHJlbW92ZSBhIGFsYXJtIHJlZ2lzdHJhdGlvbgoJICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCgkgICAgYmVpbmcgdXNlZCBieSB0aGUgY2FsbGluZyBmdW5jdGlvbi4KCQoyMDAwLTA5LTIxIDAwOjIyICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS1kaXNhYmxlLXNoYXJlZCBieSBkZWZhdWx0IGluIGN2cyBjaGVja291dHMuCgkKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCgkKMjAwMC0wOS0yMCAxNzozMCAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogbnVsbCBpbnRlcm5hbCBoZWxwIGxpbmVzLgoJCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCgkKMjAwMC0wOS0yMCAxNzoyOCAgaGFyZGFrZXIKCgktIChhdXRob3B0cyk6IGZpeCB2YWxpZCBhbnN3ZXJzIGZvciBhdXRoIGFuZCBwcml2IHR5cGVzLgoJCjIwMDAtMDktMjAgMTc6MjcgIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYywgc25tcHYzLmMpOiBOVUxMIG91dCBoZWxwIG1lc3NhZ2VzIGZvciAuY29uZgoJICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCgkgIGRvaW5nIHRoaW5ncy4KCQoyMDAwLTA5LTIwIDE3OjI2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZXhwb3J0IFNOTVBDT05GUEFUSCB0byBNYWtlZmlsZXMKCQoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKCS0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBjb3JyZWN0aW9uIG9mIHRhYmxlIG5hbWUuICBNb3JlIGVycm9ycyBleGlzdC4KCQoyMDAwLTA5LTIwIDE2OjQ2ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBkZWJ1Z2dpbmcsIG1pYnMsIG91dHB1dCk6IG1vcmUgc25tcC5jb25mIHNubXBjb25mIGNvbmZpZyBmaWxlcy4KCQoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgoJCjIwMDAtMDktMjAgMTQ6NTUgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOgoJIC0gZG9uJ3QgZm9yY2UgcmVhZGluZyBvZiAvdXNyL2xvY2FsL3NoYXJlL3NubXBkLmNvbmYuCgkgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KCQoyMDAwLTA5LTIwIDE0OjQ1ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc3BhY2UgdGhpbmdzIG91dCBvbiB0aGUgc2NyZWVuIGEgYml0IGJldHRlci4KCQoyMDAwLTA5LTIwIDE0OjQ0ICBoYXJkYWtlcgoKCS0gKHRyYXBzaW5rcyk6IGFkZCBwb3J0IG51bWJlciBvcHRpb24gdG8gdHJhcHNpbmsgZGlyZWN0aXZlcy4KCQoyMDAwLTA5LTIwIDE0OjM1ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wY29uZik6IGluc3RhbGwgc25tcGNvbmYgYW5kIGl0cyB2YXJpb3VzIHN1cHBvcnQgZmlsZXMuCgkKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCgkKMjAwMC0wOS0yMCAxMTozNyAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IG1pc2MgdXBkYXRlcyBhbmQgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDktMjAgMDg6NTQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IEZpeCBkeW5hbWljIGFycmF5ICBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IEpvY2hlbiBLbWlldHNjaC4KCQoyMDAwLTA5LTIwIDAyOjA1ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKTogRG9uJ3QgaW5jbHVkZSBjb250ZXh0IHN0cmluZ3Mgb24gUERVcyB0aGF0IHNob3VsZG4ndCBoYXZlIHRoZW0KCQkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCgkKMjAwMC0wOS0xOSAxNzowNyAgaGFyZGFrZXIKCgktIChhY2wsIHN5c3RlbSwgdHJhcHNpbmtzKTogaW5pdGlhbCBzbm1wY29uZiBkZXNjcmlwdGlvbiBmaWxlcy4KCQoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgoJCjIwMDAtMDktMTkgMTQ6NDAgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KCQoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKCSAgZGF0YXR5cGVzIChmbG9hdCwgZG91YmxlLCBldGMpLgoJCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgoJLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQoJICBhdXRvY29uZiBtYWNybyBsaWJyYXJ5LgoJCjIwMDAtMDktMTkgMDg6MzAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCgkKMjAwMC0wOS0xOCAxNDo1OSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuaCwgc25tcGQuaCk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCgkKMjAwMC0wOS0xOCAxNDo1NSAgbXNsaWZjYWsKCglGaXggYnVnICMzNDcgcmVwb3J0ZWQgYnkgZGFzX2Rlbml6QHlhaG9vLmNvbTogbWFrZSBzYmluIGluc3RhbGwgZGlyCgkKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBhZGQgYSBwb3J0IHNwZWNpZmljYXRpb24gc25tcGQuY29uZiB0b2tlbi4KCQoyMDAwLTA5LTE0IDA4OjUyICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYyk6IGlnbm9yZSBvdXRwdXQgb2YgZ2V0aG9zdGJ5bmFtZSBmb3IgdHJhcCBzZXNzaW9uIGFkZGluZy4KCQoyMDAwLTA5LTEzIDE1OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogbmV3IHV0aWxpdHkgdG8gZ2VuZXJhdGUgLmNvbmYgZmlsZXMgYnkgcHJvbXB0aW5nIHRoZQoJICB1c2VyIHdpdGggcXVlc3Rpb25zLgoJCjIwMDAtMDktMDggMTM6MDcgIGhhcmRha2VyCgoJLSAocHJveHkuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOgoJICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgoJCjIwMDAtMDktMDcgMTA6MTIgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAtIGZpeCBvcGVuc3NsIGNoZWNrcy4KCSAtIHJ1biBhdXRvaGVhZGVyLgoJCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgoJTWlub3IgdG91Y2h1cHMgdG8gYnVpbGQgb24gV2luMzIgcGxhdGZvcm0uCgkKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCglXZWxjb21lIHRoZSBuZXdlc3QgdWNkLXNubXAgYXBwbGljYXRpb25zIHRvIHRoZSBXaW4zMiBidWlsZHMuCgkKMjAwMC0wOS0wNCAxNToxOSAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiByZXN0YXJ0IGVycm9yY291bnQgd2hlbiByZWxvYWRpbmcgY29uZmlnCgkKMjAwMC0wOS0wNCAxNToxMiAgbmJhCgoJLSBzbm1wbmV0c3RhdC4xOiBhbGlnbiBtYW4gcGFnZSB3aXRoIHByb2dyYW0KCQoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCgktIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKCQoyMDAwLTA5LTA0IDE1OjA5ICBuYmEKCgktIG1pYmluY2wuaCwge3RjLHVkfXB7LFRhYmxlfS5jOiBlbnN1cmUganVzdCBvbmUgaW5jbHVkZSBvZiBzb2NrZXQuaAoJCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQoJCjIwMDAtMDktMDQgMTU6MDUgIG5iYQoKCS0gY29uZmlndXJlLmluOiBtYWtlIC0td2l0aG91dC1saWJ3cmFwIHdvcmsKCQoyMDAwLTA5LTAxIDE1OjE0ICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgoJICAtIHVwZGF0ZWQgY29kZS4KCQoyMDAwLTA5LTAxIDExOjU0ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogU2NvdHQgTGlwY29uIG5vdGVkIHRoYXQgc25tcHRyYXBkIGRvZXNuJ3Qgc3VwcG9ydCAtVC4KCQoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCgktIHBhcnNlLmM6IGZpeCBsb29wIGluIHN5bnRheCBlcnJvciBpbiBERUZWQUwgY2xhdXNlLiBBbHNvIGZpeCByZWFkaW5nCgkJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCgkKMjAwMC0wOC0yOCAxMzo0MyAgbWFyegoKCW1pbm9yIHN5bnRheCBnbGl0Y2ggaW4gUE9EIGRvY3MKCQoyMDAwLTA4LTI0IDAxOjU1ICBkYXZlcwoKCS0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwoJCShUaGFua3MgdG8gRXJuaWUgTWlsbGVyKQoJCjIwMDAtMDgtMTkgMTE6MjkgIG1zbGlmY2FrCgoJQXBwbHkgcGF0Y2ggZnJvbSA8Q2hyaXN0b3BoLk1hbW1pdHpzY2hAdHUtY2xhdXN0aGFsLmRlPgoJdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgoJCjIwMDAtMDgtMTggMDQ6MTggIG1zbGlmY2FrCgoJcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KCQoyMDAwLTA4LTE4IDAzOjQ0ICBtc2xpZmNhawoKCXJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KCQoyMDAwLTA4LTE4IDAzOjIwICBtc2xpZmNhawoKCWZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgoJCjIwMDAtMDgtMTggMDI6NTIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCgkKMjAwMC0wOC0xNyAxMzo0MiAgbXNsaWZjYWsKCglUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgoJCjIwMDAtMDgtMTYgMTU6MDQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogZml4IHZhcmlvdXMgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIHByb2JsZW1zLgoJCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IGZpeCBwYWRkaW5nIHNpemUgaW4gZW5jcnlwdGlvbi4KCQoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBzZXQgcGxhaW50ZXh0IGxlbmd0aCBhdCB0aGUgZW5kIG9mIHNjX2RlY3J5cHQuCgkKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCglGaXggYnVnIDI4NCB3aXRoIGEgc2hvcnQgZXhwbGFuYXRpb24gYWJvdXQgc25tcC5jb25mLgoJCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAyODMgLSB1bWFzayAwMjIsIG1ha2UgaW5zdGFsbC4gVGhhbmtzIHRvIGNzYWJhLnRvdGhAc3prLmJrZS5odQoJCjIwMDAtMDgtMTUgMDA6MDkgIG5iYQoKCS0gc25tcHRlc3QuYzogb3ZlcmhhdWwgaW5wdXRfdmFyaWFibGUsIGtpbGwgbmV3bGluZQoJCjIwMDAtMDgtMTQgMjI6MDUgIG5iYQoKCS0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CgkKMjAwMC0wOC0xNCAxNzoyNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgoJCjIwMDAtMDgtMTQgMTc6MTcgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IGEgbmV3IChkZWZhdWx0KSBlbmdpbmVJRCB0eXBlIGJhc2VkCgkgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgoJICAtIEkgdGhpbmsgaXQgd29uJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBpbnN0YWxsYXRpb25zIChoZWgpLgoJCjIwMDAtMDgtMTQgMTY6NDcgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6CgkgIC0gaWYgLURyZWFkX2NvbmZpZywgdGhlbiBwcmludCBldmVuIG5vLWhlbHAgdG9rZW5zIGFuZCBhICogZm9yIFBSRU1JQiBvbmVzLgoJCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKCS0gKG1hbnkpOiBwb3J0YWJpbGl0eSBmaXhlcyBmb3IgT3BlbkJTRCAyLjYsIEZyZWVCU0QgNC4xLCBVbHRyaXggNC41CgkKMjAwMC0wOC0xNCAxMTozMyAgaGFyZGFrZXIKCgktIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKCSAgLSByZW1vdmUgdW51c2VkIGNvbnRleHQgdmFyaWFibGVzLgoJCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CgkgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCgkKMjAwMC0wOC0xMSAxMzowOSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCgkKMjAwMC0wOC0xMSAwODo1NSAgaGFyZGFrZXIKCgktIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKCSAgLSB0eXBvcy4KCQoyMDAwLTA4LTExIDA2OjA1ICBuYmEKCgktIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgoJCjIwMDAtMDgtMTEgMDA6NDQgIG5iYQoKCS0gc25tcHRyYXBkLjg6IGZpeCB0eXBvLiBUaGFua3MgdG8gRy4gQWxsZW4gTW9ycmlzIElJSSA8Z2FtM0BhY20ub3JnPgoJCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKCS0gcGFyc2UuYzogcHJlZGVmaW5lIE9iamVjdFN5bnRheCwgQXBwbGljYXRpb25TeW50YXgsIFNpbXBsZVN5bnRheCBhbmQKCQlPYmplY3ROYW1lCgkKMjAwMC0wOC0xMCAxNjoyMCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgbWliMmMpOgoJICAtIG1ha2UgbWliMmMgbG9vayBpbiAkKHNubXBsaWJkaXIpIGZvciAuY29uZiBmaWxlcy4KCSAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KCQoyMDAwLTA4LTEwIDE0OjMzICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IGR5bmFtaWNhbGx5IGRlY2lkZSB0byByZXZlcnNlL2ZvcndhcmQgZW5jb2RlLgoJCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgoJLSAoZXh0ZW5zaWJsZS5jKTogZml4IENSIHRlcm1pbmF0aW9uLgoJCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgoJCjIwMDAtMDgtMTAgMTM6MDIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAyNTIgZm9yIGNvbmZpZ3VyZSBhbmQgc3lzL3NvY2tldC5oIG9uIEJTRC9PUyA0LjIKCQoyMDAwLTA4LTEwIDA5OjA3ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAoJICBzbm1wdXNtLmgsIHNubXB2My5jKToKCSAgLSBpbXBsZW1lbnQgcmV2ZXJzZSBlbmNvZGVkIG1lc3NhZ2VzLgoJICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgoJCjIwMDAtMDgtMDkgMTU6NDAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wOSAxNToyNyAgbXNsaWZjYWsKCglubyAvLyBjb21tZW50LCBpbiBkZWZlcmVuY2UgdG8gbm9uLUFOU0ktQyBjb21waWxlcnMuCgkKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgoJLSBocl9zd3J1bi5jOiBmaXggdGhlIFJ1blBhdGggZm9yIHN3YXBwZWQgb3V0IExpbnV4IHByb2Nlc3MKCQoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCgktIGhyX3ByaW50LmM6IGZpeCBhIGRlYnVnIHRva2VuCgkKMjAwMC0wOC0wOSAwNDo0NCAgbmJhCgoJLSBtYWluLmM6IGZpeCBwYXJzaW5nIG9mIC12CgkKMjAwMC0wOC0wOSAwMToxMyAgZGF2ZXMKCgktIChtaWJKSi9pcFJvdXRlLmgpOiBPbWl0IHJvdXRlX3dyaXRlIGZvciBub3cKCQoyMDAwLTA4LTA5IDAwOjU4ICBkYXZlcwoKCS0gKG1pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKCQkoUGlsb3QgZXJyb3Igd2hlbiB0cnlpbmcgdG8gY29tbWl0IHRoZSBjaGFuZ2VzIGVhcmxpZXIgLSBzb3JyeSEpCgkKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCgktIChleHRlbnNpYmxlLmMpOiBzdHJpcCBuZXdsaW5lcy4KCQoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246IHN0YXJ0IG9wdGluZCBhdCAxIG5vdCAwLgoJICAtCgkKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCglGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KCQoyMDAwLTA4LTA4IDA2OjA1ICBtc2xpZmNhawoKCWZpeCBidWcgIzI5OCByZXBvcnRlZCBhbmQgcGF0Y2ggc3VwcGxpZWQgYnkgQ29ucmFkIExpbmsgPGNsaW5rQG1sLmNvbT4KCQoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCgktIHNubXBfYXBpLmM6IGZpeCBhIGJ1c3kgbG9vcCB3aGVuIGFsYXJtIHF1ZXVlIGlzIGFjdGl2ZSB3aXRob3V0IGFueQoJCW91dHN0YW5kaW5nIHJlcXVlc3RzCgkKMjAwMC0wOC0wOCAwNDo0NyAgbmJhCgoJLSBzbm1wc2V0LjE6IGNhbm5vdCBzZXQgY291bnRlcnMKCQoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKCUZpeGVkIChCVUcjMzMyKSB1c2luZyBwYXRjaCBzdWJtaXR0ZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCUFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KCQoyMDAwLTA4LTA3IDA2OjU5ICBtc2xpZmNhawoKCUZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgoJZmlsZSBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgoJZmlsZSByZWFkX29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgc25tcF9zZXRfbWliX3dhcm5pbmdzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21vZHVsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9hbGxfbWlicy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF92YWx1ZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X2Rlc2NyaXB0aW9uLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGdldF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDQgMTc6MTMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhZGQgaW4gdGhlIG5vdGlmaWNhdGlvbiBncm91cCBieSBkZWZhdWx0LgoJCjIwMDAtMDgtMDQgMTc6MDggIGhhcmRha2VyCgoJLSAobm90aWZpY2F0aW9uLmgpOiBub3RpZmljYXRpb24gbWliIHdyYXBwZXIuCgkKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6CgkgLSBpbml0aWFsaXplIG9wdGluZCBiZWZvcmUgY2FsbGluZyBnZXRvcHQuCgkgLSBkZWJ1Z2dpbmcgb3V0cHV0LgoJCjIwMDAtMDgtMDQgMTY6NTYgIGhhcmRha2VyCgoJLSAocHJveHkuYyk6IHByb3Blcmx5IHNldCB0aGUgZmlyc3QgKHVudXNlZCkgYXJndW1lbnQgdG8gc25tcF9wYXJzZV9hcmdzKCkuCgkKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIHNubXBOb3RpZnlUYWJsZS5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCgkgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CgkgIC0gaWYgdXNpbmcgdGhlIHNubXBOb3RpZmljYXRpb25UYWJsZSwgaW5zZXJ0IG5vbi12MSB0cmFwIHNpbmtzIGludG8gaXQuCgkKMjAwMC0wOC0wNCAwNToyNiAgZGF2ZXMKCgktIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKCQoyMDAwLTA4LTA0IDA1OjIxICBkYXZlcwoKCS0gKG1pYmdyb3VwL3V0aWxfZnVuY3MuW2NoXSk6IE5ldyAnY2FjaGVkIHRhYmxlJyByb3V0aW5lcwoJCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMzI1IGlkZW50aWZpZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElORVQtQUREUkVTUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAyIDA3OjA2ICBtc2xpZmNhawoKCVNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KCQoyMDAwLTA4LTAyIDA2OjEwICBtc2xpZmNhawoKCUZpeCBCVUcgIzI5MSA6IGFsbG93ICIyNTUuMjU1LjI1NS4yNTUiIGZvciB0ZXh0IGlucHV0IHRvIEFTTl9JUEFERFJFU1MKCQoyMDAwLTA4LTAyIDA1OjIwICBtc2xpZmNhawoKCUZpeCAoQlVHIzMyMykgOiBmcmVlIFBEVSB3aGVuIHNubXBfc2VuZCBmYWlscy4KCQoyMDAwLTA4LTAyIDA1OjA2ICBtc2xpZmNhawoKCUFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgoJRmluZCBNSUJESVJTIGluIHNvdXJjZSB0cmVlLgoJRml4IGNvbmRpdGlvbiB0byBzZXQgUEFUSC4KCQoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCgktIGlwLmM6IE9uZSBtb3JlICNpZiBzb2xhcmlzCgkKMjAwMC0wOC0wMSAyMzoxOSAgbmJhCgoJLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKCQoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIHVudXNlZCB1c2FnZSgpIHR5cGVkZWYuCgkKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCgktIChwcm94eS5jLCBwcm94eS5oKTogLVdhbGwgd2FybmluZyBmaXhlcy4KCQoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gbmV3ZXIgdmVyc2lvbnMgb2YgU29sYXJpcy4KCQoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKCS0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCgkKMjAwMC0wOC0wMSAxNjozMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgoJCjIwMDAtMDgtMDEgMTA6MjMgIGhhcmRha2VyCgoJLSAoc25tcC11Y2Quc2gpOiBmaXggYnVnICMyOTcgKGRvbid0IGtpbGwgZ3JlcCBhbmQgaW5pdCBzY3JpcHQgaW52b2NhdGlvbnMpLgoJCjIwMDAtMDgtMDEgMDQ6NDUgIG1zbGlmY2FrCgoJRml4IGJ1ZyBmb3VuZCBieSBZaWdhbCBIb2NoYmVyZyA8aG9jaGJlcmdAZG1oc29mdHdhcmUuY29tPgoJCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECgkJKHdvcmsgd2l0aCB0aGUgbmFtZSBvcmlnaW5hbGx5IHJlZ2lzdGVyZWQsCgkJIG5vdCBhbnkgc3Vic2VxdWVudCBkaXZpc2lvbiBib3VuZGFyaWVzKQoJCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgoJUmVtb3ZlIGR1cGxpY2F0ZSBmb3BlbiBmcm9tIHNoZWxsX2NvbW1hbmQuCgkKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCgkoVEVTVENPTkYuc2guaW4pIC0gc2V0IE1JQkRJUlMgdG8gc2libGluZyBvZiB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgkoUlVOVEVTVFMpIC0gYWxsb3cgYmluYXJpZXMgdG8gYmUgaW4gdGhlICItRCBiaW5kaXIiIGRpcmVjdG9yeS4KCQoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKCURvbnQgYWRqdXN0IFBBVEggaWYgU05NUF9QQVRIIGlzIHNldC4KCURvbnQgYWRkIHBvcnQgc3BlYyB0byBTTk1QX0ZMQUdTIGlmIG9uZSBpcyBhbHJlYWR5IHNwZWNpZmllZC4KCQoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKCVJlbW92ZSB0ZXN0IGRpcmVjdG9yaWVzIGZvciBza2lwcGVkIHRlc3RzLgoJS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCglLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHBhc3NlZCB0ZXN0cyB3aGVuICJSVU5URVNUUyAtcyIgaXMgc3BlY2lmaWVkLgoJU2VhcmNoIGNvbmZpZy5oIGF0IHRoZSByb290IG9mIHRoZSBidWlsZCB0cmVlLgoJCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgoJTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwLCBDcmF5LVQzLCBTWC00LCBTWC01CgkKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCglNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAKCQoyMDAwLTA3LTMwIDE3OjM4ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKToKCSAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCgkgIC0gZGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KCSAgLSBtaXNjIHdhcm5pbmcgZml4ZXMuCgkKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKCSAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oKToKCSAgLSBtb3JlIG5vdGlmaWNhdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbnMgZm9yIGZpbHRlcmluZy4KCSAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCgkKMjAwMC0wNy0zMCAxNzowNSAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKCSAgLSBoYW5kbGUgaW1wbGllZCBvYmplY3RzLgoJICAtIGltcGxlbWVudCBoZWFkZXJfY29tcGxleF9nZXQoKSBmb3Igc2ltcGxlIGRhdGEgcmV0cmlldmFscy4KCQoyMDAwLTA3LTI4IDA2OjE1ICBtc2xpZmNhawoKCUNsZWFudXAgaW5jbHVkZSBoZWFkZXJzIHRvIGZpeCBidWcgIzMwNy4gVGhhbmtzIHRvIHNhbmR2ZW5AcmVzZWFyY2guYXR0LmNvbS4KCQoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKCSAgLSBhY2Nlc3NfaG9zdHMoKSByZXF1aXJlcyBhbiBhcmd1bWVudCBzbyBmYWtlIG9uZS4KCQoyMDAwLTA3LTI3IDE1OjAwICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWF0dGlhcyBCYXJ0aGVsOgoJICAtIGZpeCBmb3IgaW50ZXJmYWNlcyB3aXRob3V0IGFuIGF0dGFjaGVkIElQIGFkZHJlc3MuCgkKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKCSAgLSBzdXBwb3J0IHJhdyB2YWx1ZXMuCgkKMjAwMC0wNy0yNyAwODoyNSAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMpOiBwcmludCBlcnJvcnMgdG8gc3RkZXJyLgoJCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKCS0gcGFyc2UuYzogRml4IGEgbWlzc2luZyBpbml0aXphdGlvbiB3aGVuIG9uZSBNSUIgaG9sZHMgTU9EVUxFLUNPTVBMSUFOQ0UKCQlmb3IgYW5vdGhlcgoJCjIwMDAtMDctMjcgMDE6MzUgIG5iYQoKCS0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CgkJVGhhbmtzIHRvIERhbmEgUC4gQ29vayA8ZGNvb2tAY2FibGV0cm9uLmNvbT4KCQoyMDAwLTA3LTI2IDIyOjI4ICBtc2xpZmNhawoKCVVwZGF0ZSBmb3Igd2luMzIgYnVpbGQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCB1bnB1Ymxpc2hlZCBtZXRob2QuCgkKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCgktIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cy4KCQoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKCS0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIHRyYW5zbGF0ZU9iaiBoYWNrLgoJCjIwMDAtMDctMjYgMDg6NDkgIGhhcmRha2VyCgoJLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCgkKMjAwMC0wNy0yMSAxNDowMCAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzbm1wdG9zcWwpOiBvbmx5IGRlbGV0ZSBoaXN0b3J5IHJvd3Mgb25jZSBldmVyeSBob3VyIG9yIHNvLgoJICAtIHRvbyBDUFUgaW50ZW5zaXZlIGZvciBsYXJnZSB0YWJsZXMuCgkKMjAwMC0wNy0yMSAxMjo1OSAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzbm1wdG9zcWwpOiByZWNvcmQgYW5kIGRpc3BsYXkgc3lzVXBUaW1lIGFuZCBvdGhlcnMuCgkKMjAwMC0wNy0yMSAxMjo1NyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogZ3JhcGhpbmcgd29ya3MgYWdhaW4uCgkKMjAwMC0wNy0yMSAxMjo1NyAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBjb21tZW50cywgbGVnZW5kcywgYW5kIG1heC9taW4gd29yayBhZ2Fpbi4KCQoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KCQoyMDAwLTA3LTEyIDA5OjI5ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogY29weSBrZXkgbGVuZ3RoIGFzIHdlbGwgYXMgdGhlIGtleSB3aGVuIHVzaW5nIHRoZSBzYW1lCgkgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KCQoyMDAwLTA3LTExIDEzOjM0ICBtYXJ6CgoJYWRkZWQgcmFuZ2VzIGZpZWxkIHRvIFNOTVA6Ok1JQiBoYXNoCgkKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCgktIChtaWIuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIG1ha2UgbnVsbCBQUkVGSVggdmFyaWFibGUgcG9zc2libGUgc28gbm9uLWRvdC1sZWFkaW5nIG9pZHMgYXJlIGFjY2VwdGVkLgoJCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgoJICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKCSAgICAiYXV0aG9yaXRhdGl2ZSIsIG1lYW5pbmcgd2VhdGhlciB0aGV5IHNob3VsZCBiZSBsZWFybmluZyBlbmdpbmVJRHMKCSAgICBvciByZXBvcnRpbmcgb24gdGhlbS4KCSAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAoJICAgIHVzbV9wcm9jY2Vzc19pbl9tc2coKSB0byB1c2UgdGhpcyBmbGFnLgoJICAtIHNldCBpc0F1dGhvcmF0YXRpdmUgPSB0cnVlIGluIHRoZSBhZ2VudCwgYW5kIHVua25vd24gaW4gdGhlIHNubXB0cmFwZC4KCQoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogbWFrZSB0aGUgY3JlYXRlVXNlciB0b2tlbiBhY2NlcHQgYW4gZW5naW5laWQgKC1lIEFSRykgdG8gdXNlLgoJCjIwMDAtMDctMDcgMDE6MzcgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUmVjb2duaXNlIFRva2VuIFJpbmcgaW50ZXJmYWNlcyB1bmRlciBMaW51eAoJCjIwMDAtMDctMDYgMTc6MTkgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IHByaW50IGdlbmVyaWMgc3RyaW5ncyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKCSAgd2hlcmUgcG9zc2libGUuICAoSUUsIGNoZWNrIGZvciBwcmludGFibGUgY2hhcmFjdGVycyBiZWZvcmUgcHJpbnRpbmcgaGV4KS4KCQoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKCS0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IG1vdmVkIFRFU1RDT05GLnNoIHRvIFRFU1RDT05GLnNoLmluCgkgIGFuZCBoYXZlIHRoZSBNSUJTIHBhdGggdmFyaWFibGUgYnVpbHQgYnkgY29uZmlndXJlIHNpbmNlIGl0IGtub3dzCgkgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCgkKMjAwMC0wNy0wNiAxNzowNCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaGVhZGVyX2NvbXBsZXguYywgc25tcE5vdGlmeVRhYmxlLmMsCgkgIGFzbjEuaCwgc25tcF9hcGkuYyk6CgkgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCgkgIC0gbWFrZSB0aGUgY3JlYXRlZCBVU00gZW50cmllcyBzZXQgdGhlIHN0b3JhZ2VUeXBlIGFuZCBSb3dTdGF0dXMKCSAgICBhcHByb3ByaWF0ZWx5LgoJCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuaCk6IGJldHRlciBjb21tZW50cyBvbiBhIGNvdXBsZSBvZiBmdW5jdGlvbiBkZWZpbml0aW9ucy4KCQoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKCWZpeCAoQlVHIzI5MCkgZ3JhY2VmdWxseSBoYW5kbGUgc29tZSBQRFVzIHRoYXQgaGF2ZSBubyB2YXJpYWJsZXMuCgkKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKCSAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCgkgIC0gbWFrZSBlbmdpbmVpZCByZXBvcnRzIGZyb20gdGhlIHVzbSBoYXBwZW4gYmFzZWQgb24gdGhlIHJlcG9ydCBmbGFnCgkgICAgaW4gdGhlIG1lc3NhZ2UgZmxhZy4KCSAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCgkgICAgICBzcGVjaWZpY2F0aW9ucyBub3RlIHRoYXQgeW91IHNlbmQgYSByZXBvcnQgaWYgeW91IGFyZQoJICAgICAgImF1dGhvcml0YXRpdmUiLCBidXQgZG9uJ3QgZGVzY3JpYmUgaG93IHRvIGtub3cgaWYgeW91IGFyZQoJICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCgkgICAgICBub3RpZmljYXRpb24gcmVjZWl2ZXJzLCB3aGVyZSB5b3UgYXJlIHNvbWV0aW1lcyBhdXRob3JpdGF0aXZlCgkgICAgICBhbmQgb3RoZXIgdGltZXMgeW91J3JlIG5vdCwgdGhpcyBpcyBwcm9ibGVtYXRpYy4gIFRoZSBTTk1QdjMKCSAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKCSAgICAgIFdHIGhhcyBwcm9jbGFpbWVkIHRoYXQgdGhlIEFTSXMgYXJlIG5vdCBtZWFudCB0byBiZSB1c2VkIGFzIGFuCgkgICAgICBBUEksIGJ1dCB0aGUgaW5pdGlhbCB3b3JrIGRvbmUgYnkgTkFJIGFuZCBUSVNMYWJzIGF0dGVtcHRlZCB0bwoJICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQoJICAgICAgYW5kIGhlbmNlIHdlIGZvbGxvd2VkIHRoZSBzcGVjaWZpY2F0aW9ucyB0byB0aGUgbGV0dGVyIGFuZCB1c2VkCgkgICAgICB0aGUgQVNJcyBhcyBBUElzIGp1c3QgdG8gc2VlIGlmIHdlIGNvdWxkLiAgV2UgY291bGQgcHJldmlvdXNseQoJICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCgkgICAgICBub24tYXV0aG9yaXRhdGl2ZS4gIFNpbmNlIGJlZ2lubmluZyB0byB3b3JrIG9uIHByb3h5IGFuZCB0aGUKCSAgICAgIG5vdGlmaWNhdGlvbiBtaWIsIHRoaXMgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiAgRm9yIHRoZSByZWNvcmQsIEkKCSAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKCSAgICAgIG1hbm5lciBhcyBpdCBubyBsb25nZXIgY29uZm9ybXMgZXhhY3RseSB0byB0aGUgU05NUHYzIEFTSXMuICBTbwoJICAgICAgYXMgbm90IHRvIGNvbmZ1c2UgYW55b25lLCB0aGlzIGlzIGFuIGVudGlyZWx5IHRoZW9yZXRpY2FsIGlzc3VlCgkgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKCSAgICAgIHRvIGRvLiAgVGhvdWdoIEkgY291bGQgZWFzaWx5IGdvIG9uLCBJJ2xsIHN0ZXAgb2ZmIG15IHNvYXAgYm94IG5vdy4KCQoyMDAwLTA3LTAzIDEwOjEwICBoYXJkYWtlcgoKCS0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCgkgIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKCSAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCgkgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIHVzZSBpdC4KCSAgLSBtYWtlIHRoZSB0YXJnZXQgbWliIGdlbmVyYXRlIG1vcmUgcGVyc2lzdGVudCBzZXNzaW9ucy4KCSAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgoJICAgIGxpc3QsIHdoaWNoIGlzIG5vdyBjYWNoZWQgZGlyZWN0bHkgYnkgdGhlIHRhcmdldCBtaWIuCgkKMjAwMC0wNy0wMyAwODozOCAgbXNsaWZjYWsKCglmaXggKEJVRyMyNjIpIC0gKHNvbWUpIHN0YXRlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVhY2hlZC4KCQoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKCWZpeCAoQlVHIzI4NykKCQoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKCWZpeCBidWcgIyAyODkKCQoyMDAwLTA2LTMwIDA0OjQ1ICBtc2xpZmNhawoKCXNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CgkKMjAwMC0wNi0zMCAwMDo0NyAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKCQoyMDAwLTA2LTI4IDIzOjM3ICBuYmEKCgktIElGLU1JQi50eHQ6IHVwZ3JhZGUgdG8gUkZDIDI4NjMKCQoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCgktIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQoJCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKCS0gbWFpbi5jOiBiZXR0ZXIgb3B0aW9uIHBhcnNpbmcuCgkKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgoJLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgoJCjIwMDAtMDYtMjcgMDA6MzMgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS4xOiBkb2N1bWVudCB0aGF0IC13IGlzIGFsc28gZm9yIC1UZAoJCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKCS0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwoJCjIwMDAtMDYtMjcgMDA6MjggIG5iYQoKCS0gc25tcHRhYmxlLmM6IGZpeGVzIGFuZCB1c2FnZSBtZXNzYWdlIGZvciAtQ2ggYW5kIC1DSAoJCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKCS0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgoJCjIwMDAtMDYtMjYgMjM6NDIgIG5iYQoKCS0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwoJCWRvY3VtZW50cy4KCQoyMDAwLTA2LTI2IDIzOjQwICBuYmEKCgktIHBhcnNlLmMsIG1pYi5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFkZCBwYXJzaW5nIG9mIENIT0lDRSBhbmQgY2hlY2tzIGZvcgoJCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQoJCWNvbXBsZXRlIE1JQiBleHRyYWN0cyBmcm9tIFJGQyBkb2N1bWVudHMuCgkKMjAwMC0wNi0yNiAyMzozOCAgbmJhCgoJLSBNYWtlZmlsZS50b3A6IG1ha2UgbGlidG9vbCBzaWxlbnQsIHNvIHdlIGNhbiBzZWUgdGhvc2Ugd2FybmluZ3MKCQoyMDAwLTA2LTI2IDIzOjM3ICBuYmEKCgktIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCgkKMjAwMC0wNi0yNiAyMzozMiAgbmJhCgoJLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAoJCWlzIHNlbnQuCgkKMjAwMC0wNi0yNiAxMTo1NiAgbXNsaWZjYWsKCglmaXggKEJVRyMyMzMpCgkKMjAwMC0wNi0yMyAwNjo0MiAgbXNsaWZjYWsKCglyZXBsYWNlIG1hbGxvYy9tZW1zZXQgMCB3aXRoIGNhbGxvYy4KCQoyMDAwLTA2LTIzIDAxOjA4ICBkYXZlcwoKCS0gKG1pYklJL2tlcm5lbF9saW51eC5bY2hdLCBtaWJJSS9pcC5jKTogQWRkZWQgc3VwcG9ydCBmb3IgaXBSb3V0aW5nRGlzY2FyZHMKCQkoVGhhbmtzIHRvIEJyeWFuIEJsYWNrbWFuKQoJCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgoJcmVtb3ZlIGV4dHJhIGluY2x1ZGUgZXJyb3JtaWIuaAoJCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjc2IC0gY2xvc2UgbW9zdCBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSBleGVjJ2luZyBjb21tYW5kLgoJCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgoJZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KCQoyMDAwLTA2LTIyIDE1OjUzICBtc2xpZmNhawoKCVVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KCQoyMDAwLTA2LTIxIDE0OjU5ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHNubXB0b3NxbCk6IHJlY29yZCBhbmQgcmVwb3J0IHN5c1VwVGltZS4KCQoyMDAwLTA2LTIxIDE0OjMxICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IG1pbm9yIHNxbCBjYWNoaW5nIHNwZWVkIG9wdGltaXphdGlvbnMuCgkKMjAwMC0wNi0yMSAxMzozMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBBY2suICBEb24ndCBkZWxldGUgc3R1ZmYgZnJvbSB0aGUgaGlzdG9yeSB0YWJsZSB0aGF0IGZyZXF1ZW50bHkuCgkKMjAwMC0wNi0yMSAxMjo1MSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBiZXR0ZXIgZXJyb3IgZGVzY3JpcHRpb24gc3VwcG9ydC4KCQoyMDAwLTA2LTIxIDEyOjQ2ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHNubXB0b3NxbCk6IGNvbGxlY3Qgc3lzRGVzY3IsIHN5c09iamVjdElkLCAmIHZlcnNpb25UYWcuCgkKMjAwMC0wNi0yMSAxMjo0NiAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBhZGQgLXNlbGVjdG9yZGVyLgoJCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBVaCwgb25seSBpZiBub3QgZGVsZXRlZC4KCQoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jKTogY2hhbmdlIGNyZWF0ZUFuZEdvL2NyZWF0ZUFuZFdhaXQgc3RhdGVzIHRvIGFjdGl2ZS9OSVMuCgkKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCglEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KCQoyMDAwLTA2LTIwIDE3OjMwICBtc2xpZmNhawoKCURvbnQgYXNzdW1lIEFOU0kgQy1wcmVwcm9jZXNzb3IgKHJlcGxhY2UgIiMjIiBjb25jYXRlbmF0aW9uIHdpdGggc3ByaW50ZikuCgkKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCglXaW4zMiBNUy1WQysrIGJ1aWxkIGZpeHVwcy4KCQoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKCUVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgoJCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCgkKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCglVc2UgaW50IHZzIHVsb25nIGZvciBhcnJheSBpbmRleGluZyB2YXJpYWJsZXMgdG8gYXZvaWQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoLgoJCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgoJCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXIgImluaXRsaXN0Ii4KCQoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKCURlY2xhcmUgc3RybmNhc2VjbXAgaW4gc3lzdGVtLmggOyBSZW1vdmUgdW51c2VkIHZhciAic3RhdHVzIi4KCQoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFycy4KCQoyMDAwLTA2LTIwIDE1OjMwICBtc2xpZmNhawoKCURlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgoJCjIwMDAtMDYtMjAgMTQ6MDAgIGhhcmRha2VyCgoJLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgoJCjIwMDAtMDYtMjAgMTM6NTkgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oKToKCSAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CgkgICAgLSB1c2VzIHRoZSBTTk1QLVRBUkdFVC1NSUIgdG8gZ2V0IGl0cyBhZGRyZXNzZXMgZnJvbS4KCSAgICAtIHVzZXMgaGVhZGVyX2NvbXBsZXggdG8gaGFuZGxlIHRoZSBkYXRhLgoJICAgIC0gbXVjaCB0b2RvOgoJICAgICAgLSBkeW5hbWljIHRhcmdldC9ub3RpZmljYXRpb24gbWliIHVwZGF0aW5nIHdpdGhvdXQga2lsbCAtSFVQIG5lZWRlZC4KCSAgICAgICAgLSB0aGlzIHdpbGwgYmUgYSByZWFsIHBhaW4uCgkgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KCSAgICAgIC0gdGhlIHJlc3Qgb2YgdGhlIFNOTVAtTk9USUZJQ0FUSU9OLU1JQiB0YWJsZXMuCgkKMjAwMC0wNi0yMCAxMzo1MyAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKToKCS0gZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgoJLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgoJCjIwMDAtMDYtMjAgMTM6NTEgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6IGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KCSAgYmFzZWQgb24gZW50cmllcyBpbiB0aGUgU05NUC1UQVJHRVQtTUlCIHRhYmxlLgoJCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgoJLSAoaGVhZGVyX2NvbXBsZXguYyk6IHJlbW92ZSBNaWNoYWVsJ3MgaG9ycmlibGVseSB3cm9uZyAiZml4ZXMiLgoJCjIwMDAtMDYtMjAgMTM6NDggIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgoJCjIwMDAtMDYtMjAgMTM6NDYgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgoJCjIwMDAtMDYtMTkgMTI6MzIgIG1zbGlmY2FrCgoJQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KCQoyMDAwLTA2LTE5IDEyOjE1ICBtc2xpZmNhawoKCShwcm90b2NvbC5jKSBVc2Ugc2l6ZW9mKG9pZCksIG5vdCA0IQoJKGNsaWVudC5jKSBBZGQgX2FsbF8gb2YgT0lEIHZhbHVlIGZvciBhZ2VudHhfcmVnaXN0ZXIgYW5kIGFnZW50eF91bnJlZ2lzdGVyLgoJCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgoJIFJlbW92ZWQgc2l6ZW9mKHVfY2hhcikgYW5kIHVubmVjZXNzYXJ5ICh1bnNpZ25lZCkgY2FzdHMgdG8gbWFsbG9jIHBhcmFtcy4KCQoyMDAwLTA2LTE5IDAzOjA0ICBuYmEKCglQcm90b3R5cGUgZml4dXAuCgkKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgoJcy9jb25pZmcvY29uZmlnLyAuLi4uIEhycnJtbW1wZgoJCjIwMDAtMDYtMTkgMDI6NTggIG5iYQoKCS0gbWFrZW5vc3lzZGVwZW5kLnBsIE1ha2VmaWxlLmluOiBvYmplY3QgZmlsZXMgYXJlIG5vdyBuYW1lZCAubG8gLi4uCgkKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgpOiBhZGQgdGhlIFNOTVB2Mi1UTSBtaWIgdG8gdGhlIGRlZmF1bHQgbGlzdC4KCQoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCgkKMjAwMC0wNi0xNSAwNjo0NSAgbWFyegoKCWZhdCBmaW5nZXJzCgkKMjAwMC0wNi0xNSAwNjo0MiAgbWFyegoKCWFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KCQoyMDAwLTA2LTE0IDE2OjE1ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBmaXggdXNlciBwcmVmZXJlbmNlcy4gIENvbHVtbnMgYXJlIG9wdGlvbmFsbHkKCSAgZGlzcGxheWFibGUgYWdhaW4uCgkKMjAwMC0wNi0xNCAxNjoxNSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggaGlzdG9yeSBkZWxldGlvbi4KCQoyMDAwLTA2LTEyIDE2OjQzICBoYXJkYWtlcgoKCS0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0cmFwc2Vzcy4KCQoyMDAwLTA2LTEyIDE2OjM5ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKCSAgLSBuZXcgc25tcGQuY29uZiB0b2tlbiBmb3IgdHJhcCBzZXNzaW9uczogInRyYXBzZXNzIi4KCSAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzIHNvIGFueSB0eXBlIG9mIHRyYXAgY2FuIGJlIHNlbnQgd2l0aCBpdAoJICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KCSAgICAtIHYzIHRyYXBzIGRvbid0IHdvcmsgZHVlIHRvIHRoZSBzYW1lIFVTTSBwcm9ibGVtcyBmb3VuZCBpbiB0aGUKCSAgICAgIHJlY2VudCBwcm94eSBzdWJtaXNzaW9ucyAobXkgbmV4dCB0YXJnZXQpLgoJICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KCQoyMDAwLTA2LTEyIDE2OjE4ICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZS1lbmFibGUgZnJlZWluZyBvZiBtYXN0ZXIgcmVxdWVzdC4KCQoyMDAwLTA2LTEyIDE2OjE3ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2F2ZSBleGVjIGRhdGEgdG8gL3Zhci91Y2Qtc25tcC4KCSAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgoJCjIwMDAtMDYtMTIgMTQ6MTIgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkX2xvZy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgoJICAtIHJlbW92ZSBlbmRpbmcgY29tbWFzIGluIGVudW0gbGlzdC4KCQoyMDAwLTA2LTEyIDEwOjM2ICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNldHVwdXNlciwgc25tcHRvc3FsKTogdXNlICJUYWJsZSJzIGluc3RlYWQgb2YgIkVudHJ5InMuCgkKMjAwMC0wNi0xMiAxMDozMyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogc2F2ZSBtaWIgZGVzY3JpcHRpb25zIGZvciBkaXNwbGF5IHB1cnBvc2VzIChhZ2FpbikuCgkKMjAwMC0wNi0xMiAxMDoyOSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgoJCjIwMDAtMDYtMTIgMTA6MjcgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHByb3Blcmx5IHNvcnQgZGlzcGxheWVkIHRhYmxlIGNvbHVtbnMgYWdhaW4uCgkKMjAwMC0wNi0wNyAxMzoyMyAgaGFyZGFrZXIKCgktIChzbm1wX2NvbmZpZy41LmRlZiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CgkgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKCSAgICBmaWxlIFRZUEUgaWYgYSBzcGVjaWFsICJbVFlQRV0iIGtleXdvcmQgaXMgaW5zZXJ0ZWQgaW50byB0aGUKCSAgICAuY29uZiBmaWxlLiAgU2VlIHNubXBfY29uZmlnKDUpIGZvciBhIGJldHRlciBkZXNjcmlwdGlvbi4KCQoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCgkKMjAwMC0wNi0wNiAxNDoyNiAgaGFyZGFrZXIKCgktIChJTlNUQUxMLCBncmVlbi5naWYsIG1hbmFnZXIucG0sIHJlZC5naWYsIHNldHVwYXV0aCwgc2V0dXBkYiwKCSAgc2V0dXBuZXdob3N0LCBzZXR1cHVzZXIsIHNubXB0b3NxbCwgc25tcHRvc3FsdGFibGUsIHNxbHRvaHRtbCk6CgkgIC0gbWFuYWdlbWVudCBjbGVhbnVwIGFuZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIHdyaXR0ZW4uCgkgIC0gc2hvdWxkIGJlIG1vc3RseSBjb21wbGV0ZSAoaWUsIGJhcmVseSBmdW5jdGlvbmFsKSBmb3IgdGhlIGFscGhhIHRlc3RlcnMuCgkKMjAwMC0wNi0wNiAwODowMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBob3N0IG5hbWUgY2hhbmdlcyAtPiB2YXJjaGFyKDY0KQoJCjIwMDAtMDYtMDYgMDg6MDIgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IG1hbnkgbWlub3IgZml4ZXMgYW5kIGNoYW5nZXMuCgkKMjAwMC0wNi0wNiAwODowMiAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBhbGxvdyB0YWJsZSB0aXRsZSBzZXR0aW5nLgoJCjIwMDAtMDYtMDIgMTE6NDEgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCgkKMjAwMC0wNi0wMiAxMTo0MCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKCSAgLSBtYWtlIChhbmQgaW5zdGFsbCkgcGVybCBzY3JpcHRzIGRpZmZlcmVudGx5LCB3aXRob3V0IG1vZGlmeWluZyB0aGUgb3JpZy4KCQoyMDAwLTA2LTAxIDE2OjQ3ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IHR5cG9zLgoJCjIwMDAtMDYtMDEgMTY6NDQgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKToKCSAgLSBkZWJ1Z2dpbmcgdG8gU1RERVJSLgoJICAtIGF1dG8gZGVsZXRpb24gb2Ygb2xkIGhpc3RvcmljYWwgZGF0YS4KCQoyMDAwLTA2LTAxIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBiZWdpbm5pbmdzIG9mIGEgbmljZXIgcmVhbCBpbnRlcmZhY2UuCgkKMjAwMC0wNi0wMSAxNjo0MyAgaGFyZGFrZXIKCgktIChnZXRWYWx1ZXMucG0pOiBzb21lIHZhcmlhYmxlcyB3ZXJlIGdsb2JhbCBhbmQgaGVuY2UgcGVyc2lzdGVudCBhbmQKCSAgd2VyZSBtZXNzaW5nIHRoaW5ncyB1cC4KCQoyMDAwLTA2LTAxIDE0OjQ4ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KCSAgZW5zdXJlIHdlIHVwZGF0ZSBjb3VudGVycyBhbmQgc3R1ZmYgdGhhdCBtdXN0IGNoYW5nZSAoZWcsIGVuZ2luZUJvb3RzKS4KCQoyMDAwLTA1LTMxIDE2OjIyICBoYXJkYWtlcgoKCS0gKHNubXBkLjEuZGVmKTogZGVzY3JpYmUgLUkuCgkKMjAwMC0wNS0zMSAxNTo1MiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcGQuYyk6CgkgIC0gbmV3IC1JIHN3aXRjaCB0byBzbm1wZCB0byBkbyBkeW5hbWljIGRldGVybWluYXRvbiBvZiB3aGljaCBtaWIKCSAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KCQoyMDAwLTA1LTMxIDE1OjUwICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KCSAtIHdoaWNoIEkgaW1tZWRpYXRlbHkgZGVjaWRlZCB0byBkbyBzb21ldGhpbmcgZGlmZmVyZW50IGZvciB3aGF0IEkKCSAgIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgaXQgZm9yLCBzbyBpdHMgbm90IGJlaW5nIHVzZWQgeWV0LgoJCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgoJLSAobWliSUkvaXAuW2NoXSk6IEFsbG93IElQIHN1cHBvcnQgd2l0aG91dCB0aGUgQXQvaXBOZXRUb01lZGlhIG1vZHVsZQoJCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgoJLSAocHJveHkuYywgcHJveHkuaCk6IHNpbXBsZSBwcm94eSBzdXBwb3J0LgoJICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KCSAgLSB1c2VzIHNubXBfcGFyc2VfYXJncygpIHNvIGl0IHRha2VzIHN0YW5kYXJkIGNvbW1hbmQgbGluZSBjb25maWcgb3B0aW9ucy4KCSAgLSBubyBzZXQgc3VwcG9ydC4KCSAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KCSAgLSBubyBTTk1QdjMgc3VwcG9ydCAoc2lnaCkuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBJQU5BLUxBTkdVQUdFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgQUdFTlRYLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCglGaXggcHJvYmxlbSBpZGVudGlmaWVkIGJ5IFYuIEdyZW5ldCA6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIG1pYmZldGNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgc21pc3RyaXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBNYWtlZmlsZS5taWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCgktIChtaWJJSS9zeXNPUlRhYmxlLmMgbWliSUkvc3lzdGVtX21pYi5jKToKCSAgLSBVc2UgbmV3IHRpbWUgdXRpbGl0eSByb3V0aW5lcyB0byBzaW1wbGlmeSBwcm9jZXNzaW5nCgkgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCgkKMjAwMC0wNS0yNiAwOToyMyAgZGF2ZXMKCgktICh1dGlsX2Z1bmNzLltjaF0pOiBOZXcgdGltZS1kaWZmIHV0aWxpdHkgcm91dGluZXMKCQoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKCS0gKHNubXBkLmMgc25tcF9hZ2VudC5jIG1pYklJL3Zhcl9yb3V0ZS5jKTogVXNlICdtaWJpbmNsLmgnIGhlYWRlcgoJCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0KCSAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKToKCSAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwoJCjIwMDAtMDUtMjYgMDc6NDYgIGRhdmVzCgoJLSAoc25tcC5oIHNubXBfYXBpLmMgc25tcF9jbGllbnQuYyk6IFN1cHBvcnQgZm9yIHBlci1yZXF1ZXN0IHRpbWVvdXQgaGFuZGxpbmcKCQoyMDAwLTA1LTI2IDA3OjQ1ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKTogTWlub3IgZXJyb3IgaW4gQWdlbnRYIHBhY2tldCBkdW1wCgkKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCgktIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgoJICAtIGZpeGVkIGxpbnV4IHByb2JsZW06IHdyb25nIHBhcmFtcyBnZXR0aW5nIHJldHVybmVkLgoJCjIwMDAtMDUtMjUgMDU6MzggIG1zbGlmY2FrCgoJRml4IHVzZSBvZiBiaW4yYXNjIHRvIG5vdCBhbHdheXMgc2hvdyAic3RyaW5nIjsgdXNlIHNubXBfb2lkX2NvbXBhcmUsIHRvby4KCVNlZSBidWcgIzIzNCBmb3IgZGV0YWlscy4KCQoyMDAwLTA1LTI1IDAzOjM5ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvbnNvbGlkYXRlIGhlYWRlciBoYW5kbGluZy4KCQoyMDAwLTA1LTI1IDAzOjMxICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvcnJlY3QgY29uZnVzaW5nIGNvbW1lbnQKCQoyMDAwLTA1LTI1IDAxOjUzICBkYXZlcwoKCS0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBSZXBsYWNlIHVzZSBvZiAnY3V0JyB3aXRoIGVxdWl2YWxlbnQgJ3NlZCcgY2FsbHMKCQoyMDAwLTA1LTI1IDAxOjMwICBkYXZlcwoKCS0gKGNvbmZpZ3VyZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSk6CgkgIC0gRGlyZWN0IGNlcnRhaW4gY2hlY2tzIHRvIHRoZSBhcHByb3ByaWF0ZSBmaWxlIGRlc2NyaXB0b3IgKHNlZSBCVUcjMjQ3KQoJCjIwMDAtMDUtMjIgMTY6MjIgIGhhcmRha2VyCgoJLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkIG1vcmUgc3R1ZmYgdG8gaWdub3JlLgoJCjIwMDAtMDUtMjIgMTY6MjEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGtnZXQuYywKCSAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCgkgIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYywgTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLAoJICBzbm1wX3BhcnNlX2FyZ3MuaCk6CgkgIC0gbW92ZWQgc25tcF9wYXJzZV9hcmdzIHRvIHRoZSBsaWJyYXJ5LCBhcyBJIHByb21pc2VkIHRvIGRvIGFnZXMgYWdvLgoJICAgIC0gbm8gbG9uZ2VyIGNhbGxzIHVzYWdlKCkgZGlyZWN0bHksIGJ1dCByZXR1cm5zIC0xIGlmIHlvdSBzaG91bGQuCgkKMjAwMC0wNS0yMiAwNTo0NyAgZGF2ZXMKCgktIChzbm1wbGliL3Rvb2xzLltjaF0pOiBSb3V0aW5lIGZvciBjb21wYXJpbmcgdHdvIG1hcmtlcnMuCgkKMjAwMC0wNS0yMiAwNTo0MiAgZGF2ZXMKCgktIChsb2NhbC9taWIyYyk6IEdlbmVyYXRlIG11bHRpcGxlIHRhYmxlcyBpbiBvbmUgY29kZSBmaWxlCgkKMjAwMC0wNS0xNyAxMDoyOCAgaGFyZGFrZXIKCgktICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIHdyaXRhYmxlIHZhY20gbWliIHN1cHBvcnQuCgkgIC0gb3RoZXIgbWlzYyB2YWNtIGZpeGVzLgoJCjIwMDAtMDUtMTcgMTA6MjYgIGhhcmRha2VyCgoJLSAoc25tcHVzbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIERvbid0IHNlZ2ZhdWx0IG9uIGFuIHVua25vd24gY29tbWFuZCwgaW5zdGVhZCBwcmludCBhIHdhcm5pbmcuLgoJCjIwMDAtMDUtMTcgMTA6MjUgIGhhcmRha2VyCgoJLSAoc25tcHZhY20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSBhZGRlZCBhIG5ldyBjb21tYW5kOiBzbm1wdmFjbS4KCQoyMDAwLTA1LTE3IDA5OjI1ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBtZW50aW9uIHRoZSBwb3J0IG51bWJlciBvbiB0aGUgdHJhcHNpbmsgaGVscCBsaW5lLgoJCjIwMDAtMDUtMTcgMDk6MjAgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiB1c2Ugc3RhbmRhcmRpemVkIGJ1ZmZlciBzaXplcwoJCjIwMDAtMDUtMTcgMDk6MTMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZC44KTogUGF0Y2ggZnJvbQoJICBKZWZmIENvdXJzOgoJICAtIGN1c3RvbWl6ZWQgZm9ybWF0dGluZyBvZiB0cmFwIG91dHB1dC4KCQoyMDAwLTA1LTE3IDA5OjExICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IGFkZCBKZWZmIGFuZCBBcm5lLgoJCjIwMDAtMDUtMTcgMDg6MTUgIGhhcmRha2VyCgoJLSAobWliLmMpOiAqY29ycmVjdGx5KiBhc3NvY2lhdGUgZXNjYXBlUXVvdGVzIHdpdGggdGhlIHJpZ2h0IGRlZmF1bHRfc3RvcmUgYm9vbC4KCQoyMDAwLTA1LTE3IDA4OjExICBoYXJkYWtlcgoKCS0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGVzY2FwZVF1b3Rlcy4KCQoyMDAwLTA1LTE3IDA4OjA5ICBoYXJkYWtlcgoKCS0gKHNubXBjbWQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG5ldyBvcHRpb24gLU9FOgoJICAtIHNoZWxsIGJhY2tzbGFzaCBlc2NhcGUgcXVvdGF0aW9ucyBtYXJrcyBmb3IgY3V0dGluZyBhbmQgcGFzdGluZwoJICAgIG9udG8gYW5vdGhlciBzbm1wIGNvbW1hbmQgbGluZS4KCQoyMDAwLTA1LTE1IDA5OjI0ICBkYXZlcwoKCS0gKG1pYklJL3tpcCxpY21wLHRjcCx1ZHAsa2VybmVsX2xpbnV4fS5bY2hdKToKCSAgLSAgUHVsbCBMaW51eCBNSUItSUkgc3RhdGlzdGljcyBnYXRoZXJpbmcgaW50byBhIHNpbmdsZSByb3V0aW5lLgoJICAtICBDYWNoZSBNSUItSUkgc3RhdGlzdGljcyBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KCQoyMDAwLTA1LTE1IDA4OjUzICBoYXJkYWtlcgoKCS0gKHVjZF9zbm1wLmgsIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSB2bXN0YXQgc3VwcG9ydCBmb3IgYnNkaTQuCgkKMjAwMC0wNS0xNSAwMzowNiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBSZS1yZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQoJCShJdCByZWFwcGVhcmVkIGR1cmluZyBhIHJlY2VudCBjaGFuZ2UpCgkKMjAwMC0wNS0xNSAwMzowMCAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IEltcGxlbWVudCBtaXNzaW5nIHJvdXRpbmUgJ3VucmVnaXN0ZXJfbWliX2NvbnRleHQnCgkKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnRfaW5kZXguW2NoXSk6IE1vdmUgJ2ZkJyByZWdpc3RyeSBoYW5kbGluZyBiYWNrIHRvIGFnZW50X3JlZ2lzdHJ5CgkKCS0gKGFnZW50eC9jbGllbnQuYyk6IFJlY29nbmlzZSBuZXcgY29kZSBmaWxlIGZvciBpbmRleCBoYW5kbGluZwoJCjIwMDAtMDUtMTIgMTA6MTUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogVW0sIGRlZmF1bHQgdG8gcG9ydCAxNjEuICBPcHBzLgoJCjIwMDAtMDUtMTIgMDk6MDAgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSB2YXJfc3RydWN0LmggYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBQcmVwYXJhdGlvbiBmb3IgcGVyLU1JQiByZWdpb24gdGltZW91dCwgYW5kIGNvbnRleHQgc3VwcG9ydAoJCjIwMDAtMDUtMTIgMDg6NDUgIGRhdmVzCgoJLSAoa2VybmVsX3N1bm9zNS5jKTogUmVjb2duaXNlIFNvbGFyaXMgQVRNIExBTiBFbXVsYXRpb24gaW50ZXJmYWNlcwoJCVRoYW5rcyB0byBKYXkgWW91bmcKCQoyMDAwLTA1LTEyIDA4OjEzICBkYXZlcwoKCS0gKGFnZW50X2luZGV4LltjaF0gYWdlbnRfcmVnaXN0cnkuW2NoXSBNYWtlZmlsZS5pbiBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgoJICAtIFNwbGl0IGluZGV4IGhhbmRsaW5nIG91dCBmcm9tIHRoZSBNSUIgcmVnaXN0cnkuCgkKMjAwMC0wNS0xMiAwNzowMiAgZGF2ZXMKCgktIChrZXJuZWxfc3Vub3M1LmMpOiBBZGQgc3VwcG9ydCBmb3IgcmVjb2duaXNpbmcgUXVhZEZhc3RFdGhlciBpbnRlcmZhY2UKCQoyMDAwLTA1LTEyIDA2OjU3ICBkYXZlcwoKCS0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggcHJvYmxlbSB3aXRoIG1pc3Npbmcgc2VwYXJhdG9yICh3aXRoIC1DaSAtQ2YpCgkJVGhhbmtzIHRvIFhhdmllciBGT1VSTkVUCgkKMjAwMC0wNS0xMiAwNDowMiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBSZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQoJCUknbSBzdXJlIHRoaXMgd2FzIHB1dCBpbiBmb3IgYSByZWFzb24sIGJ1dCBJIGNhbid0IHJlbWVtYmVyIHdoYXQuCgkJSXQgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBub3csIGFuZCBqdXN0IGxlYWtzIG1lbW9yeS4KCQlIZXJlJ3MgaG9waW5nLi4uLi4KCQoyMDAwLTA1LTEyIDAzOjExICBkYXZlcwoKCS0gKGFnZW50L3NubXBkLmMpOiBDYXRjaCAoYW5kIGlnbm9yZSkgU0lHUElQRSBzaWduYWxzLgoJCURpc2FwcGVhcmluZyBzdWJhZ2VudHMgdGhlcmVmb3IgYXBwZWFyIGFzIG5vcm1hbCBJL08gZmFpbHVyZXMKCQoyMDAwLTA1LTEyIDAyOjI0ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKToKCSAgLSBJbXBsZW1lbnQgb3BhcXVlLWVuY29kZWQgZmxvYXQgJiBkb3VibGUgdHlwZXMKCSAgLSBCcmluZyBwYWNrZXQgZHVtcCBpbiBsaW5lIHdpdGggdGhlIG1haW4gbGlicmFyeSBzdHlsZQoJICAtIEFkZCBwYWNrZXQgZHVtcCBjYXBhYmlsaXR5IGZvciBvdXRnb2luZyBQRFVzCgkKMjAwMC0wNS0xMCAxNjo1MiAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1wLgoJCjIwMDAtMDUtMTAgMTY6NDMgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogYWx3YXlzIHVzZSB0aGUgZGVmYXVsdCB0cmFuc3BvcnQgbWFwcGluZywgbm90IHRoZSBsYXN0IG9uZS4KCQoyMDAwLTA1LTEwIDE2OjI1ICBoYXJkYWtlcgoKCS0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGltcGxlbWVudCBtdWx0aXBsZSB0cmFuc3BvcnQKCSAgbWFwcGluZ3MgdmlhIC1wIFt0cmFuc3BvcnQ6XXBvcnRbQGFkZHJlc3NdLgoJCjIwMDAtMDUtMTAgMTE6MDggIG1zbGlmY2FrCgoJZml4IHVkcHN0YXQgLS0+IHRjcHN0YXQKCQoyMDAwLTA1LTEwIDA3OjU5ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBIYW5kbGUgc3ViYWdlbnQgZGlzYXBwZWFyaW5nIHdpdGhvdXQgd2FybmluZwoJCjIwMDAtMDUtMTAgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBsaWIvc25tcF9hcGkuaCk6CgkgIC0gUHJvdmlkZSBhIG1lY2hhbmlzbSB0byBoYW5kbGUgYXN5bmNocm9ub3VzIHNlbmQgZmFpbHVyZXMuCgkKMjAwMC0wNS0xMCAwNjoxMyAgZGF2ZXMKCgktIChzbm1wX2FwaS5oKTogTG9naWNhbCBOT1Q/IEJpdHdpc2UgTk9UPyBXaG8nbGwgbm90aWNlIHRoZSBkaWZmZXJlbmNlIGFueXdheSEKCQoyMDAwLTA1LTEwIDA1OjM0ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSGFuZGxlIG5vbi1yZXNwb25zaXZlIHN1YmFnZW50cwoJCjIwMDAtMDUtMTAgMDU6MzMgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuYyBtaWJJSS9zeXNPUlRhYmxlLmMpOiBEb24ndCBhc3N1bWUgc3Vic2Vzc2lvbiBsaW5rIGlzIHZhbGlkCgkKMjAwMC0wNS0xMCAwNToyOSAgZGF2ZXMKCgktIChzbm1wX2FwaS5oKTogRGVmaW5pdGlvbnMgZm9yIHNlc3Npb24gY2xvc2Vkb3duIGhhbmRsaW5nCgkKMjAwMC0wNS0wOSAxNDo0MiAgbXNsaWZjYWsKCglhbHNvIGNsZWFuIFdpbjMyIGJpbmFyeSBvYmplY3RzLCBhbmQgY29yZSBmaWxlcy4KCQoyMDAwLTA1LTA5IDE0OjM0ICBtc2xpZmNhawoKCXRvdWNoIHVwIHRoZSAiY2xlYW4iIHJ1bGUuCgkKMjAwMC0wNS0wOSAxMTozMiAgbXNsaWZjYWsKCgl1bnRpbCBEYXZlJ3MgdmVyc2lvbiB3aW5zLCBuZWVkIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gYnVpbGQgV2luMzIgYWdlbnQuCgkKMjAwMC0wNS0wOSAxMTozMSAgbXNsaWZjYWsKCglmaXggc29tZSBXaW4zMiBidWlsZHMgKHNpZ25hbHM/IHdlIGRvbid0IG5lZWQgbm8gc3RlZW5raW5nIHNpZ25hbHMhKQoJCjIwMDAtMDUtMDkgMTE6MzAgIG1zbGlmY2FrCgoJUmVtb3ZlIHRyYWlsaW5nIENSIFsweDBkXSBmcm9tIG9uZSBsaW5lLgoJCjIwMDAtMDUtMDkgMDg6NTAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCgkgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCgkKMjAwMC0wNS0wOSAwODo0NyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKCSAgd2l0aCBhQ0MgKG9yIGFueSBvdGhlciB1bmtub3duIGNvbXBpbGVyKS4KCQoyMDAwLTA1LTA5IDA3OjQzICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogU2VuZCBvdXQgcmUtZGVsZWdhdGVkIHJlcXVlc3RzCgkJKGFuZCBmaXggYSBwcm9ibGVtIHdpdGggc3BlY2lmeWluZyB0aGUgZW5kLW9mLXJhbmdlIHZhbHVlKQoJCjIwMDAtMDUtMDkgMDc6NDAgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgZXJyb3IgcmVzcG9uc2UgZ2VuZXJhdGlvbgoJCShieSBhbmFsb2d5IHdpdGggcmVjZW50IGNoYW5nZXMgdG8gc25tcF9hZ2VudC5jKQoJCjIwMDAtMDUtMDkgMDc6MzQgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogSGFuZGxlIEFnZW50WCAiZW5kLW9mLXJhbmdlIiBpbmRpY2F0aW9uLgoJCShUaGlzIGlzIG5vdCB0aGUgY2xlYW5lc3Qgd2F5IG9mIGRvaW5nIHRoaW5ncywKCQkgYnV0IHdvcmtzIGZvciBub3cuICBXZSBjYW4gdGlkeSB1cCBsYXRlcikuCgkKMjAwMC0wNS0wOSAwNzoxNiAgZGF2ZXMKCgktIChzbm1wX3ZhcnMuYyk6IFVzZSBNSUIgcmVnaXN0cnkgJ3N0YXJ0JyB2YWx1ZXMKCQkocmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIG5hbWUgcmVnaXN0ZXJlZCkKCQlUaGlzIGhhbmRsZXMgc3Vic2VxdWVudCBwYXJ0IG9mICdzcGxpdCcgcmFuZ2VzIHByb3Blcmx5LgoJCjIwMDAtMDUtMDggMTE6MDggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBJIGNhbid0IGJlbGlldmUgdGhlIGxhc3QgY2hlY2tpbiBldmVuIGNvbXBpbGVkIChsdWNrKS4KCQoyMDAwLTA1LTA4IDExOjAzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogZml4IGxpYnJhcnkgbGlzdC4KCQoyMDAwLTA1LTA1IDA5OjU2ICBoYXJkYWtlcgoKCS0gKGRpc2tpby5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIGRpc2sgaW8gc3VwcG9ydCBmb3IgQlNEL09TLgoJCjIwMDAtMDUtMDUgMDk6NTQgIGhhcmRha2VyCgoJLSAoYXQuYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBmaXggYSB6ZXJvIGJ5dGUgbWFsbG9jIGJ1ZyAobW9zdGx5IG5vdGljZWQgd2l0aCAtbGVmZW5jZSkuCgkKMjAwMC0wNS0wNSAwOTo0MyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKCSAgLSAtLXdpdGgtbGlid3JhcCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wNS0wNSAwOTowMCAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6CgkgIC0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIHRvIEFnZW50WCBwcm9jZXNzaW5nCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA1IDA4OjU4ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSBzbm1wbGliL3NubXBfY2xpZW50LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdKToKCSAgLSBNaW5vciBjaGFuZ2VzIHRvIGFzc2lzdCB3aXRoIEFnZW50WCBkZXZlbG9wbWVudAoJCShUaGVzZSBtYXkgbm90IGJlIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBnZXQgdGhpbmdzIHdvcmtpbmcgYWdhaW4hKQoJCjIwMDAtMDUtMDQgMTY6MjEgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtaW5vciB1bmltcG9ydGFudCAtLXdpdGhvdXQtb3BlbnNzbCBmaXguCgkKMjAwMC0wNS0wNCAxNjoxOSAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGFsbG93IC0td2l0aG91dC1vcGVuc3NsIHRvIHdvcmsuCgkKMjAwMC0wNS0wNCAxNjoxNSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGFkZCB0aGUgRElTTUFOLVNDUklQVC1NSUIudHh0CgkKMjAwMC0wNS0wNCAxNjowMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKCSAgLSBpbnN0YWxsIFVDRC1ESVNLSU8tTUlCLnR4dC4KCQoyMDAwLTA1LTA0IDE1OjIxICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSwgbWFuYWdlci5wbSk6IG1ha2UgcHVyZHkgZ3JhcGhzIHdpdGggaGlzdG9yeSB0YWJsZXMuCgkKMjAwMC0wNS0wNCAwODoyNiAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfY2xpZW50LltjaF0pOiBOZXcgcm91dGluZSAnc25tcF9jbG9uZV92YXJiaW5kKCknCgkJCShGcm9tIGEgc3VnZ2VzdGlvbiBieSBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDA4OjI0ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFZhcmlvdXMgbWlub3IgZml4ZXMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDE6MjkgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdKTogSGFuZGxlIGluZGV4L3N0YXR1cyBpbmZvcm1hdGlvbiBzZXBhcmF0ZWx5IGZyb20gUERVLgoJCUFsc28gbWVhbnMgdGhhdCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBhY2Nlc3MgdG8gdmFyaWFibGUgaW5kZXhlcwoJCQkoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGZyb20gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwMTowMCAgZGF2ZXMKCgktICh1Y2Qtc25tcC9wcm9jLmMpOiBJbml0aWFsaXplIG5ld2x5IG1hbGxvY2VkIHN0cnVjdHVyZQoJCShUaGFua3MgdG8gSmVmZiBXaWxzb24gLSBzZWUgQlVHICMyMzEpCgkKMjAwMC0wNS0wMyAwOTowNiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBDbG9uZSBQRFUgd2l0aGluIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgoJICAgIE5ldyByb3V0aW5lICdmcmVlX2FnZW50X3NubXBfc2Vzc2lvbicKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDMgMDg6MTcgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogV2hlbiByZXR1cm5pbmcgYW4gZXJyb3IgcmVzcG9uc2UsCgkJdXNlIGEgY2xlYW4gY29weSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQRFUuCgkKMjAwMC0wNS0wMyAwODoxNCAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0pOiBSb3V0aW5lIHRvIGhhbmRsZSB2YXJpYWJsZXMgaW5kaXZpZHVhbGx5CgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTAzIDA0OjM3ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IENoZWNrIGFjY2Vzc2liaWxpdHkgb2YgZXhhY3QgcmVxdWVzdHMgYmVmb3JlIHByb2Nlc3NpbmcKCQkoYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2dlbmVyaWMnIFNFVCBoYW5kbGluZykKCQoyMDAwLTA1LTAyIDA5OjU2ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBsb3RzIG9mIHNtYWxsIGNoYW5nZXMuCgkKMjAwMC0wNS0wMSAxMTozNCAgbmJhCgoJLSBtaWIuYzogZml4IHByaW50aW5nIG9mIEJJVFMgdmFyaWFibGVzCgkKMjAwMC0wNS0wMSAwNjo1NSAgbWFyegoKCSBhcHBsaWVkIHBhdGNoIGZyb20gU3RldmUgUGhlcmFuIFNub2RncmFzcyB0byBmaXggaW5jb21wYXRpYmlsaXR5IHdpdGggcGVybDUuNiByZWYgc3RyaW5naWZpY2F0aW9uCgkKMjAwMC0wNC0yOSAwNzo0NiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudF9yZWdpc3RyeS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIHVzZSBzaWdhY3Rpb24gd2hlbiBhdmFpbGFibGUuCgkKMjAwMC0wNC0yOCAxNjoyMiAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggLW0vLU0gdGhlIHdyb25nIHdheS4KCQoyMDAwLTA0LTI4IDE2OjE1ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6CgkgLSBkbyBoaXN0b3J5IHNhdmluZyBiZXR0ZXIgKGRpZmZlcmVudCB0YWJsZSkuCgkgLSAtbS8tTSBtaWIgbG9hZGluZyBvcHRpb25zICh3aGljaCBkb24ndCBhcHBlYXIgdG8gYmUgd29ya2luZyByaWdodCB5ZXQpLgoJCjIwMDAtMDQtMjggMDc6MzYgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBmaXggc2lnbmFsIGhhbmRsaW5nLgoJCjIwMDAtMDQtMjcgMTQ6NTggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBkZi5jKTogaW1wbGVtZW50IGEgcmVtb3RlIGRmIGNvbW1hbmQgdmlhIHNubXAKCSAgLSAobmVlZHMgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiB3b3JraW5nIG9uIHRoZSByZW1vdGUgc3lzdGVtKS4KCQoyMDAwLTA0LTI3IDEwOjU3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcnBtIGlzIG5vdwoJICByZXF1aXJpbmcgeWV0IGFub3RoZXIgbGlicmFyeTogbGlicG9wdC4KCQoyMDAwLTA0LTI2IDE1OjIwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCk6IHJ1biBsaWJ0b29sIC0tZmluaXNoIHdpdGhvdXQgLW4gKGdvIGFoZWFkIGFuZCBkbyB0aGUgY21kcykKCQoyMDAwLTA0LTI2IDE1OjE5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluKToKCSAgLSBtb3JlIGxpYnRvb2wgZml4ZXMgKC5zbyB2ZXJzaW9uaW5nLCBwcm9wZXJseSBpbnN0YWxsLi4uKQoJCjIwMDAtMDQtMjYgMTQ6MTggIGhhcmRha2VyCgoJLSAoKi8uY3ZzaWdub3JlLCAqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKCSAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKCSAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCgkgICAgLSBDZXJ0YWlubHksIEkgbXVzdCBoYXZlIGJyb2tlIHNvbWV0aGluZyBpbiB0aGUgcHJvY2Vzcy4gKG1ha2UgZGVwZW5kLCBlZykKCQoyMDAwLTA0LTI2IDE0OjE1ICBoYXJkYWtlcgoKCS0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCgkgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CgkgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgoJICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCgkKMjAwMC0wNC0yNiAwODoxMSAgaGFyZGFrZXIKCgktIChGQVEpOiBuZXcgc2Vjb25kYXJ5IHNsb2dhbi4KCQoyMDAwLTA0LTI2IDA3OjIyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IEF0dGVtcHQgdG8gcGFyc2UgdGhlIFBEVSB3aGVuIGEgcmVwb3J0IGlzCgkgIGJlaW5nIHNlbnQgc28gdGhhdCB0aGUgcmVxdWVzdGlkIGNhbiBiZSB1c2VkIGluIHRoZSBvdXRnb2luZyByZXBvcnQuCgkgIFRoaXMgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgU05NUCBSZXNlYXJjaCdzIEVtYW50ZSBhZ2VudCBpcwoJICBkb2luZyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzIGJhc2VkIG9uIHRoZSByZXF1ZXN0X2lkICh3aGljaCBpcyBhCgkgIGZhaXJseSBwb29yIGNob2ljZSBhcyB0aGUgbWVzc2FnZV9pZCB3b3VsZCBiZSBhIGJldHRlciBvbmUgdG8gbWF0Y2gKCSAgb24gaW4gZ2VuZXJhbCBhbmQgaXMgdGhlIG9ubHkgcG9zc2libGUgdGhpbmcgdG8gdXNlIGluIGNhc2VzIHdoZXJlCgkgIHRoZSByZXBvcnQgaXMgZW5jcnlwdGVkKS4KCQoyMDAwLTA0LTI1IDEzOjA4ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gdGhhdCB0aGUgcGVybCBtb2R1bGUgaXMgaW5jbHVkZWQgd2l0aCB0aGUgc291cmNlLgoJCjIwMDAtMDQtMjUgMDg6MjQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IG1pc2MgLURkdW1wIGZpeGVzLgoJCjIwMDAtMDQtMjUgMDg6MDIgIGhhcmRha2VyCgoJLSAoc25tcHRhYmxlLmMpOiBjaGVjayBmb3IgZW5kIG9mIG1pYiB2aWV3IGV4Y2VwdGlvbnMgKHYyYywgdjMpLgoJCjIwMDAtMDQtMjQgMTE6MjcgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IC1EIHN1cHBvcnQgZm9yIHRob3NlICJvbGRlciIgcHJvdG9jb2xzIHRoYXQgc2hvdWxkbid0CgkgIGJlIHVzZWQgYW55bW9yZSAodjEsIHYyYykuCgkKMjAwMC0wNC0yNCAxMDozNiAgaGFyZGFrZXIKCgktIChhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCgkgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgoJICAtIHRpbWVzdGFtcHMgY2FuIGJlIHByaW50ZWQgYXMgYSBudW1lcmljIG51bWJlciBvbmx5ICgtT3QpLgoJICAtIG1vcmUgY29uZmlndXJhYmxlIHBhY2tldCBkdW1waW5nIGNvZGUgZm9yIGJvdGggc2VuZCBhbmQgcmVjZWl2ZS4KCSAgICAtIHVzZXMgbmV3IC1EIHRva2VuczogZHVtcGggKGhlYWRlcnMpLCBkdW1weCAoaGV4KSwgZHVtcHYKCSAgICAgICh2YWx1ZXMpLiAgZHVtcHhfIGFuZCBkdW1wdl8gKG5vdGUgdGhlIF9zKSBtYWtlIGl0IGVhdCBzcGFjZQoJICAgICAgKGFuZCBuZXdsaW5lKSBiZWZvcmUgdGhlIHNlZ21lbnQgaW4gcXVlc3Rpb24uICBUcnkgLURkdW1wIHRoZW4KCSAgICAgIC1EZHVtcGgsZHVtcHZfIHRvIHNlZSBleGFtcGxlcy4KCSAgICAtIHRvZG86CgkgICAgICAtIGJldHRlciBob3Jpem9udGFsbHkgZm9ybWF0ZWQgaW5mb3JtYXRpb24gKHByb2JhYmx5IHVzaW5nICIlTlVNcyIpLgoJICAgICAgLSBVU00gaXMgY2FsbGVkIGFmdGVyIHBkdSBidWlsZGluZyAobWFrZXMgc2Vuc2UgYnV0IGlzIGJhY2t3YXJkcwoJICAgICAgICB2aXN1YWxseSBpbiB0aGUgZHVtcGVkIHBhY2tldCkuCgkgICAgICAtIG9wdGlvbiB0byBzdHJpcCBkYXRhdHlwZSB0b2tlbiAoaWUgSW50ZWdlcjopLgoJCjIwMDAtMDQtMjQgMDk6MzcgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMCApCgkKMjAwMC0wNC0yNCAwOToxMyAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEVYVC40LjIucHJlMCApCgkKMjAwMC0wNC0yMSAxNDoxMyAgaGFyZGFrZXIKCgktIChzbm1wd2Fsay5jKTogZml4IEdFVCBjYWxsIGZvciBhbiBzbm1wd2Fsay4gKHdhcyB1c2luZyBhIEdFVE5FWFQgUERVLCBhY2spLgoJCjIwMDAtMDQtMjEgMTA6NDEgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBtb3JlIHVfbG9uZyAtPiBzaXplX3QgZm9yIGVuZ2luZUlEIGxlbi4KCQoyMDAwLTA0LTIxIDA4OjE4ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogZml4IGZwcmludF9kZXNjcmlwdGlvbiB0byBjaGVjayBmb3IgbnVsbCBzdWJ0cmVlcy4KCQoyMDAwLTA0LTIxIDA4OjE3ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHVzZSBzaXplX3QgZm9yIGVuZ2luZWlkIGxlbmd0aHMuCgkKMjAwMC0wNC0xOSAxMTowMiAgbWFyegoKCWNoYW5nZWQgbW9kZV90IHR5cGVkZWYgdG8gYWdyZWUgd2l0aCB3aGF0IEFjdGl2ZVN0YXRlIHBlcmwgdXNlcyAoYW55b25lIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhpcz8pCgkKMjAwMC0wNC0xOSAxMDo1OSAgbWFyegoKCWFkZGVkIE1hcmMgTGVobWFuIHBhdGNoIHRvIGVuc3VyZSBhbGxvYy9kZWFsbG9jIHVzZSBzYW1lIG1lY2hhbmlzbSAocGVybCB2cy4gc3lzdGVtIGRlZmF1bHQpCgkKMjAwMC0wNC0xOSAwODoyNiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGFsd2F5cyBibG9jayBpZiBjYWxsZXIgcmVxdWVzdGVkIGl0LgoJCjIwMDAtMDQtMTkgMDQ6MzQgIG1zbGlmY2FrCgoJbW92ZSBzdGF0aWMgZGVjbCB0byAuYzttaW5vciBjYXN0aW5nIGFib3V0IHRvIHN1cHBvcnQgYUNDCgkKMjAwMC0wNC0xOCAxMToxMSAgbXNsaWZjYWsKCglTeW5jaCBkZXZlbCBicmFuY2ggd2l0aCBwYXRjaGVzIGJyYW5jaC4KCQoyMDAwLTA0LTE4IDExOjA3ICBtc2xpZmNhawoKCURlZmluZSBvcHRhcmcgZm9yIGFwcHMgdXNlOyBEZWZpbmUgdmFjbV9pc19jb25maWd1cmVkIGZvciBhZ2VudCB1c2UuCgkKMjAwMC0wNC0xOCAwNzo1NyAgaGFyZGFrZXIKCgktICh2bXN0YXQuYywgdm1zdGF0LmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1penVraSBIb25kYToKCSAgLSBpbXBsZW1lbnQgcmF3IGNwdSB1c2FnZSBudW1iZXJzLgoJCjIwMDAtMDQtMTggMDM6MTggIGRhdmVzCgoJLSAobWFuL3NubXB0YWJsZS4xIGFwcHMvc25tcHRhYmxlLmMpOgoJICAtIENvbW1hbmQtc3BlY2lmaWMgJy1DJyBvcHRpb25zIGZvciBzbm1wdGFibGUKCQoyMDAwLTA0LTE4IDAyOjAxICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBIYW5kbGUgcHJldmlvdXMgZm9ybSBvZiAtWiBvcHRpb24gYXMgd2VsbAoJCjIwMDAtMDQtMTcgMTU6MzYgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmaXggLVogaWYgYXJncyBhcmUgd3JvbmcuCgkKMjAwMC0wNC0xNyAxNTozMiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogZml4IC1aIHRvIHVzZSBhICcsJy4KCQoyMDAwLTA0LTE3IDE1OjA2ICBoYXJkYWtlcgoKCS0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IFBhdGNoIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CgkgIC0gdXBkYXRlIG9uIHRoZSBzZW5kbWFpbCBtb2R1bGUuCgkKMjAwMC0wNC0xNyAxNTowMCAgaGFyZGFrZXIKCgktICh2bXN0YXQuYyk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGZpeCBzc0NwdVN5c3RlbSwgc3NDcHVVc2VyLCBzc0NwdUlkbGUuCgkKMjAwMC0wNC0xNyAxNDoxOCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluKTogcHJvcGVybHkgdXNlIExOX1MgZm9yIGxpbmtpbmcgc25tcGluZm9ybS4KCQoyMDAwLTA0LTE3IDEzOjQ1ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oKTogZW5naW5lSUQgY2hhbmdlcyBmb3IgYmV0dGVyIGFDQyBzdXBwb3J0LgoJCjIwMDAtMDQtMTcgMTM6NDQgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBzbm1waW5mb3JtLgoJCjIwMDAtMDQtMTcgMDk6NTggIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogZml4IHJvdyBjcmVhdGlvbi4KCQoyMDAwLTA0LTE3IDA3OjI1ICBkYXZlcwoKCS0gKGF1dG9fbmxpc3QuYyBzbm1wZC5jIGFnZW50eC9tYXN0ZXIuYyk6IERvbid0IGV4aXQgb24gZmFpbHVyZSB3aXRoICctcicKCQoyMDAwLTA0LTE0IDE1OjA3ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc3RhdHVzLmMsIHNubXBjbWQuMSwgc25tcGdldC4xLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKCSAgLSBtb3ZlIC1JZiB0byAtQ2YgYW5kIGludmVydCBiZWhhdmlvdXIuCgkKMjAwMC0wNC0xNCAxNTowNiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IChvcHBzKS4KCQoyMDAwLTA0LTE0IDA5OjAzICBoYXJkYWtlcgoKCS0gKHZlcnNpb2luZm8uYyk6IGFscmlnaHQuICBXaG8gbWFkZSB2ZXJzaW9uQ2xlYXJDYWNoZSBST05MWT8KCQoyMDAwLTA0LTEzIDA1OjQ5ICBuYmEKCgktIHNubXB0cmFuc2xhdGUuMTogZGVjdW1lbnQgdGhlIC13IHdpZHRoIG9wdGlvbgoJCjIwMDAtMDQtMTIgMTI6MDUgIG1zbGlmY2FrCgoJaGlkZSB1c2VyJ3MgaG9zdG5hbWU7IHByb21wdCBiZWZvcmUgc2VuZGluZyBlLW1haWw7IHByb21wdCB0byBzYXZlIGFzIGZpbGUuCgkKMjAwMC0wNC0xMiAxMToyMiAgbXNsaWZjYWsKCglmaXggJWYoJXMpCgkKMjAwMC0wNC0xMiAwOToyOSAgaGFyZGFrZXIKCgktIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSWYuCgkKMjAwMC0wNC0xMiAwOToxNyAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHB1dCArKyBiYWNrIGluIHRoYXQgYWNjaWRlbnRpY2FsbHkgZ290IGNoZWNrZWQgaW4uCgkKMjAwMC0wNC0xMiAwOToxNiAgaGFyZGFrZXIKCgktIChzbm1wc2V0LmMpOiBwdXQgc3BhY2UgYmFjayBpbiB1c2FnZSBsaW5lLgoJCjIwMDAtMDQtMTIgMDk6MTIgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCgkgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKCSAgLSBBZGQgYSBuZXcgb3B0aW9uIC1JZiB0byBzcGVjaWZ5IGZpeGluZyBvZiBQRFVzLgoJICAgIC0gQW55b25lIGtub3cgYSBiZXR0ZXIgcGxhY2UgdG8gcHV0IHRoaXMgb3B0aW9uPwoJICAtIEFwcGxpY2F0aW9ucyBkb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgYW55bW9yZSwgYW5kIHlvdSBjYW4ndCBpbiBzbm1wc2V0LgoJCjIwMDAtMDQtMTIgMDc6MzggIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHZhY20uYywgdmFjbS5oKTogZml4IHRvIGFsbG93IG5vIHYxL3YyYyByZXF1ZXN0cyB3aGVuCgkgIGNvbmZpZ3VyZWQgZm9yIGp1c3QgdjMuCgkKMjAwMC0wNC0xMiAwNjo1MCAgbXNsaWZjYWsKCglmaXggTVNWQyBidWlsZCBmb3IgZW5jb2RlX2tleWNoYW5nZSwgYW5kIGFkZCBtb3JlIHN5bWJvbHMgZm9yIHJlbGVhc2UgYnVpbGRzCgkKMjAwMC0wNC0xMiAwNTozMiAgbmJhCgoJLSBwYXJzZS5jOiBjb3JyZWN0IHBhcnNpbmcgb2Ygc3ViLXR5cGVzIHRleHR1YWwgY29udmVudGlvbnMuIEFsbG93IHBhcnNpbmcKCQlvZiBNQUNSTyBpbnZvY2F0aW9ucyBmb3Igc3RhbmRhcmQgc3ltYm9scwoJCjIwMDAtMDQtMTIgMDU6MzEgIG5iYQoKCS0gcGFyc2UuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHdpdGggZm9yIC1UcAoJCjIwMDAtMDQtMTIgMDU6MzAgIG5iYQoKCS0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0OiBhbGlnbiB3aXRoIHB1Ymxpc2hlZAoJCVJGQyAyNzkwCgkKMjAwMC0wNC0xMSAxNTozMyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1ha2UgY29uZmlnX2FkZF9taWIoKSBhY3R1YWxseSBsb29rIGZvcgoJICB0aGUgbWliIGluICRzcmNkaXIvbWlicy9ibGFoIGFuZCBpbnN0YWxsIGl0IGlmIGZvdW5kLgoJCjIwMDAtMDQtMTEgMTU6MjEgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogbWFrZSBtYWNhZGRyIGVuZ2luZWlkIHNldHVwIG5vdCBsaW51eAoJICBzcGVjaWZpYywgYnV0ICNkZWZpbmVzIGFyZSBjaGVja2VkIGluc3RlYWQuCgkKMjAwMC0wNC0xMSAxNToyMCAgaGFyZGFrZXIKCgktIChzbm1wX2xvZ2dpbmcuaCk6IHJlbW92ZSBvbGQgY2FsbGJhY2sgdHlwZWRlZiBubyBsb25nZXIgbmVlZGVkLgoJCjIwMDAtMDQtMTEgMTQ6MzggIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CgkgIC0gZW5hYmxlIGVuZ2luZUlEIHRvIGJlIHNldCBmcm9tIE1BQ0FkZHIuCgkKMjAwMC0wNC0xMSAwOTo1MSAgaGFyZGFrZXIKCgktIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBOZXcgbW9kdWxlIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CgkgIC0gaW1wbGVtZW50cyB0aGUgTVRBLU1JQiBmb3IgbW9uaXRvcmluZyBzZW5kbWFpbC4KCQoyMDAwLTA0LTExIDA5OjUwICBoYXJkYWtlcgoKCS0gKE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQpOiBuZXcgbWlicyBmb3IgbmV3IG1vZHVsZXMuCgkKMjAwMC0wNC0xMSAwMzoyNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBTYXZlL3Jlc3RvcmUgb3JpZ2luYWwgc3RhdFAgdmFsdWUgZm9yIFNFVCBoYW5kbGluZy4KCQoyMDAwLTA0LTExIDAyOjM1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJlcG9ydCBmYWlsdXJlcyBmcm9tIEFDVElPTiBwaGFzZSBvZiBTRVQgY29ycmVjdGx5LgoJCjIwMDAtMDQtMTEgMDE6NTcgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEeW5hbWljYWxseSByZXNpemUgc3ViYWdlbnQgcmVxdWVzdHMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDQtMTAgMDU6MDggIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IG11bHRpLXN1YmFnZW50IHJlcXVlc3RzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA0LTA3IDEyOjI1ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwLmMsIHNubXB1c20uYyk6CgkgIC0gZml4IHNubXB2MyB0cmFwcyB0byBiZSBhdXRob3JpdGF0aXZlIGZyb20gdGhlIGNsaWVudCBzaWRlLCBub3QgdGhlCgkgICAgcmVjZWl2ZXIgc2lkZS4gIHNubXB2MyBpbmZvcm1zIHN0YXkgYXMgaXMuICBVbmZvcnR1bmF0ZWx5LCBmb3IKCSAgICBjb21tYW5kIGxpbmUgYXBwcyB0aGlzIGRvZXNuJ3QgbWFrZSBhIHdob2xlIGxvdCBvZiBzZW5zZSBidXQgaXMKCSAgICByaWdodCBpbiB0ZXJtcyBvZiBob3cgdGhlIHByb3RvY29sIHdvcmtzIGFuZCB0aGlzIGlzIGhlbmNlCgkgICAgc29tZXdoYXQgb2YgYSBoYWNrLgoJCjIwMDAtMDQtMDcgMDc6NTAgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSGFuZGxlIHYyIGV4Y2VwdGlvbiB0eXBlcyBpbiB2MSBxdWVyaWVzCgkKMjAwMC0wNC0wNyAwNzoxNiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYywgcmVhZF9jb25maWcuYywgc25tcHYzLmMpOgoJICAtIGFsbG93IE5VTEwgaGVscCBsaW5lcyBmb3IgY29uZmlnIGRpcmVjdGl2ZXMgYW5kIHVzZSBpdCB0byBoaWRlCgkgICAgaW50ZXJuYWwgZGlyZWN0aXZlcyB1c2VkIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UuCgkKMjAwMC0wNC0wNiAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKCSAgLSB0dXJuIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1hY3JvcyBiYWNrIGludG8gZnVuY3Rpb25zIHNvCgkgICAgZGVmYXVsdF9zdG9yZS5oIGRlcGVuZGVuY2llcyBnbyBhd2F5IGFnYWluLgoJICAtIGNyZWF0ZSBhIGZsYWcgdG8gbm90IHByb2JlIGZvciBlbmdpbmVJRHMgZHVybmluZyBzZXNzX29wZW4oKS4KCQoyMDAwLTA0LTA2IDA3OjIwICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEZpeCBtaXNoYW5kbGVkIENvdW50ZXI2NCBwYXJzaW5nCgkKMjAwMC0wNC0wNiAwMzozNiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wZC5jKTogRml4IHVzYWdlIG1lc3NhZ2UgYWxpZ25tZW50LgoJCjIwMDAtMDQtMDYgMDM6MzEgIGRhdmVzCgoJLSAobWFuL3NubXBkLjEuZGVmKTogRG9jdW1lbnQgdGhlIEFnZW50WCBzb2NrZXQgY29tbWFuZC1saW5lIG9wdGlvbgoJCjIwMDAtMDQtMDUgMDg6NDEgIGhhcmRha2VyCgoJLSAoRkFRMkhUTUwpOiBpdCdzIGJlZW4gc2l0dGluZyBpbiBteSBwZXJzb25hbCBzcmMgdHJlZSBmb3IgPiAyIHllYXJzLgoJCjIwMDAtMDQtMDUgMDg6MzggIGhhcmRha2VyCgoJLSAobWliaW5jbC5oLCB1c21Vc2VyLmMsIHNubXB0cmFwZC5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLAoJICBzbm1wdXNtLmMsIHNubXB1c20uaCwgc25tcHYzLmMpOgoJICAtIG1ha2Ugc25tcHRyYXBkIGhhbmRsZSB2MyB1c2VycyBwcm9wZXJseSwgKGFuZCBzaHV0ZG93biBwcm9wZXJseSBhcyB3ZWxsKS4KCSAgLSBhIG1vcmUgZ2VuZXJpYyB1c2VyIHN0b3JhZ2Ugcm91dGluZSBhZGRlZCB0byBzbm1wdXNtLmMgYW5kIHVzZWQgaW4KCSAgICB1c21Vc2VyLmMgd2l0aCBhIHNpZGUgZWZmZWN0IG9mIG5lZWRpbmcgY2FsbGJhY2suaCBhYm92ZSBzbm1wdXNtLmguCgkKMjAwMC0wNC0wNSAwODoyNyAgaGFyZGFrZXIKCgktIChyc25tcCk6IC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTA0LTA1IDA4OjI0ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBtaXNjIG1pbm9yIGFkZGl0aW9ucyB0byAvCgkKMjAwMC0wNC0wNCAxMTowMyAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgdW5pbXBsZW1lbnRlZCBvYmplY3RzIHJldHVybiAnbm9TdWNoT2JqZWN0JwoJCjIwMDAtMDQtMDMgMTQ6NTcgIG1zbGlmY2FrCgoJSW5pdGlhbGl6ZSBzdGF0UC4KCQoyMDAwLTA0LTAzIDA5OjEyICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBhIHYxIFNFVCByZXR1cm5zIGEgdjEgZXJyb3Igc3RhdHVzLgoJCjIwMDAtMDQtMDMgMDg6MzIgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogWWVhciB3YXMgIjEwMCIgZm9yIDIwMDAgKG5vdGljZWQgYnkgSmF5IFJpZGRlbGwpOgoJCjIwMDAtMDQtMDMgMDc6NTMgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIFNFVHMgZmFpbCBpZiBvbmUgdmFyYmluZCBkb2VzLgoJCjIwMDAtMDMtMzEgMDc6MjUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggdG8gcmVwb3J0ICdub1N1Y2hPYmplY3QnIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcwoJCjIwMDAtMDMtMzEgMDc6MTMgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRG9uJ3QgcmVwZWF0IHRoZSBmaXJzdCBmb3VyIGJ5dGVzIGluIGEgUERVIGR1bXAKCQoyMDAwLTAzLTMxIDA3OjA0ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9sb2dnaW5nLmMpOiBIYW5kbGUgbG9nZ2luZyBlbXB0eSBzdHJpbmdzIChlLmcuIGEgbnVsbCBpbmRlbnQpCgkKMjAwMC0wMy0zMCAwMDoxNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBJbml0aWFsaXNlIHRpbWVvdXQgc3RydWN0dXJlIHByb3Blcmx5CgkJKFRoYW5rcyB0byBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMy0yNyAxMDozMiAgbXNsaWZjYWsKCglyZW1vdmUgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGhyU1dSdW5OYW1lIHZhbHVlcy4KCQoyMDAwLTAzLTI0IDA5OjA5ICBtc2xpZmNhawoKCXRvIHN5bmMgd2l0aCBwYXRjaGVzIGJyYW5jaC4KCQoyMDAwLTAzLTI0IDA1OjA3ICBuYmEKCgktIHNubXB0cmFwZC5jOiBjb3JyZWN0bHkgZnJlZSB0aGUgcmVwb25zZSBpZiBzZW5kaW5nIGl0IGZhaWxzCgkKMjAwMC0wMy0yNCAwNDoyMiAgbXNsaWZjYWsKCgl4eF9zeW5jaF9yZXNwb25zZTogYXZvaWQgZnJlZWluZyBQRFUgdHdpY2UuCgkKMjAwMC0wMy0yMyAyMzoyOSAgbmJhCgoJLSBzbm1wY21kLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwLmMsIE1ha2VmaWxlLmluOiBJbnN0YWxsIGFuZCBkb2N1bWVudAoJCXNubXBpbmZvcm0uCgkKMjAwMC0wMy0yMyAwOTo1OCAgbXNsaWZjYWsKCglFbnF1ZXVlIG9ubHkgY29tcGxldGUgcmVxdWVzdF9saXN0IGVudHJ5OyBSZWR1Y2Ugc2NvcGluZyBvZiBjYWxsYmFjayB2YXJzLgoJCjIwMDAtMDMtMjMgMDM6MDIgIG5iYQoKCWZpbGUgc25tcGluZm9ybS4xIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDMtMjIgMDg6MTMgIG1zbGlmY2FrCgoJcHJpbnRmID8KCQoyMDAwLTAzLTIxIDExOjEyICBtc2xpZmNhawoKCW1vZGlmeSBGLiBTdHJhdXNzJyBwYXRjaCBwZXIgTi4gQmFnZ2VzZW4ncyBzdWdnZXN0aW9uOiByZW1vdmUgZXhwb3J0LWR5bmFtaWMuCgkKMjAwMC0wMy0yMSAwOToxNCAgbXNsaWZjYWsKCgltb3JlIHNtb290aCBzYWlsaW5nIHdpdGggV2luMzIgLkRMTCAuIERMTEVYUE9SVCwgYW55b25lID8KCQoyMDAwLTAzLTIxIDA5OjA3ICBtc2xpZmNhawoKCXdpbjMyIGJ1aWxkIGNoZWNrOiBubyBzaWdhY3Rpb24sIFNJR0NMRCBkZWZpbmVkLgoJCjIwMDAtMDMtMjEgMDg6NDcgIGRhdmVzCgoJLSAoZHNfYWdlbnQuaCBzbm1wZC5jIG1pYmdyb3VwL2FnZW50eC97bWFzdGVyLHN1YmFnZW50fS5jKToKCSAgLSAgQ29tbWFuZC1saW5lIG9wdGlvbiBmb3Igc3BlY2lmeWluZyBBZ2VudFggcG9ydAoJICAgICAoYmFzZWQgb24gcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzKQoJCjIwMDAtMDMtMjEgMDg6MzggIGRhdmVzCgoJLSAoc25tcF9hcGkuYyk6IFN1cHBvcnQgJ2hvc3Q6cG9ydCcgcmVwcmVzZW50YXRpb24gb2YgcGVlcm5hbWVzCgkKMjAwMC0wMy0yMSAwNDowNSAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBNaXNzaW5nIG5ldy1saW5lIG9uIGRlYnVnIG91dHB1dAoJCjIwMDAtMDMtMjEgMDI6NTIgIGRhdmVzCgoJLSAobWliSUkve3RjcCx1ZHAsaXAsaWNtcH0qKSBDb250aW51aW5nIG1pYklJIGNvZGUgY2xlYW51cAoJCjIwMDAtMDMtMjAgMTE6MTQgIG1zbGlmY2FrCgoJQ29tbWVudCAtQyAtLSBkbyBub3QgdXNlIHRoaXMgZmxhZy4KCQoyMDAwLTAzLTE3IDE1OjMyICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMpOiBzaXplb2YoeCkqKGxlbisxKSBub3Qgc2l6ZW9mKHgpKmxlbisxCgkKMjAwMC0wMy0xNiAwMDoxMCAgbmJhCgoJLSBjb25maWd1cmUsIGhyX3ByaW50LmM6IGRldGVjdCBzeXN0ZW0gcHJpbnRlcnMgKFN5c1YvbHBzdGF0LCAqQlNEL2NnZXRuZXh0LAoJCUxpbnV4L3ByaW50Y2FwKQoJCjIwMDAtMDMtMTUgMTg6MzAgIG1zbGlmY2FrCgoJU2Vjb25kIHBhcnQgOiBhbGwgbWVtYmVycyBvZiBzdHJ1Y3Qgc25tcF9pbmRleCBhcmUgcG9pbnRlcnMuCgkKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCglGaXggbWVtb3J5IGxlYWsgd2l0aCB1bnJlZ2lzdGVyX2luZGV4LgoJCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgoJRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xlYW5pbmcgdXAgdHJhcCB2YXJpYWJsZXMuCgkKMjAwMC0wMy0xNSAwODo0OCAgZGF2ZXMKCgktIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBJbml0aWFsaXNlIHZhcmJpbmQgZGF0YSBob29rIGVsc2V3aGVyZSBhcyB3ZWxsLgoJCjIwMDAtMDMtMTUgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaW5maW5pdGUgbG9vcCBwcm9ibGVtIHdoZW4gd2Fsa2luZyBzdWJhZ2VudC4KCQoyMDAwLTAzLTE1IDA2OjA5ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEF2b2lkIGNhbGxpbmcgcmVhZCByb3V0aW5lIGZvciBlYWNoIFNFVCBoYW5kbGluZyBwYXNzLgoJCU4uQjogIFRoaXMgaGFzbid0IGJlZW4gdGVzdGVkIHdpdGggQWdlbnRYIHN1YmFnZW50cyB5ZXQKCQoyMDAwLTAzLTE1IDA2OjA3ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFByb3ZpZGUgaG9vayBmb3IgaW50ZXJuYWwgdmFyYmluZC1yZWxhdGVkIGRhdGEKCQoyMDAwLTAzLTE1IDA1OjIyICBkYXZlcwoKCS0gKGFnZW50L3Zhcl9zdHJ1Y3QuaCk6IFVzZSBhIHNpbmdsZSBtYWdpYyBudW1iZXIgZm9yIE1JQiByZWdpc3RyeSBuYW1lIGxlbmd0aHMuCgkKMjAwMC0wMy0xNSAwMTo1MSAgZGF2ZXMKCgktIChzbm1wbGliL3N5c3RlbS5oKTogRG9uJ3QgZGVjbGFyZSBnZXR0aW1lb2ZkYXkoKSBpZiB0aGUgc3lzdGVtIHByb3ZpZGVzIGl0LgoJCShGaXggcHJvdmlkZWQgYnkgUm9uIE1ldmlzc2VuKQoJCjIwMDAtMDMtMTQgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIHN0YXR1cyB3aGVuIGNoZWNraW5nIGFjY2Vzcy4KCQoyMDAwLTAzLTE0IDA3OjUyICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJldHVybiBhIHJlc3BvbnNlLCBldmVuIGlmIHRoZSByZXF1ZXN0IGZhaWxlZC4KCQoyMDAwLTAzLTEzIDE1OjMyICBuYmEKCgktIGlwZndhY2MuaDogZml4IHRoZSBNSUIgbmFtZQoJCjIwMDAtMDMtMTAgMTI6NDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlKTogYXV0b2NvbmYgcnVuCgkKMjAwMC0wMy0xMCAxMTowOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5kbG1vZCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBkbG1vZCBidWlsZCBNYWtlZmlsZSBleGFtcGxlLiAgTmVlZHMgaW5jb3JwZXJhdGlvbiB3aXRoIG1haW4gY29uZmlndXJlLgoJCjIwMDAtMDMtMTAgMTE6MDIgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYyk6IGJldHRlciBzaWduYWwgY2hlY2sgZnJvbSBNaWNoYWVsIFNsaWZjYWsKCQoyMDAwLTAzLTEwIDEwOjU5ICBoYXJkYWtlcgoKCS0gKFVDRC1ETE1PRC1NSUIudHh0KTogdHlwbyBmb3VuZCBieSBNaWNoYWVsIFNsaWZjYWsuCgkKMjAwMC0wMy0xMCAxMDo1NCAgaGFyZGFrZXIKCgktIChkbG1vZC5jLCBkbG1vZC5oLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20KCSAgRnJhbmsgU3RyYXVzczoKCSAgLSBSZWltcGxlbWVudGF0aW9uIG9mIHRoZSBkbG1vZCBtaWIgbW9kdWxlOgoJICAgIG8gbWliZ3JvdXAvbWlzYy9kbG1vZCArIGRsbW9kcy9kbG1vZF9taWIgLT4gbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QKCSAgICBvIGZpeGVkIHJlZ2lzdHJhdGlvbiAodWNkYXZpcy51Y2RFeHBlcmltZW50YWwuMTQgaW5zdGVhZCBvZiB1Y2RhdmlzLjE0KQoJICAgIG8gYWRkZWQgY29uZmlndXJlIHN0dWZmIGZvciBIQVZFX1NOUFJJTlRGLCB3aGljaCB3YXMgdXNlZCBieSBkbG1vZC5jCgkgICAgbyByZW1vdmVkIGBfZHluYW1pY18nIHByZWZpeGVzIGZyb20gaW5pdC9kZWluaXQgZnVuY3Rpb25zCgkgICAgbyBtYWRlIGRsbW9kSW5kZXggbm90LWFjY2Vzc2libGUgKG9ubHkgaW1wbGVtZW50YXRpb24sIG5vdCBkZWZpbml0aW9uKQoJICAgIG8gcmVtb3ZlZCB0aGUgYXNuX3BhcnNlX1hYWCBzdHVmZgoJICAgIG8gbWFkZSBlbnRyaWVzIHdpdGggc3RhdGUgYGVycm9yJyBhYmxlIHRvIGFjY2VwdCBzdGF0ZSBgbG9hZCcKCSAgICBvIG1hZGUgdGhlIHdvbWJhdCBleGFtcGxlIHVzYWJsZSBhcyBzdGF0aWMgYW5kIGR5bmFtaWMgbW9kdWxlCgkgICAgbyBhZGRlZCBzaW1wbGUgY29uZmlnX3BhcnNlIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIHdvbWJhdCBleGFtcGxlCgkKMjAwMC0wMy0xMCAxMDo1MiAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIHNpZ25hbCByZWdpc3RyeSBzeXN0ZW0gaW1wbGVtZW50ZWQgKG5lZWRzIHRvIGJlIHJlZG9uZSBhbGxvd2luZwoJICAgIG11bHRpcGxlIGNhbGxiYWNrcyBhbmQgaGFuZGxlcnMgZm9yIGFsbCBzaWduYWxzKS4KCSAgLSBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yL3NvY2tldCByZWdpc3RyYXRpb24uCgkgICAgLSB0aGlzIGlzIG5vdCB0aGUgd2F5IGl0IHNob3VsZCBiZSBkb25lICh1c2Ugc2Vzc2lvbnMgaW5zdGVhZCkuCgkKMjAwMC0wMy0xMCAxMDo0NCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAoJICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgoJICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gY2xlYW4gdXAgc2hhcmVkIGxpYnJhcnkgdXNhZ2UuCgkKMjAwMC0wMy0xMCAxMDoxNiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcmUtYXJyYW5nZWQgc29tZSBzdHVmZi4KCQoyMDAwLTAzLTA3IDExOjU4ICBtc2xpZmNhawoKCW1vcmUgdG91Y2h1cHMgdG8gYWxsb3cgVW5peFdhcmUgYnVpbGQgdG8gY29tcGxldGUuCgkKMjAwMC0wMy0wNyAxMToyMSAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgpOiBtYWtlIE1BWF9TVUJJRFMgbGFyZ2VyIGFuZCBhIG11bHRpcGxlIG9mIDguCgkKMjAwMC0wMy0wNyAxMDoxMyAgbXNsaWZjYWsKCglJbnRyb2R1Y2UgLS1lbmFibGUtbWluaS1hZ2VudCB0byBjb25maWd1cmUgYWdlbnQgKHNubXB2Mywgbm8gbWliSUkgaW50ZXJmYWNlcykuCgkKMjAwMC0wMy0wNyAwOTowMyAgbXNsaWZjYWsKCglhc3N1bWUgInNubXBhcHAiIGlmIG5vIGFyZyBwYXNzZWQgdG8gaW5pdF9zbm1wdjMuCgkKMjAwMC0wMy0wNyAwODo1OCAgbXNsaWZjYWsKCglyZW1vdmUgaW5pdF9taWIoKSBjYWxsIC0gbm90IGFwcHJvcHJpYXRlIGhlcmUuCgkKMjAwMC0wMy0wNyAwODozNSAgbXNsaWZjYWsKCglMZXQgdGhlIGFpeDQgcGF0Y2ggd29yay4KCQoyMDAwLTAzLTA3IDA3OjA4ICBtc2xpZmNhawoKCXRyaW0gZmF0IGZyb20gcmVjZW50IGNoZWNrLWlucy4KCQoyMDAwLTAzLTA2IDIwOjAxICBtc2xpZmNhawoKCWNsZWFuZWQgdXAgU0NPIFVuaXhXYXJlIGJ1aWxkLgoJCjIwMDAtMDMtMDYgMTY6NDAgIG1zbGlmY2FrCgoJc3RhcnQgc3VwcG9ydCBmb3IgU0NPIFVuaXhXYXJlIDUgYXMgc3ZyNS4KCQoyMDAwLTAzLTA2IDEwOjU2ICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIGRvbid0IGNoZWNrIHJhbmdlcyBpZiBub3QgcmVxdWVzdGVkLgoJCjIwMDAtMDMtMDYgMTA6NTUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBmaXggZXhpdCgpaW5nIGJlaGF2aW91ciBpbiB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KCQoyMDAwLTAzLTA2IDEwOjM2ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gLW4gcHJpbnRzIG51bWVyaWMgSVAgYWRkcnMuCgkKMjAwMC0wMy0wNiAxMDoyNSAgaGFyZGFrZXIKCgktIChjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBJZGVhIGZyb20gYXNoaXBtYW5AZXJnZ3JvdXAuY29tOgoJICAtIGNhbGxiYWNrIGZ1bmN0aW9uICh1c2luZyBjYWxsYmFjay5oKSBhZGRlZCBmb3IgZXh0ZXJuYWwgbG9nZ2luZy4KCQoyMDAwLTAzLTA1IDA1OjI1ICBtYXJ6CgoJZml4IHRvIHByZXNlcnZlIHRyYWlsaW5nIG11bHRpIGNvbXBvbmVudCBpbnN0YW5jZSBpZCdzIGF0IHRoZSBlbmQgb2YKCXN5bWJvbGljIG1pYiBuYW1lcyhlLmcuLCBmb28uNi43KSB3aGVuIGRvaW5nIHRyYW5zbGF0ZU9iai4KCQoyMDAwLTAzLTA0IDExOjM0ICBuYmEKCgktIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOiBzdXBwb3J0IC0td2l0aG91dC1vcGVuc3NsLCBldmVuIGlmIE9wZW5TU0wKCQlpcyBhdmFpbGFibGUKCQoyMDAwLTAzLTA0IDExOjMwICBuYmEKCgktIGFnZW50Lyh2YXJpb3VzKTogZ2xvYmFsaXplIHRoZSBrdm1fdCAqa2QgdmFyaWFibGUKCQoyMDAwLTAzLTA0IDExOjI2ICBuYmEKCgktIG1pYl9tb2R1bGVzLmMsIGhyX3N0b3JhZ2UuYzogcHJlLXByb2Nlc3NvciAjIHNob3VsZCBiZSBpbiBjb2x1bW4gMQoJCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKCS0gaW5ldC5jLCBpbmV0Ni5jOiBzdXJ2aXZlIC12IDJjIGV4Y2VwdGlvbiByZXBsaWVzCgkKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgoJLSBzbm1wX2FwaS5jOiByZW1vdmUgYSBzdXBlcmZsdW91cyAmIGluIGZyb250IG9mIGFuIGFycmF5CgkKMjAwMC0wMy0wNCAxMToxNSAgbmJhCgoJLSB1Y2Rfc25tcC5oLCB7bWVtb3J5LHZtc3RhdH1fbmV0YnNkMS5bY2hdOiBzdXBwb3J0IGZvciBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjE0ICBuYmEKCgktIGhyX2Rpc2suYzogZml4ZXMgZm9yIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MTAgIG5iYQoKCS0gdmVyc2lvbmluZm8uYzogZG9uJ3QgcmV0dXJuIHRoZSB0cmFpbGluZyBuZXdsaW5lCgkKMjAwMC0wMy0wNCAxMTowOCAgbmJhCgoJLSBocl9zd3J1bi5jOiBmaXggcHJvY2VzcyBzaXplIGZvciBGcmVlQlNEIDMgYW5kIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MDUgIG5iYQoKCS0gYWdlbnRfdHJhcC5oOiBmaXggYSB3cm9uZyBwcm90b3R5cGUKCQoyMDAwLTAzLTA0IDExOjA0ICBuYmEKCgktIHNubXB0YWJsZS5jOiBmaXggcHJvYmxlbXMgcHJpbnRpbmcgdGFibGUgbmFtZSBhbmQgaGVhZGVycyB3aGVuIHVzaW5nCgkJLU9TIGZvcm1hdAoJCjIwMDAtMDMtMDIgMTE6NTAgIG5iYQoKCS0gc25tcF9hcGkuYzogZml4IGFkZHJlc3MgbGVuZ3RoIGluZm8gZm9yIHRjcCBjb25uZWN0CgkKMjAwMC0wMy0wMiAxMTo0OCAgbmJhCgoJLSBsb2FkYXZlLmM6IGZpeCBmb3IgQUlYIDQKCQoyMDAwLTAzLTAyIDA4OjMwICBkYXZlcwoKCS0gKG1pYjIvaXAuW2NoXSBtaWIyL2lwQWRkci5bY2hdKTogRmlyc3Qgc3RhYiBhdCB0aWR5aW5nIHVwIG1pYjIgc3VwcG9ydC4KCQoyMDAwLTAzLTAxIDEzOjIzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGZpeCBkeW5hbWljIHRhYmxlIHRlc3RpbmcgZm9yIGNyZWF0aW9uIG5lZWRlZC4KCQoyMDAwLTAzLTAxIDEzOjIyICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHVjZC1zbm1wLnBtKTogT3Bwcy4gIFdyb25nIG5hbWUuICB1Y2Qtc25tcC5wbSAtPiBtYW5hZ2VyLnBtLgoJCjIwMDAtMDMtMDEgMTM6MjEgIGhhcmRha2VyCgoJLSAodWNkLXNubXAucG0pOiB0dXJuZWQgc3FsdG9odG1sIGludG8gYW4gYXBhY2hlIG1vZHVsZS4gMnggc3BlZWQgaW1wcm92ZW1lbnQuCgkKMjAwMC0wMy0wMSAwODozMiAgbXNsaWZjYWsKCglmaXggYnVnIDE4MCBmb3IgY3lnd2luIGJ1aWxkIHdpdGggX1JFRU5UUkFOVDsgcGVyIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbQoJCjIwMDAtMDItMjkgMTQ6MzAgIG1zbGlmY2FrCgoJSW52b2tlIHNubXBfc2Vzc19zZW5kIGZyb20gd2l0aGluIHNubXBfcmVhZCB0byBhdm9pZCBtdXRleCBkZWFkbG9ja3MuCgkKMjAwMC0wMi0yOCAxNDoyNSAgbmJhCgoJLSBzbm1wZC5oLCBzbXV4LmM6IGRvbid0IGluaXRpYWxpemUgc211eCBtYXN0ZXIgaW4gc3ViIGFnZW50CgkKMjAwMC0wMi0yOCAxNDoxNiAgbmJhCgoJLSBzbm1wX3ZhcnMuYzogdXNlIFNVQl9BR0VOVCBzeW1ib2wKCQoyMDAwLTAyLTI4IDE0OjEyICBuYmEKCgktIG1pYi5jOiBzcHJpbnRfYnlfdHlwZSBzaG91bGQgaGFuZGxlIEFTTl9CSVRfU1RSCgkKMjAwMC0wMi0yOCAxNDoxMCAgbmJhCgoJLSBzbm1wX3BhcnNlX2FyZ3MuYzogY29ycmVjdGx5IGNhbGwgdGhlIC1JIG9wdGlvbnMgaW5wdXQgb3B0aW9ucwoJCjIwMDAtMDItMjggMTA6NDcgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjMTc2IChBSVggNCAtIHVzZSBrbmxpc3QgaW4gbGlldSBvZiBubGlzdCkKCQoyMDAwLTAyLTI0IDE3OjE3ICBtc2xpZmNhawoKCWFwcGx5IHBhdGNoIHRvIGZpeCBidWcgbm8uIDE3Ny4KCQoyMDAwLTAyLTI0IDEzOjMxICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IG5ldyBzbm1wLmNvbmYga2V5d29yZAoJICB0byBmb3JjZSB0aGUgcGFyc2VyIHRvIGlnbm9yZSB1bmtub3duIHRva2Vucy4KCQoyMDAwLTAyLTI0IDAzOjU5ICBtc2xpZmNhawoKCWRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMiAoJ3UnIGFuZCAnYycpIGluIHNubXBzZXQgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMi0yNCAwMzo1NiAgbXNsaWZjYWsKCglhZGQgc3VwcG9ydCBmb3IgQ09VTlRFUjMyIHRvIHNubXBfYWRkX3ZhcjsgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyCgkoJ3UnIGFuZCAnYycpIGluIHNubXB0cmFwIChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDItMjMgMjM6MDYgIG5iYQoKCS0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZml4IHNldHRpbmcgb2Ygb2N0ZXQgc3RyaW5ncy4KCQoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCgktIG10X3N1cHBvcnQuaDogYSBiYWQgOyBpbiB0aGUgQysrIGJyYWNrZXRpbmcKCQoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCgktIHN5c3RlbS5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyBpbmRpcmVjdGlvbnMgaW4gc3RyY2FzZWNtcAoJCjIwMDAtMDItMjMgMDI6MDcgIG5iYQoKCS0gdm1zdGF0X3NvbGFyaXMuYzogbWFrZSBzdXJlIHdlIGFncmVlIHdpdGggdGhlIHByb3RvdHlwZSBvZiBnZXRwYWdlc2l6ZSEKCQoyMDAwLTAyLTIyIDE1OjMxICBuYmEKCgktIHBhc3NfcGVyc2lzdC5oOiBkZWNsYXJlIGluaXRfcGFzc19wZXJzaXN0CgkKMjAwMC0wMi0yMiAwOTo1NyAgbXNsaWZjYWsKCglwcnVuZSB0d28gbW9yZSBzeW1ib2xzIG5vdCB1c2VkIGJ5IGF1dG9fbmxpc3QgZm9yIFNvbGFyaXMtYnVpbHQgTUlCIG1vZHVsZXMuCgkKMjAwMC0wMi0yMSAxNjoxNyAgbXNsaWZjYWsKCglBcHBseSBSLiBTdG9yeSdzIHBhdGNoIGZvciBta2RpcmhpZXIgYW5kIHN0cm5jYXNlY21wIG9uIHdpbjMyCgkKMjAwMC0wMi0yMSAwNzozOSAgbXNsaWZjYWsKCglmaXggYnVnIDE3MSAodGhhbmtzIHRvIExhcnJ5IFBhcm1lbGVlKS4KCQoyMDAwLTAyLTIxIDA1OjU2ICBtc2xpZmNhawoKCXJlbW92ZSBmcmVlIGFmdGVyIHNubXBfY2xvc2UgKGRvbid0IGZyZWUgdHdpY2UhKQoJCjIwMDAtMDItMjEgMDQ6NTggIG1zbGlmY2FrCgoJQWRkZWQgZGVzY3JpcHRpb24gaW4gU0hfTkFNRSBmb3Igc2V2ZXJhbCBtYW4tcGFnZXMgKGMvbyByYWduYXJrKQoJCjIwMDAtMDItMTggMTI6MTQgIG1zbGlmY2FrCgoJcmVmZXIgdGhlIC5zbyBtYWNybyB0byBtYW4zOyBhZGp1c3QgTWFrZWZpbGUuaW4gdG8gdXNlIHRoZSByZW5hbWVkIGZpbGUuCgkKMjAwMC0wMi0xNyAwNToxNyAgbXNsaWZjYWsKCglpbmNsdWRlIHBhc3NfcGVyc2lzdCBpbiB0aGUgcmVxdWlyZWQgbGlzdC4KCQoyMDAwLTAyLTE3IDAyOjAwICBkYXZlcwoKCS0gKGNvbmZpZ3VyZSogdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMpOgoJICAtIFByb3ZpZGUgbWlzc2luZyAnZ2V0cGFnZXNpemUnIHJvdXRpbmUgZm9yIFNvbGFyaXMgMi40CgkgICAgKFRoYW5rcyB0byBSYWduYXIgS2r4cnN0YWQpCgkKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCglpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCgkKMjAwMC0wMi0xNiAxNjozNSAgbXNsaWZjYWsKCglyZW1vdmUgYXV0b19ubGlzdCBvZiB1bnVzZWQgInN3YXBsaXN0IiBzeW1ib2wuCgkKMjAwMC0wMi0xNiAxNToxNyAgbXNsaWZjYWsKCglwYXRjaCBzdWdnZXN0ZWQgYnkgUmljayBCZWFtYW4gPGJlYW1hbkBtZWRpYW9uZS5uZXQ+CgkKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCglyZW1vdmUgdW51c2VkIHZhcnMKCQoyMDAwLTAyLTE2IDE0OjU3ICBtc2xpZmNhawoKCXRlc3QgbGVuZ3RocyBiZWZvcmUgYWxsb2NhdGluZyBtZW1vcnk7IHVzZSBuZXcgVkFDTVNUUklOR0xFTiBjb25zdGFudC4KCQoyMDAwLTAyLTE2IDA4OjE4ICBtc2xpZmNhawoKCWluY2x1ZGUgdGltZS5oIG9uY2UKCQoyMDAwLTAyLTE2IDA4OjAyICBtc2xpZmNhawoKCXJlc3RvcmUgI2lmIEhBVkUuLi5JTl9QQ0JfSAoJCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKCS0gY29uZmlndXJlLmluLCBpcGNoLltjaF06IGluaXRpYWwgc3RhYnMgYXQgTGludXggaXB2NiBzdXBwb3J0LiBBIGxvdCBpcwoJCWxhY2tpbmcgaW4gdGhlIGtlcm5lbCBzdGF0aXN0aWNzIHRob3VnaC4KCQoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCgktIChtYW55KTogY29uZmlndXJlIGNoZWNrIGZvciBuZXRpbmV0L2lwNi5oCgkKMjAwMC0wMi0xNSAyMzozNCAgbmJhCgoJLSBocl9maWxlc3lzLmM6IE1OVFRZUEUgZGVmaW5lcyBmb3IgRnJlZUJTRC0zIGFuZCBCU0RJLTQsIGFuZCBtb3ZpbmcgdGhlCgkJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgoJCjIwMDAtMDItMTUgMjM6MjQgIG5iYQoKCS0gZnJlZWJzZDMuaDogc29tZSBrZXJuZWwgc3ltYm9scyBub3QgdG8gYmUgdXNlZCBmb3IgRnJlZUJTRCAzCgkKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgoJLSBzbm1wdGFibGUuYzogZ2l2ZSBhIHNlbnNpYmxlIG91dHB1dCBmb3IgYW4gZW1wdHkgdGFibGUuCgkKMjAwMC0wMi0xNSAyMzoyMiAgbmJhCgoJLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKCQoyMDAwLTAyLTE1IDIzOjIwICBuYmEKCgktIGhyX3N0b3JhZ2UuYzogcmV0dXJuIG1lbW9yeSBzaXplIGluIHBhZ2VzLgoJCjIwMDAtMDItMTUgMjM6MTcgIG5iYQoKCS0gdWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmg6IG1ha2UgaXQgd29yayBmb3IgRnJlZUJTRC0zIHRvbwoJCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBvbmUgbW9yZSBwbGFjZSB0byBzZW5kIGEgQVVUSEZBSUwgdHJhcAoJCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKCS0gYWdlbnRfcmVnaXN0cnkuYzogZml4IGEgcmV0dXJuIGZvciBTTk1QdjEvQ291bnRlcjY0IGNhc2UKCQoyMDAwLTAyLTE1IDAyOjEyICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KCQoyMDAwLTAyLTExIDE1OjQ4ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIvKik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgoJLSAobWFrZWRlcGVuZC5pbik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6MzggIGhhcmRha2VyCgoJLSAocnNubXApOiBwZXJsNSAtPiBwZXJsCgkKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCgktIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfdHJhcF9hcGkuMwoJCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCgkKMjAwMC0wMi0xMSAxNDowMyAgaGFyZGFrZXIKCgktIChORVdTKTogdXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCgkKMjAwMC0wMi0xMSAxMjo1MyAgaGFyZGFrZXIKCgktIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KCQoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawoJCjIwMDAtMDItMTEgMTI6NDQgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCQoyMDAwLTAyLTExIDEyOjMwICBoYXJkYWtlcgoKCS0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CgkgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCgkKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgoJICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgoJICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCQoyMDAwLTAyLTExIDEyOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KCQoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgoJCjIwMDAtMDItMTAgMTE6MTQgIG1zbGlmY2FrCgoJZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCgkKMjAwMC0wMi0xMCAxMDozMyAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCgktIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCgkKMjAwMC0wMi0xMCAxMDoyOCAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgoJCjIwMDAtMDItMTAgMDg6MzkgIG5iYQoKCS0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCQoyMDAwLTAyLTEwIDA4OjEzICBtc2xpZmNhawoKCWZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwoJCjIwMDAtMDItMTAgMDg6MDAgIG1zbGlmY2FrCgoJdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoJCjIwMDAtMDItMTAgMDc6NTQgIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCgkKMjAwMC0wMi0xMCAwNzoxNCAgZGF2ZXMKCgktIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKCQoyMDAwLTAyLTEwIDA0OjQxICBkYXZlcwoKCS0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CgkgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgoJCjIwMDAtMDItMDkgMTM6NTMgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgoJICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCgkKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCglpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoJCjIwMDAtMDItMDkgMTM6MzggIGhhcmRha2VyCgoJLSAoU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CgkgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KCQoyMDAwLTAyLTA5IDEzOjMyICBoYXJkYWtlcgoKCS0gKFN2M2NvbmZpZ3NoYSk6IHNoYSBjb25maWcgc3VwcG9ydAoJCjIwMDAtMDItMDkgMTM6MzEgIGhhcmRha2VyCgoJLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKCSAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoJCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgoJRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCQoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKCS0gKFQwMjRzbm1wdjNnZXRTSEExIFQwMjVzbm1wdjNnZXRTSEFERVMpOiBuZXcgdGVzdHMKCQoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKCS0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCgkKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCgktIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKCSAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CgkgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgoJCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgoJLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgoJCjIwMDAtMDItMDkgMTA6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgkKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCQoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKCS0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CgkgIC0gU29sYXJpcyBwYXRjaGVzLgoJCjIwMDAtMDItMDkgMTA6MzcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOgoJICAtIGZpeCByc25tcC5tYWRlLgoJICAtIHVzZSAkKE1BS0UpLgoJCjIwMDAtMDItMDkgMDg6NDEgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCgkKMjAwMC0wMi0wNyAxMTo0OSAgbWFyegoKCW9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgkKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCglVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwoJdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoJCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgoJS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCgkKMjAwMC0wMi0wNyAwNzoyMCAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgoJCjIwMDAtMDItMDYgMDY6MTEgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgkKMjAwMC0wMi0wNSAxNzozOSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgoJCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgoJCjIwMDAtMDItMDUgMDY6NTYgIG1hcnoKCglmaXggdmVyc2lvbiAgbnVtYmVyCgkKMjAwMC0wMi0wNCAxODo1NSAgbWFyegoKCXdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwoJCjIwMDAtMDItMDQgMTg6MjEgIG1hcnoKCglicmFpbi1vCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMSAtPiBWNC4xLjEKCm1hcnogIDUgRmViIDAwIDA2OjU2OjQzCiAgICBmaXggdmVyc2lvbiAgbnVtYmVyCgpoYXJkYWtlciAgNSBGZWIgMDAgMDg6Mzc6MjcKICAgIC0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KCmhhcmRha2VyICA1IEZlYiAwMCAxNzozOTo1NAogICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KCm5iYSAgNiBGZWIgMDAgMDY6MTE6NTkKICAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgpoYXJkYWtlciAgNyBGZWIgMDAgMDc6MjA6MjQKICAgIC0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCgptc2xpZmNhayAgNyBGZWIgMDAgMTA6NDM6MjkKICAgIEtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgoKbXNsaWZjYWsgIDcgRmViIDAwIDExOjE4OjI2CiAgICBVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwogICAgdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoKbWFyeiAgNyBGZWIgMDAgMTE6NDk6MDEKICAgIG9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgpoYXJkYWtlciAgOSBGZWIgMDAgMDg6NDE6MTEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjM3OjAwCiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHJzbm1wLm1hZGUuCiAgICAgIC0gdXNlICQoTUFLRSkuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDE6MTQKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgIC0gU29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQxOjQ0CiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MzowNQogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTE6Mzg6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjoxNwogICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgICAgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgogICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjo1OAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KCm1zbGlmY2FrICA5IEZlYiAwMCAxMzozMTowMQogICAgRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzozMToyNAogICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoKbXNsaWZjYWsgIDkgRmViIDAwIDEzOjUxOjEyCiAgICBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjUzOjM3CiAgICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KCmRhdmVzIDEwIEZlYiAwMCAwNDo0MToxMAogICAgLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKICAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCgpkYXZlcyAxMCBGZWIgMDAgMDc6MTQ6NTEKICAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAoKaGFyZGFrZXIgMTAgRmViIDAwIDA3OjU0OjQ2CiAgICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAwODowMDoyNgogICAgdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoKbXNsaWZjYWsgMTAgRmViIDAwIDA4OjEzOjE0CiAgICBmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKCm5iYSAxMCBGZWIgMDAgMDg6NDA6MDQKICAgIC0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCmhhcmRha2VyIDEwIEZlYiAwMCAxMDoyODoyMQogICAgLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KCmhhcmRha2VyIDEwIEZlYiAwMCAxMDozMjowOAogICAgLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgoKbXNsaWZjYWsgMTAgRmViIDAwIDEwOjMzOjQ3CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAxMCBGZWIgMDAgMTE6MTQ6NTgKICAgIGZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMTEgRmViIDAwIDA2OjU4OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjoyMjoxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjI5OjM3CiAgICAtIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjozMDowMgogICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0NDoyMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0OTowMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NTM6MTUKICAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEzOjI5OjI5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMC4xIC0+IFY0LjEKCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE3OjEzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCgpoYXJkYWtlciAyNCBBdWcgOTkgMTc6MTQ6NTAKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLjEgKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE3OjM5OjU0CiAgICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCgptc2xpZmNhayAyNCBBdWcgOTkgMTc6NDM6MDQKICAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KCm1zbGlmY2FrIDI2IEF1ZyA5OSAxMzoxODozMQogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAoKbXNsaWZjYWsgMjYgQXVnIDk5IDEzOjQwOjEzCiAgICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIGRvbid0IGJ1aWx0IHRhcmdldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQKCm1zbGlmY2FrIDI3IEF1ZyA5OSAwNzozNToxMAogICAgLShjb25maWd1cmUqLCBzZWRzY3JpcHQqKSBjaGFuZ2UgLi4uRVhURU5JUy4uLiAgdG8gLi4uRVhURU5TSS4uLgoKbXNsaWZjYWsgMjcgQXVnIDk5IDA4OjAzOjQ2CiAgICBIb3dhcmQgU3BpbmRlbCBzdWdnZXN0cyBhbiBBUEkgZm9yIHRyYXBzIHdpdGggcGFzc19wZXJzaXN0LgoKaGFyZGFrZXIgMjcgQXVnIDk5IDA5OjE3OjA4CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6MTk6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX2FsYXJtLjMuCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6Mjk6NDgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjMzOjQxCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICAgc25tcGQuYywgdXRpbF9mdW5jcy5jLCBzeXNPUlRhYmxlLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgIC0gbmVlZHMgbXVjaCBtb3JlIHdvcmsuCiAgICAgICAgLSBtYW55IHBhcmFtZXRlcnMgYXJlIG5vdyBjb250cm9sbGVkIGJ5IG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzCiAgICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgICAtIG1lcmdlIGluaXRfc25tcCBhbmQgdGhlIGN1c3RvbSB2ZXJzaW9uIGNhbGxlZCBpbnNpZGUgdGhlIGFnZW50LgogICAgICAtIGFkZCBhIG5ldyBwbGFjZSBmb3IgdHJhcCBzcGVjaWZpYyBhZ2VudCBjb2RlIChhZ2VudF90cmFwLltjaF0pLgogICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjM4OjE4CiAgICAtIChjbGllbnQuYywgbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgICAtIHVzZSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncyBpbnN0ZWFkIG9mIGV4dGVybmFsIHZhcmlhYmxlcy4KCmhhcmRha2VyIDMwIEF1ZyA5OSAxMDozMDo1NgogICAgLSAobWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMpOiB5ZXQgbW9yZSBkZWJ1Z2dpbmcuCgpuYmEgMzAgQXVnIDk5IDEzOjAyOjE4CiAgICAtIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBkb2N1bWVudCBzbXV4cGVlciBkaXJlY3RpdmUKCm5iYSAzMCBBdWcgOTkgMTM6MDM6NDAKICAgIC0gYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzogcHJvcGVybHkgaGFuZGxlIE1JQjpvaWQgY29uc3RydWN0CgpuYmEgMzAgQXVnIDk5IDEzOjA1OjAyCiAgICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwYXJzZXIKCm5iYSAzMSBBdWcgOTkgMDA6MDg6NDUKICAgIC0gYWdlbnQvc25tcGQuYzogZG9uJ3QgdHJ5IHRvIHBhcnNlIGEgcGFja2V0IHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgaW4KICAgIAlyZWN2ZnJvbQoKbXNsaWZjYWsgMzEgQXVnIDk5IDA4OjE3OjI0CiAgICAtKGFnZW50X3RyYXAuYykgZml4IHJlY2VudCBtZW1vcnkgbGVhaywgYW5kIHNpemVvZihvYmppZF9zbm1wdHJhcCkgYnVnLgoKbXNsaWZjYWsgMzEgQXVnIDk5IDA5OjI2OjE0CiAgICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KCmRhdmVzICAyIFNlcCA5OSAwNjozODoxNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCgpkYXZlcyAgMiBTZXAgOTkgMDY6Mzg6NTMKICAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQoKaGFyZGFrZXIgIDIgU2VwIDk5IDA3OjA3OjA0CiAgICAtIChzdWJhZ2VudC5jKTogc2h1dGRvd25fc3ViYWdlbnQgLT4gc3ViYWdlbnRfc2h1dGRvd24gc28gY29uZmlndXJlCiAgICAgIGRvZXNuJ3QgZmluZCBpdC4KCmhhcmRha2VyICAyIFNlcCA5OSAwODo1Mjo0OAogICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNToxNQogICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNTozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGFnZW50IGhlYWRlciBmaWxlcy4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoyNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGluc3RhbGwgbGliYWdlbnQuYS4KICAgICAgLSBta2RpcmhlaXIgb24gbmVlZGVkIG5ldyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MzA6MzYKICAgIC0gKHNubXBsaWIvTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1vcmUgbGlicmFyeSBoZWFkZXJzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE0OjI4OjQ2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IGZhbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCB0cmVlLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE1OjAxOjM5CiAgICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KCm5iYSAgNiBTZXAgOTkgMjM6NTM6MDcKICAgIC0gKG1hbi9zbm1wX2FwaS4zIHNubXBsaWIvc25tcF9hcGkuYyBhZ2VudC9zbm1wZC5jIGFwcHMvc25tcHRyYXAuYyk6CiAgICAJZml4IG1lbW9yeSBsZWFrIHdoZW4gYWdlbnQgc2VuZHMgdHJhcHMgYnkgaW1wbGVtZW50aW5nIHRoZSBtaXNzaW5nCiAgICAJZnJlZSBvZiBUUkFQIHBkdSBpbiBzbm1wX3NlbmQuCgpuYmEgIDYgU2VwIDk5IDIzOjU1OjM4CiAgICAtIGlmLmM6IGNvcnJlY3QgY2FsbHMgb2Ygc25tcF9maXhfcGR1IHRvIHVzZSBHRVRORVhUCgptc2xpZmNhayAgNyBTZXAgOTkgMTQ6NDc6MTgKICAgIC0ocGFyc2UuKikgZml4IHNtYWxsIG1lbW9yeSBsZWFrczsgYWxsb3cgSU5ERVh7SU5URUdFUi4uLn0gY2xhdXNlczsKICAgICAgICAgICAgICAgYWxsb3cgbGFyZ2VyIERFU0NSSVBUSU9OIGNsYXVzZXMgW21heCA4MTkyXS4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMjoxNAogICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMzowMgogICAgKGRlZmF1bHRfc3RvcmUuKikgLSBtYWtlIDNyZCBwYXJhbSB0byBkc19zZXRfc3RyaW5nIHR5cGUgb2YgY29uc3QgY2hhciAqLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjIzOjUxCiAgICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICAod2luMzIqbGlic25tcC5kZWYpIC0gYWRkIG5ldyBzbm1wX2dldF90b2tlbiB0byBsaXN0LgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjMyOjAwCiAgICAtKHNubXBfYXBpLmgpIHN0cnVjdCBwZHUgYW5kIHNubXBfc2Vzc2lvbiBhZ3JlZTogbG9uZyB0eXBlIGZvciB2ZXJzaW9uIG1lbWJlci4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTozMjo1OQogICAgLShwYXJzZS5jKSByZW1vdmUgdW5uZWVkZWQgc3RyZHVwIHRvIEZpbGUgdmFyaWFibGUgZnJvbSBpbml0X21pYl9pbnRlcm5hbHMuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6NTc6MTMKICAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCgptc2xpZmNhayAgNyBTZXAgOTkgMjA6MTI6NTcKICAgIC0oYWdlbnRfdHJhcC5jLHNubXB0cmFwLmMsc25tcF9hcGkuWzNjXSkgLSBzbm1wX2ZyZWVfcGR1IGZpeCBCdWcgIzU0IHBlciBOaWVscyBCLgogICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KCm1zbGlmY2FrICA3IFNlcCA5OSAyMDoxOTo1MgogICAgc25tcHRyYXAuYyAtIHJld29yayBmaXggYnVnICM1NCAobWlzc2VkIGVsc2UpLgoKbXNsaWZjYWsgIDggU2VwIDk5IDA1OjE2OjM0CiAgICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKCm5iYSAgOCBTZXAgOTkgMDc6NDU6NTQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCgpuYmEgIDggU2VwIDk5IDA3OjQ2OjUxCiAgICAtIHNubXBfYXBpLmg6IG1vdmUgaW5jbHVzaW9uIHByb3RlY3Rpb24gdG8gdGhlIHJlYWwgYmVnaW5uaW5nL2VuZCBvZiB0aGUgZmlsZQoKbmJhICA4IFNlcCA5OSAwNzo0ODowMwogICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCgpuYmEgIDggU2VwIDk5IDA3OjUwOjM3CiAgICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgpuYmEgIDggU2VwIDk5IDA3OjUxOjI2CiAgICAtIHNubXBkLjEuZGVmOiBmaXggYSBmb3JtYXR0aW5nIHByb2JsZW0KCm5iYSAgOCBTZXAgOTkgMDc6NTI6MjMKICAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHByb2Nlc3NpbmcgKC1sZCBhbmQgc2ltaWxhcikKCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowMDo0MAogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBwcmVmaXggUEFUSCB3aXRoIC4gYW5kIC4uICwgYXMgdGhlIHNjcmlwdCBjaGFuZ2VzIGRpci4KCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowNDo1NQogICAgLShzbm1wbGliL3NubXBfY2xpZW50LiopIGFkZCBzbm1wX3NwbGl0X3BkdSwgc25tcF92YXJiaW5kX2xlbiBtZXRob2RzLgoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjAyOjM3CiAgICBtaWJpbmNsLmgsIG1pYmdyb3VwL21pYklJLyogLSBmaXh1cCBmb3IgQ3lnV2luMzIgYnVpbGQKCm1zbGlmY2FrICA4IFNlcCA5OSAxNzo0OToxMwogICAgLShjb25maWcqLHdpbjMyLyosc25tcGxpYi8qKSByZXNvdXJjZSBsb2NraW5nIG9yaWdpbmFsbHkgZnJvbSBNYXJra3UgTGF1a2thbmVuCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6NTI6NDcKICAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozMDoyOQogICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozNDozNwogICAgLShtaWJpbmNsLmgpIGNvbW1lbnQgb3V0IGR1cGxpY2F0ZSAjaW5jbHVkZSBoZWFkZXIgbGluZXMuCgpkYXZlcyAgOSBTZXAgOTkgMDE6MzI6MTUKICAgIC0gKG1pYnMvU05NUHYyLUNPTkYudHh0KTogT21pdCB1bm5lY2Vzc2FyeSBpbXBvcnQgY2xhdXNlCgptc2xpZmNhayAgOSBTZXAgOTkgMDI6MjE6NTAKICAgIC0od2luc3R1Yi5jKSBIYWNrIHRvIGFsbG93IHNubXBuZXRzdGF0IC1hIHRvIHdvcmsgb24gQUlYNCAoc2ljKS4KCm1zbGlmY2FrICA5IFNlcCA5OSAwMjozMToyNgogICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgoKbXNsaWZjYWsgIDkgU2VwIDk5IDEzOjU5OjI2CiAgICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgICBwYXJzZS5jIHdvcmsgYXJvdW5kIGNvcmUgZHVtcCBmcmVlaW5nIFRDcyB0aGF0IHNwZWNpZnkgcmFuZ2VzLgoKbmJhIDEyIFNlcCA5OSAyMTo1MDoyMwogICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCgpuYmEgMTIgU2VwIDk5IDIxOjU3OjE4CiAgICAtIGFnZW50LyosIHNubXBsaWIvKjogbWFsbG9jIGZpeGVzLCBzb21lIHByb3Zva2VkIGJ5IHRoZSBjb3JyZWN0ZWQKICAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgoKbmJhIDEyIFNlcCA5OSAyMTo1ODoxNwogICAgLSBURVNUQ09ORi5zaDogZml4IHNvbWUgZXhwb3J0cyB0byBleHBvcnQgdGhlIHJpZ2h0IHZhcmlhYmxlLgoKbmJhIDEyIFNlcCA5OSAyMTo1OTozNAogICAgLSBwcm90b2NvbC5jOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUgZmlsZS4KCm5iYSAxMiBTZXAgOTkgMjI6MDA6MzMKICAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCgpuYmEgMTMgU2VwIDk5IDA0OjM1OjE4CiAgICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKCm5iYSAxMyBTZXAgOTkgMTM6MzI6MDcKICAgIC0gc25tcGQuYzogZml4IGEgYnVmZmVyIG92ZXJmbG93CgpoYXJkYWtlciAxMyBTZXAgOTkgMTU6MDE6NTQKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzdWJhZ2VudC5jLAogICAgICBzdWJhZ2VudC5oLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAgLSB1c2UgY2FsbGJhY2tzIGV2ZXJ5d2hlcmUgbmVlZGVkIHRvIG5vdCBjYWxsIG1pYiBtb2R1bGUgY29kZSBkaXJlY3RseS4KICAgICAgICAtIGdldCByaWQgb2YgYWxsIGluc3RhbmNlcyBvZiBVU0lOR18gaW4gbGliYWdlbnQgY29kZS4KCm1zbGlmY2FrIDEzIFNlcCA5OSAyMDoyMDo1NAogICAgLShzbm1wX2FwaS5jKSByZS1hc3NlcnQgTmllbHMnIHBhdGNoIHRvIHNubXBfc2VuZCB0byBmcmVlIHYyL3YxIFRyYXAtUERVcwoKbXNsaWZjYWsgMTQgU2VwIDk5IDA5OjU0OjA1CiAgICAtKEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9wYXJzZS4qKSBhZGQgcmVwbGFjZSBNSUIgY2FwYWJpbGl0eShleHBlcmltZW50YWwpCgptYXJ6IDE0IFNlcCA5OSAxMzowMDoxMgogICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogZml4IHNwdXJpb3VzIGVycm9yIG1lc3NhZ2Ugd2hlbiBzbm1wX3BhcnNlX29pZCBmYWlscwoKbXNsaWZjYWsgMTQgU2VwIDk5IDEzOjIyOjM5CiAgICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAoKbXNsaWZjYWsgMTUgU2VwIDk5IDA2OjA4OjMyCiAgICBpbmNsdWRlIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaCBmb3IgYmVuZWZpdCBvZiBtaWJfbW9kdWxlX2RvdF9jb25mLmgKCmhhcmRha2VyIDE1IFNlcCA5OSAwOTo0NTozNQogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zLCBzbm1wX29wZW4uMywKICAgICAgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMywgc25tcF9zZW5kLjMsCiAgICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICAgc25tcF9zZXNzX2luaXQuMywgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywKICAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAgLSBjcmVhdGUgc29tZSBmYWtlIHNvdXJjaW5nIG1hbiBwYWdlcyBmb3IgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMTUgU2VwIDk5IDExOjMwOjU4CiAgICBmaW5lIHR1bmluZyBtdCBzdXBwb3J0Cgptc2xpZmNhayAxNiBTZXAgOTkgMTQ6MTY6MzgKICAgIC1wZXIgYWdyZWVtZW50IHdpdGggTWFya2t1LCBubyBzdXBwb3J0IG5lZWRlZCBmb3IgU29sYXJpcy1zcGVjaWZpYyB0aHJlYWRzLgoKaGFyZGFrZXIgMTcgU2VwIDk5IDA3OjE3OjIxCiAgICAtIChzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgIC0gZml4IGNvbW1lbnRzLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjE5OjQyCiAgICAtKHBhcnNlLmMpIC0gcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBzdGF0aWMgdmFyICJsYXN0IgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjI0OjQ4CiAgICAtcmVtb3ZlIG9sZC1zdHlsZSBpbml0IGZvciByZXBsYWNlIG1pYiBmZWF0dXJlLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjQyOjE3CiAgICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCgpoYXJkYWtlciAxNyBTZXAgOTkgMTU6Mzc6NDEKICAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZSB0byAyLjEzLgoKZGF2ZXMgMjEgU2VwIDk5IDA5OjIxOjU5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBoYW5kbGUgYWRkaW5nICdlcnJvcicgdHlwZSB2YXJpYWJsZXMgdG8gYSBQRFUKCmRhdmVzIDIxIFNlcCA5OSAwOToyNToyNQogICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKCmRhdmVzIDIxIFNlcCA5OSAwOTozMjoyNwogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wZC5jKTogU2ltcGxlIHJ1bi10aW1lIGR1bXAgb2YgcmVnaXN0ZXJlZCBNSUJzCgptc2xpZmNhayAyMSBTZXAgOTkgMTA6NDA6NDMKICAgIC0obWliLmMpIHVuZG8gZXJyb25lb3VzIGNoYW5nZSB0byBpbml0X21pYiAodGhhbmtzIE5CISkKCmRhdmVzIDIyIFNlcCA5OSAwOToyNzozNwogICAgLSAoYWdlbnQvc25tcGQuYyk6IHN0dXBpZCB0eXBvCgpkYXZlcyAyMiBTZXAgOTkgMDk6MzE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMpOiBzdHVwaWQgdHlwbwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjMzOjUxCiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlkZSBtZXRob2QgZm9yIHByaW9yaXRpc2VkIHJlZ2lzdHJhdGlvbgoKZGF2ZXMgMjIgU2VwIDk5IDA5OjM1OjA5CiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU0OjAyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIENoYW5nZSB0aGUgd2F5IHRoZSBNSUIgcmVnaXN0cnkgaGFuZGxlcyByZWdpc3RlcmVkIHJhbmdlcy4KICAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU4OjEyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogcmVtb3ZlIHJlZHVuZGFudCByb3V0aW5lcwoKZGF2ZXMgMjIgU2VwIDk5IDEwOjAwOjU2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRW5zdXJlIHJlZ2lzdHJ5IGlzIGluaXRpYWxpc2VkIGNvcnJlY3RseSBvbiBzdWJhZ2VudHMKCmRhdmVzIDIyIFNlcCA5OSAxMDowMTo0NQogICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBJbXByb3ZlZCBBZ2VudFggcmVzcG9uc2UgaGFuZGxpbmcKCm1zbGlmY2FrIDIyIFNlcCA5OSAxMjo1MTowMAogICAgLShzbm1wX2FwaS5jKSAtIEltcHJvdmVkIGVycm9yIHN0YXR1cyBhZ2dyZWdhdGlvbi4KCmhhcmRha2VyIDI3IFNlcCA5OSAxNjoyMjoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KCmhhcmRha2VyIDI4IFNlcCA5OSAxNjo1MjowNAogICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBtYWtlIGxpYnVjZGFnZW50IGFuZCBsaWJ1Y2RtaWJzIGFzIHNlcGVyYXRlIGxpYnJhcmllcy4gIEluIHRoZW9yeSwKICAgICAgICB5b3Ugc2hvdWxkbid0IG5lZWQgbGlidWNkbWlicyB0byB1c2UgbGlidWNkYWdlbnQuCgpkYXZlcyAyOSBTZXAgOTkgMTE6MTQ6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHByb3RlY3Qgc25tcF9jbG9zZSgpIGFnYWluc3QgYSBudWxsIFNlc3Npb25zIGxpc3QKCmRhdmVzIDI5IFNlcCA5OSAxMToxNzowMQogICAgLSAobXRfc3VwcG9ydC5oIHNubXBfYXBpLltjaF0pOiBTdXBwb3J0IGZvciBzZXNzaW9uIGFuZCBpbmNvbWluZyB0cmFuc2FjdGlvbiBJRHMKCmRhdmVzIDI5IFNlcCA5OSAxMToyMzo0MAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IENvcnJlY3QgdmFsdWUgb2YgZGVmYXVsdCByZWdpc3RyYXRpb24gcHJpb3JpdHkKCmRhdmVzIDI5IFNlcCA5OSAxMTozNjo0MwogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gSW1wcm92ZSByZWdpc3RyeSBlcnJvciBoYW5kbGluZwogICAgICAtIENvcnJlY3RseSBoYW5kbGUgdW5yZWdpc3RlcmluZyBNSUIgcmVnaW9ucwoKZGF2ZXMgMjkgU2VwIDk5IDExOjM4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAgLSAnQ2hpbGRyZW4nIG5vZGVzIG5vdyBoYXZlIGEgZGlmZmVyZW50IHN0YXR1cywgYW5kIHNob3VsZG4ndCBiZSBmcmVlZC4gT29wcyEKCmRhdmVzIDI5IFNlcCA5OSAxMTo0MzowMAogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3Zpc2lvbiB0byB1bnJlZ2lzdGVyIE1JQnMgYnkgc2Vzc2lvbgoKZGF2ZXMgMjkgU2VwIDk5IDExOjQ2OjAyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6CiAgICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgICAoc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzdWJhZ2VudHMgd2l0aCB0aGUgbWFzdGVyJ3MgdmFsdWUpCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDg6NTUKICAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6IENoYW5nZSBpbiBNSUIgcmVnaXN0cmF0aW9uIGludGVyZmFjZQoKZGF2ZXMgMjkgU2VwIDk5IDEyOjE5OjU2CiAgICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCgptc2xpZmNhayAyOSBTZXAgOTkgMTQ6MzE6NDgKICAgIFJvYnVzdCBjb3B5IG9mIGluZm9ybWF0aW9uIHRvIHRyZWUsIGltcG9ydF9saXN0LCBkaXNwbGF5IGhpbnRzLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM1OjQzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBSQU5MSUIgdGVzdGluZyBmb3IgLS1lbmFibGUtc2hhcmVkLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM2OjA3CiAgICAtIChSRUFETUUpOiBhZGRlZCBNaWtlIE1pY2hhdWQgdG8gdGhlIHRoYW5rIHlvdSBsaXN0LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM4OjM0CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAgLSBuZXcgZXh0cmFjdGlvbiBhbmQgZnJlZWluZyBmdW5jdGlvbnMuCiAgICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozODo1OQogICAgLSAoY2xpZW50LmMpOiB0aGF0cyAidGltZXZhbCIgbm90ICJ0aW1ldmFsZSIgRGF2ZSAoaGVoZSkuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzk6MjEKICAgIC0gKGNsaWVudC5oKTogZGVmaW5lIERFRkFVTFRfTUlCX1BSSU9SSVRZIHRvIDI1NS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozOTo0MgogICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6NDA6MDgKICAgIC0gKHBhc3MuYyk6IHJ1biBudG9obCBvbiBpcCBhZGRyZXNzZXMgc3RvcmVkIGluIGEgbG9uZy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjo0MDozMAogICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZWQgZXh0cmEgXG4uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTc6MDE6MjgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgpOiBmaXggYnVncy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNzowMTo1MAogICAgLSAobWliX21vZHVsZXMuYyk6IGluY2x1ZGUgbmV0aW5ldC9pbi5oCgptc2xpZmNhayAyOSBTZXAgOTkgMjM6NDI6NDkKICAgIFJlbW92ZSB1bnVzZWQgZmlsZS4uIHNubXBsaWIvaHB1eC5jCgpkYXZlcyAzMCBTZXAgOTkgMDE6MDk6MjUKICAgIC0gKG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQoKZGF2ZXMgIDEgT2N0IDk5IDA5OjQ4OjIwCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IEZpeCBpbmNvbXBhdGFiaWxpdHkgaW4gYWdlbnQgbGlicmFyeSBuYW1lcwoKZGF2ZXMgIDIgT2N0IDk5IDE0OjI4OjIwCiAgICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIEZpeCBhIHByb2JsZW0gd2l0aCByZS11c2VkIFBEVSBzdHJ1Y3R1cmVzIGJlaW5nIGZyZWVkIHR3aWNlLgoKZGF2ZXMgIDQgT2N0IDk5IDAzOjU4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCk6CiAgICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CgpkYXZlcyAgNCBPY3QgOTkgMDk6NTM6NDgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gc25tcF92YXJzLmggbWliSUkvc3lzT1JUYWJsZS5jCiAgICAgICBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKCmRhdmVzICA0IE9jdCA5OSAwOTo1ODoyNgogICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgIC0gRW5zdXJlIHN1YmFnZW50IGlzIGluaXRpYWxpc2VkIGVhcmx5IChwcmlvciB0byBNSUIgcmVnaXN0cmF0aW9uLCBldGMpCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTU6MzgKICAgIC0gKHNubXBsaWIvY2FsbGJhY2suaCk6IEluY3JlYXNlIG51bWJlciBvZiBhcHBsaWNhdGlvbiBjYWxsYmFja3Mgc3VwcG9ydGVkCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTc6NTMKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLltjaF0KICAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgICAtIENvbXBsZXRlIHN1YmFnZW50IGhhbmRsaW5nIG9mIEFnZW50IENhcGFiaWxpdGllcyAvIHN5c09SVGFibGUKCmRhdmVzICA0IE9jdCA5OSAxMDoyMjoyNQogICAgLSAoYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFRyaXZpYWwgJ3BpbmcnIGltcGxlbWVudGF0aW9uCgpuYmEgIDQgT2N0IDk5IDExOjQ4OjUxCiAgICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTA6NTAKICAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTI6MjUKICAgIC0gY29uZmlndXJlLmluOglyZW1vdmUgLXBlZGFudGljIGZyb20gLS13aXRoLWRldmVsb3BlciwgYW5kIHRoZSBzeXN0ZW0gaGVhZGVycwogICAgCWFyZSBub3QgcHJlcGFyZWQgZm9yIGl0IChhdCBsZWFzdCBvbiBMaW51eCBhbmQgTmV0QlNEKQoKbmJhICA0IE9jdCA5OSAxMzozODoxOQogICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwoKaGFyZGFrZXIgIDQgT2N0IDk5IDEzOjUxOjUxCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c1NlcnZpY2VzIGNvbmZpZ3VyYWJsZS4KCm5iYSAgNCBPY3QgOTkgMTM6NTI6MjAKICAgIC0gc3ViYWdlbnQuaCwgc3ViYWdlbnQuYywgbWliX21vZHVsZXMuYzogcHJlX2luaXRfc3ViYWdlbnQgY29uZnVzZXMKICAgIAljb25maWd1cmUgaW50byBiZWxpZXZpbmcgdGhlcmUgaXMgYSBpbml0X3N1YmFnZW50IGZ1bmN0aW9uLgogICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAoKaGFyZGFrZXIgIDQgT2N0IDk5IDE2OjMyOjE5CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgoKZGF2ZXMgIDUgT2N0IDk5IDA3OjIzOjQ1CiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6IFdvcmtpbmcgU0VUIHN1cHBvcnQKCm5iYSAgNSBPY3QgOTkgMjE6NDk6MjIKICAgIC0gc25tcF9kZWJ1Zy5oOiBtYWtlIHRoZSBERUJVRyogbWFjcm9zIHNhZmUgZm9yIHVzZSBpbiBjb21wb3VuZCBzdGF0ZW1lbnRzCgpuYmEgIDUgT2N0IDk5IDIyOjE4OjQ2CiAgICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAoKbmJhICA1IE9jdCA5OSAyMjoyMjo1NAogICAgLSBzdWJhZ2VudC5jOiBpbmNsdWRlIHN5c3RlbS5oIGZvciBwcm90b3R5cGUgZm9yIGNhbGN1bGF0ZV90aW1lX2RpZmYKCmhhcmRha2VyICA2IE9jdCA5OSAwODo1Nzo0MgogICAgLSAoZml4cHJvYyk6IG5ldyBjb21tZW50ZWQgdmVyc2lvbi4KCmhhcmRha2VyICA2IE9jdCA5OSAxNjozMTo1MwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgICAtIFNhdmUgYW5kIHBhcnNlIG9sZGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcyB0byBtYWtlIHN1cmUgZGF0YSBpcwogICAgICAgIG5vdCBsb3N0IGR1cmluZyBzdG9yYWdlIGNyYXNoZXMuCiAgICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgoKZGF2ZXMgIDcgT2N0IDk5IDA3OjI2OjIwCiAgICAtIChhZ2VudF90cmFwLmMgYWdlbnRfdHJhcC5oIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcGQuaCk6CiAgICAgIC0gIFJlLXdyaXRlIG9mIGFnZW50IHRyYXAgaGFuZGxpbmc6CiAgICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgICAJQ29uc29saWRhdGUgdjEgYW5kIHYyIHRyYXAgc2luayBsaXN0cwogICAgCVByZWxpbWluYXJ5IElORk9STSBzdXBwb3J0CgpkYXZlcyAgNyBPY3QgOTkgMDg6NDI6MTUKICAgIC0gKGFnZW50X3RyYXAuW2NoXSk6IEltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc3ViYWdlbnRzCgpkYXZlcyAgNyBPY3QgOTkgMDk6MDE6MjUKICAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IE5vdGlmaWNhdGlvbiBzdXBwb3J0Cgptc2xpZmNhayAxMiBPY3QgOTkgMDU6NTg6MjgKICAgIG1pYi5jIDogcXVpY2tfcHJpbnQgaXMgZXhwb3NlZCBmb3IgQ01VX0NPTVBBVElCTEUgYnVpbGRzLgogICAgbGNkX3RpbWUuYyA6IGNvbW1lbnRlZCB1bnVzZWQgZHVtcF9ldGltZWxpc3RfZW50cnkgdW5kZXIgU05NUF9URVNUSU5HX0NPREUuCgptc2xpZmNhayAxMiBPY3QgOTkgMDY6MDc6NDQKICAgIERlZmluZSBhZGRyZXNzIGxlbmd0aCBmb3IgRnJlZUJTRCBwbGF0Zm9ybS4KCm1zbGlmY2FrIDEzIE9jdCA5OSAwMzo1NDowMgogICAgYWRkIG1pc3NpbmcgcHJvdG8gZm9yIHNhdmVfcGVyc2lzdGVudC4KCm5iYSAxMyBPY3QgOTkgMDc6MDk6MzYKICAgIC0gbWFzdGVyX2FkbWluLmMsIHN5c3RlbV9taWIuaDogaW5jbHVkZXMgZm9yIHByb3RvdHlwZXMKCm1zbGlmY2FrIDE1IE9jdCA5OSAwNzowOToxNAogICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICAgYnVnIGluIGFycmF5LWJvdW5kYXJ5IGNoZWNrIGluIHNubXBsaWIvY2FsbGJhY2suYwogICAgcmVwb3J0ZWQgYnkgQmVydCBIb2xzdGVpbiAxNSBPY3QgMTk5OS4KCmhhcmRha2VyIDIwIE9jdCA5OSAxNzoyNjo1OQogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHBhcnNlZCBzdHJpbmdzIGZyb20gb2lkJ3MgaW5jbHVkZSBudWxsIHRlcm1pbmF0b3JzLgoKaGFyZGFrZXIgMjAgT2N0IDk5IDE4OjA4OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBvaWQgcGFyc2VyIHRvIGhhbmRsZSBzaW1wbGUgZW1iZWRkZWQgc3RyaW5ncyBpbiBvaWRzCiAgICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICAgRUc6IC4xLjMuXCJoZWxsb1wiLlwnaGlcJyAtPiAuMS4zLjUuMTA0LjEwMS4xMDguMTA4LjExMS4xMDQuMTA1CgpoYXJkYWtlciAyMSBPY3QgOTkgMTA6MDc6MDAKICAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjA6MTUKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciB3aXRob3V0IHNwZWNpZnlpbmcgc25tcF9lcnJubyBfb3V0c2lkZV8gdGhlIGxpYnJhcnkuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjY6MjkKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDozNzo0OQogICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgIHJlYWRfY29uZmlnLmMgLSBkcm9wIHVudXNlZCB2YXJpYWJsZS4KICAgIHNubXBfYXBpLmMgLSBuZXcgbWV0aG9kIHNubXBfb3Blbl9leCByZXBsYWNlcyBzZXQgaW50ZXJuYWwgaG9vayBmdW5jdGlvbnMuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6Mzk6MDkKICAgIEZpeHVwcyBmb3IgYnVpbGRpbmcgd2l0aCBNU1ZDKysuIChubyBocHV4LmMsIHN1cHBseSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTKS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDo0MTozOAogICAgcmVtaW5kZXJzIGZvciBzbm1wX3Nlc3NfcGVycm9yIHVzYWdlIGFmdGVyIG9wZW4uCiAgICBzbm1wdGFibGUuYyAtIG9wZW4vY2xvc2Ugc2Vzc2lvbiBmcm9tIG1haW4oKS4KICAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6NDI6MjgKICAgIHVzZSBzbm1wX29wZW5fZXguCgptc2xpZmNhayAyMSBPY3QgOTkgMTI6MDk6NTEKICAgIEZpeCBCVUcjNzgKCm1zbGlmY2FrIDIxIE9jdCA5OSAxMjozMToyOAogICAgc21hbGwgcGF0Y2ggZnJvbSBNLiBMYXVra2FuZW4gdG8gZml4IEhQIGFDQyBidWlsZC4KCm5iYSAyMSBPY3QgOTkgMTI6NTI6MjYKICAgIC0gbWVtb3J5X3NvbGFyaXMuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCgpuYmEgMjEgT2N0IDk5IDEyOjU0OjQxCiAgICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOToxNgogICAgSW4gZml4aW5nIGJ1ZyAjODMgb24gNC4wIGJyYW5jaCwgZGlzY292ZXJlZCB0aGF0IDMuNiBicmFuY2gKICAgIGRpZCBub3QgaGF2ZSAib2N0ZXQiIHRva2VuIHN1cHBvcnQuICBBZGRlZC4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOTo1MgogICAgRml4IEJVRyAjODMuCgptc2xpZmNhayAyMiBPY3QgOTkgMDc6Mzk6MDEKICAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQoKaGFyZGFrZXIgMjIgT2N0IDk5IDA5OjU5OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBoZXggc3RyaW5ncyBpbnNpZGUgb2lkcy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAxMDoxMjoyNgogICAgRGlzcGxheSBfc29tZV8gb2N0ZXQgc3RyaW5nIGluZGljZXMgb2Ygb2JqZWN0IGlkZW50aWZpZXJzIGFzIHF1b3RlZCBwcmludGFibGUuCiAgICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgoKaGFyZGFrZXIgMjIgT2N0IDk5IDE1OjI4OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGtleXRvb2xzLmMsCiAgICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgICAtIHVzZSBvcGVuc3NsIGZvciBtZDUvc2hhIHN1cHBvcnQgKGZyb20gT2xhZnVyIEd1ZG11bmRzc29uKS4KCmhhcmRha2VyIDIyIE9jdCA5OSAxNToyOTozOAogICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjQ6MDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU05NUENPTkZQQVRIIHVzZXMgc3lzY29uZmRpciBub3QgZGF0YWRpci4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNDoyMQogICAgLSAoUkVBRE1FLnNubXB2Myk6IHR5cG8uCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjU6MzUKICAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICAgaGFuZGxlIG11bHRpcGxlIGNhbGxzIChhZGRpdGl2ZSkgYW5kICcrJ3MgYW5kIHRoaW5ncy4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNzoyOAogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcHJlbWliIGRpcmVjdGl2ZXMgd2VyZW4ndCBnZXR0aW5nIHJlYWQgZHVlIHRvIGEgbWlzc2luZyBuZWdhdGlvbiAoISkuCiAgICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgoKbXNsaWZjYWsgMjUgT2N0IDk5IDA4OjA2OjMyCiAgICBtaW5vciByZXdvcmsgdG8gY2xhcmlmeSBzaWduZWQgY29tcGFyZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDI1IE9jdCA5OSAxMzozOToyNwogICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBMaW51eCBwYXJ0CgpuYmEgMjUgT2N0IDk5IDEzOjQxOjAxCiAgICAtIGNvbmZpZ3VyZS5pbiwgcHJvYy5jOiBzdXBwb3J0IGZvciBGcmVlQlNEIDIuMSB3aGVyZSBwcyBkb2Vzbid0IGhhdmUgYyBmbGFnCgpuYmEgMjUgT2N0IDk5IDEzOjUxOjIyCiAgICAtIGhyX3N5c3RlbS5jOiBwbGF5IGl0IHNhZmUgd2hlbiBubyB1dG1wIGZpbGUgZXhpc3RzCgpuYmEgMjUgT2N0IDk5IDEzOjUzOjI2CiAgICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzogc3VwcG9ydCBmb3IgdHJhcGhhbmRsZSBERUZBVUxUCgpuYmEgMjUgT2N0IDk5IDEzOjU2OjI2CiAgICAtIFJVTlRFU1RTLCBURVNUQ09ORi5zaCBldmFsX29uZXNjcmlwdC5zaCBldmFsX3Rvb2xzLnNoOiBzdXBwb3J0IG5vbi1iYXNoCiAgICAJc2hlbGxzIChlY2hvIC1uIHZzIGVjaG8gXFxjKS4gRG9uJ3QgcmVxdWlyZSAuIGluIFBBVEgKCm5iYSAyNSBPY3QgOTkgMTM6NTg6MDMKICAgIC0gc25tcHRyYW5zbGF0ZS5jOiBsZXQgJzonIGluIE9JRCBkbyAidGhlIHJpZ2h0IHRoaW5nIgoKbmJhIDI1IE9jdCA5OSAxMzo1OTowNQogICAgLSBwYXNzLmM6IGRvIGFuIGh0b25sIHdoZW4gcGFzc2luZyBpcCBhZGRyZXNzCgpuYmEgMjUgT2N0IDk5IDE0OjA3OjExCiAgICAtIHNubXBkZWx0YS5jOiBDT1VOVEVSNjQgd2lsbCBkZXJlZmVyZW5jZSBmcmVlZCBwb2ludGVyCgpuYmEgMjUgT2N0IDk5IDE0OjA4OjI1CiAgICAtIHNubXBkLmNvbmYuNS5kZWY6IG1pbm9yIHF1aXJrCgpuYmEgMjUgT2N0IDk5IDE0OjEzOjU3CiAgICAtICo6IGNvbmZpZ3VyZSBzdXBwb3J0IGZvciBkbWFsbG9jIG1hbGxvYyBkZWJ1Z2dlciAod3d3LmRtYWxsb2MuY29tKQoKaGFyZGFrZXIgMjUgT2N0IDk5IDE0OjM1OjUxCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBlbmFibGUgLXAgcHJpbnRpbmcgb2Ygb25seSBhIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlLgoKaGFyZGFrZXIgMjUgT2N0IDk5IDE2OjA1OjAzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIHBhcnNlLmMpOiBoYWNrIHRvIGRvIHdpbGQgY2FyZCBzZWFyY2hlcyBmb3IgYSBtaWIgbm9kZS4KCm1zbGlmY2FrIDI2IE9jdCA5OSAxMDozNDo0MAogICAgQWxsb3cgdW5zaWduZWQgcmFuZ2UgZm9yIGNvdW50ZXIvZ2F1Z2UvdGltZXRpY2tzIChmaXggQlVHIzg0IHBlciBTYW5kZXIgU3RlZmZhbm4pLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjMzOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCB1cCB1Y2Qtc25tcC1jb25maWcuaCBidWlsZGluZy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNDoxMAogICAgLSAoc25tcF9hZ2VudC5oKTogcHJvdG90eXBlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzQ6NTUKICAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgICB3cmFwIGFyb3VuZCB0aGUgdmFyaW91cyBhZ2VudCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM1OjI3CiAgICAtIChtYXN0ZXJfYWRtaW4uYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc28geW91IGNhbiB3YXRjaCBzdHVmZiByZWdpc3Rlci4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjoyMQogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgICAgZGVmYXVsdF9zdG9yZS4zLmgsIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjMpOgogICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjo1NQogICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBtYXJrIHJlZ2lvbnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHRfc3RvcmUuMyBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNzo0OQogICAgLSAobGNkX3RpbWUuaCk6IGRlZmluZSBhbmQgY29tbWVudCBMQ0RfVElNRV9TWU5DX09QVCBiZXR0ZXIuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6Mzg6MDYKICAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGQgZGVmYXVsdF9zdG9yZS5oIGFuZCBzbm1wX2xvZ2dpbmcuaAoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjAxCiAgICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjU5CiAgICAtIChtaWIuYyk6IGJhaWwgaWYgd2UgY2FuJ3QgZmluZCBhbiBpbmRleCBpbiB0aGUgbWliIHRyZWUgdG8gdXNlIGZvcgogICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTc6MzA6MjUKICAgIC0gKHZhY21fdmFycy5jKTogd2F0Y2ggZm9yIG51bGwgY29tbXVuaXRpZXMgd2hlbiBwcmludGluZyBkZWJ1ZyBzdGF0ZW1lbnRzLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA0OjU1OjUyCiAgICBEYXZlJ3MgY29tbWVudCBhYm91dCBwcmVfcGFyc2UgZXRjLiB3YXMgdG9vIGdvb2QgdG8gbG9zZSBpbiBlLW1haWwuCgptc2xpZmNhayAyOCBPY3QgOTkgMDU6MjM6MDUKICAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNToyNTowMgogICAgT29wcyEgcmVzdG9yZSB2ZXJzaW9uIHIxLjEzMS4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNjo0OTowMwogICAgcmVwaHJhc2Ugc3VidHJlZSBub3QgZm91bmQgY29kZSBpbiBfZ2V0X3N5bWJvbC4KCmhhcmRha2VyIDI4IE9jdCA5OSAxMzo0Nzo1NwogICAgLSAoc25tcHRvc3FsKTogZGVidWdnaW5nIGFuZCBlcnJvciBjaGVja2luZy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwODo1ODoxNwogICAgLSAobWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IFBhdGNoIGZyb20gS2VpdGggVHVzb246CiAgICAgIC0gbWlzYyBmaXhlcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODoxMQogICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODo0MwogICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjkgT2N0IDk5IDA5OjUyOjE4CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogdHdvIG5ldyBwcmludGluZyBvcHRpb25zOgogICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAgLSBwcmludE51bWVyaWNFbnVtcwoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjA2OjAzCiAgICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBzbm1wIG92ZXIgVENQIG9wdGlvbnM6IC1UIFRDUC4KICAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxMzo0NAogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjAxCiAgICAtKGRlZmF1bHRfc3RvcmUuM3ssLmh9KTogcmVtb3ZlZCBmcm9tIENWUyBzaW5jZSB0aGV5IGFyZSBidWlsdAoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjQzCiAgICAtICguY3ZzaWdub3JlKTogaWdub3JlIGRlZmF1bHRfc3RvcmUuM3ssLmh9CgpoYXJkYWtlciAyOSBPY3QgOTkgMTY6NTg6MDcKICAgIC0gKHRrbWliKTogbWFrZSBpdCBkbyBzbm1wdjMuICBBZGRlZCBtYW55IHRoaW5ncyB0byB0aGUgb3B0aW9ucyBtZW51LgoKbWFyeiAyOSBPY3QgOTkgMTk6NTQ6MTAKICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAoKaGFyZGFrZXIgIDEgTm92IDk5IDEzOjE4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAgLSBkb24ndCBicmVhayBvaWRzIGludG8gcGllY2VzIGlmIHF1aWNrX3ByaW50IGlzIHR1cm5lZCBvbi4KICAgICAgLSBkaXR0byBpZiB0aGUgbmV3IGRlZmF1bHRfc3RvcmUgb3B0aW9uIGlzIHR1cm5lZCBvbi4KICAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KCmhhcmRha2VyICAyIE5vdiA5OSAwOTo1NzozMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG90aGVyIGhlYWRlciBmaWxlcyBuZWVkZWQgYnkgU05NUC5wbS4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTozNzowNQogICAgVXNlIEhBVkVfU1REQVJHX0ggd2hlbiBkZWNpZGluZyB0byB1c2UgdmFyYXJncyB2cyBBTlNJLUMgcHJvdG90eXBlcy4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTo0NjowOAogICAgSW5zdGFsbCBzbm1wX2FnZW50X2FwaS4zCgptc2xpZmNhayAgMyBOb3YgOTkgMDY6MTE6MDMKICAgIGRlY2xhcmUgZmluZF9iZXN0X3RyZWVfbm9kZSBmb3IgTVNWQyBidWlsZC4KCm1zbGlmY2FrICAzIE5vdiA5OSAwNjo0OTozMAogICAgTmVhciBsaW5lIDY2MyA6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCgptc2xpZmNhayAgMyBOb3YgOTkgMTM6MTg6NTkKICAgIEZvbGxvd2luZyBjYWxsIHRvIGZkb3BlbiAobmVhciBnZXRfZXhlY19vdXRwdXQpLCBkbyBub3QgY2xvc2UoZmQpLgoKbXNsaWZjYWsgIDMgTm92IDk5IDEzOjIwOjE2CiAgICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wIDoga2V5IG9mZiBHTlVfTElCUkFSWSB2YWx1ZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwMjo0MjoxNQogICAgUGF0Y2ggdG8gYnVpbGQgQlNEL09TIDQuMC4xOyBmcm9tIEJlcnQgRHJpZWh1aXMgLS0gZHJpZWh1aXNAcGxheWJlaW5nLm9yZwoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjE0OjI4CiAgICBNb3JlIFNURENfSEVBREVSUyBjbGVhbnVwOiB1c2UgSEFWRV9TVFJJTkdfSCwgSEFWRV9TVERMSUJfSCBpbnN0ZWFkLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjMzOjMyCiAgICBDaGFuZ2UgZXhhbXBsZSBhd2F5IGZyb20gU1REQ19IRUFERVJTLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA1OjA4OjMxCiAgICBFdmVyeSAjZGVmaW5lIGlzIGdpdmVuIGEgdmFsdWU7IHNldCB0byAxIGlmIG5vIHZhbHVlIHdhcyBzcGVjaWZpZWQuCgptc2xpZmNhayAgNCBOb3YgOTkgMDU6MTM6MDUKICAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNjoxMTo0OAogICAgVXNlIHN5c2N0bChDVExfVk0uLikgdG8gZ2V0IHZpcnR1YWwgbWVtb3J5IHN0YXRzLgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjAzOjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgIC0gZGVmaW5lIElOX1VDRF9TTk1QX1NPVVJDRSBpbiBjb25maWcuaCBidXQgbm90IGluIHVjZC1zbm1wLWNvbmZpZy5oLgogICAgICAtIG1vdmUgdWNkLXNubXAtY29uZmlnLmggdXAgaW4gdGhlIGJ1aWxkIG9yZGVyIGJlZm9yZSBzdWJkaXJzLgogICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAgLSBNYWtlIE1JQkRJUlMgcGFyc2luZyBoYW5kbGUgJEhPTUUgdmFyaWFibGVzIGluIGl0LgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjA0OjQyCiAgICAtIChtaWIyYy5jb25mKTogaW5jbHVkZSBoZWFkZXJzIGZvciBjb21waWxhdGlvbiBmb3IgYm90aCBpbnRlcm5hbCBhbmQKICAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAxMDoxOTozNQogICAgUmVkbyBGcmVlQlNEIDQuMDogZGVmaW5lIGZyZWVic2QzIGluIHMvZnJlZWJzZDQuaDsgcmVkdWNlICJkZWZpbmUiIHRocmFzaGluZy4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDoyODo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IG1vdmUgLXEgZmxhZ3MgdG8gLU8uCgptc2xpZmNhayAgNCBOb3YgOTkgMTM6NDM6NDAKICAgIFNwZWVkIHVwIHNwcmludF92YXJpYWJsZTogaGFsdmUgdGhlIG51bWJlciBvZiBjYWxscyB0byBnZXRfc3ltYm9sLgoKbXNsaWZjYWsgIDUgTm92IDk5IDA2OjIyOjUyCiAgICBTYXkgZ29vZGJ5ZSB0byBTTk1QX01BTExPQywgbWFsbG9jX3plcm8sIHhjYWxsb2MsIHhtYWxsb2MsIGFuZCB4c3RyZHVwLgogICAgUmVzcGVjdGl2ZWx5IHJlcGxhY2VkIHdpdGggY2FsbG9jLCBjYWxsb2MsIGNhbGxvYywgbWFsbG9jLCBhbmQgc3RyZHVwLgoKbmJhICA5IE5vdiA5OSAwMTo1MDowOQogICAgLSBtaWIuYyxwYXJzZS5jOiBtYWtlIGVycm9yIHJlcG9ydGluZyBpbiBwYXJzZXIgd29yayBhY2NvcmRpbmcgdG8gc3BlYyAoLVBlKQogICAgCXNob3cgZGVmaW5pbmcgbW9kdWxlcyBpbiBzbm1wdHJhbnNsYXRlIC1kCiAgICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCgpuYmEgIDkgTm92IDk5IDEyOjU5OjUyCiAgICAtIHNubXB0cmFwZC5jLHNubXB0cmFwZF9oYW5kbGVycy5jOiBtYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrIDUuMAogICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6MTcKICAgIC0gKHNubXBkLmMpOiBmaXggLUguCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6NDEKICAgIC0gKHVjZF9zbm1wLmgpOiByZXF1aXJlIHRoZSBERU1PLU1JQiAoanVzdCBmb3IgdHV0b3JpYWwgcHVycG9zZXMpLgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjA5OjIxCiAgICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowOTo0MAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBERU1PLU1JQi4KCm5iYSAgOSBOb3YgOTkgMTU6MTY6MDMKICAgIC0gdmFyaW91czogYWRhcHQgdG9vbHMgdG8gdXNlIGdldG9wdCAoYW5kIHB1dCBvbmUgaW4gZm9yIFdpbjMyKQoKbmJhICA5IE5vdiA5OSAyMjoyMDo1MgogICAgLiBzbm1wX3BhcnNlX2FyZ3MuYzogYSBnbGl0Y2ggaW4gdGhlIGNvbnZlcnNpb24gdG8gZ2V0b3B0ICh0aGFua3MgdG8KICAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQoKbmJhICA5IE5vdiA5OSAyMzozMDowMwogICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCgpuYmEgMTAgTm92IDk5IDA4OjMwOjEzCiAgICAtIHdpbjMyLyo6IGZpeGVzIHRvIHRoZSBWQysrIGJ1aWxkIHByb2plY3RzCgpuYmEgMTAgTm92IDk5IDA4OjMyOjAwCiAgICAtIHdpbjMyLyo6IFZDKysgcHJvamVjdCB1cGRhdGVzCgpkYXZlcyAxMCBOb3YgOTkgMDg6NTc6MDAKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKCmRhdmVzIDEwIE5vdiA5OSAwODo1ODozOAogICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgoKZGF2ZXMgMTAgTm92IDk5IDA4OjU5OjQ1CiAgICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBBZ2VudFggbm90aWZ5IHN1cHBvcnQKCm5iYSAxMCBOb3YgOTkgMTI6MjA6NDcKICAgIC0gd2luMzIvKi5kc3A6IHlldCBhbm90aGVyIHJvdW5kIG9mIG1ha2luZyB0aGlzIGNyYXAgd29yawoKbmJhIDEwIE5vdiA5OSAxNToyOToxOAogICAgLSBhcHBzLyo6IGNoYW5nZXMgZm9yIGdldG9wdCB1c2FnZSwgYW5kIHJld29ya2luZyBvZiBzbm1wX3BhcnNlX2FyZ3MKCm5iYSAxMCBOb3YgOTkgMjI6MTI6MDgKICAgIC0gd2luMzIvKjogY2xlYW4gdXAgcmVwb3NpdG9yeSBmaWxlcywgYW5kIGFkZCBwcm9wZXIgLmN2c2lnbm9yZSBmaWxlcwoKZGF2ZXMgMTEgTm92IDk5IDAzOjM3OjU5CiAgICAtIChhZ2VudHgvY2xpZW50LmMpOiBTaWxseSB0eXBvIGluIHN0YXJ0IHRpbWUgc3luY2hyb25pc2F0aW9uCgpuYmEgMTEgTm92IDk5IDIyOjE0OjI3CiAgICAtIHNubXBjbWQuMTogdXBkYXRlIG1hbiBwYWdlIHRvIGNvcnJlc3BvbmQgdG8gdGhlIG5ldyBnZXRvcHQgc2l0dWF0aW9uCiAgICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAgCXBhZ2UsIHRoZXkgc3RpbGwgd29yayEKCm5iYSAxMSBOb3YgOTkgMjI6NTA6MDAKICAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jOiBhbGlnbm1lbnQgb2Ygb3B0aW9uIGNvZGUuCiAgICAJU29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIHNubXB0cmFuc2xhdGUgLWQgb3V0cHV0LgoKZGF2ZXMgMTIgTm92IDk5IDA4OjQ2OjMzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBQcm92aWRlIGEgdW5pcXVlIElEIGZvciBhbGwgaW5jb21pbmcgUERVcwoKbWFyeiAxMiBOb3YgOTkgMTM6MDE6MDgKICAgICAobGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogZml4IGVuZ2luZXRpbWUgdXBkYXRlIGFsZ29yaXRobSB0byBjb25mb3JtIHRvIHNwZWMgcmZjMjU3NCAzLjIuNy5iLjEKCm5iYSAxNCBOb3YgOTkgMDE6NDg6NTEKICAgIC0gc25tcHRhYmxlLCBzbm1wX3BhcnNlX2FyZ3M6IGFsbG93IHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBvcHRpb25zIHRvCgpuYmEgMTQgTm92IDk5IDAxOjUxOjU3CiAgICAtIHNubXB0YWJsZTogYWRkIGluIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBzbm1wdGFibGUgb3B0aW9ucyBiZXR3ZWVuCiAgICAJdGhlIG5vcm1hbCBvcHRpb25zLgoKbmJhIDE0IE5vdiA5OSAwMTo1MzoxNgogICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CgpuYmEgMTQgTm92IDk5IDAxOjU0OjE3CiAgICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCgpuYmEgMTQgTm92IDk5IDAxOjU5OjIwCiAgICAtIG1pYnMvKiwgdmFjbV92YXJzLmg6IHVwZGF0ZSB0aGUgbWliIGZpbGVzIHRvIHJmYyAyNTcxLTI1NzUuIEFsc28gYWRkCiAgICAJU05NUF9DT01NVU5JVFlfTUlCIGZyb20gdGhlIGNvZXggZHJhZnQuCgpuYmEgMTQgTm92IDk5IDAyOjAwOjAwCiAgICAtIHZhY21fdmFycy5jOiBraWxsIGEgd2FybmluZwoKbmJhIDE0IE5vdiA5OSAwMjowMTozNwogICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQoKbmJhIDE0IE5vdiA5OSAwMjowNDo0NgogICAgLSBtaWIuYywgc25tcHRyYW5zbGF0ZS5jOiBtb3ZlIHRoZSBNSUI6aWQgaGFuZGxpbmcgaW5zaWRlIHJlYWRfb2JqaWQgZm9yCiAgICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwoKbmJhIDE0IE5vdiA5OSAwMjo0MjozOAogICAgLSBTTk1QdjItQ09ORi50eHQ6IGNvbW1lbnQgb3V0IHRoZSBJTVBPUlQgY2xhdXNlCgpuYmEgMTQgTm92IDk5IDA2OjEyOjAzCiAgICAtIHNubXB0cmFwZC5jOiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAoKbmJhIDE0IE5vdiA5OSAwNjoxNTowMQogICAgLSBzbm1wdHJhcGQuODogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKCm5iYSAxNCBOb3YgOTkgMDY6MzI6MjUKICAgIC0gaXBjNjogQWRkIHRoZSBJUHY2IGNvZGUgZnJvbSB0aGUgS2FtZSBwcm9qZWN0LiBJIGhhdmUgb25seSBtYXNzYWdlZAogICAgCWl0IHNvIG11Y2ggYXMgdG8gc3RpbGwgY29tcGlsZSBvbiBub24tSVB2NiBzeXN0ZW1zLCBhbmQgZGV0ZWN0CiAgICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAgCWF1dGhvcjogaXRvanVuQGlpamxhYi5uZXQKCmRhdmVzIDE1IE5vdiA5OSAwNzo1NjowNgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKCm1zbGlmY2FrIDE1IE5vdiA5OSAwODoyOTowNgogICAgRml4IGRlc2NyaXB0aW9uIG9mIHJlYWRfb2JqaWQgcmV0dXJuIHZhbHVlLgoKbmJhIDE1IE5vdiA5OSAxNDowMDoyMAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICAgc25tcGJ1bGtnZXQuYzogbmVlZHMgI2luY2x1ZGUgPGdldG9wdC5oPiAoVGhhbmtzIHRvIFJvYmVydCBTdG9yeSkKCm5iYSAxNSBOb3YgOTkgMTQ6MDM6MzYKICAgIC0gbWlicy86IHJlcGxhY2UgUkZDMTI3MS1NSU4udHh0IHdpdGggUk1PTi1NSUIudHh0IChSRkMgMTc1NyB2ZXJzaW9uKQoKbmJhIDE1IE5vdiA5OSAxNDowNTo1NwogICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgoKbmJhIDE1IE5vdiA5OSAxNDowOToyOQogICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTg6NDYKICAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTk6MjIKICAgIC0gKG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jKTogbW92ZSBzdWJhZ2VudF9wcmVfaW5pdCgpIHRvIGluaXRfYWdlbnQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToxOTo0NwogICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMDoxMAogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6MDcKICAgIC0gKG1pYjJjLCB0a21pYik6IHJlbW92ZSAtdy4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMToyOAogICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IGRvbid0IGNhbGwgc3ViYWdlbnRfcHJlX2luaXQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMTo1NwogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZGVidWdnaW5nIHN0YXRlbWVudHMgaW5zZXJ0ZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjI6MjQKICAgIC0gKGFzbjEuYywgYXNuMS5oKTogbmV3IGZ1bmN0aW9uOiBhc25fY2hlY2tfcGFja2V0KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MzY6MjYKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYyk6CiAgICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjM4OjI1CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6NDE6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgICBhbmQgZGVhbGluZyB3aXRoIHBpZWNlcyBvZiBpbmNvbWluZyBkYXRhIHRpbGwgd2UgaGF2ZSBhIGZ1bGwgcGFja2V0LgoKbXNsaWZjYWsgMTUgTm92IDk5IDE2OjQzOjI1CiAgICBEb24ndCBhZGQgTlVMTCB2YXJiaW5kIHdoZW4gRU5ET0ZNSUJWSUVXIGlzIHJlYWNoZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTc6NDE6MTAKICAgIC0gKHNubXBfYWdlbnQuYywgbWFzdGVyLmMsIHByb3RvY29sLmMsIHByb3RvY29sLmgsIHN1YmFnZW50LmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1ha2UgVENQIHN1cHBvcnQgYmV0dGVyIGZvciBhZ2VudHguICBTdGlsbCBoYXMgYSBwcm9ibGVtIChJIGJyb2tlIGFnZW50eCkuCgptc2xpZmNhayAxNSBOb3YgOTkgMjE6NTc6MzYKICAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKCm1zbGlmY2FrIDE2IE5vdiA5OSAwMzozNjowOQogICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCgpuYmEgMTYgTm92IDk5IDA2OjIxOjI1CiAgICAtIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jOiByZWRvIHRoZSBzbm1wdHJhbnNsYXRlIG9wdGlvbnMKICAgIAl0byBmb2xsb3cgdGhlIGNvbW1vbiBvcHRpb24gc2V0LiBJc3N1ZSB3YXJuaW5ncyB3aGVuIHNvbWVvbmUKICAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KCm1zbGlmY2FrIDE2IE5vdiA5OSAwODo0ODozMQogICAgRW1icmFjZSBhbGwgSFAtOTAwMC82eHgsN3h4LCA4eHggc2VyaWVzIHBsYXRmb3Jtcywgd2l0aG91dCByZWdyZXRzLgoKZGF2ZXMgMTYgTm92IDk5IDA5OjEzOjU5CiAgICAtIChzbm1wbGliL2FzbjEuYyk6IEZpeCBlbmNvZGluZyBvZiByb290IE9JRHMuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjQ6NTkKICAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjY6MDIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHRoZSBUOiBmbGFnIGZvciAtVCB0byBnZXRvcHQKCm1zbGlmY2FrIDE2IE5vdiA5OSAxNDo0MTo1MAogICAgTVNWQyB0b3VjaHVwczoKICAgIEFkZGVkIHNubXB0cmFwZCBwcm9qZWN0IC5EU1AgZmlsZTsgQWxsIC5EU1tQV10gZmlsZXMgQ1ItTEYgbGluZSB0ZXJtaW5hdGVkOwogICAgRml4IHdhcm5pbmdzIGluIGFzbjEuYyBhbmQgc25tcF9hcGkuYzsgUmVtb3ZlIHVudXNlZCB2YXIgaW4gc25tcHRyYW5zbGF0ZS5jLgoKbXNsaWZjYWsgMTYgTm92IDk5IDE0OjU2OjU5CiAgICBCdWlsZCB3aXRoIGdldG9wdC4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNTo1OToxNQogICAgUmVwbGFjZSB1X2ludDE2X3Qgd2l0aCBtb3JlIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCB1X3Nob3J0LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM1OjAzCiAgICBQcm9qZWN0IGZpbGUgZm9yIGJ1aWxkaW5nIHNubXBidWxrZ2V0IHVzaW5nIE1TVkMrKyBncmF0aXMgUm9iZXJ0IFN0b3J5LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM2OjU4CiAgICBBZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBzIHRvIGJ1aWxkLgoKaGFyZGFrZXIgMTcgTm92IDk5IDExOjU1OjQxCiAgICAtIChkc19hZ2VudC5oLCBrZXJuZWwuYywgc25tcGQuYywgc25tcGQuMS5kZWYpOgogICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKCmhhcmRha2VyIDE3IE5vdiA5OSAxMjoyMToyNgogICAgLSAoc25tcHRvc3FsKToKICAgICAgLSBtb3ZlIHRvIE5ldDo6U01UUC4KICAgICAgLSBNYWtlIG5ldyBhdXRoZ3JvdXAgYW5kIGF1dGhob3N0IHRhYmxlcyB0byBjb250YWluIFNOTVA6OlNlc3Npb24gZGVmYXVsdHMuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDU6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHVwZGF0ZSB0aGUgc28gTEQgZm9yIGxpbnV4IHRvICQoQ0MpLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA4OjE3CiAgICAtIChjb25maWd1cmUpOiB1cGRhdGUuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDk6MTQKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IHVwZGF0ZS4gIERlYWxzIHdpdGggUm93U3RhdHVzIG9iamVjdHMgYmV0dGVyLgoKbmJhIDE3IE5vdiA5OSAyMTo1MToxOQogICAgLSBkZWZhdWx0X3N0b3JlLmM6IGRzX3RvZ2dsZV9ib29sZWFuIG1pc3NlZCBhIG1hc2sKCm1zbGlmY2FrIDE4IE5vdiA5OSAxNzo1ODo0NwogICAgQ2hlY2staW4gYWdlbnQgY2hhbmdlcyB0byBzdXBwb3J0IFdpbjMyIGFnZW50IGJ1aWx0IHdpdGggTVNWQysrLgogICAgVGhhbmtzIHRvIFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoxNDo1OAogICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoyMDo0NQogICAgTW9yZSBNU1ZDKysgV2luMzIgYWdlbnQgZmlsZXMsIGdyYXRpcyBSb2JlcnQgU3RvcnkuCgpkYXZlcyAxOSBOb3YgOTkgMTE6MDY6MjYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBQcm92aWRlIG1pc3NpbmcgaW5kZXggYWxsb2NhdGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTkgTm92IDk5IDEzOjQ3OjAxCiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBmaXggbWliMmMuc3RvcmFnZS5jb25mLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE0OjIwOjI1CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBtYWtlIHNubXBfc2VsZWN0X2luZm8gcG9zc2libHkgaGFuZGxlIGFsYXJtIHRpbWVycy4KICAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE1OjI0OjE1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICAgZGlzay5jLCBkaXNrLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCgpuYmEgMjIgTm92IDk5IDA1OjI3OjE1CiAgICAtIGNvbmZpZ3VyZS5pbjogY29uZmlndXJlIHRlc3QgZm9yIG5ldGluZXQvaXAuaAoKbmJhIDIyIE5vdiA5OSAwNToyODowOQogICAgIHNubXBfbG9nZ2luZy5jOiBvbmx5IHRpbWVzdGFtcCBlZnRlciBhIG5ld2xpbmUKCm5iYSAyMiBOb3YgOTkgMDU6Mjg6NDUKICAgIC0gc25tcGQuYzogcmVpbnN0YXRlIHNubXBkIC1hIGZ1bmN0aW9uYWxpdHkKCm5iYSAyMiBOb3YgOTkgMDU6Mjk6MzcKICAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKCm5iYSAyMiBOb3YgOTkgMDU6MzI6MDUKICAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgIAl0YWJsZXMgdG8gdGhlaXIgcHJvcGVyIHBvc2l0aW9uIGluIHRoZSB0cmVlLCBhY2NvcmRpbmcgdG8gdGhlIFJGQy4KCm5iYSAyMiBOb3YgOTkgMDY6NTk6NDYKICAgIC0gaXB2Ni5jOiB1cGdyYWRlIHRvIHRoZSBjdXJyZW50IEthbWUgcGF0Y2gKCm5iYSAyMiBOb3YgOTkgMDc6MTY6NTkKICAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCgpkYXZlcyAyMiBOb3YgOTkgMDc6MzA6MDYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIEluZGV4IGRlLWFsbG9jYXRpb24sIGFuZCBBZ2VudFggaW5kZXggc3VwcG9ydC4KCm1zbGlmY2FrIDIyIE5vdiA5OSAwODoyMDoyOQogICAgUmV0cnkgYWRkIE1TVkMrKyBwcm9qZWN0IGZpbGUuCgptc2xpZmNhayAyMiBOb3YgOTkgMDg6MjE6NTgKICAgIEFkZCBDVlMgaWdub3JlIGxpc3QgZm9yIHdpbjMyL2xpYmFnZW50LgoKaGFyZGFrZXIgMjIgTm92IDk5IDA4OjI5OjMzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAgLSBBZGRlZCBjb2RlIHRvIGhhbmRsZSBzcGFyc2UgdGFibGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjAwOjQ1CiAgICAtICh1c21Vc2VyLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjA3OjM0CiAgICAtIChSRUFETUUpOiBhZGRlZCBtb3JlIHBlb3BsZSB0byB0aGUgdGhhbmtzIGxpc3QuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBob3N0X3Jlcy5oLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGJzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjI0OjUxCiAgICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgdGVzdHMgZm9yIG5ldwogICAgICBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxMjozMDowNQogICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCgpoYXJkYWtlciAyMiBOb3YgOTkgMTI6NDk6MjEKICAgIC0gKHZhY21fdmFycy5jLCBwYXNzLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMuCgpuYmEgMjIgTm92IDk5IDEyOjU0OjA4CiAgICAtICo6IGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zIHRvIGEKICAgIAljb25zdCBzdHJpbmcKCmhhcmRha2VyIDIyIE5vdiA5OSAxMzowNTowNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB0Y3AuYyk6IFBhdGNoCiAgICAgIGZyb20gR2FycmV0dCBXb2xsbWFuOgogICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE2OjQ4OjU0CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZSBjcmVhdGlvbiBvZiBpbml0aWFsIGFuZCB0ZW1wbGF0ZSogdXNlcnMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTY6NTA6MjUKICAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMpOiBuZXcgY29uZmlnIHRva2VucyBhbGxvd2luZyBlYXN5IHVzZXIgYW5kCiAgICAgIHZhY20vdXNlciBjb25maWd1cmF0aW9uIGFuZCBzZXR1cC4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNzowMjoxMQogICAgLSAoc2NhcGkuYyk6IGZpeCBsZW5ndGggY2hlY2sgb2Yga2V5IHNwYWNlLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE3OjUyOjM2CiAgICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KCm5iYSAyMyBOb3YgOTkgMDE6MjM6MTYKICAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KCm5iYSAyMyBOb3YgOTkgMDE6MjQ6MzcKICAgIC0gSVBTRUMtTUlCLnR4dDogY2hhbmdlIHNvbWUgdW5kZXJsaW5lcyBpbnRvIGRhc2hlcywgYW5kIHJlcGFpciB0aGUKICAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0IDotKSkKCm5iYSAyMyBOb3YgOTkgMDE6MjY6MjYKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGFyZ3VtZW50cyAoaW50ID0+IHNpemVfdCkuIFRoYW5rcyB0bwogICAgCUFudGhvbnkgU2hpcG1hbiA8YXNoaXBtYW5AZXJnZ3JvdXAuY29tPgoKZGF2ZXMgMjMgTm92IDk5IDAxOjM3OjI5CiAgICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgIAkoUmVwb3J0ZWQgYnkgTWl0Y2ggU2hpZWxkcykKCmRhdmVzIDIzIE5vdiA5OSAwMjoxMTo0MwogICAgLSAoaG9zdC9ocl9zdG9yYWdlLmMgaG9zdC9ocl9zd3J1bi5jKTogR3VhcmQgYWdhaW5zdCBjYWxjdWxhdGlvbiBvdmVyZmxvdwoKbmJhIDIzIE5vdiA5OSAwMjoyMDoxMwogICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKCmRhdmVzIDIzIE5vdiA5OSAwNToyMTo1OAogICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgIE1ha2UgbWFpbiBzZXNzaW9uIHN0cnVjdHVyZSB2aXNpYmxlIHRocm91Z2hvdXQgdGhlIGFnZW50LAogICAgICAgYW5kIHVzZSB0aGlzIGZvciBBZ2VudFggc3ViYWdlbnQgYXMgd2VsbC4KCmRhdmVzIDIzIE5vdiA5OSAwNTo0MDowOQogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgICAtIEFzc29jaWF0ZSBzdWNoIHJlZ2lzdHJhdGlvbnMgd2l0aCB0aGUgbWFpbiBzZXNzaW9uCiAgICAgIC0gbmV3IHJvdXRpbmUgdG8gdW5yZWdpc3RlciBhbGwgaW5kZXhlcyBmb3IgYSBnaXZlbiBzZXNzaW9uCiAgICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgIC0gY2xlYW4gdXAgYXNzb3J0ZWQgY29tcGlsZXIgd2FybmluZ3MKCmhhcmRha2VyIDIzIE5vdiA5OSAxNzo1MTo0NAogICAgLSAoc25tcHRvc3FsKTogZml4IGZyb20gYWRkcmVzcyBsaW5lLCBvdGhlciBtaXNjIGZpeGVzLgoKZGF2ZXMgMjQgTm92IDk5IDA5OjAzOjAwCiAgICAtIChhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBSZWxlYXNlIGFsbG9jYXRlZCBpbmRleGVzIG9uIHN1YmFnZW50IHNodXRkb3duLgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjA5OjA4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVzbVVzZXIuYywKICAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICAga2V5bWFuYWdldGVzdC5jLCBzY2FwaXRlc3QuYywgY29uZmlnLmgpOgogICAgICAtIGZvcmNlIC0tZW5hYmxlLWRldmVsb3BlciBmb3IgQ1ZTIGNoZWNrb3V0cy4KICAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjE2OjAyCiAgICAtIChJTlNUQUxMKTogY2hhbmdlIGVkaXRpbmcgb2YgY29uZmlnLmggbm90ZS4KCmhhcmRha2VyIDI0IE5vdiA5OSAxMDo0MzowOAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZCA6LgoKbXNsaWZjYWsgMjQgTm92IDk5IDExOjA3OjA1CiAgICBGaXggQlVHIzU3IHVzaW5nIG1vZGlmaWVkIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgptc2xpZmNhayAyNCBOb3YgOTkgMTE6MDc6NDkKICAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgpuYmEgMjUgTm92IDk5IDE0OjMyOjQ3CiAgICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAgCWZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwoKbmJhIDI1IE5vdiA5OSAxNDozMzoxNQogICAgLSBzbm1wX21pYi5oOiBmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKCm5iYSAyNSBOb3YgOTkgMTQ6NTI6NTcKICAgIC0gdXNtVXNlci5jOiBuZXcgdXNlciBpcyBub3QgYWRkZWQgdW5sZXNzIGJvdGggYXV0aCBhbmQgcHJpdiBpcyBzcGVjaWZpZWQKICAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQoKbmJhIDI1IE5vdiA5OSAxNDo1NjoxMgogICAgLSBkZWZhdWx0c19zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX3BhcnNlX2FyZ3MuYzogYWRkIGRlZkNvbW11bml0eQogICAgCWRpcmVjdGl2ZQogICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQoKbmJhIDI1IE5vdiA5OSAxNDo1Nzo1NwogICAgLSBtaWIuYzoga2lsbCB5ZXQgYW5vdGhlciBzaWxseSB3YXJuaW5nIGZyb20gZ2NjCgpuYmEgMjYgTm92IDk5IDExOjE4OjIzCiAgICAtIGRlZmF1bHRfc3RvcmUuYzogYWx0aG91Z2ggcmVhZF9jb25maWcgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgZHNfaGFuZGxlX2NvbmZpZwogICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgICAJaXQgd2FzIGNhbGxlZCBidXQgZGlkbid0IGtub3cgd2hhdCB0byBkby4KCm1hcnogMjcgTm92IDk5IDA2OjMxOjExCiAgICAgKGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBmaXggLXIgc3dpdGNoIHRvIHN1cHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgZmFpbGVkIGtlcm5lbCBhbmQgYWRkIC1yIHRvIGRlZmF1bHQgdGVzdGluZyBjb2RlIHNvICdtYWtlIHRlc3QgY2FuIGJlIHJ1biBieSB1c2VyCgpoYXJkYWtlciAyNyBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgoKbXNsaWZjYWsgMjkgTm92IDk5IDA1OjUwOjI3CiAgICBNb3JlIEhQLVVYIGFDQyBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjMwOjUxCiAgICBVc2UgbnRvaHMgbWFjcm8gdG8gY2FyZWZ1bGx5IG9idGFpbiB0aGUgZGVmYXVsdCBzZXJ2aWNlIHBvcnQuCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzM6NDUKICAgIEZpeCByZWZlcmVuY2UgdG8gc25tcGxpYi4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozNjo0MwogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgREVCVUdfTUFMTE9DX0lOQyBmcmFnbWVudHMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTE6NTg6MzcKICAgIEZyZWUgU1RSRUFNIHBhY2tldCBidWZmZXIgd2hlbiBzZXNzaW9uIGlzIGNsb3NlZDsKICAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTI6NDM6MzQKICAgIFVzZSBzaXplX3QgZm9yIG5hbWVfbGVuIG1lbWJlci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjowOAogICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogaW1wbGVtZW50IHN0cmNhc2VzdHIgKGZyb20gTWljaGFlbCBTbGlmY2FrKS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjo1MAogICAgLSAocGFyc2UuYyk6IG1ha2UgYmVzdCBtYXRjaGluZyAoLWIpIHVzZSByZWdleCB3aGVuIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMzo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBmb3IgcmVnZXguaCwgcmVnY29tcCwgc3RyY2FzZXN0ci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowNDowOQogICAgLSAoUkVBRE1FKTogYW5vdGhlciBuYW1lLgoKbmJhIDMwIE5vdiA5OSAwMzowMTozNAogICAgLSBzbm1wX2FwaS5oLCBzbm1wX21pYi5bY2hdOiBBIGNvdXBsZSBhZGRpdGlvbmFsIFNOTVAgc3RhdGlzdGljcyBwb2ludHMKCmRhdmVzIDMwIE5vdiA5OSAwNzowNzowMQogICAgLSAoYWdlbnR4L21hc3Rlci5jKTogUmVtb3ZlIHJlZHVuZGVudCByb3V0aW5lLgoKZGF2ZXMgMzAgTm92IDk5IDA3OjA4OjQzCiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCgptc2xpZmNhayAzMCBOb3YgOTkgMTM6MTA6NDAKICAgIEZpeCAtVGQgdXNhZ2UgZGVzY3JpcHRpb247IHVzZSBzd2l0Y2ggd2hlbiBjdXJyZW50X25hbWUgaXMgTlVMTC4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxMzoxMToxNAogICAgSW5jbHVkZSBjdHlwZS5oCgpoYXJkYWtlciAzMCBOb3YgOTkgMTQ6MzA6MzIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMpOiBpbXBsZW1lbnQgcmVnZXggbWF0Y2hpbmcKICAgICAgZXZlcnl3aGVyZS4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxNDo0NzozNgogICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCgptc2xpZmNhayAzMCBOb3YgOTkgMTY6NTA6NDEKICAgIEFkZCBtdWx0aXBsZSBtYXRjaCBjYXBhYmlsaXR5IHRvIGZpbmRfYmVzdF90cmVlX25vZGUsIGFuZCB1c2UgaXQgaW4KICAgIHNubXB0cmFuc2xhdGUgKG5ldyAtQiBvcHRpb24pLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDA2OjQwOjA3CiAgICBFcnJvciBjaGVjayBhbmQgZnJlZSByZXNvdXJjZXMgZHVyaW5nIHJlZ2V4IHByb2Nlc3NpbmcuCgptc2xpZmNhayAgMSBEZWMgOTkgMTA6Mzg6MTgKICAgIFByZXZlbnQgb3ZlcmZsb3cgb2Ygb2JqZWN0IElEIGluIGdldF9tb2R1bGVfbm9kZS4KICAgIEluIGZpbmRfYmVzdF90cmVlX25vZGUsIHRyZWF0IHJlc3VsdCBmcm9tIHJlY3Vyc2VkIGNhbGwgc2FtZSBmb3IgbWF0Y2ggPSAwLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDE1OjU1OjU2CiAgICBGaXggYnVnICMxMTIgYW5kIGZpbmlzaCBwYXRjaCBzdXBwbGllZCBieSBBbnRob255IFNoaXBtYW4uCgptc2xpZmNhayAgMSBEZWMgOTkgMTY6MzI6MTQKICAgIFVzZSBTTk1QX01BWEJVRiB3aGVuIGRlZmluaW5nIGxhcmdlIHN0YXRpYyBidWZmZXIgc3RvcmFnZS4KCm5iYSAgMiBEZWMgOTkgMDQ6NDE6NTUKICAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAoKbmJhICAyIERlYyA5OSAwNDo0Mjo1NwogICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCgpuYmEgIDIgRGVjIDk5IDA1OjA2OjU1CiAgICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgICAJdG8gdGhlIGxpYnJhcnksIHNvIHRoYXQgc25tcHRyYXBkIGNhbiB1c2UgaXQuCgptc2xpZmNhayAgMiBEZWMgOTkgMDk6MjE6NDUKICAgIEZpeCBidWcgIzgxIC0gY29udGludWUgaW5zdGFsbCBhZnRlciBlcnJvciBjcmVhdGluZyBwZXJzaXN0ZW50IGRpcmVjdG9yeS4KCmhhcmRha2VyICAyIERlYyA5OSAxNjo1OTo1NQogICAgLSAocGFyc2UuYyk6IHR1cm4gb24gUkVHRVhfRVhURU5ERUQuCgpuYmEgIDMgRGVjIDk5IDE1OjAzOjQ4CiAgICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0IGhhbmRsaW5nIG9mIFNJR0hVUCB0cCByZWNvbmZpZ3VyZS4KCm5iYSAgMyBEZWMgOTkgMTU6MDQ6MTYKICAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKCm5iYSAgMyBEZWMgOTkgMTU6MDU6MTMKICAgIC0gcGFyc2UuYzogcmVtZW1iZXIgdG8gTlVMTCBhIGZyZWVkIHBvaW50ZXIKCmhhcmRha2VyICAzIERlYyA5OSAxNjo1MTo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzd2l0Y2ggdG8gUElDIGZyb20gcGljLgoKaGFyZGFrZXIgIDMgRGVjIDk5IDE2OjUyOjE2CiAgICAtIChNYWtlZmlsZS5pbik6IHVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZS4KCmhhcmRha2VyICAzIERlYyA5OSAxNjo1Mjo1MQogICAgLSAodm1zdGF0LmMpOiByZW1vdmUgZHVwbGljYXRlIGxpbWl0cy5oIGluY2x1ZGUuCgpuYmEgIDUgRGVjIDk5IDIxOjQ5OjUwCiAgICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGVuc3VyZSBwcm9wZXIgYnl0ZSBvcmRlcmluZyB3aGVuIHBhc3MnaW5nCiAgICAJaXBhZGRyZXNzLgoKbXNsaWZjYWsgIDYgRGVjIDk5IDA5OjE5OjA4CiAgICBTaG93IGFsbCBub24tcHJpbnRhYmxlIHN1YmlkcyBpbiBkdW1wX29pZF90b19zdHJpbmcuCiAgICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCgpoYXJkYWtlciAgNiBEZWMgOTkgMTM6NDc6NDEKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZGVmYXVsdCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aC9wcml2IHR5cGVzLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDEzOjUxOjM0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHByaW50IGVycm9yIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ2VuZXJhdGVfS3UoKS4KCm5iYSAgNiBEZWMgOTkgMTQ6MzI6MjIKICAgIC0gLmN2c2lnbm9yZTogTWFrZSBDVlMgc2lsZW50IGFib3V0IGluc3RhbGxhdGlvbiBmaWxlcwoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjQ4OjA4CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIG1ha2Ugc25tcHVzbSB1c2FibGUgYWdhaW4sIGNoYW5naW5nIGFyZ3VtZW50cyBzbGlnaHRseS4KICAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjU2OjIxCiAgICAtIChTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiBtYWtlIHYzIHRlc3Rpbmcgd29yayBhZ2Fpbi4KCmhhcmRha2VyICA2IERlYyA5OSAxNDo1ODoyOAogICAgLSAoc25tcHVzbS5jKTogZml4IHVzYWdlIGZvciBuZXcgYXJncy4KCm1zbGlmY2FrICA2IERlYyA5OSAxNTowOTo1MwogICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCgpuYmEgIDYgRGVjIDk5IDE1OjEzOjIxCiAgICAtIHN5c3RlbS5jLCBjb25maWcuaCwgd2luMzIuZHN3LCAqLmRzcCwgbGlic25tcC5kZWY6IGNsZWFuaW5nIHVwIGZvciBWQyBidWlsZHMKCm1zbGlmY2FrICA2IERlYyA5OSAxNjozMToyNgogICAgTW9yZSBmdW4gdXBkYXRpbmcgTVMgVkMgYnVpbGQgb2YgYXBwcyBhbmQgbGlicmFyeS4KCm1zbGlmY2FrICA3IERlYyA5OSAwODowMzowNgogICAgVXNlIGFyZ3ZbMF0gc2luY2UgdGhlIGFwcCB3b250IGJlIHNubXBnZXRuZXh0LCBwcm9iYWJseS4KCmRhdmVzICA3IERlYyA5OSAwODoyOTo1NQogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXSBhZ2VudC9zbm1wZC5bY2hdCiAgICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgIC0gIFVzZSB0aGUgc2F2ZWQgYXBwbGljYXRpb24gbmFtZSBmb3IgcmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXJzCiAgICAJKE4uQjogVGhpcyBjaGFuZ2Ugd2lsbCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gTUlCIG1vZHVsZXMgYXMgd2VsbCkKCmhhcmRha2VyICA3IERlYyA5OSAwOToxNDozMAogICAgLSAoaHJfb3RoZXIuYyk6IHNob3J0ZW4gY3B1IGRlc2NyaXB0aW9uIGxlbmd0aC4KCmhhcmRha2VyICA3IERlYyA5OSAwOToxNzo0MQogICAgLSAoc3lzT1JUYWJsZS5jKTogbWFrZSBzeXNPckluZGV4IG5vdC1hY2Nlc3NpYmxlLCBhcyBpdCBzaG91bGQgYmUuCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MzI6MDIKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjb252ZXJ0IHRvIFNNSXYyIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjQ1OjU5CiAgICAtIChzbm1wd2Fsay5jKToKICAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgICByZXN1bHRzIGFyZSByZXR1cm5lZCBvciB3aGVuIHRoZSB1c2VyIHJlcXVlc3RzIGFuIGluY2x1c2l2ZSBvcHRpb24uCiAgICAgIC0gTmV3IGFiaWxpdHkgdG8gcHJpbnQgbnVtYmVyIG9mIHZhcmlhYmxlcyBmb3VuZCBhdCB0aGUgZW5kLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjU0OjExCiAgICAtIChzbm1wd2Fsay4xKTogZG9jdW1lbnQgLUNpIGFuZCAtQ3AgKGJhZGx5KS4KCm1zbGlmY2FrICA3IERlYyA5OSAxNToyMzo0NAogICAgRWxpbWluYXRlIG11bHRpcGx5aW5nIGJ5IHNpemVvZihjaGFyKSBvciBzaXplb2YodW5zaWduZWQgY2hhcik7CiAgICBhZ2VudHgvY2xpZW50LmMgLSBzbm1wX2ZyZWVfdmFyYmluZCByZXBsYWNlcyBmcmVlIGluIGZvdXIgcGxhY2VzOwogICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCgpoYXJkYWtlciAgOCBEZWMgOTkgMDk6MTk6MDgKICAgIC0gKG1pYi5jKTogcmVnaXN0ZXIgYSBjb25maWcgdG9rZW4gZm9yIHN1ZmZpeCBwcmludGluZy4KCmhhcmRha2VyICA4IERlYyA5OSAxNDowODoyMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgbXJJbmRleCBJTVBMSUVEIHNpbmNlIGl0IGlzIGluIHRoZSBjb2RlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE0OjQxOjUzCiAgICAtIChtaWIuYyk6IGZpeCAtT3MgYW5kIGluZGV4IGJhc2VkIG9pZCBwcmludGluZyB0byB3b3JrIGFnYWluLgoKbXNsaWZjYWsgIDggRGVjIDk5IDE1OjAxOjIwCiAgICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCgptc2xpZmNhayAgOCBEZWMgOTkgMTU6MDQ6NTQKICAgIEFkZCBtaXNzaW5nIGRza1BlcmNlbnROb2RlIHRvIERza0VudHJ5ICh0aGFua3MgdG8KICAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjM6MDcKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSByZW1lbWJlcmVkIElNUExJRUQgaW5kZXhlcy4KICAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICAgY3V0dGluZy9wYXN0aW5nIG9mIHRoZW0gd29ya3MuCiAgICAgIC0gcHJvcGVybHkgcHJpbnQgc3RyaW5ncyBhbmQgb2lkcyB0aGF0IGFyZSBJTVBMSUVELgogICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjY6NTEKICAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI4OjU0CiAgICAtICgqLi5NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI5OjUyCiAgICAtIChzbm1wZC5jKTogbW92ZSBzeXMvcGFyYW0gb3V0IG9mIGlmZGVmIEZEX1NFVC4KCmhhcmRha2VyICA4IERlYyA5OSAxNTo0NzowMgogICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBBIHJlYWwgbWFrZSBkZXBlbmQgd2l0aCBubyBzc2wgZGVwZW5kYW5jaWVzLCBldGMuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6NDk6MzIKICAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzKToKICAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgICBuZWVkIHRvIGJlIGVkaXRlZCBvbmNlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE3OjEzOjE3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWFzdGVyLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gaW1wbGVtZW50IG1rZGlyaGllcigpIGFuZCB1c2UgaXQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgYWdlbnR4CiAgICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCgpkYXZlcyAgOSBEZWMgOTkgMDc6MzQ6MDMKICAgIC0gKG1hbi9zbm1wX3RyYXBfYXBpLjMpOiBJbml0aWFsIGRvY3VtZW50YXRpb24gZm9yIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KCm5iYSAgOSBEZWMgOTkgMDc6MzQ6MDgKICAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCgpuYmEgIDkgRGVjIDk5IDA3OjQ5OjM0CiAgICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCgptc2xpZmNhayAgOSBEZWMgOTkgMDg6MTQ6NTkKICAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDEwOjA4OjI2CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeGVkIC0tZW5hYmxlLXNoYXJlZCAoYXQgbGVhc3Qgb24gbGludXgpLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE1OjI2OjIzCiAgICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgICAtIGdlbmVyYXRlX0t1KCkgc3BlZWQgaW1wcm92ZW1lbnRzLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjE2OjQwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCBhbGwgaW5zdGFuY2VzIG9mIGtiIHRvIGtCLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjUzOjE0CiAgICAtIChzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkCgpoYXJkYWtlciAgOSBEZWMgOTkgMTc6MDk6MjMKICAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkIG9uIGhwdXgKCm5iYSAxMCBEZWMgOTkgMDM6MDY6MTgKICAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KCm5iYSAxMCBEZWMgOTkgMDM6MDc6MDYKICAgIC0gcGFzcy5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KCm5iYSAxMCBEZWMgOTkgMDM6MDk6MzMKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgoKbmJhIDEwIERlYyA5OSAwMzoxMDozMAogICAgLSByZWFkX2NvbmZpZy5jOiBhZGQgc29tZSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcnMKCm5iYSAxMCBEZWMgOTkgMDM6MjA6MTAKICAgIC0gKHZhcmlvdXMpOiBjaGFuZ2VzIHRvIGNvbXBpbGUgc25tcGQgd2l0aCBWQysrIDUuMCAoUmVsZWFzZSBtb2RlKQoKbXNsaWZjYWsgMTAgRGVjIDk5IDA3OjI4OjMzCiAgICBGaXggdG8gYnVpbGQgZXhlY3V0YWJsZSBhZ2VudCBvbiBIUC1VWC4KCm1zbGlmY2FrIDEwIERlYyA5OSAxMDoyMzozNgogICAgQXBwbHkgRGF2ZSdzIHBhdGNoIHRvIGZpeCBtYXggdmFyYmluZHMgdGVzdGluZyBvbiBHRVRCVUxLLgoKbWFyeiAxMCBEZWMgOTkgMTA6NDQ6MjkKICAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCgptc2xpZmNhayAxMCBEZWMgOTkgMTM6MDM6NTgKICAgIEZpeCBIUC1VWCBwcm9ibGVtIHdpdGggaXBEZWZhdWx0VFRMLgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE3OjQxCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogSGFuZGxlIGRlbGVnYXRlZCBNSUIgcmVnaW9ucyBwcm9wZXJseSB3aGVuIHNwbGl0LgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE4OjM4CiAgICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwoKZGF2ZXMgMTMgRGVjIDk5IDA0OjQzOjE0CiAgICAtIChhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5bY2hdKToKICAgICAgLSBQYXRjaCB0byBnZXQgU01VWCBzdXBwb3J0IHdvcmtpbmcgd2l0aCB0aGUgbmV3IGFnZW50IGFyY2hpdGVjdHVyZS4KICAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgICBUaGFua3MgdG8gTmljayBBbWF0byBhbmQgTWlrZSBNaWNoYXVkLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDA5OjQ5OjI4CiAgICBBZGRlZCBwYXRjaCBmcm9tIE0uTWljaGF1ZCB0byB1c2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycy4KCmhhcmRha2VyIDEzIERlYyA5OSAwOTo1NzozNwogICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAgLSBKdWVyZ2VucyBwYXRjaCB0byBtb3ZlIERMTU9ELU1JQiAtPiBVQ0QtRExNT0QtTUlCIGFuZCAtPiBTTUl2Mi4KICAgICAgLSBtb3ZlZCB0byB0aGUgZXhwZXJpbWVudGFsIHRyZWUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTI6MDQ6MTUKICAgIENsZWFuIGFsc28gcmVtb3ZlcyBnZW5lcmF0ZWQgZGVmYXVsdF9zdG9yZS4zLmggLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDEzOjU0OjI3CiAgICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgoKaGFyZGFrZXIgMTMgRGVjIDk5IDE0OjIwOjEwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLXdpdGgtZWZlbmNlIGltcGxlbWVudGVkLgogICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKCm1zbGlmY2FrIDEzIERlYyA5OSAxNDo1NDozMQogICAgRml4IHByb2JsZW0gcHJpbnRpbmcgSU1QTElFRCBpbmRpY2VzIG9mIE9CSkVDVElEIHR5cGUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTU6MTI6MDEKICAgIEZpbmlzaCBzeW1ib2wgY29udmVyc2lvbiB3aXRoIG51bWVyaWMgd2hlbiBzdWJ0cmVlIGlzIGxlYWYgbm9kZS4KCm1zbGlmY2FrIDEzIERlYyA5OSAxNjowMzowMAogICAgQWxsb3cgc3ByaW50X3ZhcmlhYmxlIHRvIHdvcmsgZXZlbiBpZiBubyBNSUIgZmlsZXMgd2VyZSByZWFkLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDA4OjA4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZGVmYXVsdF9zdG9yZS5oLAogICAgICBtaWIuYywgbWliLmgpOgogICAgICAtIGFyZ3VtZW50IHNodWZmbGluZy4uLgogICAgICAgIC1JIGZvciBpbnB1dCBhcmdzIGNyZWF0ZWQsIGFuZCAtT1IgbW92ZWQgdGhlcmUuCiAgICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAgLVRCIGNyZWF0ZWQgZm9yIHNubXB0cmFuc2xhdGUgKHdhcyAtQikuCgpoYXJkYWtlciAxNCBEZWMgOTkgMDg6NDE6NDEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHVwZGF0ZXMuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTQ6NTQ6MDkKICAgIC0gKGtleXRvb2xzLmMpOiByZXZlcnNlIGdlbmVyYXRlX0t1IG9wdGltaXphdGlvbnMsIGFzIHRoZXkgZG9uJ3Qgd29yay4KCmhhcmRha2VyIDE0IERlYyA5OSAxNToxOTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBETE1PRCAtPiBVQ0QtRExNT0QKCmhhcmRha2VyIDE0IERlYyA5OSAxNjowNTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE2OjA1OjM3CiAgICAtIChoZWFkZXJfY29tcGxleC5jKTogZ2V0IG5leHQgaW4gbGluayBsaXN0IGJlZm9yZSBkZWxldGluZyByb290LgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA0OjIxOjI3CiAgICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgptc2xpZmNhayAxNSBEZWMgOTkgMDU6NTE6MDAKICAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgoKaGFyZGFrZXIgMTUgRGVjIDk5IDA5OjE3OjAzCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LCBVQ0QtSVBGSUxURVItTUlCLmluYywKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDE1IERlYyA5OSAwOToxOToxNAogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQgU05NUHYyLU0yTS1NSUIudHh0ICk6IHJlbW92ZWQuCgptc2xpZmNhayAxNSBEZWMgOTkgMDk6NDI6NDQKICAgIFJlbW92ZSBzbm1wX2xvZ19zeXNsb2csIHNubXBfbG9nX2ZpbGVsb2csIHNubXBfbG9nX3N0ZGVycmxvZzsKICAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KCm1zbGlmY2FrIDE1IERlYyA5OSAwOTo1NjoyNAogICAgQWRkIHRpbWUgbWFya2VyIGNyZWF0ZSwgc2V0LCBhbmQgZGVsdGEgdGltZSBjaGVjayBtZXRob2RzLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDExOjA4OjE5CiAgICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCgpuYmEgMTYgRGVjIDk5IDIzOjA1OjQ3CiAgICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCgpuYmEgMTYgRGVjIDk5IDIzOjA2OjU4CiAgICAtIHNubXBkLmM6IFxuIHRlcm1pbmF0ZSBzb21lIGxvZyBtZXNzYWdlcwoKbmJhIDE2IERlYyA5OSAyMzowODowMgogICAgLSBzbXV4LltjaF06IGZpeCBzb21lIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzLgoKbmJhIDE2IERlYyA5OSAyMzowODo1NAogICAgLSBzbm1wdHJhbnNsYXRlLmM6IGJlIGV4cGxpY2l0IGluIHRoZSAtdCB3YXJuaW5nCgpuYmEgMTYgRGVjIDk5IDIzOjA5OjQyCiAgICAtIG1pYi5jOiBmaXggYSB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiBwcm9ibGVtIHByaW50aW5nIG9pZHMKCm5iYSAxNiBEZWMgOTkgMjM6MTA6MzEKICAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KCm5iYSAxNyBEZWMgOTkgMDI6MDg6MTcKICAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgICAJY29uZGl0aW9uYWxzLiBQcm9wZXJseSBvdXRwdXQgYW4gZW1wdHkgc3RyaW5nIGluZGV4LgoKbmJhIDE3IERlYyA5OSAwMjowOToxOAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgdXNhZ2UoKSBjYWxscy4KCm5iYSAxNyBEZWMgOTkgMDI6MTQ6MTgKICAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgIAlkZWZhdWx0IChkb24ndCBldmVuIGRvY3VtZW50IHRoZSAtQyBjb21wYXRpYmlsaXR5IG9wdGlvbikuIElnbm9yZQogICAgCW5vdC1hY2Nlc3NpYmxlIGZpZWxkcyBpbiB0aGUgd2Fsay4KCm5iYSAxNyBEZWMgOTkgMDI6MTg6MzAKICAgIC0gc25tcHRyYXBkLmM6IG1ha2UgdGhlIG9pZHMgZ2l2ZW4gdG8gdHJhcGQgaGFuZGxlcnMgcHJvcGVybHkgLjAgdGVybWluYXRlZC4KICAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgICAJQWRkIHN5c2xvZyBvZiB2MiB0cmFwcyBhbmQgaW5mb3JtcwoKbmJhIDE3IERlYyA5OSAwMzoyMjozOQogICAgLSBsaWJzbm1wLmRlZjogYWRkIHNvbWUgZnVuY3Rpb24gbmFtZXMKCmhhcmRha2VyIDE3IERlYyA5OSAwNzowMzowOQogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUkgYW5kIC1PIGZsYWdzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjA1OjA4CiAgICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoxMzowMwogICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgYSBidW5jaCBvZiBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjI2OjA1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgcm9jb21tdW5pdHksIHJ3Y29tbXVuaXR5LCByb3VzZXIsIHJ3dXNlci4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoyODozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSBmaWxlIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzo0MDo0MwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTA6NDIKICAgIC0gKE5FV1MpOiBmaXJzdCBwYXNzIGF0IGNoYW5nZXMuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTE6MDIKICAgIC0gKHNlZHNjcmlwdC5pbik6IFBFUlNJU1RFTlRfRElSRUNUT1JZIHRva2VuIGFkZGVkLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjExOjM0CiAgICAtIChzbm1wZC5jKTogcmVvcmRlciBpbml0KCkgcm91dGluZXMgZm9yIC1IIHRvIHByZXZlbnQgc2VnZmF1bHRpbmcuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTY6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogcHV0IHNubXBkLm8gaW50byB0aGUgb2JqZWN0IGxpc3QsIGFuZCByZW1vdmUgaXQgZnJvbQogICAgICBkaXJlY3QgY29tcGlsYXRpb24gaW4gdGhlIENDIGxpbmsgbGluZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzowNQogICAgLSAodXNtVXNlci5jKTogY2hhbmdlZCBoZWxwIGxpbmUgb2YgY3JlYXRlVXNlciB0byBzZXBlcmF0ZSBERVMgdG9rZW4KICAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzoyOAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmVkIC1SIGZyb20gdGhlIC1oIG91dHB1dC4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxODoyNAogICAgLSAoTkVXUyk6IHNlY29uZCBwYXNzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE4OjQyCiAgICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE0OjIzOjI1CiAgICBGaXhlZCBhIGZldyBzcGVsaWxuZyBlcnJvcnMuCgptc2xpZmNhayAxNyBEZWMgOTkgMTU6MjE6MzkKICAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgIEluY2x1ZGUgRnJlZUJTRCA0Lnggc3BlY2lmaWMgbWVtb3J5IGFuZCB2bXN0YXQgd2hlbiBidWlsZGluZyB0aGF0IGFnZW50LgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE1OjQxOjE0CiAgICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo0NjowOAogICAgLSAoc25tcF9hbGFybS5jKTogbWlzc2luZyAhIG9wZXJhdGVyIG9uIHNpZ25hbCB0ZXN0LgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU1OjQ4CiAgICAtIChORVdTKTogbWVudGlvbiAtSS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NjoyNwogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgICAtIGluY2x1ZGUgInNubXBfYWxhcm0uaCIgZm9yIG1pYiBtb2R1bGVzIHRoYXQgbmVlZCB0aGUgY2FsbGJhY2sgZGVmLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU3OjEwCiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogY29tcGxldGVseSByZXN0cnVjdHVyZWQuCiAgICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCgpkYXZlcyAyMCBEZWMgOTkgMDM6MDE6NDkKICAgIC0gKGFnZW50eC9SRUFETUUuYWdlbnR4KTogVXBkYXRlZCB0byBkZXNjcmliZSBjdXJyZW50IHN0YXR1cy4KCmRhdmVzIDIwIERlYyA5OSAwNDoxNTo1NQogICAgLSAoYWdlbnRfdHJhcC5jIHNubXBfdmFycy5jIG1pYklJLltjaF0gbWliSUkvKi5jIG1pYklJL3N5c09SVGFibGUuaCk6CiAgICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gUmVnaXN0ZXIgdGhlIHZhcmlvdXMgTUlCLTIgbW9kdWxlcyBzZXBhcmF0ZWx5IGluIHN5c09SVGFibGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMDY6NDM6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogRm9yY2Ugc2V0IHRvIDEgZm9yIC1EIHNvIG11bHRpcGxlIHN3aXRjaGVzIGNhbgogICAgICBiZSBnaXZlbiAoaWUsIGRvbid0IHRvZ2dsZSB0aGUgdmFsdWUpLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDA2OjQ4OjI0CiAgICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjM6MjUKICAgIC0gKElQU0VDLU1JQi50eHQpOiByZW1vdmVkCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjU6MTUKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRvIFVDRC1JUEZXQUNDLU1JQi50eHQKCmhhcmRha2VyIDIwIERlYyA5OSAxMzoyNjowOQogICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIGFuZCB1cGRhdGVkIGZyb20gSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MzA6MDYKICAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjMwOjM2CiAgICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE1OjM4OjM0CiAgICAtIChNYWtlZmlsZS5pbik6IElQRldBQ0MtTUlCLnR4dCAtPiBVQ0QtSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MTk6MTgKICAgIC0gKGFnZW50X3RyYXAuYyk6IG1ha2UgdXB0aW1lIGEgbG9uZyBmb3IgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzoyMDoxNQogICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MjA6NTUKICAgIC0gKHNubXBfYXBpLmMpOiBEaWdpdGFsIFVuaXggaGFjayBmb3IgYmFkIHJlY3Zmcm9tIGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjMxOjQ1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3Igbm90ZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjoyMwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01JdjIgdXBkYXRlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjozNwogICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjM0OjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUxICkKCm5iYSAyMSBEZWMgOTkgMDI6Mzc6MTkKICAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDIyIERlYyA5OSAwMjo0MTo0MgogICAgLSBtZW1vcnlfZnJlZWJzZDIuYzogbWFrZSBpdCB3b3JrIChhZ2FpbikgZm9yIEZyZWVCU0QtMiA6LSkKCm5iYSAyMiBEZWMgOTkgMDI6NDM6MTUKICAgIC0gaHJfc3RvcmFnZS5jOiBraWxsIGEgZHVtbXkgdmFsdWUKCm5iYSAyMiBEZWMgOTkgMDU6NDY6MjEKICAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCgpuYmEgMjIgRGVjIDk5IDA1OjQ3OjExCiAgICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCgpuYmEgMjIgRGVjIDk5IDA1OjU4OjE4CiAgICAtIHZhY20gcm91dGluZXM6IGFsaWdubWVudCB3aXRoIFJGQyBtaWJzLCBwcmVwYXJpbmcgZm9yIHRyYXAgZ2VuZXJhdGlvbgogICAgCWFuZCBhIGJldHRlciBpbnRlZ3JhdGlvbiB3aXRoIHZhcmlhYmxlIHRyZWUgd2Fsa2luZwoKaGFyZGFrZXIgMjIgRGVjIDk5IDE1OjEyOjI2CiAgICAtIChtYXN0ZXIuYyk6IHVzZSBzbm1wX3Nlc3Nfb3BlbiBmb3IgdGhlIHNlY29uZCB0cnkgYXQgb3BlbmluZyB0aGUKICAgICAgbWFzdGVyIHBvcnQuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTU6MTM6MDUKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgIHRhYmxlIHdpdGggbW9yZSB0aGFuIHRoYXQgbnVtYmVyIGluIGNvbHVtbnMsIHdoaWNoIGJyZWFrcyBzbm1wdGFibGUuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTY6MzA6MDEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAyMyBEZWMgOTkgMDg6MjE6MzcKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgIC0gbm9uIDgwLWNvbHVtbiB3cmFwcGVkIHZlcnNpb24uCgpoYXJkYWtlciAyOCBEZWMgOTkgMTU6NDI6MDgKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZW1vdmUgdGhlICEgaW4gZnJvbnQgb2YgaW5fYV92aWV3LCB3aGljaCBjaGFuZ2VkLgoKaGFyZGFrZXIgMzAgRGVjIDk5IDA3OjUxOjM2CiAgICAtIChzbm1wZC5jKTogdXNhZ2UgbGluZSBvcmRlciBtZXNzZWQgdXAsIGFzIHBvaW50ZWQgb3V0IGJ5IFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDMwIERlYyA5OSAxMjowMDo1OAogICAgRml4IGNvbXBpbGUgZXJyb3JzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDA5OjMxOjEyCiAgICBGaXggYnVnICMgMTIyCgptc2xpZmNhayAzMSBEZWMgOTkgMDk6MzI6NTgKICAgIEFwcGx5IHBhdGNoIHByb3ZpZGVkIGJ5IFNlcmcgVHJ1c2huaWtvdiA8c2F0QHptYWlsLnJ1PiBmb3IgQUlYIDQuMi4xIGtubGlzdAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjExOjEyCiAgICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzM6MTYKICAgIEF1dG9jb25mIHBhdGNoIGMvbyBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+Cgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzY6NDYKICAgIEZpeCB3YXJuaW5ncyBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcy4KCm1zbGlmY2FrIDMxIERlYyA5OSAxMjo0Mzo1MAogICAgRml4IGJ1ZyAjNDggOiBubyBzdHJjYXNlY21wL3N0cm5jYXNlY21wIGZvciBTaW5peAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEzOjI3OjQ0CiAgICBBcHBseSBzb21lIE5ldEJTRCAxLjMueCwgMS40IHBhdGNoZXMgYy9vIEdyZWEgQS4gV29vZHMgPHdvb2RzQHBsYW5peC5jb20+CgpuYmEgIDMgSmFuIDAwIDE1OjIzOjIxCiAgICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKCm5iYSAgMyBKYW4gMDAgMTU6MjY6MDcKICAgIC0gc25tcF92YXJzLmM6IGluY2x1ZGUgYWdlbnRfcmVnaXN0cnkuaCBvbmx5IG9uY2UKCm5iYSAgMyBKYW4gMDAgMTU6MjY6NTEKICAgIC0gc25tcGQuYzogYWRkIGEgbWlzc2luZyBjb25zdCBzcGVjaWZpZXIKCm5iYSAgMyBKYW4gMDAgMTU6Mjc6MjkKICAgIC0gbWliSUkuaDogYWRkIHByb3RvdHlwZSBmb3IgaW5pdF9taWJJSQoKbmJhICAzIEphbiAwMCAxNToyODoyNAogICAgLSB3b21iYXQuW2NoXTogY29ycmVjdCBwcm90b3R5cGUgZm9yIHdvbWJhdF9wYXJzZV9jb25maWcKCm5iYSAgMyBKYW4gMDAgMTU6MzA6MjYKICAgIC0gc3lzdGVtLmg6IGFkZCBwcm90b3R5cGUgZm9yIHN0cmNhc2VjbXAKCm5iYSAgMyBKYW4gMDAgMTU6MzI6NTkKICAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgIAlJZ25vcmUgLmluZGV4IGZpbGUgb24gV0lOMzIgcGxhdGZvcm0KCm5iYSAgMyBKYW4gMDAgMTU6MzQ6MjIKICAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAoKbmJhICAzIEphbiAwMCAxNTozOTo0MAogICAgLSBzbm1wY21kLjE6IGFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcGxpY2F0aW9ucwogICAgLSBzbm1wdHJhbnNsYXRlLjE6IGV4cGxhaW4gLVQgb3V0cHV0cwogICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCgpoYXJkYWtlciAgNCBKYW4gMDAgMDg6NTg6MjQKICAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KCmhhcmRha2VyICA0IEphbiAwMCAxMDozMzo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCgpoYXJkYWtlciAgNCBKYW4gMDAgMTA6MzU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYWwgd2l0aCBibG9ja2luZyBiZXR0ZXIgaW4gc25tcF9hZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgoKaGFyZGFrZXIgIDQgSmFuIDAwIDE2OjI3OjQ1CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAgLSBBZGQgLUkvdXNyL2luY2x1ZGUvcnBtIGJlY2F1c2Ugb2YgYmFkbHkgd3JpdHRlbiBycG0gaGVhZGVyIGZpbGVzLgoKbmJhICA0IEphbiAwMCAyMjoxMjoxMAogICAgLSBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNubXBkLmNvbmYuNS5kZWY6IHJlbW92ZSBhbGwgdHJhY2VzIG9mIHNlY3VyaXR5CiAgICAJbW9kZWwgImFueSIgaW4gImdyb3VwIiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKCm5iYSAgNCBKYW4gMDAgMjM6NTA6MjcKICAgIC0gcGFyc2UuYzogI2lmZGVmIHNvbWUgdmFyaWFibGVzIG5vdCB1c2VkIHVuZGVyIHdpbjMyCgpuYmEgIDQgSmFuIDAwIDIzOjUxOjExCiAgICAtIHNubXB0cmFwZC5jOiBpbXBsZW1lbnQgdHJhbmQgaGFuZGxlcnMgZm9yIHdpbjMyCgpkYXZlcyAgNiBKYW4gMDAgMDE6NTg6NTYKICAgIC0gKG1pYmdyb3VwL21pYklJLmMpOiBSZW1vdmUgcmVkdW5kYW50IGZpbGUKCmhhcmRha2VyICA2IEphbiAwMCAwODo1NzozMQogICAgLSAodXRpbF9mdW5jcy5oKTogcHJvcGVybHkgd3JhcCBzdHJ1Y3QuaCBpbmNsdWRlIGRpcmVjdGl2ZSBmb3IKICAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KCm1hcnogIDYgSmFuIDAwIDEyOjU2OjUwCiAgICB1cGRhdGUgc3ludGF4IChleGFjdCkKCm1hcnogIDYgSmFuIDAwIDEzOjA3OjAzCiAgICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCgptYXJ6ICA2IEphbiAwMCAxMzoxNDoxMAogICAgdXBkYXRlIGNvbmZpZyBhY2Nlc3Mgc3ludGF4IChleGFjdCkKCmhhcmRha2VyICA2IEphbiAwMCAxNTowODoyOAogICAgLSAoQ09QWUlORyk6IHkyayBidWcuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDg6NDgKICAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDk6MjAKICAgIC0gKG1pYjJjLmNvbmYpOiB1bnF1b3RlZCBxdW90ZXMgcXVvdGVkLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDA5OjI5OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCgpoYXJkYWtlciAgNyBKYW4gMDAgMTA6Mzg6NDgKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiB1cGRhdGUgdG8gdjQgQVBJIHNldCBjb2RlLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDExOjIyOjQwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgdHJhbnNsYXRlZCBPSURzLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDE2OjIxOjUwCiAgICAtICh2YWNtX3ZhcnMuYyk6IHByb3Blcmx5IGdyb3VwIHJ3L3JvdXNlcnMgaW50byB1c20gbm90IHYxL3YyYy4KCm5iYSAgNyBKYW4gMDAgMjM6NDM6MTAKICAgIC0gY29uZmlndXJlLmluOiBzb21lIG1pc3NpbmcgIngiIGluIHRlc3RzIGZvciAtLXdpdGgtb3BlbnNzbCBhbmQKICAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCgpuYmEgIDggSmFuIDAwIDAwOjU2OjMwCiAgICAtIGNvbmZpZ3VyZS5pbjogYnVnZml4IGZvciBhIGJ1Z2ZpeCBidWcKCm1zbGlmY2FrICA4IEphbiAwMCAxMTo0NDo1OAogICAgRml4IGJ1aWxkIGZvciBMaW51eCBSZWRIYXQgNi4xIChjYW50IGxpbmsgbGlid3JhcCB3aXRob3V0IGxpYm5zbCkuCgptc2xpZmNhayAgOCBKYW4gMDAgMTI6MDc6NDQKICAgIFVzZSBrbmxpc3QgaWZmIGFpeDQgYW5kIEhBVkVfS05MSVNUIFtub3QgY29tcGxldGUgdy9vIGNvbmZpZ3VyZSBtb2RzXQoKZGF2ZXMgMTAgSmFuIDAwIDAxOjM3OjMyCiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS5oKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUuCgpkYXZlcyAxMCBKYW4gMDAgMDI6MzE6MzkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCgpkYXZlcyAxMCBKYW4gMDAgMDM6MDY6NDIKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKCmRhdmVzIDEwIEphbiAwMCAwNjoxMjo0MAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFJlLXN0cnVjdHVyZSBnZXRfdXB0aW1lKCkgdG8gY2FjaGUgYm9vdCB0aW1lLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjE0OjAzCiAgICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjIxOjMwCiAgICBRdWFsaWZ5IHVzZSBvZiB3aXRodmFsIHRvIGRlZmluZSBsaWJyYXJ5IGFuZCBpbmNsdWRlIHNlYXJjaCBwYXRocy4KCm1hcnogMTAgSmFuIDAwIDE0OjIxOjE0CiAgICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKCm1hcnogMTAgSmFuIDAwIDE0OjM0OjUwCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDEwIEphbiAwMCAxNDo0MDowNAogICAgYWRkIG1pYmxvYWQKCmhhcmRha2VyIDEwIEphbiAwMCAxNTozNjoxOAogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6MzY6NDAKICAgIC0gKFN2M2NvbmZpZyk6IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UuCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6Mzg6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgIC0gY2hlY2sgZm9yIC1sbnNsIG1vcmUgZXhwbGljaXRseS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMDo1MQogICAgdWNkRGVtb1B1YmxpYy5jIC0gcmVtb3ZlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGZyb20gd3JpdGUgbWV0aG9kLgogICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgICBzbm1wZC5jICAgICAgICAgLSB0ZXJtaW5hdGUgc3RhdGVtZW50LgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMxOjE2CiAgICBzbm1wdHJhbnNsYXRlLjEgICAtIHJlbW92ZSBqdW5rIGxpbmUuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzE6MzgKICAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMyOjA4CiAgICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgICByZWFkX2NvbmZpZy5jIC0gcmVtb3ZlIHNpemVvZih1X2NoYXIpIGZyb20gbWFsbG9jIHNpemUgY2FsYy4KICAgIHNjYXBpLmggICAgICAgLSBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDExIEphbiAwMCAwMTozMzo0NQogICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCgptc2xpZmNhayAxMSBKYW4gMDAgMDE6NTM6MDgKICAgIEdsZWFuIHJlZnMgdG8gbWliSUkubyBmcm9tIHRoaXMgbWFrZWZpbGUuCgptc2xpZmNhayAxMSBKYW4gMDAgMDc6NDQ6NTAKICAgIEFkZCBJTl9VQ0RfU05NUF9TT1VSQ0UgdG8gbm90IGJyZWFrIFdpbjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDExIEphbiAwMCAwNzo1OToyMwogICAgS2VlcCB3aW4zMiByZWxlYXNlIGJ1aWxkIGZyb20gYnJlYWtpbmcuCgptc2xpZmNhayAxMSBKYW4gMDAgMDg6MTA6MTAKICAgIEluaXQgZmlsZSBjb3VudCBhdCB6ZXJvLCBub3QgYnkgaW5jcmVtZW50aW5nIHJhbmRvbSB2YWx1ZS4KCm1zbGlmY2FrIDExIEphbiAwMCAwOToxMzozOAogICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCgptYXJ6IDExIEphbiAwMCAxMDozNzoyMQogICAgcmVtb3ZlIGJhZCBzZXNzaW9uIHRlc3QgLSBzZXNzaW9uLnQgaGFzIGl0IGFscmVhZHkgLSBub3RlIHRoZSBjYWxsIHRvIGdldGhvc3RieW5hbWUgY2FuIGhhbmcgZm9yIHNvbWUgdGltZSBpZiBETlMgaXMgbm90IHNldHVwIGNvcnJlY3RseSAtIGFueW9uZSBrbm93IGEgd2F5IGFycm91bmQgdGhpcz8KCm1zbGlmY2FrIDExIEphbiAwMCAxNTowNTowOQogICAgVXNlIENGTEFHUyB3aGVuIGxpbmtpbmcgKGNvdWxkIGhhdmUgcHJvZmlsZSBzd2l0Y2gsIGV0YykuCgpoYXJkYWtlciAxMiBKYW4gMDAgMTE6MTY6MjcKICAgIC0gKHNubXB2My5jKTogY2FzdCBtYWxsb2MgcmV0dXJucy4KCm1zbGlmY2FrIDEyIEphbiAwMCAyMTowOTo0NwogICAgVXNlIERFQlVHTVNHT0lEIGxpYmVyYWxseSwgcmVwbGFjaW5nIHNwcmludF9vYmppZDsgc21hbGwgc3BlZWR1cC4KCmRhdmVzIDEzIEphbiAwMCAwMjo0Njo0NwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBSZW1vdmUgZXh0cmFuZW91cyBicmFja2V0LgoKbXNsaWZjYWsgMTMgSmFuIDAwIDA1OjM2OjIxCiAgICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMxOjQ0CiAgICAtIChzbm1wbGliL3BhcnNlLltjaF0pOiBVbmxvYWQgTUlCIG1vZHVsZQogICAgCShOLkI6IFNvbWV3aGF0IHNpbXBsaXN0aWMgd2l0aCByZWdhcmQgdG8gbXVsdGlwbHktbG9hZGVkIG5vZGVzKQoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMzOjQwCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5nIG9mIHVubG9hZGluZyBNSUIgbW9kdWxlcy4KCm1zbGlmY2FrIDE0IEphbiAwMCAwOTozMzozOQogICAgU21hbGwgY29tcGlsZSBmaXggYW5kIGRlYnVnIG1lc3NhZ2UgcmVzdG9yYXRpb24uCgpoYXJkYWtlciAxNCBKYW4gMDAgMTE6MzQ6MjUKICAgIC0gKGJ1Zy1yZXBvcnQpOiBncmVwIGZvciBjb25maWd1cmUgZmxhZ3MKCmhhcmRha2VyIDE0IEphbiAwMCAxNjowOTowOQogICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KCmhhcmRha2VyIDE0IEphbiAwMCAxNjoxMDoyOQogICAgLSAoTkVXUyk6IHJlbW92ZSBleHBvcnQgY29udHJvbCBub3RlIGFib3V0IERFUy4KCmRhdmVzIDE3IEphbiAwMCAwNjoxMzozOQogICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KCmRhdmVzIDE3IEphbiAwMCAwOTowMjozMgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgoKbWFyeiAxNyBKYW4gMDAgMTI6NDc6NTgKICAgIGFkZGVkIHYyIHRyYXAKCm1hcnogMTggSmFuIDAwIDA3OjAwOjI2CiAgICBtb2RpZmllZCBmb3IgdjItdHJhcC4KCm1hcnogMTggSmFuIDAwIDA3OjU0OjEyCiAgICBmaXggZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiB2YWxzIGZvciB0cmFwIGZ1bmNzLCBjbGVhbiB1cCBwZHUKCm1zbGlmY2FrIDE4IEphbiAwMCAwODoxNDo0MgogICAgUHJldmVudCBhcnJheSBib3VuZHMgZXJyb3Igd2hlbiBjcmVhdGluZyBzcGVjaWZpYyB0cmFwIG9pZC4KCm1zbGlmY2FrIDE4IEphbiAwMCAxNDoyMzo0NAogICAgTGF0ZXN0IHZtc3RhdF9zb2xhcmlzMiBmcm9tIHRoZSBhdXRob3IgSm9jaGVuIEttaWV0c2NoLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjIyOjA2CiAgICBDbGVhbnVwIGFyb3VuZCBpcDZfdmFycy5oIGluY2x1ZGUgKG5vICNpZiAwKQoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjI1OjUzCiAgICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6Mjk6MDEKICAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgIDIuQXBwbHkgV2luMzIgcGF0Y2ggZnJvbSBSLlN0b3J5IHRvIGFjdGl2YXRlIG1pYiBzdGF0cyBtb2R1bGUgKHNubXBfbWliKS4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMTozNzowMgogICAgQ29uc2lzdGVudCBnZXRwYWdlc2l6ZSAoZmlyc3QgZGl2aWRlIGJ5IDEwMjQpLgoKZGF2ZXMgMjAgSmFuIDAwIDA0OjI1OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDY6MDQKICAgIFJlbW92ZSBwYXJ0eSBjcnVkOyBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0Njo0MQogICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0OTozNQogICAgTWluaW1pemUgZGF0YSBoYW5kbGluZyBhbmQgdXNlIHJlZ2lzdGVyIHZhcmlhYmllcyBpbgogICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgoKbWFyeiAyMSBKYW4gMDAgMDc6Mjc6MTMKICAgIGFkZGVkIHYzIGluZm9ybQoKbWFyeiAyMSBKYW4gMDAgMDg6MDA6MjcKICAgIGluZm9ybS4KCm1hcnogMjEgSmFuIDAwIDA4OjEzOjI1CiAgICBpbmZvcm0KCm1hcnogMjEgSmFuIDAwIDEwOjQ3OjI0CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyMSBKYW4gMDAgMTE6MTk6MDkKICAgIGNvbmZpZ19hcmNoX3JlcXVpcmUgc29sYXJpczIgdmVyc2lvbiBvZiB2bXN0YXQuCgpuYmEgMjMgSmFuIDAwIDA4OjUxOjM5CiAgICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCgpuYmEgMjMgSmFuIDAwIDEyOjQyOjExCiAgICAtIHBhcnNlLmM6IGZpeCBtZXJnaW5nIG9mIGFub255bW91cyBub2RlcyB3aGVuIHRoZXkgYXJlIG5hbWVkCgpuYmEgMjMgSmFuIDAwIDEyOjQzOjU0CiAgICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwoKbWFyeiAyMyBKYW4gMDAgMTY6NDE6MDYKICAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KCmRhdmVzIDI0IEphbiAwMCAwNzoyMTozNAogICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAgLSBDb25zb2xpZGF0ZWQgZXhhbXBsZSBtb2R1bGVzIGludG8gb25lLCBpbmNsdWRpbmcgY29uZmlnIGFuZCBTRVQgc3VwcG9ydC4KCm1hcnogMjQgSmFuIDAwIDA4OjU5OjMyCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyNCBKYW4gMDAgMDk6NDQ6NDUKICAgIE1ha2Ugc3VyZSBrc3RhdF9mZCBpcyBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAwOTo1NTozMgogICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0IDogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgImFsbCIga2V5d29yZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDowNToxMgogICAgSXRvanVuJ3MgbmV0YnNkIEVMRiBwYXRjaCArIHJlbW92ZSB3b21iYXQgW0RhdmUncyBleGFtcGxlIGZpeF0KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDoxNDo1NgogICAgRml4IHByaW50aW5nIElNUExJRUQgaW5kZXggKGZyb20gYXNzb2NpYXRlIG9mIEouIEttaWV0c2NoKSBtb2RpZmllZCBhbmQgYXBwbGllZC4KCm1hcnogMjQgSmFuIDAwIDEwOjM2OjQzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDI1IEphbiAwMCAwNjo0OTo0MwogICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAoKbWFyeiAyNSBKYW4gMDAgMTE6NDc6MTIKICAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKCm1hcnogMjUgSmFuIDAwIDEyOjA1OjU5CiAgICBhZGRpdGlvbmFsIHdpbjMyIGluc3RhbGwgbm90ZXMKCm5iYSAyNSBKYW4gMDAgMTM6NTI6NDIKICAgIC0gcGFyc2UuYzogZml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiB0Y19pbmRleAoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU1OjMzCiAgICAtICh2ZXN0aW50ZXJuZXR0L2Rpc2tpby5bY2hdKTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU2OjAyCiAgICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKbmJhIDI1IEphbiAwMCAxNDoxMjo1OAogICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIE1ha2VmaWxlLmluOgogICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IGhlbHAgdXBkYXRlCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NTA6NTYKICAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGZpeCByZWdpc3RyYXRpb24gZnVuY3Rpb24gdG8gZG8gd2hhdCBpdCBzYXlzIGl0IHNob3VsZCBkby4KCm1zbGlmY2FrIDI1IEphbiAwMCAxOTozMDo1MQogICAgTGFyZ2VyIGJ1ZmZlciBmb3IgcHJpbnRfbW9kdWxlX25hbWU7IEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmIGluIGdldF90Yy4KCm1zbGlmY2FrIDI1IEphbiAwMCAyMTo0NjoxNAogICAgbWliLmM6cHJpbnRfdHJlZV9ub2RlIC0gc2hvdyBtb2R1bGUgbmFtZSBvbmNlIGluIC0tIEZST007CiAgICBwYXJzZS5jOiBzaG93ICJDYW5ub3QgZmluZCBtb2R1bGUiIG9uY2UgcGVyIG1pc3NpbmcgbW9kdWxlLgoKbXNsaWZjYWsgMjYgSmFuIDAwIDA3OjE0OjUwCiAgICBmaXggY29tcGlsZSBlcnJvciB3aGVuIC0td2l0aG91dC1yb290LWFjY2VzcyBpcyB1c2VkIChzdHJhdXNzQGlici5jcy50dS1icy5kZSkKCm1zbGlmY2FrIDI2IEphbiAwMCAwNzoyNjoyMgogICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTA6MjQ6MjEKICAgIC0gKGdldFZhbHVlcy5wbSkgZ2V0VmFsdWVzLnBtIHdhcyBub3RlZCBtaXNzaW5nCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6Mjk6NTQKICAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICAgUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gZml4IHRoZSBkaXNraW8gbWliLCBjb252ZXJ0IHRvIFNNSXYyLCBhbmQgbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzA6NDIKICAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gcHJlZml4IG9pZCB3aXRoICJ1Y2QiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMxOjAwCiAgICAtIChVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzI6MjUKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjbGVhbiB1cCBhbmQgcmVmb3JtYXQgc3ViLXJlZ2lzdHJhdGlvbiBjb21tZW50cy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozNDoyMAogICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNvcnJlY3QgdWNkLXNubXAtY29kZXJzIGVtYWlsIGFkZHJlc3MgdG8gcmVwbGFjZSAiZWNlIiB3aXRoICJ1Y2Qtc25tcCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6MDY6MzEKICAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGFkZCBhYmlsaXR5IHRvIGFsbG93IHNlbmRpbmcgdHJhcHMgdG8gcG9ydHMgb3RoZXIgdGhhbiAxNjIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6Mjg6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjo1Mzo0MQogICAgLSAoc25tcHYzLmMpOiBmaXggcHJpdiBrZXkgbGVuZ3RoIGV4dHJhcG9sYXRpb24uICBTaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseT8uCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6NTQ6NDMKICAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxNTowNwogICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgICAtIGJhZGx5IGRvbmUgdXBkYXRlcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxODoxNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MzI6NDEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWxsb3cgJywnIHNlcGVyYXRlZCAtLXdpdGgtKi1tb2R1bGVzIGZsYWcgdmFsdWVzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE5OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYS1jaGFtZWxlb24uCgpoYXJkYWtlciAyNyBKYW4gMDAgMDg6MzM6NDMKICAgIC0gKGRlZmF1bHRfc3RvcmUuYyk6IG1ha2UgY29uZmlnIHBhcnNlciBoYW5kbGUgIiIgKG51bGwpIHBhcnNlZCBzdHJpbmdzLgoKbWFyeiAyNyBKYW4gMDAgMTE6MTQ6MDkKICAgIHJlbW92ZSBuby1vcCBzbm1wX3N5bmNoX3NldHVwCgptc2xpZmNhayAyNyBKYW4gMDAgMTQ6NTE6MzkKICAgICAxLiBGaXggbWVtb3J5IGxlYWsgd2hlbiBhbm9ueW1vdXNseSBuYW1lZCBub2RlcyBhcmUgdXNlZC4KICAgICAyLiBIYWNrIGFyb3VuZCBzbWljbmcncyAiU01JICIgc3RhdGVtZW50cyB0byBwcmV2ZW50IG90aGVyIG1lbW9yeSBsZWFrcy4KCm1zbGlmY2FrIDI3IEphbiAwMCAxNjoxMzo1OAogICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgoKbXNsaWZjYWsgMjggSmFuIDAwIDA3OjE4OjA5CiAgICBTb21lIHZhcmlhYmxlIHJlbmFtaW5nIGZvciBjb25zaXN0ZW5jeSwgZXJyb3IgY2hlY2tpbmcKICAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjMwOjIwCiAgICBGaXggc3BlbGwgTElUVExFX0VORElBTi4gVGhhbmtzIHRvIHRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjM4OjIyCiAgICBDaGFuZ2UgYWdlbnR4X3tidWlsZCxwYXJzZX1fc2hvcnQgLiBUaGFua3MgdG8gR2VyYXJkIFRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjUyOjI1CiAgICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgICBmb3IgYnVnICMxNDkuCgpuYmEgMzAgSmFuIDAwIDAzOjAxOjUyCiAgICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQoKbmJhIDMwIEphbiAwMCAwMzowNDoyMgogICAgLSBocl9kaXNrLmM6IGNvbnZlcnQgdG8gMWsgYmxvY2tzCgpuYmEgMzAgSmFuIDAwIDAzOjA5OjM4CiAgICAtIGhyX3N0b3JhZ2UuYzogY29udmVydCBmcm9tIHBhZ2VzIHRvIDFrIGJsb2NrcwoKbmJhIDMwIEphbiAwMCAwMzoxMToyOAogICAgLSBpZi5jOiBkZWZlbnNpdmUgdGVzdCBmb3IgbWlzc2luZyBvYmplY3RzIChpdCBtaWdodCBmYWlsIHRvIHNob3cKICAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKCm1hcnogMzAgSmFuIDAwIDA4OjE5OjM0CiAgICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAoKbWFyeiAzMCBKYW4gMDAgMTA6NDI6MzYKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgIAogICAgTm90ZTogS05PV04gQlVHUwogICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKCm1hcnogMzAgSmFuIDAwIDEwOjQ0OjM3CiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgICAKICAgIE5vdGU6IEtOT1dOIEJVR1MKICAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgICAKICAgIG5vdCBzdXJlIHRoYXQgdGhpcyBldmVyIHdvcmtlZCAtIHdpbGwgaGF2ZSB0byBsb29rIGF0IG9sZCBPQ1RFVFNUUgogICAgYmVoYXZpb3VyIGFuZCBzZWUgaG93IHRvIHJlY3JlYXRlIGl0CgptYXJ6IDMwIEphbiAwMCAxMDo1ODowMgogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCgpkYXZlcyAzMSBKYW4gMDAgMDE6MDU6MTYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgoKZGF2ZXMgMzEgSmFuIDAwIDAxOjQ1OjE1CiAgICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgICAJc25tcFRyYXBFbnRlcnByaXNlIE9JRCBkZWZpbml0aW9ucy4gIChUaGFua3MgdG8gR2VyYXJkIFRhbG1hbikKCmRhdmVzIDMxIEphbiAwMCAwMjo0MDowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MDA6MTYKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIElyaXggc29ja2V0IGhhbmRsaW5nLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjAzOjE1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIEF0dGVtcHQgdG8gZGV0ZWN0IG5vbi10cmFkaXRpb25hbCBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgKG9uIElyaXggNi54KS4KCmRhdmVzIDMxIEphbiAwMCAwMzoxNDo1MAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogSW5pdGlhbGl6ZSBhZGRybGVuIGluIF9zZXNzX3JlYWQoKS4gIChGcmFuayBTdHJhdXNzKQoKZGF2ZXMgMzEgSmFuIDAwIDAzOjQxOjA4CiAgICAtIChBR0VOVC50eHQpOiBSZXZpc2VkIGFuZCB1cGRhdGVkIHZlcnNpb24uCgpkYXZlcyAzMSBKYW4gMDAgMDc6NDk6NTAKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gSW1wcm92ZWQgY2hlY2tpbmcgZm9yIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUxOjU0CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUzOjUyCiAgICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgICAtIERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU1OjA2CiAgICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgIC0gTi5COiBUaGlzIGNoYW5nZXMgdGhlIGludGVyZmFjZSBvZiBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSBzbGlnaHRseS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1NjozOAogICAgLSAoYXBwcy9zbm1wdGVzdC5jKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTc6NTYKICAgIC0gKG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuW2NoXSk6CiAgICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCgptYXJ6IDMxIEphbiAwMCAxMDo0MToxNgogICAgc2V0IERTX0xJQl9ET05UX0JSRUFLRE9XTl9PSURTIHRvIGdldCBwcmV2aW91bHN5IHJlbGVhc2VkIGJlaGF2aW91ciBvZiBnZXRfc3ltYm9sIHdydCBvY3RldCBiYXNlZCBpbnN0YW5jZSBpZHMgKGkuZS4sIG5vIGRvdWJsZS1xdW90aW5nKQoKZGF2ZXMgIDEgRmViIDAwIDAxOjQ5OjU1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAgLSBGaXggYnJva2VuIHNldHRpbmcgb2Ygc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIGNob2ljZS4KCmRhdmVzICAxIEZlYiAwMCAwMzozNzoyNQogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggc2Vzc2lvbiBJRCBoYW5kbGluZyB3aGVuIGRlbGVnYXRpbmcgcmVxdWVzdHMuCgpkYXZlcyAgMSBGZWIgMDAgMDQ6MTk6MTYKICAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDYXRjaCBjb21tb24gaW52YWxpZCBjb25maWd1cmUgb3B0aW9ucy4KCmRhdmVzICAxIEZlYiAwMCAwNToyNzowMwogICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjMyOjAzCiAgICAtIChkaXNraW8uKik6IG1vdmVkIHRvIHRoZSB1Y2Qtc25tcCBkaXJlY3RvcnkKCmhhcmRha2VyICAxIEZlYiAwMCAwODozNDowOQogICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzQ6MjQKICAgIC0gKGRpc2tpby5jKTogbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuMTUuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDM6MDMKICAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0NTo0MQogICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQ2OjA3CiAgICAtIChzbm1wdXNtLjEpOiBjaGFuZ2VkIGNvbnRleHQgc3RyaW5nIGluIGV4YW1wbGVzIHRvICIiLgoKbXNsaWZjYWsgIDEgRmViIDAwIDExOjI2OjM2CiAgICBGaXh1cCBtb3JlIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucy4KCmRhdmVzICAyIEZlYiAwMCAwMToxMjozNwogICAgLSAoaG9zdC9ocl9kaXNrLmMpOiBGaXggc29sYXJpcyBpbml0aWFsaXNhdGlvbiwgcGx1cyBleHRyYSBkZWJ1Z2dpbmcgaW5mby4KCm1zbGlmY2FrICAyIEZlYiAwMCAwNDo0NDoyMwogICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCgpuYmEgIDIgRmViIDAwIDA2OjQ0OjMxCiAgICAtIHNvbGFyaXMyLjguaDogU29sYXJpcyA4IHNlZW1zIGNsb3NlIHRvIFNvbGFyaXMgNwoKbmJhICAyIEZlYiAwMCAwNjo0NToyNQogICAgLSBocl9kaXNrLmM6IGFkZCBOZXRCU0Qgc3VwcG9ydAoKaGFyZGFrZXIgIDIgRmViIDAwIDA3OjE3OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwCgpkYXZlcyAgMiBGZWIgMDAgMDg6MDI6NDYKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NDI6MTcKICAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NTI6NDMKICAgIGZpeCB0aGUgZmF0LWZpbmdlcmluZyBwYXRjaCBJIGp1c3QgbWFkZS4gZmVoLgoKaGFyZGFrZXIgIDIgRmViIDAwIDEwOjUyOjMzCiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIFJvYmVydCBNaWxlczoKICAgICAgLSB2YXJpb3VzIGZpeGVzOgogICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgIDIpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgbmV2ZXIgcmVjZWl2ZWQgYSByZXNwb25zZS4KICAgICAgICAzKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIHdlcmUgbm90IGZpbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiB3aGVuIHRoZQogICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICAgNCkgTm9uLXplcm8gdmFsdWVzIHdlcmUgbm90IGJlaW5nIGVuY29kZWQgcHJvcGVybHkgaW4gcmVnaXN0cmF0aW9uCiAgICAgICAgICAgcmVzcG9uc2VzLgoKbWFyeiAgMiBGZWIgMDAgMTQ6MTg6MDkKICAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwoKbXNsaWZjYWsgIDIgRmViIDAwIDE0OjE4OjIyCiAgICBMZXQgaHJQcm9jZXNzb3JMb2FkIG91dCBvZiB0aGUgZ2VuaWUncyBib3R0bGUuCgptc2xpZmNhayAgMiBGZWIgMDAgMTY6MjQ6MTUKICAgIFRvdWNodXAgZm9yIGJ1aWxkaW5nIG1vcmUgTUlCIG1vZHVsZXMgaW4gV2luMzIgKE1TVkMpLgoKbXNsaWZjYWsgIDIgRmViIDAwIDE2OjM2OjIxCiAgICBUb3VjaHVwIHRvIGJ1aWxkIG1vcmUgTUlCIG1vZHVsZXMgb24gV2luMzIuCgpkYXZlcyAgMyBGZWIgMDAgMDE6MzU6MTIKICAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCgptc2xpZmNhayAgMyBGZWIgMDAgMDQ6MTI6NTcKICAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2UgOiBsb2FkIGF2ZXJhZ2UgIT0gYXZlcmFnZSB0aW1lIHRoYXQgQ1BVIGlzIGlkbGUuCgptc2xpZmNhayAgMyBGZWIgMDAgMDY6NDM6MTAKICAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCgptYXJ6ICAzIEZlYiAwMCAwOTo0NDozNwogICAgdXBkYXRlIG15IGVtYWlsCgptc2xpZmNhayAgMyBGZWIgMDAgMDk6NTY6NDgKICAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KCm1hcnogIDMgRmViIDAwIDEwOjQ4OjM3CiAgICBhZGQgLXUgUElERklMRSB0byBzbm1wdHJhcGQsIG5vdyB3ZSBuZWVkIC1jIC1DIDopLCBidHcgaXMgdGhlIHZhbHVlIG9mIG9wdGFyZyByZWxpYWJsZSBhZnRlciBnZXRvcHQgaGFzIGJlZW4gY2FsbGVkIGFnYWluLi4uaXQgc2VlbXMgdG8gd29yawoKbXNsaWZjYWsgIDMgRmViIDAwIDEyOjU3OjIwCiAgICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSB1bm5lZWRlZCBjb21tZW50IGFib3V0IG9ic29sZXRlIHYycGFydHkuCgptc2xpZmNhayAgMyBGZWIgMDAgMTI6NTg6MjcKICAgIE5vdGUgdGhlIHdvbWJhdCBpcyByZXBsYWNlZCBieSBleGFtcGxlIGluIG1vcmUgcGxhY2VzLgoKbXNsaWZjYWsgIDMgRmViIDAwIDEzOjI4OjMxCiAgICBGb2xsb3cgY29uZGl0aW9uIEhBVkVfR0VUUElEIGZvciBwaWRfZmlsZSBvYmplY3QuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6Mjk6MTkKICAgIC0gKGR1bW15LyopOiByZW1vdmVkLCB1c2UgZXhhbXBsZSBpbnN0ZWFkLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ0OjMzCiAgICAtIChzdWJhZ2VudC5jKTogaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ2OjEwCiAgICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6NTE6NDAKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBkdW1teSByZWZlcmVuY2UuCgpuYmEgIDMgRmViIDAwIDIzOjU3OjQ5CiAgICAtIGFnZW50L3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywgY2xpZW50LmM6IGNoYW5nZSBzb21lIHR5cGUgY2FzdHMgZnJvbQogICAgCShjaGFyICopIHRvICh1X2NoYXIgKikgdG9wIHNpbGVuY2Ugc29tZSB3YXJuaW5ncy4KCm5iYSAgMyBGZWIgMDAgMjM6NTk6NTcKICAgIC0gbXRfc3VwcG9ydC5oOiBhbm90aGVyIHdheSBvZiBkb2luZyBub3RoaW5nLCBub3QgZ2l2aW5nIGEgIm51bGwgZWZmZWN0IgogICAgCXdhcm5pbmcgZnJvbSBnY2MuCgpuYmEgIDQgRmViIDAwIDAwOjE2OjAxCiAgICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudCA6IHRvCiAgICAJRU5WX1NFUEFSQVRPUntfQ0hBUn0KCm5iYSAgNCBGZWIgMDAgMDA6MTc6NDgKICAgIC0gaHJfZGlzay5jOiBBIGxpdHRsZSBjbGVhbnVwIG9mIHRoZSBkaXNrIGRldmljZSBkZWZpbml0aW9ucywgYWxzbyBhZGRpbmcKICAgIAlTQ1NJIHRvIEZyZWVCU0QgMwoKbmJhICA0IEZlYiAwMCAwMToyMDo1NQogICAgLSB2YWNtX3ZhcnMuYzogc2xpZ2h0IHJld29yZGluZyBvZiB3YXJuaW5nIG1lc3NhZ2UKCm5iYSAgNCBGZWIgMDAgMDQ6MDA6MjcKICAgIC0gaHJfZGlzay5jOiByZWFsbHkgZG8gdGhhdCBGcmVCU0Qgc2NzaSB0aGluZwoKbWFyeiAgNCBGZWIgMDAgMDY6NDQ6MjQKICAgICBoYXZlIG1pYiBsb2FkaW5nIGFwaSByZXR1cm4gcmVzdWx0IGNvZGVzCgptYXJ6ICA0IEZlYiAwMCAwODo1NTo0MgogICAgYWRkIGRlZmF1bHRzIGZvciB2MiB0cmFwIHBhcmFtcwoKaGFyZGFrZXIgIDQgRmViIDAwIDEyOjAxOjMyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBmaW5kLCBsb2NhdGUsIGFuZCB1c2UgcGVybCBpZiBmb3VuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMjo0NzoyNgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjEyOjE4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZG9uJ3QgcHJpbnQgZmFpbGVkIGFjY2VzcyBlcnJvcnMgKEVBQ0NFUykuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6MTU6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1MDoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGRvbid0IHJlYWQgdGhlIG9wdCBjb25maWcgZmlsZSBvciBjYWxsCiAgICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KCm1hcnogIDQgRmViIDAwIDEzOjUyOjA4CiAgICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1NjoxOQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIGltcGxlbWVudCAtYyBhbmQgLUMgZmxhZ3MgZm9yIEpvZS4KICAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KCmhhcmRha2VyICA0IEZlYiAwMCAxNDowMTozMAogICAgLSAoc25tcHRyYXBkLjgpOiBkb2N1bWVudCAtYyBhbmQgLUMuCgptYXJ6ICA0IEZlYiAwMCAxNToyMTo0MQogICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCgptYXJ6ICA0IEZlYiAwMCAxNTo0NDo0NAogICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4wIC0+IFY0LjAuMQoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjQ0OjI3CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIHNubXB1c20uMSBtYW51YWwgcGFnZS4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4yIC0+IFY0LjAKCmhhcmRha2VyIDE0IFNlcCA5OCAwOToxMTo1NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2UgdGhlIFBFUlNJU1RFTlRGSUxFIGRlZmluZSB0byBQRVJTSVNURU5URElSLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjE3OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wZC5oLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBwZXJzaXN0ZW50IGNhY2hlIGNhcGFiaWxpdHkgaW50byB0aGUgbGlicmFyeSBmcm9tIHRoZQogICAgICAgIGFnZW50LiAoc25tcHRyYXBkLCBhbmQgb3RoZXJzIHdpbGwgbmVlZCB0aGlzIGFzIHdlbGwpLgogICAgICAtIGltcGxlbWVudCBzb21lIG5ldyBmdW5jdGlvbnM6IGluaXRfc25tcHYzKCksIHNubXB2M19zaHV0ZG93bigpLAogICAgICAgIHNubXB2M19nZXRfZW5naW5lX2Jvb3RzKCksIGV0Yy4KICAgICAgLSBhZ2VudEJvb3RzIC0+IGVuZ2luZUJvb3RzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjIxOjA1CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIHBlcnNpc3RlbnQgY2FjaGUgY2FwYWJpbGl0eSBpbnRvIHRoZSBsaWJyYXJ5IGZyb20gdGhlCiAgICAgICAgYWdlbnQuIChzbm1wdHJhcGQsIGFuZCBvdGhlcnMgd2lsbCBuZWVkIHRoaXMgYXMgd2VsbCkuCiAgICAgIC0gaW1wbGVtZW50IHNvbWUgbmV3IGZ1bmN0aW9uczogaW5pdF9zbm1wdjMoKSwgc25tcHYzX3NodXRkb3duKCksCiAgICAgICAgc25tcHYzX2dldF9lbmdpbmVfYm9vdHMoKSwgZXRjLgogICAgICAtIGFnZW50Qm9vdHMgLT4gZW5naW5lQm9vdHMuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MjM6MDkKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICAgICBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gcGFzcyBhcHAgbmFtZSB0byBzbm1wX3BhcnNlX2FyZ3MsIHNvIGl0IGNhbiBwYXNzIGl0IHRvCiAgICAgICAgaW5pdF9zbm1wKCksIHdoaWNoIG5vdyBuZWVkcyBpdCBmb3IgcGVyc2lzdGVudCBjYWNoZSByZWFkaW5nLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjI1OjEzCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gQmVnaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFNOTVAtRlJBTUVXT1JLLU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0MzoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgRU5URVJQUklTRV9OVU1CRVIgdG8gMjAyMS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0Mzo1MAogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IHNubXBFbmdpbmVJRCBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0NDowNgogICAgLSAoc25tcEVuZ2luZS5jKTogcmVwb3J0IHNubXBFbmdpbmVJRCBwcm9wZXJseS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0OToxNQogICAgLSAoc25tcHYzbWlicy5oKTogaGlnaC1sZXZlbCBtb2R1bGUgY3JlYXRlZCB0byBpbXBvcnQgdjMgcmVsZWF0ZWQgbWlicy4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMTowOTo0MQogICAgLSAodXRpbF9mdW5jcy5bY2hdLCBzbm1wRW5naW5lLmMsIHNubXB2My5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gbW92ZSBzbm1wRW5naW5lVGltZSBjYWxjdWxhdGlvbiB0byBzbm1wbGliL3NubXB2My5jLgogICAgICAtIG1vdmUgY2FsY3VsYXRlX3RpbWVfZGlmZigpIHRvIHN5c3RlbS5jIGZyb20gdXRpbF9mdW5jcy5jLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjI5OjU1CiAgICAtIChzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgpOgogICAgIC0gaW1wbGVtZW50IFNOTVAtTVBELU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjozMDoxMAogICAgLSAoc25tcHYzbWlicy5oKTogYWRkIHNubXBNUERTdGF0cyBtb2R1bGUuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6NDA6MjQKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcE1QRFN0YXRzLmMpOiByZWdpc3RlciB0aGUgbW9kdWxlcyBpbiBzeXNPUlRhYmxlLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA0OjExCiAgICAtIChzbm1wTVBEU3RhdHMuYyk6IGRvdWJsZSBibGFuayAtPiBzaW5nbGUuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDQ6NTgKICAgIC0gKHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgpOiBpbXBsZW1lbnQgdGhlIHVzbVN0YXRzIHBvcnRpb24gb2YgdGhlCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDU6NDMKICAgIC0gKHNubXB2M21pYnMuaCk6IGFkZCB1c21TdGF0cyB0byByZXF1aXJlIGxpc3QuCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTQ6MDgKICAgIC0gKHNubXBfYXBpLmMpOiBjaGFuZ2Ugc3ByaW50Zl9vaWQgYnVmIGxlbmd0aCBpbiBERUJVR1BPSUQgdG8gNDA5Ni4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1NTowNwogICAgLSAoc25tcGQuYyk6IGluaXRfc25tcHYzIG5lZWRzIHRvIGdvIGFib3ZlIGluaXRfYWdlbnQgZm9yIGVuZ2luZUlEIGNyZWF0aW9uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU5OjIwCiAgICAtIChzbm1wdjNtaWJzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBNYWtlZmlsZS5pbiwgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gYmFzaWMgdXNtVXNlciBzdHJ1Y3R1cmUgY3JlYXRlZCBmb3IgdGhlIGxpYnJheSB3aXRoIHN1cHBvcnQKICAgICAgICBmdW5jdGlvbnM6CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2dldF91c2VyKCplbmdpbmVJRCwgIGVuZ2luZUlETGVuLCAgKm5hbWUsICp1c2VyTGlzdCk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2FkZF91c2VyKCp1c2VyLCAqdXNlckxpc3QpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9mcmVlX3VzZXIoKnVzZXIpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9jbG9uZV91c2VyKCpmcm9tKTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpOwogICAgICAtIGZpcnN0IHBhc3MgYXQgYmFzaWMgVVNNIG1vZHVsZSBzdXBwb3J0IGFkZGVkIHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMjo0Mjo0NgogICAgLSAoc25tcC10Yy5oKTogY3JlYXRlIGEgbmV3IC5oIGZpbGUgdG8gc3RvcmUgY29tbW9uIHRleHR1YWwgY29udmVudGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEyOjQ2OjM4CiAgICAtICh1c21Vc2VyLmMsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBzdG9yYWdlVHlwZS91c2VyU3RhdHVzIGluIHRoZSB1c21Vc2VyIHN0cnVjdHVyZS4KICAgICAgLSBmaXggdGhlIGF1dGgvcHJpdiBwcm90b2NvbCBwb2ludGVyIGluaXRpYWxpemF0aW9ucyBmb3IgdGhlICJpbml0aWFsIiB1c2VyLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ2OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc25tcHVzbS5oIGFuZCBzbm1wdjMuaC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0OTowNAogICAgLSAobWliMmMpOgogICAgICAtIGZwcmludGYgLT4gREVCVUdQLgogICAgICAtIF9fUCAtPiBBTlNJLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjUyOjA4CiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gZ2V0TmV4dCBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSB1c21QdWJsaWMgdHJ1ZWx5IHdyaXRhYmxlLgogICAgICAtIGltcGxlbWVudCB1c21fcGFyc2Vfb2lkKCkgdG8gcGFyc2UgYW4gb2lkIGludG8gZW5naW5lSUQvbmFtZS4KICAgICAgLSBpbXBsZW1lbnQgdGhlIHVzbVVzZXJTcGluTG9jay4KICAgICAgLSBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMjo0OQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0MDowNAogICAgLSAoU05NUHYyLVRDLnR4dCk6IHJlanVzdGlmeSBhIHRhYmxlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ1OjEzCiAgICAtICh1c21Vc2VyLmMpOgogICAgICAtIE1ha2UgdXNtVXNlclN0YXR1cyBhY3R1YWxseSB3cml0YWJsZSBhbmQgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgcm93cy4KICAgICAgLSBCZWdpbiAoYnJva2VuKSBjbG9uZUZyb20gc2V0dGluZy4KICAgICAgLSBGaXhlczoKICAgICAgICAtIHByb3Blcmx5IG1hbGxvYyBzcGFjZS4KICAgICAgICAtIHByb3Blcmx5IHVzZSBkb3VibGUgY2hhciBuYW1lIGFuZCBlbmdpbmVJRCBwb2ludGVycy4KICAgICAgICAtIGRvIHByb3BlciBvaWQgY29tcGFyaXNvbnMgZm9yIGdldE5leHRzLgogICAgICAgIC0gY2hlY2sgdG8gc2VlIHRoYXQgdXB0ciBpcyBkZWZpbmVkIGJlZm9yZSB1c2luZyBpdCB0byByZXRyaWV2ZSBkYXRhLgogICAgICAgIC0gY2xvbmVGcm9tIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBaZXJvRG90WmVybyBPSUQuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDY6MzUKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gZml4IHVzbV9hZGRfdXNlcigpIGZyb20gYWx3YXlzIGFkZGluZyB0aGUgdXNlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICAgICAtIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0aC9wcml2IHByb3RvY29scyBvbiBuZXcgdXNlcnMuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDc6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9kdXBsaWNhdGVfb2JqaWQoKSB0byBtYWxsb2MgYSBuZXcgb2lkLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEyOjE1OjExCiAgICAtIChJU1NVRVMpOiB1cGRhdGUKCmhhcmRha2VyIDIzIFNlcCA5OCAxMjoyNDowNAogICAgLSAoSVNTVUVTKTogdG9vayBvbmUuCgpoYXJkYWtlciAyMyBTZXAgOTggMTc6NTg6NDkKICAgIC0gKElTU1VFUyk6IGNsb25pbmcvbWFsbG9jIGlzc3VlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE3OjU5OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IGNyZWF0ZWQgdXNtX2Nsb25lRnJvbV91c2VyKCkgdG8gY2xvbmUgc2VjIGluZm8uCgpoYXJkYWtlciAyMyBTZXAgOTggMTg6MDA6MjEKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtQ2xvbmVGcm9tIGFjdHVhbGx5IHdvcmsgKGlzIHNldGFibGUpLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE1OjU3CiAgICAtIChJU1NVRVMpOiBzdG9yYWdlIHR5cGUgaXNzdWVzLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE2OjI0CiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbVVzZXJBdXRoUHJvdG9jb2wgYW5kIHVzbVVzZXJQcml2UHJvdG9jb2wgd3JpdGFibGUuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTA6MDUKICAgIC0gKElTU1VFUyk6IFJvd1N0YXR1cyBxdWVzdGlvbiBhZGRlZC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MDo0NQogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBjcmVhdGUgdXNtX3JlbW92ZV91c2VyKCkgdG8gcmVtb3ZlIGEgdXNlcgogICAgICBmcm9tIGEgbGlzdC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MTo0NgogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21Vc2VyU3RhdHVzIGRlc3Ryb3kncyBhY3R1YWxseSByZW1vdmUgYSB1c2VyLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjUzOjUzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU1OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIG5ldyBzdXBwb3J0IGZ1bmN0aW9ucyBmb3Igc2F2aW5nIHVzZXJzIHRvIHRoZSBwZXJzaXN0ZW50IGNhY2hlLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU3OjAwCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIHVzbVVzZXJTdGF0dXMgaXMgc2V0YWJsZSAodG8gZWl0aGVyIHZvbGF0aWxlIG9yIG5vblZvbGF0aWxlKS4KICAgICAgLSB1c2VycyBjcmVhdGVkIGJ5IHNldCdzIGFyZSBzYXZlZCAoaWYgc2V0IHRvIG5vblZvbGF0aWxlKSBvbiBhZ2VudCBzaHV0ZG93bi4KCmhhcmRha2VyIDI5IFNlcCA5OCAyMDoxMToyMAogICAgLSAoSVNTVUVTKTogZXJyb3IgbWFwcGluZyAoY29leCB3b3JrKS4KCm1hcnogIDEgT2N0IDk4IDEyOjU4OjQyCiAgICAtIChzbm1wLmgsIHNubXB1c20uW2NoXSwgc25tcF9hcGkuW2NoXSk6IGFkZGVkIFVTTSBhcGkgYW5kIHNubXB2M19idWlsZCwgc29tZSB0d2Vha3MgdG8gcGFyc2UgaW4gcHJlcCBmb3Igc25tcHYzX3BhcnNlCgptYXJ6ICAxIE9jdCA5OCAxNDowNTo0NQogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVzIHRvIHNubXB2M19wYXJzZQoKbWFyeiAgNCBPY3QgOTggMTc6MjA6MzAKICAgICAtIChzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMpOiBhZGRlZCBzbm1wdjMgcGFyc2luZyByb3V0aW5lcwoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA1OjAzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA2OjU3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogYnJlYWtkb3duIG9mIHNubXB2M19idWlsZCgpIGludG8gc3ViLWZ1bmN0aW9ucy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMTo1OToyNgogICAgLSAoc25tcHVzbS5jKTogbWFrZSBnZW5lcmF0ZVJlcXVlc3RNc2cgZG8gc29tZXRoaW5nIGdlbmVyaWMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6MDA6MjIKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHJldHVybiBhIHVfY2hhciAqIGluc3RlYWQgb2YgYSBjaGFyICogZm9yIGVuZ2luZUlEcy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjowMTowNAogICAgLSAoc25tcF9hcGkuYyk6IG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjUwOjEwCiAgICAtIChzbm1wX2FwaS5jKTogbGFzdCBvZiBrbm93biBidWdzIGluIHNubXB2M19idWlsZCBmaXhlZCAoYSBwb2ludGVyCiAgICAgIHdhcyBiZWluZyB1c2VkIHR3aWNlIGluIG92ZXJsYXBwaW5nIG5lZWRlZCB0aW1lIHBlcmlvZHMpLgoKbWFyeiAgNyBPY3QgOTggMTM6MDI6NDAKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHYzIHN1cHBvcnQKCm1hcnogIDcgT2N0IDk4IDEzOjA2OjQxCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wdXNtLltjaF0sIHNubXB2My5jKTogYWRkZWQgcGR1IGZpZWxkIHRvIGhvbGQgc2VjIHN0YXRlIHJlZiwgZml4ZWQgdXNtIHByb3RvdHlwZXMsIGFkZGVkIGNoZWNrIGZvciBudWxsIGhlbnQgcmV0dXJuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MDUKICAgIC0gKHNubXB1c20uYyk6IGZsdXNoIG91dCBhIGdlbmVyaWMgcHJvY2Vzc0luY29taW5nTXNnKCkuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MzYKICAgIC0gKHNubXBfaW1wbC5oKTogYWRkIHNlY3VyaXR5TmFtZSB0byB0aGUgYWdlbnQncyBwYWNrZXRfaW5mbyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6Mzg6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtYW55IG1hbnkgYnVnIGZpeGVzIHRvIHYzIHBhcnNlL2J1aWxkIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM5OjE3CiAgICAtICh2YWNtX3ZhcnMuYyk6IHJlY29nbml6ZSB0aGUgc2VjdXJpdHlOYW1lIHdoZW4gVVNNIG1vZGVsIGlzIGluIHVzZS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzoxNzoxMAogICAgLSAoc25tcF9hZ2VudC5jKTogaW5pdGlhbCBwYXNzIGF0IHYzLiAgV2lsbCBmYWlsIG9uIHNlbmRpbmcgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6NDU6MjIKICAgIC0gKHNubXBfYXBpLmMpOiBwYXNzIGluIHRoZSBzZWNfcGFybXMgbGVuZ3RoIHRvIHByb2Nlc3NJbmNvbWluZ01zZwoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjQ2OjA0CiAgICAtIChzbm1wX2FnZW50LmMpOiBidWcgZml4OiB1c2luZyBhbiBhcnJheSBhcyBhIHBvaW50ZXIgKHVzZWQgdG8gYmUgb25lKS4KCmhhcmRha2VyICA3IE9jdCA5OCAyMjo0MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBkZWZhdWx0IHNubXB2MyBwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBzbm1wLmNvbmYgZmlsZS4KCmhhcmRha2VyICA4IE9jdCA5OCAxMDoxMzoyMwogICAgLSAoSVNTVUVTKTogZXZlcnlvbmUgbG92ZXMgaXNzdWVzIQoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjAzOjU3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpkcmVlZGVyICA5IE9jdCA5OCAxMzo1OToxMgogICAgLSAoSVNTVUVTKTogTmVlZCBhIHBhc3MgZm9yIHRyYWRpdGlvbmFsIFVOKlggc3lzdGVtIHByb2dyYW1taW5nIGhvbGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjIzOjI3CiAgICAtIChzbm1wdXNtLmMpOiBnZW5lcmF0ZVJlcXVlc3RNc2coKSBkb2Vzbid0IEFTTiBlbmNvZGUgdGhlIHNlY19wYXJhbXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMTg6MjQ6MDIKICAgIC0gKHNubXBfYXBpLmMpOiByZXN0cnVjdHVyZSB0aGUgcGFja2V0IGJ1aWxkaW5nIHRvIHVzZSBsZXNzIG1lbWNweSdzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjI0OjI2CiAgICAtIChzbm1wX2FnZW50LmMpOiB1c2Ugc25tcF9idWlsZF9wYWNrZXQoKSB0byBjb25zdHJ1Y3QgYWxsIHYzIGRhdGEuCgpkcmVlZGVyIDEyIE9jdCA5OCAwNzoxODo1NgogICAgLSAoSVNTVUVTKTogcHJvb2YgbWVtb3J5IGludm9jYXRpb24vZGlzcG9zYWw7IHB1dCB0aW1lIHN0YW1wcyBpbiBsb2cgZmlsZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6MTk6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KICAgICAgLSBidWcgZml4ZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDI6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBidWcgZml4ZXMgd2l0aCBjb3VudGVycyAocmV0dXJucyB1X2ludCwgRUcpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQ0OjU1CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIG1ha2UgdjMgY29kZSByZXR1cm4gZXJyb3JzIHByb3Blcmx5LgogICAgICAtIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0NToxMQogICAgLSAoc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oLCB1c21TdGF0cy5jLCB1c21TdGF0cy5oKToKICAgICAgLSB1c2UgdGhlIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KCm1hcnogMTIgT2N0IDk4IDA3OjU2OjMwCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IG1lcmdlZCBoZXggdG8gYmluIGZ1bmNzIC0gVGhlcmUgY2FuIGJlIG9ubHkgT25lCgptYXJ6IDEyIE9jdCA5OCAwODoxMTo0NgogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcHVzbS5bY2hdKTogbWVyZ2VkIGhleCB0byBiaW4gZnVuY3MsIGZpeGVkIE1QL1VTTSBhcGksIGltcGxlbWVudGVkIG5vQXV0aE5vUHJpdiBVU00sIGltcGxlbWVudGVkIGVuZ2luZSBwcm9iZSBhbGdvcml0aG0KCmhhcmRha2VyIDEyIE9jdCA5OCAwOToyMzo0OQogICAgLSAoSVNTVUVTKTogbm90ZSBvbiBEYXZpZCdzIGlzc3VlLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDEyOjI2OjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxvb2sgZm9yIC9kZXYvcmFuZG9tIGFuZCBkZWZpbmUgSEFWRV9ERVZfUkFORE9NLgogICAgICAtIGxvb2sgZm9yIGxpYmttdCBhbmQgbGliY3J5cHRvIGFuZCBkZWZpbmUgSEFWRV9MSUJYWFguCgptYXJ6IDEyIE9jdCA5OCAxNTo0NjozNgogICAgLSAoc25tcHVzbS5jKTogZml4ZWQgaGVhZGVyIHNpemUgaXNzdWVzIChkaWZmZXJlbmNlIGJldHdlZW4gYXNuX2J1aWxkX2hlYWRlciBhbmQgYXNuX2J1aWxkX3NlcXVlbmNlKQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIxOjU2OjQyCiAgICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBtYWtlIGNhbGN1bGF0ZV90aW1lX2RpZmYgdGFrZSBhIHBvaW50ZXIuCgpoYXJkYWtlciAxMiBPY3QgOTggMjE6NTk6NTMKICAgIC0gKHNubXB2My5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MDQ6MDYKICAgIC0gKHNubXBfY2xpZW50LmMpOiBidWcgZml4ZXM6CiAgICAgIC0gc25tcF9zeW5jaF9pbnB1dCgpIG5lZWRzIHRvIGNsb25lIGEgcmVwb3J0IHBkdSB0b28uCiAgICAgIC0gc25tcF9jbG9uZV9wZHUoKSBuZWVkcyB0byBjb3B5IGNvbnRleHRFbmdpbmVJRCwgY29udGV4dE5hbWUsIGFuZAogICAgICAgIHNlY3VyaXR5TmFtZQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjEyOjUwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtYWtlIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYygpIHJldHVybiB0aGUgY2hhbmdlZCB2YWx1ZS4KICAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uOiBzbm1wX2ZyZWVfdmFyYmluZCgpIHRvIGZyZWUgYSBsaXN0LgogICAgICAtIFxuJ3MgdG8gdGhlIGVuZCBvZiB0aGUgbmV3IGRlYnVnZ2luZyBtZXNzYWdlcyBmb3IgZW5naW5lSUQgZGlzY292ZXJ5LgogICAgICAtIE1lcmdlIHJlc3BvbnNlL3JlcG9ydCBoYW5kbGluZyB0byBtYWtlIHJlcG9ydCdzIGNhbGwgdGhlaXIKICAgICAgICBjYWxsYmFjayBhcyB3ZWxsIChlbmdpbmVJRCBkaXNjb3Zlcnkgd2FzIG5ldmVyIHJldHVybmluZykuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MTk6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGluY29ycmVjdCBjb21tZW50LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjIyOjM2CiAgICAtIChJU1NVRVMpOiB3aWVyZCBtZW1vcnkgcXVlc3Rpb24uCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjM6MTYKICAgIC0gKHN5c3RlbS5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGhhbmRsZSBlbmdpbmVJRCBkaXNjb3ZlcnkgcmVxdWVzdHMuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6NTg6MjYKICAgIC0gKHVzbVVzZXIuYyk6IG5ldyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHVzZXJMaXN0LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU4OjU1CiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG5ldyBmdW5jdGlvbiB1c21fY2hlY2tfc2VjTGV2ZWwoaW50LCBzdHJ1Y3QgKnVzbVVzZXIpOwoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU5OjM2CiAgICAtIChzbm1wX2FnZW50LmMpOiBoYW5kbGUgdW5rbm93blNlY3VyaXR5TmFtZSBhbmQgdW5zdXBwb3J0ZWRTZWN1cml0eUxldmVsLgoKaGFyZGFrZXIgMTMgT2N0IDk4IDEzOjI3OjE0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBvcHRpb25zOiAtLWRpc2FibGUtcHJpdmFjeSwgLS1lbmFibGUtdjJwLW1kNS4KCmhhcmRha2VyIDEzIE9jdCA5OCAxMzozMToyMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjb21tZW50IGZvcm1hdHRpbmcuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfYWRkX3ZhciBzZXQgdGhlIHNpemUgb2YgdGhlIG9pZCBidWZmZXIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbW92ZWQgdGhlIGRlZmF1bHQgdXNlckxpc3QgaW50byB0aGUgbGlicmFyeS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMToyOQogICAgLSAodXNtVXNlci5jKTogdXNlIHRoZSBuZXcgbGlicmFyeSBkZWZhdWx0IHVzZXIgbGlzdC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMjo1OAogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSB1c2UgdGhlIG5ldyBsaWJyYXJ5IGRlZmF1bHQgdXNlciBsaXN0LgogICAgICAtIGRvbid0IGZyZWUgYSBub25leGlzdGVudCBwZHUgKGl0IG9ubHkgZXhpc3RzIGZvciB2MyByZXF1ZXN0cykuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6NDc6NTYKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2Ugc3VyZSBwZHUtPnNlY3VyaXR5TmFtZSBpcyBudWxsIHRlcm1pbmF0ZWQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTc6NTI6MjMKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gbmV3IGFyZ3VtZW50cyB0byBjb25maWd1cmUgdG8gc2V0IENGTEFHUyBhbmQgTElCUzoKICAgICAgICAtIC0td2l0aC1LTVQ9cGF0aAogICAgICAgIC0gLS13aXRoLVNTTGVheT1wYXRoCiAgICAgIC0gZml4IHRvIGFnZW50L21pYmdyb3VwL01ha2VmaWxlIHRvIGtlZXAgdGhlIGFib3ZlIGZyb20gZ2V0dGluZyB0aGUKICAgICAgICB3cm9uZyBhc24xLmggZnJvbSB0aGUgU1NMZWF5IHBhY2thZ2UuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDE6MDcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGttdC5oCiAgICAgIC0gcmUtb3JkZXIgQ1BQRkxBR1MgdG8gcHV0IC1JIGZsYWdzIGxhc3QuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDU6NTEKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gbW92ZSB1c21fcGFyc2VfY29uZmlnX3VzbVVzZXIgdG8gdGhlIGxpYnJhcnkuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDc6NDgKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBpbmNsdWRlIHNubXB1c20uaAoKZHJlZWRlciAxNSBPY3QgOTggMTI6MDI6NDAKICAgIC0gQmFzZSBmb3IgU0NBUEkgKyBzb21lIGZvcm1hdHRpbmcgb24gdGhlIHBhdGggdG8gc25tcHYzIHN0YXJ0dXAgYW5kIHNodXRkb3duLgogICAgLSBTaHVmZmxpbmcgaW4gaGVhZGVyIGZpbGVzIHRvIGRlZmVhdCB3YXJuaW5ncyBvZiAjZGVmaW5lIHJlZHVuZGFuY2llczoKICAgIAlub3RhYmx5LCBzL2ZyZWVic2QqLmggYW5kIHNubXBsaWIvc3lzdGVtLmgKICAgIC0gRGVidWcgJiB0aW5pIHRvb2xiYWcgaW4gc25tcGxpYi97ZGVidWcsdG9vbHN9LioKICAgIC0gQ2hhbmdlZCBjb25maWd1cmUgb3B0aW9uIC0tZW5hYmxlLXYycC1tZDUgdG8gLS1lbmFibGUtaW50ZXJuYWwtbWQ1LgogICAgLSBDb25zb2xpZGF0ZWQgbGlicmFyeSBzeXN0ZW0gYW5kIGxvY2FsIGhlYWRlciBpbmNsdWRlIHNlcXVlbmNlcyBpbnRvCiAgICAJc25tcGxpYi9hbGxfKi5oIGZpbGVzLiAgUG9zc2libHkgYmV0dGVyIHNvbHV0aW9ucyBmb3IgdGhpcy4uLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI0OjUyCiAgICAtICh1c21Vc2VyLmMpOiByZW1vdmVkIHVzbV9wYXJzZV9jb25maWdfdXNtVXNlciB0aGF0IERhdmlkIHB1dCBiYWNrIGJ5CiAgICAgIGFjY2lkZW50IHdoZW4gZG9pbmcgZm9ybWF0aW5nLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjE3CiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oKTogYWRkZWQgbGVuZ3RoIHRvIGVuZ2luZUlELgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjU4CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogbWFrZSBjb3B5X3dvcmQgcmV0dXJuIGEgcG9pbnRlci4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNjoyMQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCk6IG1vdmUgI2luY2x1ZGVzIGZyb20gLmggdG8gLmMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6Mjc6MDMKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbmV3IGNvbmZpZyBvcHRpb25zIHRvIGNoYW5nZSBrZXlzLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI3OjU4CiAgICAtIChzbm1wdjMuYyk6IGRvbid0IGNhbGwgaW5pdF9rbXQoKSB1bmxlc3MgSEFWRV9MSUJLTVQgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0MjowMAogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCk6IG1vdmUgI2luY2x1ZGUgZnJvbSAuaCB0byAuYy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0Nzo1NgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIHVzZSBkb19rZXljaGFuZ2UoKSB0byBpbXBsZW1lbnQgdGhlIGtleSBjaGFuZ2Ugd3JpdGUgbWV0aG9kcy4KICAgICAgLSBhIGJpdCBvZiAtV2FsbCBjbGVhbnVwLgoKZHJlZWRlciAxNiBPY3QgOTggMTE6Mjg6MTIKICAgIC0gVXBkYXRlZCBTQ0FQSSBjcnlwdGluZyBmdW5jdGlvbnMgdG8gaWRlbnRpZnkgdHJhbnNmb3JtcyBPSURzIG5vdCAjZGVmaW5lJ3MuCiAgICAtIE1vdmVkICJnbG9iYWwiIGRlZmluaXRpb25zIG9mIE9JRCB0cmFuc2Zvcm1zIHRvIHNubXB1c20uaCwgYW5kIG91dCBvZgogICAgCXVzbVVzZXIuYyBhbmQgc25tcHVzbS5jLgogICAgLSBzY19nZW5lcmF0ZV9rZXllZF9oYXNoKCkgc3RhbmRzIGFzIGEgZ29vZCBleGFtcGxlIG9mIHdoYXQgb3RoZXIgZnVuY3Rpb25zCiAgICAJd2lsbCBsb29rIGxpa2UuCgpkcmVlZGVyIDE2IE9jdCA5OCAxMTo1MDowOQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCkgT3V0cHV0IGJ1ZmZlciBhcmd1bWVudHMgZm9yIChlbnxkZSljcnlwdGluZyBhcmUKICAgIAlzaW5nbGUtcG9pbnRlcnMuCgpsZXdpcyAxNiBPY3QgOTggMTM6MTU6MTYKICAgIC0gLSAoc25tcHVzbS5oKToKICAgICAgLSBBZGRlZCBVU01fRVJSIHN5bWJvbHMgdXNlZCBieSB1c21fZ2VuZXJhdGVfb3V0X21zZwoKbGV3aXMgMTYgT2N0IDk4IDEzOjIwOjA3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBSZXdyb3RlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnLCByZW5hbWluZyBvbGQgaW1wbGVtZW50YXRpb24gdG8KICAgICAgICB1c21fZ2VuZXJhdGVfb3V0X21zZ19OVUxMCiAgICAgIC0gVGhpcyBjb2RlIGNvbXBpbGVkIG9uIEZyZWVCU0QsIG5vdCB0ZXN0ZWQgZm9yIGxpbmtpbmcgb3IgcnVubmluZwogICAgICAtIEFkZGVkIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgaW5kaWNpZXMgKGFzbl9wcmVkaWN0X2ludF9sZW5ndGgsCiAgICAgICAgYXNuX3ByZWRpY3RfbGVuZ3RoLCB1c21fY2FsY19vZmZzZXRzKSBhbmQgdG8gbWFrZSB0aGUgQ0JDLURFUwogICAgICAgIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXNtX3NldF9zYWx0KS4KCmRyZWVkZXIgMTggT2N0IDk4IDIxOjE0OjA5CiAgICAtIFNDQVBJIGNvZGUgY29tcGxldGUsIGJ1dCBub3QgY29tcGxldGVseSB0ZXN0ZWQuCiAgICAJQWRkZWQgdGVzdGluZy8gZGlyZWN0b3J5LgogICAgCVZlcmlmaWVkIHRoYXQgRWQncyByZWNlbnQgY2hhbmdlcyBjb21waWxlIGNsZWFubHkuCiAgICAJVHJpZWQgdG8gcGF0Y2ggdXAgImNyaXRpY2FsIiAtV2FsbCB3YXJuaW5ncy4KCmhhcmRha2VyIDE5IE9jdCA5OCAwNzoxMDoyNwogICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlIC1XYWxsIHJlcXVpcmVtZW50LgoKZHJlZWRlciAxOSBPY3QgOTggMTU6MTI6NTcKICAgIC0gQ29yZSBTQ0FQSSByb3V0aW5lcyBhcHBlYXIgc291bmQuICB0ZXN0aW5nLyBkaXJlY3RvcnkgaXMgbm8gbG9uZ2VyCiAgICAJY29tbWVudGVkIG91dC4gIFNOTVB2MyBzdHlsZSBrZXkgbWFuaXB1bGF0aW9ucyB1bnRlc3RlZCB5ZXQuCiAgICAJQ3JlYXRlZCAoPykgYSBzbGV3IG9mIG5ldyB3YXJuaW5ncyBmcm9tIGZpbGVzIGVhcmx5IGluIGNvbXBpbGUgc2VxdWVuY2UuCgpkcmVlZGVyIDIwIE9jdCA5OCAxMTozODo0MgogICAgLSBUZXN0cyBmb3IgZ2VuZXJhdGVfS3UgYW5kIGdlbmVyYXRlX2t1bC4gICh0ZXN0aW5nL2t0ZXN0IC1oIGZvciBoZWxwLikKICAgIAlDbGVhbmVkIHVwIG5ldyBzZXQgb2YgImNyaXRpY2FsIiB3YXJuaW5ncyAtLSBtb3N0bHkgYWRkaW5nICNpbmNsdWRlJ3MuCiAgICAJRml4ZWQgS01UL2FwcHMvcmFuZHRlc3QuYyBzbyBpdCBjb21waWxlcyB1bmRlciBMaW51eC4KCm1hcnogMjEgT2N0IDk4IDA4OjE4OjAzCiAgICAgLShzbm1wX2FwaS5bY2hdKTogYWRkIGZpZWxkcyBmb3IgYXV0aEtleSBhbmQgcHJpdktleQoKbGV3aXMgMjEgT2N0IDk4IDEyOjA3OjE2CiAgICAtIC0gKHNubXAuaCkKICAgICAgLSBBZGRlZCBTTk1QX0VSUl8gZXJyb3Igc3ltYm9saWMgY29uc3RhbnRzIGZvciB0aGUgYXV0aC9wcml2IChVU00pIG1vZHVsZQogICAgICAgIHJlcG9ydGVkIGVycm9ycy4KICAgICAgLSBVc2VkIHZhbHVlcyAxOS0yNywgdXBkYXRlZCBNQVhfU05NUF9FUlIgdG8gMjcuCgpsZXdpcyAyMSBPY3QgOTggMTI6MDg6MjQKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHN5bWJvbGljIGNvbnN0YW50cyBmb3IgZXJyb3JzIGZvdW5kIHByb2Nlc3NpbmcgaW5jb21pbmcgbWVzc2FnZXMuCiAgICAgIC0gRXF1YXRlZCB0aGUgc3ltYm9scyB3aXRoIHRob3NlIGFkZGVkIHRvIHNubXAuaAoKaGFyZGFrZXIgMjEgT2N0IDk4IDEyOjEwOjAzCiAgICAtIChzbm1wX2FwaS5oKTogYWRkZWQgQVNOL1NOTVAgY291bnRlcnMgdG8gdGhlIGNvdW50ZXIgbGlzdC4KCm1hcnogMjEgT2N0IDk4IDEyOjUwOjI0CiAgICAgLShzbm1wX2FwaS5bY2hdKTogY29ycmVjdGx5IGFkZCAjZGVmaW5lIHNpemVzIGZvciBhdXRoS2V5IGFuZCBwcml2S2V5CgptYXJ6IDIxIE9jdCA5OCAxMzozODo1NwogICAgIC0oc25tcF9hcGkuW2NoXSk6IGFkZGVkIGF1dGgvcHJpdiBwcm90b2NvbCB0eXBlIGZpZWxkcyB0byBzZXNzaW9uCgptYXJ6IDIxIE9jdCA5OCAxMzo0OToxMQogICAgIC0oc25tcF9hcGkuYyk6IGFkZGVkIGNhc3QgZm9yIGludGVybmFsIHBkdSAoaW50ZXJuYWwgcGR1IHNob3VsZCBiZSBlbGltaWFudGVkIHNvbWVkYXkpCgpoYXJkYWtlciAyMSBPY3QgOTggMTM6NTM6MzgKICAgIC0gKHNubXBfYXBpLmgpOiBTVEFUX01BWF9TVEFUUyAtPiBNQVhfU1RBVFMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTc6NTQ6MDgKICAgIC0gKHNubXB2My5jKTogcmVtb3ZlIHNubXBfcGVycm9yKCkgZGVmaW5lZCBhcyBwZXJyb3IoKS4gIEl0J3MgYSByZWFsIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjU4OjA4CiAgICAtIChhc24xLmMpOiBhc25fYnVpbGRfc3RyaW5nOiBhbGxvdyBhIG51bGwgc3RyaW5nIHRvIGJ1aWxkIGEgMDAgcGFkZGVkIHN0cmluZy4KCmhhcmRha2VyIDIxIE9jdCA5OCAxODowMDowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZW5naW5lSUQgZGlzY292ZXJ5IGRlYnVnZ2luZyBtZXNzYWdlcy4KICAgICAgLSB6ZXJvIGxlbmd0aCBjb250ZXh0TmFtZXMgb2suCiAgICAgIC0gc2V0IG1heCBsZW5ndGggYmVmb3JlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTk6MDQ6MzUKICAgIC0gKHNubXBfYXBpLmMpOiBtb3ZlIHRoZSBlbmdpbmVJRCBkaXNjb3ZlcnkgdG8gc25tcF9zZXNzX29wZW4oKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxOTowNToxMgogICAgLSAoc25tcF9hcGkuaCk6IHN5bmNoIHNubXBfcGR1IGFuZCBpbnRlcm5hbF9zbm1wX3BkdS4KCmRyZWVkZXIgMjEgT2N0IDk4IDE5OjU1OjE1CiAgICAtIFNob29rIHRoZSBidWdzIG91dCBvZiBrZXkgbWFuaXB1bGF0aW9uIHJvdXRpbmVzIChnZW5lcmF0ZV9rdWwsIGdlbmVyYXRlX0t1KS4KICAgIAlDb21wbGV0ZWQgYW5kIHRlc3RlZCBLZXlDaGFuZ2UgVEMgY29kZSAoe2VuY29kZSxkZWNvZGV9X2tleWNoYW5nZSkuCiAgICAJQ3JlYXRlZCBpbml0aWFsIGVsZW1lbnRzIG9mIGFuIGF1dG9tYXRlZCB0ZXN0IGhhcm5lc3MgaW4gdGVzdGluZy8uCiAgICAJQ3JlYXRlZCBkYXRhIGZpbGVzIGFuZCB0ZXN0IHNjcmlwdHMgdG8gZGVtb25zdHJhdGUgY29tcGxpYW5jZS4KICAgIAlNaXNjZWxsYW5lb3VzIGFkZGl0aW9ucyB0byBzbm1wbGliL3Rvb2xzLj8sIHNvbWUgdGVtcG9yYXJ5L3RyYW5zaXRpb25hbC4KCm1hcnogMjEgT2N0IDk4IDE5OjU4OjExCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhdXRoL3ByaXYgcHJvdG8gZmxhZ3MsIGFkZCBhdXRoIHByaXYga2V5IGZsYWdzCgptYXJ6IDIxIE9jdCA5OCAyMDoxOTowOAogICAgLSAoc25tcF9hcGkuW2NoXSk6IHVwZGF0ZWQgYXV0aC9wcml2IHByb3QgYW5kIGtleSBmaWxlZHMgaW4gc2Vzc2lvbiwgYWRkZWQgc3Vwb3J0IGluIHNubXBfc2Vzc19vcGVuIGFuZCBjbG9zZSAoeWFua2VkIGZpZWxkcyBmcm9tIFBEVSAtIGRpZCBJIGRvIHRoYXQ/KQoKaGFyZGFrZXIgMjEgT2N0IDk4IDIxOjIxOjQxCiAgICAtIChsY2RfdGltZS5jKTogbWlub3Igd2FybmluZyBmaXhlcy4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMToyMjowNwogICAgLSAodG9vbHMuYywgdG9vbHMuaCk6IG5ldyB0b29sOiBtZW1kdXAoKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMjowODowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZ2VuZXJhdGUgYSB1c20gdXNlciBmcm9tIHNlc3Npb24gZGF0YSBpZiBuZWVkZWQuCiAgICAgIC0gY2hlY2sgdGhlIHJlc3VsdCBmcm9tIHRoZSB1c20gYW5kIGZhaWwgaWYgaXQgZG9lcy4KCm1hcnogMjIgT2N0IDk4IDA4OjAyOjExCiAgICAgLShzbm1wX2FwaS5jKTogYWRkZWQgREVCVUdQIGNvZGUgdG8gdHJhY2UgbWVzc2FnZSB2ZXJzaW9uIGFuZCBzZWNMZXZlbCBmb3IgZGVtbwoKbGV3aXMgMjIgT2N0IDk4IDEzOjM3OjM0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3QgYSB3b3JraW5nL3Rlc3RlZCB2ZXJzaW9uLCBidXQgaXQgY29tcGlsZXMuCiAgICAgIC0gRml4ZWQgb25lIGJ1ZyAtICImIiB0byAiPT0iIGluIGFuIGlmKCkKICAgICAgLSBEaWQgbm90IGFsdGVyIGNvZGUgdG8gZGVueSBudWxsIGVuZ2luZSBpZCB1c2VycwogICAgICAtIEFkZGVkIG11Y2ggY29kZSBpbiBwcm9jZXNzIGluY29taW5nIG1lc3NhZ2UKICAgICAgLSBOZXcgdXNlIG9mIGVycm9ycyBhbmQgREVCVUdQCiAgICAgIC0gU3RpbGwgd2FpdGluZyBvbiB1cGRhdGVzIHRvIGxjZF90aW1lLmggdG8gaW1wbGVtZW50CiAgICAgICAgc3RlcCAjMyBvZiBSRkMgMjI3NCwgczMuMi4KCmRyZWVkZXIgMjMgT2N0IDk4IDA5OjQ1OjQ3CiAgICAtIExDRCBUaW1lIEFQSSBwcm90b3R5cGVzIGFyZSBjb21wbGV0ZS4gIDkwJSBzdGFibGUuCiAgICAJRHJhZnQgb2YgYXV0b21hdGVkIHRlc3RpbmcgaGFybmVzcyBpbiB0ZXN0aW5nLy4KICAgIAkJVXNlIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCB0byBydW4gYWxsIGN1cnJlbnQgdGVzdHMuCgpsZXdpcyAyMyBPY3QgOTggMTE6Mzg6MjUKICAgIC0gLSAobGNkX3RpbWUuaCkKICAgICAgLSBhZGRlZCBkZWZpbml0aW9ucyBmb3IgVFJVRSBhbmQgRkFMU0UgKGlmIG5vdCBwcmV2aW91c2x5IGRlZmluZWQpCiAgICAgIC0gZml4ZWQgYSBjb21waWxhdGlvbiBidWcgaW4gdGhlIGVuc3VyZSBlbnRyeSBtYWNybwoKbGV3aXMgMjMgT2N0IDk4IDExOjQ3OjM3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBBZGRlZCB0aGUgc3RlcCAzIGNvZGUgdG8gcHJvY2VzcyBvdXRnb2luZyBtZXNzYWdlcyBmdW5jdGlvbgogICAgICAtIFN0aWxsIHVuLXJ1bgoKZHJlZWRlciAyMyBPY3QgOTggMTU6Mzk6MDIKICAgIC0gQ29tcGxldGUgY29kZSBmb3IgTENEIHRpbWUgQVBJLiAgQXdhaXRpbmcgc2VyaW91cyB0ZXN0cy4KICAgIAlDaGFuZ2VkIHNubXB2M19nZXRfZW5naW5le1RpbWUsQm9vdHN9IHRvIHNubXB2M19sb2NhbF9zbm1wRW5naW5lKgoKZHJlZWRlciAyNCBPY3QgOTggMjM6MDc6NTQKICAgIC0gU2hvb2sgYnVncyBvdXQgb2YgTENEIHRvIG1hbmFnZSBlbmdpbmUgSURzL3RpbWUgKCJ0ZXN0aW5nL2V0ZXN0IC1hIikuCiAgICAJQWRkZWQgYSBmdW5jdGlvbiBkdW1wX3NubXBFbmdpbmVJRCAoInRlc3RpbmcvbWlzY3Rlc3QgLTEiKS4KICAgIAkJTWFkZSBzcHJpbnRfaGV4c3RyaW5nIG5vdC1zdGF0aWMuLi4gKHRlbXBvcmFyeSBjaGFuZ2UgSSB0aGluaykuCiAgICAJQWRkZWQgY29tbWVudHMvcXVlc3Rpb25zIGFib3V0IGJ1aWxkaW5nIHNubXBFbmdpbmVJRC4gIChzbm1wdjMuYykKICAgIAlBZGRlZCBUUlVFL0ZBTFNFIGRlZmluZXMgdG8gc25tcHVzbS5jLiAgKFRoZXNlIHNob3VsZCBiZSBzdGFuZGFyZGl6ZWQuKQogICAgCUFkZGVkIFNOTVBfTUFYQlVGX1NNQUxMLiAgKHRvb2xzLmgpCiAgICAJQ2xlYW5lZCB1cCAoY2xhcmlmaWVkPykgdGVzdCBoYXJuZXNzIGRlc2NyaXB0aW9uLgoKbWFyeiAyNSBPY3QgOTggMTQ6NDg6MDYKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogbW92ZSBrZXkgZ2VuZXJhdGlvbiAoZ2VuZXJhdGVfS3UpIGFmdGVyIGluaXRfc25tcAoKaGFyZGFrZXIgMjUgT2N0IDk4IDIwOjU5OjMzCiAgICAtIChzbm1wX2FnZW50LmMpOiBkZWJ1Z2dpbmcgcGFyc2UvYnVpbGQgc3RhdGVtZW50cyBhbmQgZXJybm8gZml4ZXMuCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDA6MTUKICAgIC0gKHN5c3RlbS5oKTogY3JlYXRlZCBERUJVR1BMIHRvIGRvIERFQlVHUCB3aXRoIGZpbGUvbGluZSBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjAwCiAgICAtICh0b29scy5jKTogY2hlY2sgbWVtZHVwKCkgZm9yIE5VTEwgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjU4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogYnVnIGZpeGVzOiBtaXNjIE5VTEwgY2hlY2tzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAyOjQwCiAgICAtIChzbm1wX2NsaWVudC5jKTogZGVmYXVsdCB0byBzZXR0aW5nIHNlY05hbWVMZW4gYW5kIGNvbnRleHROYW1lTGVuIHRvIC0xLgoKZHJlZWRlciAyNSBPY3QgOTggMjI6Mjg6MTgKICAgIC0gTW9zdGx5IHNodWZmbGluZyBwcmUtZXhpc3RpbmcgdGhpbmdzIGFib3V0IC0tCiAgICAgICAgICAgIFVzZWQgVVNFX0lOVEVSTkFMX01ENSBwdXQga210X2hhc2ggcGFyYWxsZWwgd2l0aCB2MnAgTUQ1IGhhc2guCiAgICAgICAgICAgIHNjX2VuY3J5cHQvc2NfZGVjcnlwdCBub3cgYWxzbyByZXR1cm46IFNOTVBFUlJfU0NfTk9UX0NPTkZJR1VSRUQuCiAgICAgICAgICAgIFRlc3RlZCBhbmQgImZpeGVkIiBidWlsZCB3aXRoIG9uJm9mZiBzZXR0aW5ncyBvZjoKICAgICAgICAgICAgICAgICAgICBVU0VfVjJQQVJUWV9QUk9UT0NPTCwgU0NBUElfQVVUSFBSSVYsIFVTRV9JTlRFUk5BTF9NRDUuCiAgICAgICAgICAgIEdyZWF0ZXN0IGRhbWFnZSBkb25lIGluIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLgogICAgICAgICAgICBSZXBhaXJlZCB1c2Ugb2Yga2V5IG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgaW4gc25tcHVzbS5jLgogICAgICAgICAgICAgICAgICAgIChDb3VsZCB1c2UgcGVlciByZXZpZXcgYXMgbXkgZXhwZWN0YXRpb25zIG9mIHVzZSBtYXkgZGlmZmVyLikKICAgICAgICAgICAgQWRkZWQgKGFuZCByZW1vdmVkIDEpIHNvbWUgWFhYJ3MgaW4gcGFydHkgY29kZS4uLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM0OjAzCiAgICAtIChzbm1wdXNtLmMpOiBlbmFibGUgTlVMTCBlbmdpbmVJRHMgaW4gdXNlciBzdG9yYWdlLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM3OjAzCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBjcmVhdGluZyB1c2VycyBmcm9tIGEgc2Vzc2lvbjogIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbigpLgogICAgICAtIG1ha2UgcHJvYmluZyB1c2UgdGhlIGFib3ZlIHR3aWNlIChvbmNlIGZvciBOVUxMIGVuZ2luZUlEIGFuZCBvbmNlCiAgICAgICAgZm9yIHByb2JlZCBlbmdpbmVJRCkuCiAgICAgIC0gYnVnIGZpeDogIHNubXAgdmVyc2lvbiBwcmludGVkIGluIGRlYnVnZ2luZyB3YXMgb2ZmIGJ5IC0xLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIwOjQxOjE5CiAgICAtIChzbm1wX2FnZW50LmMpOiBzZXQgY29udGV4dCBuYW1lIG9uIGVuZ2luZUlEIHJlcG9ydC4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMDo0MjowNgogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgImluaXRpYWwiIHVzZXIgZm9yIGVuZ2luZUlEOm51bGwuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTI6MTcKICAgIC0gKGtleXRvb2xzLmMpOiBjaGVjayBmb3IgTlVMTCBwb2ludGVyLCBub3QgKnBvaW50ZXIuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTU6MDEKICAgIC0gKHNubXB1c20uYyk6IG1hbGxvYyBrdWwgc3BhY2UgaW4gdXNtX3NldF9wYXNzd29yZCgpLgoKZHJlZWRlciAyOCBPY3QgOTggMDk6Mzk6NTcKICAgIC0gZ2V0X2VuZ2luZXRpbWUoKSBub3cgcmV0dXJucyA8MCwwPiB0dXBsZSBmb3IgTlVMTC8iIi9sZW49MCBlbmdpbmVJRHMuCiAgICAJc2Nfe2NoZWNrLGdlbmVyYXRlfV9rZXllZF9oYXNoKCkgcHJvY2VzcyBoYXNoZXMgPD0gaGFzaCBvdXRwdXQgbGVuLgogICAgCQkoU3RhYmxlLCBidXQgZXhwZWN0IGFuIGV4cGFuZGVkIHRlc3QgaW4gc2NhcGl0ZXN0LmMgc29vbi4pCiAgICAJTWlzYzogUHV0IE1ENV9IQVNIU0laRV9CWVRFUyBpbiBwYXJ0eS5oOyBTTk1QX1pFUk8gaW4gdG9vbHMuaAoKbGV3aXMgMjggT2N0IDk4IDEzOjE2OjU0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBEZWJ1Z2dlZCBydW5uaW5nIG9mIHVzbV9nZW5lcmF0ZS4uLiBmdW5jdGlvbiBzbyB0aGF0IGl0IHJ1bnMgd2l0aCBubwogICAgICAgIGF1dGhlbnRpY2F0aW9uIC8gbm8gcHJpdmFjeSBvcHRpb25zLiAgKERvbid0IGhhdmUgYSB3YXkgeWV0IHRvIHRlc3QKICAgICAgICB3aXRoIHRoZSBmYW5jeSBzZWN1cml0eS4pCiAgICAgIC0gQWRkZWQgYSBsaW5lIGZvciBkZWJ1Z2dpbmcgd2hpY2ggc2V0cyBhbGwgYnl0ZXMgb2YgdGhlIHNlY3VyaXR5IGhlYWRlcgogICAgICAgIGFuZCB0aGUgUERVJ3MgcmVzdGluZyBwbGFjZSB0byBGRiAtIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seS4gIFRoaXMKICAgICAgICBsZXRzIG1lIHNlZSB3aGF0IGJ5dGVzIHJlbWFpbiB0byBiZSBwdW5jaGVkIGluLiAgVGhpcyBsaW5lIGlzIGZsdXNoIGxlZnQKICAgICAgICBpbiB0aGUgZmlsZSwgaW5kaWNhdGluZyB0aGF0IGl0IGlzIHRvIGJlIGN1dCBvdXQgaWYgd2UgcmVhY2ggcmVsZWFzZS4KICAgICAgLSBBZGRlZCAiZW1lcmdlbmN5X3ByaW50LCIgYW4gdW5jYWxsZWQgcm91dGluZSBJIGxpa2UgdG8gaGF2ZSB3aGVuIHJ1bm5pbmcKICAgICAgICBpbiBnZGIuICBJdCBkdW1wcyBhIGZpZWxkIG9mIHggYnl0ZXMgaW4gaGV4LCAyNSB2YWx1ZXMgdG8gYSBsaW5lLgoKZHJlZWRlciAyOCBPY3QgOTggMTQ6MTk6NTIKICAgIC0gQm91bmRlZCBLTVQgY29kZSB3aXRoICNkZWZpbmUncyBmb3IgSEFWRV9MSUJLTVQKICAgIAktIFdpbGwgbm90IGNvbXBpbGUgd2l0aG91dCBlaXRoZXIgSEFWRV9MSUJLTVQgLW9yLSBVU0VfSU5URVJOQUxfTUQ1LgogICAgCS0gQWRkZWQgbmV3IGVycm9yIGNvZGU6IFNOTVBFUlJfS1RfTk9UX0FWQUlMQUJMRS4KICAgIAktIEFkZGVkIGEgdGVzdCBmb3IgcHJldmlvdXMgY2hhbmdlcyB0byBzY18qX2tleWVkX2hhc2goKSBmdW5jdGlvbnMuCiAgICAJCShBdWdtZW50ZWQgdGVzdF9kb2tleWVkaGFzaCgpIGluIGtleW1hbmFnZW1lbnQuYy4pCgpsZXdpcyAyOSBPY3QgOTggMDk6NTY6MDgKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE1hZGUgZml4ZXMgdG8gcHJvY2VzcyBpbmNvbWluZwogICAgICAtIEJlZ2FuIHRvIGFkZCBjb2RlIGZvciB0aGUgc2VjdXJpdHkgc3RhdGUgcmVmZXJlbmNlCgpsZXdpcyAyOSBPY3QgOTggMTA6Mjc6MzcKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHByb3RvdHlwZSBmb3Igc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQKCmxld2lzIDI5IE9jdCA5OCAxMDoyOToxNgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgc29tZSBvZiBXZXMnIHJlcG9ydGVkIHByb2JsZW1zLgogICAgICAtIEFkZGVkIGNvZGUgdG8gc3RvcmUgc2VjU3RhdGVSZWYKICAgICAgLSBTdGlsbCBuZWVkIHRvIHVzZSBpdCBpbiBnZW5lcmF0ZV9vdXRnb2luZwoKbGV3aXMgMjkgT2N0IDk4IDE0OjMwOjE4CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3cgbWFrZXMgdXNlIG9mIHRoZSBzdG9yZWQgc2VjU3RhdGVSZWYgaW4gZ2VuZXJhdGUgb3V0Z29pbmcKICAgICAgLSBJIGhvcGUgLSBJIHN0aWxsIGhhdmVuJ3QgYmVlbiBhYmxlIHRvIGdldCBtZXNzYWdlIGJhY2sgYW5kIGZvcnRoLAogICAgICAgIGl0J3MgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBydW4gdGhlIHNubXBkIHN0dWZmIEkgZ3Vlc3MuCgptYXJ6IDI5IE9jdCA5OCAxNTowNjo0OQogICAgYWRkICNpZGVmIGdhdXJkcyBmb3Iga210LmggYW5kIGttdF9hbGdzLmggZGVwZW5kZW50IG9uIGV4aXN0ZW5jZSBvZiBoZWFkZXJzIHJhdGhlciB0aGFuIGxpYmttdAoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ1OjI0CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBhIHN0YXRlIHJlZmVyZW5jZSBmcmVlIHJvdXRpbmUKICAgICAgLSBDaGFuZ2VkIG5hbWUgb2YgdGhlIHJvdXRpbmUgdG8gc2V0IHRoZSByZXBvcnQtb24tZXJyb3IgZmxhZyBzbyB0aGF0IGl0CiAgICAgICAgYmVnaW5zIHdpdGggInVzbV8iLgoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ2OjUyCiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBNb2RpZmllZCB0aGUgZnJlZSBzdGF0ZSByZWYgcm91dGluZSB0byB0YWtlIGEgdm9pZCAqIGluc3RlYWQgb2YgYQogICAgICAgIHN0cnVjdCB3aGF0ZXZlciAqLCB0aGlzIHBsdXMgYWRkaW5nIGl0IHRvIHRoZSAuaCBmaWxlIG1ha2VzIGlzIHVzZWFibGUKICAgICAgICBieSB0aGUgTWVzc2FnZSBQcm9jZXNzb3IuCgpsZXdpcyAzMCBPY3QgOTggMDc6MzQ6MjYKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIFJlbW92ZWQgYSBwb3RlbnRpYWwgbWVtb3J5IGhvbGUgKHJldHVybmluZyBvbiBlcnJvciBmcm9tIHRoZSBwcm9jZXNzCiAgICAgICAgaW5jb21pbmcgcm91dGluZSB3aXRob3V0IGZyZWVpbmcgdGhlIHNlY3VyaXR5IHN0YXRlIHJlZmVyZW5jZSkuCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6Mzg6NTMKICAgIC0gKHNubXB2My5jKTogc25tcF9wZXJyb3IoKSAtPiBwZXJyb3IoKSBbIm1hbGxvYyJdLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjQzOjUyCiAgICAtIChzbm1wZC5jKToKICAgICAgLSBNYWtlIC1EIGEgdG9nZ2xlLgogICAgICAtIHVzZSB1c21fc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQoKS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODo0NTowOQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIE1ha2UgLUQgYSB0b2dnbGUuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NDQ6NDMKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2UgdGhlIGFnZW50IHdhdGNoIHRoZSBlcnJvciBzdGF0dXMgZnJvbSBwYWNrZXQKICAgICAgcGFyc2luZyBpbnN0ZWFkIG9mIGRvaW5nIGNoZWNrcyBpdHNlbGYuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NTI6MDMKICAgIC0gKHNubXB1c20uYyk6IHVzbV9nZXRfdXNlcigpOiBhbGxvdyBhIG51bGwgbGVuZ3RoIChidXQgbm9uIG51bGwKICAgICAgcG9pbnRlcikgZW5naW5lSUQuCgptYXJ6ICAxIE5vdiA5OCAxNTo1NToxMQogICAgIC0oYXNuMS5jLCBsY2RfdGltZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMsIHNubXB2My5jKTogcmVtb3ZlIGludGVybmFsIHBkdS92YXJsaXN0LCBwZHVfZnJlZSB1cGRhdGUsIGhhbmRsZSBpbml0aWFsIHVzZXIgYXMgZGlzY3Vzc2VkLCByZW1vdmUgaW5pdGlhbCB1c2VyIGhhY2ssIHJlbW92ZSBlbmdpbmVJRCBwcm9iZS9SZXBvcnQgaGFjaywgaGFuZGxlIHNlY3VyaXR5U3RhdGVSZWYgYXMgZGlzY3Vzc2VkLCBoYW5kbGUgemVyby1sZW5ndGggY29udGV4dCwgbm9ybWFsaXplIF9lbmdpbmV0aW1lIGFyZyBvcmRlciwgaW5jbHVkZSB3ZXMncyBwYXRjaGVzIGZvciBudWxsIGVuZ2luZWlkIGFuZCBzZWNOYW1lTGVuKysKCmhhcmRha2VyICAxIE5vdiA5OCAxOTozMjo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgICAgIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSB1c2UgInNubXBhcHAiIGFzIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM2OjU5CiAgICAtIChzbm1wX2FwaS5jKTogZ2VuZXJhdGUgdXNlci0+S3VsIGZyb20gc2Vzc2lvbi0+S3UuCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6Mzg6MjkKICAgIC0gKHNubXBfYWdlbnQuYyk6IGdlbmVyYXRlIGFsbCBzb3J0cyBvZiBuZXcgU05NUCByZXBvcnRzIHdoZW4gbmVlZGVkLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM5OjI5CiAgICAtIChzbm1wZC5jKTogdXNlIHNubXBfcGVycm9yKCkgaWYgc25tcF9hZ2VudF9wYXJzZSgpIHJldHVybnMgMC4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowMDoyNQogICAgLSAodmFjbS5jKTogYWxsb3cgYSBzZWN1cml0eSBsZXZlbCA+PSwgbm90ID09LgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjAxOjA3CiAgICAtIChzbm1wdjMuYyk6IHJlbW92ZSB1c21fY3JlYXRlX2luaXRpYWwoKSBhbmQgc2V0X2VuZ2luZXRpbWUoKS4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowNjowNAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIG5ldyBmdW5jdGlvbjogaW5pdF91c21fcG9zdF9jb25maWcodm9pZCk7CiAgICAgIC0gbWFrZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0KCkgaGFuZGxlIGEgYm9ndXMgaW5pdGlhbCB1c2VyIGZsYWcuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDk6MzUKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBpbml0X3VzbV9wb3N0X2NvbmZpZygpOwogICAgICAtIHVzZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0IHRvIGFzayBub3QgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IGluaXRpYWwgdXNlci4KICAgICAgLSBmaXggc25tcF92YXJfYWRkX3ZhcmlhYmxlKCkgdG8gYWxsb3cgY291bnRlcnMuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MTA6MTUKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdHlwbyBvbiBkZXMga2V5IGluaXRpYWxpemF0aW9uLCBmb3Jnb3QgdGhlICdYJy4KCmhhcmRha2VyICAyIE5vdiA5OCAwOToxMzozNgogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBmaXggcmVwb3J0IE9JRHMgdG8gYmUgY29ycmVjdC4KICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IHdoZW4gc2VuZGluZyBhIHJlcG9ydC4KICAgICAgLSBhZGRlZCB1bnN1cHBvcnRlZCBzZWN1cml0eSBsZXZlbCByZXBvcnQuCiAgICAgIC0gc2VuZCBhIGNvdW50ZXIgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLgoKaGFyZGFrZXIgIDIgTm92IDk4IDE2OjAxOjI0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGdlbmVyYXRlIEt1IGZvciBwcml2IHByb3RvY29sIHVzaW5nIGF1dGggcHJvdG9jb2wgaGFzaC4KCmhhcmRha2VyICAzIE5vdiA5OCAwOTozNzowMwogICAgLSAobGNkX3RpbWUuYyk6IGZpcnN0IGJ5dGU9PTAgZW5naW5lIElEJ3MgYXJlIHZhbGlkLgoKbGV3aXMgIDQgTm92IDk4IDExOjM1OjI5CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBCZXR0ZXIgaGFuZGxpbmcgb2YgbnVsbCBhbmQgdW5rbm93biBlbmdpbmUgSURzLgoKZHJlZWRlciAgNCBOb3YgOTggMTE6NDU6MDgKICAgIC0gKGxjZF90aW1lLmMpIFNwZWNpYWwgY2FzZXMgZm9yIE5VTEwgb3IgMCBsZW5ndGggZW5naW5lSURzLgoKaGFyZGFrZXIgIDQgTm92IDk4IDIxOjUzOjMyCiAgICAtIChzbm1wX2FnZW50LmMpOiBjaGVjayBlbmdpbmVJRCB0byBtYWtlIHN1cmUgaXRzIHVzLgoKbGV3aXMgIDUgTm92IDk4IDA5OjUyOjM1CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBjYWxsIHRvIHByZWRpY3QgaW50ZWdlciBsZW5ndGggcm91dGluZSB0byBnaXZlIGl0IHRoZSAqd2hvbGUqCiAgICAgICAgbnVtYmVyLCBub3QganVzdCBvbmUgKGZpcnN0L2xhc3QgZGVwZW5kcyBvbiBlbmRpYW4pIG9mIHRoZSBudW1iZXIuCiAgICAgICAgRG9oISBzY2FsZSByYXRpbmcgOS4KICAgICAgLSBBbHRlcmVkIHRoYXQgcm91dGluZSB0byBiZSBtb3JlIGxpa2UgdGhlIGFzbl9idWlsZF9pbnQgLi4uIGkuZS4sIG5vCiAgICAgICAgbG9uZ2VyIGFzc3VtZXMgdGhlIGxlbmd0aCBvZiB0aGUgbGVuZ3RoIGlzIDEuICBEb2ghIHJhdGluZyBhIDEuCgpsZXdpcyAgNSBOb3YgOTggMTE6MDM6MjQKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIHNvbWUgREVCVUdQIGNhbGxzIHRvIHNob3cgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBwZXJoYXBzIHRoZXNlIHdpbGwKICAgICAgICBiZWNvbWUgREVCVUdQTCBpbiB0aGUgZnV0dXJlLgoKZHJlZWRlciAgNSBOb3YgOTggMTU6Mzc6MjkKICAgIC0gTW9zdGx5IGZ1bmN0aW9uIGhlYWRlciBjb21tZW50cyBpbiByZWFkX2NvbmZpZy5jLCB1dGlsX2Z1bmNzLmMsIHNubXB2My5jLgogICAgICAJKFBsZWFzZSBmZWVsIGZyZWUgdG8gY2hlY2sgZm9yIGFjY3VyYWN5Li4uKQogICAgICBDaGVjayBmb3IgTlVMTCBpbiByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICBBZGRlZCBsZW5ndGggYXJndW1lbnQgdG8gc25tcHYzX2dldF9lbmdpbmVJRCgpLgogICAgICBDaGVjayBmb3IgbGVuZ3RoKFApPFVTTV9MRU5HVEhfUF9NSU4gaW4gZ2VuZXJhdGVfS3UoKS4KICAgICAgTm90ZTogImV0ZXN0IC1hIiBoYXMgYSBuZXcgZmFpbHVyZTsgdG8gYmUgZml4ZWQgd2hlbiBUaW1lIExDRCByZS1zdGFiaWxpemVzLgoKbWFyeiAgNiBOb3YgOTggMTY6MTM6MzcKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgUmVwb3J0cyB0byB0cmlnZ2VyIHJlc2VuZCwgZXhjZXB0IGZvciB1bmtub3duRW5naW5lSUQsIHBhc3Mgc2VjU3RhdGVSZWYgdG8gcmVjZWl2ZSBzZWN1cml0eVN0YXRlIGZyb20gVVNNICpXQVJOSU5HKiBnZXR0aW5nIGF1dGhvcml6YXRpb24gZmFpbHVyZSBpbiBVU00qIHBsZWFzZSBoZWxwIC0gdGhpcyB3YXMgbm90IGhhcHBlbmluZyBiZWZvcmUgc28gZG91YnRsZXNzIGl0IGlzIG15IGZhdWx0PwoKbWFyeiAgNyBOb3YgOTggMTI6MzM6NDkKICAgICAtKHNubXBfYXBpLmMsIGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGNsZWFuIHVwIHByb2JsZW1zIGNhdXNlZCB3aGVuIHdlIGJlZ2FuIHVzaW5nIHNlY1N0YXRlUmVmLCBvdGhlciBVU00gZXJyb3JzLCBpbXBsZW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgb3B0aW1pemF0aW9uCgptYXJ6ICA3IE5vdiA5OCAxMjozNzoyMQogICAgIC0oc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogY2xlYW4gdXAgcHJvYmxlbXMgY2F1c2VkIHdoZW4gd2UgYmVnYW4gdXNpbmcgc2VjU3RhdGVSZWYsIHNldF9lbmdpbmV0aW1lIGluIExDRCBwb3N0IGNvbmZpZyByZWFkLCBMQ0RfVElNRV9TWU5DX09QVCB0aW1lIGxlcm5pbmcgb3B0aW1pemF0aW9uLCBpbmNsdWRlIGZpbGUgZm9yIGxjZF90aW1lIGFkZGVkLCBtb3ZlZCBtYWtlX3JlcG9ydCB0byBzbm1wbGliIC0gcmVwb3J0IGdlbmVyYXRpb24gaXMgc3RpbGwgaW4gYWdlbnQKCmhhcmRha2VyICA5IE5vdiA5OCAxMzoyOToxOQogICAgLSAoc25tcF9hcGkuYyk6IGdlbmVyYXRlX2t1bCBzaG91bGQgdXNlIGF1dGhwcm90b2NvbC4KCm1hcnogMTEgTm92IDk4IDA3OjUxOjQzCiAgICAgLShsY2RfdGltZS5jLCBzbm1wdXNtLmMpOiBmaXhlcyB0byBoYW5kbGUgbnVsbCBlbmdpbmUgSUQgLSB0b2xlcmF0ZWQgd2hlbiBzZW5kaW5nLCB1bmtub3duIHdoZW4gcmVjZWl2aW5nCgptYXJ6IDExIE5vdiA5OCAwODowMzoyNAogICAgIC0oc25tcF9hZ2VudC5jKTogcmVtb3ZlIHdvcmthcm91bmQgdG8gZGV0ZWN0IHVua25vd25FbmdpbmVJRCBlcnJvciAtIG5vdyBkb2VuIGluIFVTTSBhcyBzcGVjJ2QKCmhhcmRha2VyIDExIE5vdiA5OCAxMjozNzo0NwogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIGluaXRpYWwgc2V0X2VuZ2luZXRpbWUoKSBmcm9tIGFnZW50IHRvIHNubXB2My5jLgogICAgICAtIG5ldyBzbm1wLmNvbmYgY29uZmlndXJlIGZpbGUgdG9rZW5zOiBkZWZBdXRoVHlwZSwgZGVmUHJpdlR5cGUsCiAgICAgICAgZGVmUGFzc3BocmFzZSwgZGVmQXV0aFBhc3NwaHJhc2UsIGRlZlByaXZQYXNzcGhyYXNlLgogICAgICAtIG1pbmltdW0gYm9vdHMgdXNlZCBpcyAxLCBub3QgMC4KCmhhcmRha2VyIDExIE5vdiA5OCAxMzowOToyNgogICAgLSAoc25tcGQuYyk6IGFkZGVkIG5lZWRlZCBpbml0XygpIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTEgTm92IDk4IDEzOjExOjAyCiAgICAtIChzbm1wdjMuYyk6IGRvbid0IHByaW50IG9pZHMgdG8gJXMncy4KCmhhcmRha2VyIDEzIE5vdiA5OCAwNzo1OTowNAogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgY29ycmVjdCBpbml0aWFsIHVzZXIgYWZ0ZXIgZW5naW5lSUQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDEzIE5vdiA5OCAwODowMzo0NQogICAgLSAodXNtVXNlci5jKTogZG9uJ3QgaW5pdGlhbGl6ZSB1c2VyIGhlcmUuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MDQ6NDIKICAgIC0gKHNubXB2My5jKTogbWFrZSBlbmdpbmVJRCBjb25maWd1cmF0aW9uIGxpbmVzIGdldCBwYXJzZWQgZWFybHkuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MTQ6MDQKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gbW9yZSBhcHByb3ByaWF0ZSBlbmdpbmVJRCBjaGVja2luZyBmb3IgdXNlcnMgKHdhcyBhIGJ1ZykuCiAgICAgIC0gdXNtX2FkZF91c2VyKCk6IGRvbid0IGR1cGxpY2F0ZSB1c2VycyB3aXRoIHRoZSBzYW1lIG5hbWUvZW5naW5lSUQuCgpoYXJkYWtlciAxNSBOb3YgOTggMTA6MTk6NTUKICAgIC0gKHNubXBkLmMpOiBtb3ZlIHBvc3RfY29uZmlnIGluaXQgcm91dGluZXMgdG8gYmV5b25kIHBlcnNpc3RlbnQgcmVhZGluZy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMjo1NTozOAogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIG5ldyBtYWtlIHRhcmdldDogdGVzdAogICAgICAtIG1ha2UgYWxsIGRvZXNuJ3QgY29tcGlsZSB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDA6NDEKICAgIC0gKHVzbVVzZXIuYywgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIHVzbV9yZW1vdmVfdXNlcigpOgogICAgICAgIC0gcHJvcGVybHkgdXBkYXRlcyB0aGUgbGlzdCBwb2ludGVyLgogICAgICAgICAgLSByZXF1aXJlcyBhICoqIHBvaW50ZXIgdG8gdGhlIGxpc3QgdG8gZG8gdGhpcy4KICAgICAgICAtIGNoZWNrIGFnYWluc3QgYSBOVUxMIGxpc3QgcG9pbnRlci4KICAgICAgLSB1c21fY2xvbmVGcm9tX3VzZXIoKToKICAgICAgICAtIHRoZSBrZXlzIHdlcmUgbm90IGJlaW5nIHByb3Blcmx5IGR1cGxpY2F0ZWQuCiAgICAgIC0gdXNtX2Nsb25lX3VzZXIoKTogZGVsZXRlZC4KICAgICAgLSB1c21fY3JlYXRlX3VzZXIoKTogY3JlYXRlZCwgYW5kIHVzZWQgaW4gcGxhY2Ugb2YgdXNtX2Nsb25lX3VzZXIoTlVMTCkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDE6MjcKICAgIC0gKGV0aW1ldGVzdC5jKTogZml4IGNhbGxzIHRvIHNldC9nZXRfZW5naW5ldGltZSgpLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE0OjE0OjA3CiAgICAtIChJU1NVRVMpOiBmaW5pc2hlZCBhIGNvdXBsZSBvZiB0aGluZ3MuCgpoYXJkYWtlciAxNSBOb3YgOTggMTQ6MTk6MjEKICAgIC0gKElTU1VFUywgc25tcF9hZ2VudC5jKTogZml4IHBkdSBmcmVlaW5nIHByb2JsZW0sIHRoYW5rcyB0byBKb2UncwogICAgICBtZXJnZSBvZiB0aGUgcGR1IHN0cnVjdHVyZXMuCgpoYXJkYWtlciAxNSBOb3YgOTggMTU6NTA6MzMKICAgIC0gKElTU1VFUyk6IG1pc2MgZGF0ZSBjaGFuZ2VzIGFuZCBtYXJrIHRoYXQgSSdtIHdvcmtpbmcgb24gc29tZXRoaW5nLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE1OjUzOjI0CiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBjcmVhdGUvY2FsbCBzbm1wX3NodXRkb3duKCkuCiAgICAgIC0gcmVtb3ZlIHRoZSAicGVyc2lzdGVudC4iIHBhcnQgb2YgdGhlIHBlcnNpc3RlbnQgLmNvbmYgbmFtZS4KICAgICAgLSByZW5hbWUgaW5zdGVhZCBvZiB1bmxpbmsgb2xkIHBlcnNpc3RlbnQgLmNvbmYgZmlsZS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNzozNzowMAogICAgLSAoSVNTVUVTLCBzbm1wdjMuYyk6IHdoZW4gZW5naW5lSUQgY2hhbmdlcyBmcm9tIHRoZSBwcmV2aW91cyBydW4sCiAgICAgIHJlc2V0IGVuZ2luZUJvb3RzIHRvIDEuICAocmVxdWlyZXMgc3RvcmluZyB0aGUgbGFzdCBlbmdpbmVJRCB1c2VkKS4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMDoxMDoxOQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX21pYi5jLCBzbm1wX21pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oKToKICAgICAgLSB1c2UgbmV3IGxpYnJhcnkgYmFzZWQgc3RhdGlzdGljcyBjb3VudGVyIGV2ZXJ5d2hlcmUuCgpoYXJkYWtlciAxNiBOb3YgOTggMjA6MTc6MDEKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBpbnRlcmZhY2VzLmMsIHN5c3RlbS5jLCByZWdpc3RyeS5jKToKICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMgaW4gYSBmZXcgbW9yZSBwbGFjZXMuCiAgICAgIC0gc3RhbmRhcmRpemUgdGhlIE1BVENIX0ZBSUxFRCBhbmQgTUFUQ0hfU1VDQ0VFREVEIGRlZmluaXRpb25zLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI0OjU2CiAgICAtIChzbm1wdXNtLmMpOiB1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpIGFjY2VwdHMgbmFtZSAmIGF1dGgvcHJpdiB0eXBlcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNTo1MgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gbG9nIFBJRCB0byBmaWxlIHVzaW5nIC1QLgogICAgICAtIGNyZWF0ZSB0ZW1wbGF0ZSB1c2VyczogIHRlbXBsYXRlTUQ1ICYgdGVtcGxhdGVTSEEuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjY6MzAKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IG5ldyBmbGFnOiAtcSA9IHF1aWV0LgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI3OjEyCiAgICAtIChkZW1vKTogc2NyaXB0IHRvIHJ1biBsaXN0IG9mIGNvbW1hbmRzIHJlcXVpcmVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyODo1OAogICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0ZXN0aW5nIHRhcmdldHMuCgpoYXJkYWtlciAyMiBOb3YgOTggMTQ6MzY6NTMKICAgIC0gKGRlbW8pOiBxdW90ZSB0aGUgcGFzcyBwaHJhc2UuCgpoYXJkYWtlciAyMiBOb3YgOTggMjI6MTY6NDQKICAgIC0gKGRlbW8pOgogICAgICAtIHBhc3MvZmFpbCB0eXBlIG91dHB1dC4KICAgICAgLSBob3N0cyBvdGhlciB0aGFuIGxvY2FsaG9zdC4KICAgICAgLSBjYXBhYmlsaXR5IHRvIGxvb2sgZm9yIHN0dWZmIGluIG91dHB1dCBvZiBjb21tYW5kcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAyMjoyNjoyOAogICAgLSAoZGVtbyk6IHR1cm4gZW5jcnlwdGlvbiBvbiBmb3IgdGVzdHMgdGhhdCBuZWVkIGl0LgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjE0OjA1CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBwcmludCBNRDUvU0hBIGJlZm9yZSB0aGUga2V5Y2hhbmdlIHN0cmluZy4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzoxNjowMQogICAgLSAoZGVtbyk6IGZpeCB0aGUga2V5IGNoYW5nZSBzdHJpbmcgZXh0cmFjdGlvbiB0byBsb29rIGZvciB0aGUgTUQ1IHZlcnNpb24uCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6Mzg6NDQKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IGJlcXVpZXQgc2hvdWxkIGJlIDAgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIE5vdiA5OCAwODowNjozNAogICAgLSAoZGVtbyk6IGJ1ZyBmaXhlcy4KCmRyZWVkZXIgMjQgTm92IDk4IDE2OjQzOjUwCiAgICBGaXhlZCBidWcgaW4gVVNNIHByZXZlbnRpbmcgZXhjaGFuZ2Ugb2YgY3J5cHRlZCBwYWNrZXRzLiAgQ29kZSBhZGRlZAogICAgCXRvIHByb3Blcmx5IGVzdGltYXRlIHNpemUgb2YgY3J5cHRlZCB0ZXh0IGdpdmVuIHVuLXBhZGRlZCBwbGFpbnRleHQuCiAgICAJRm91bmQvZml4ZWQgS01UIHByb3RvdHlwZSBjb25mbGljdCB0aGF0IGNhdXNlZCB0aGUgZ2l2ZW4gSVYgdG8gYmUKICAgIAlpZ25vcmVkIGF0IGNyeXB0L2RlY3J5cHQgdGltZS4KICAgIHNldHVwX2VuZ2luZUlEKCkgaGFzIGEgbmV3IGFyZ3VtZW50IHRvIGFsbG93IElEIHN0cmluZ3MgdG8gYmUgcmV0dXJuZWQKICAgIAl0byBjYWxsZXIuCiAgICBOZXcgZmlsZSBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmggdG8gcHV0IHN0YXRpYyBkZWNsYXJhdGlvbnMgaW4gYSBzaW5nbGUKICAgIAlwbGFjZS4uLgogICAgRmFpbHVyZSBvZiBzdGF0IGluY3JlbWVudHMgaW4gVVNNIG5vIGxvbmdlciBjYXVzZSBmYWlsdXJlIGluIHRoZSBjYWxsaW5nCiAgICAJZnVuY3Rpb24uCiAgICBBZGRlZCB1dGlsaXR5IGFwcHMvZW5jb2RlX2tleWNoYW5nZS4gICgtaCBmb3IgdXNhZ2UuKQogICAgRElGRlRJTUUgbWFjcm8gdG8gcmVwbGFjZSBvZnQgcmVwZWF0ZWQgY29kZS4KICAgIFNob3J0ZW5lZCBzb21lIFZBQ00gZGVidWdnaW5nIG91dHB1dCB0byBhIHNpbmdsZSBsaW5lIGZyb20gbWFueS4KICAgIE1vcmUgY29tbWVudHMuICBNb3JlIHRyb3VibGUgc3BvdHMgbWFya2VkIFhYWC4KICAgIENvbnZlcnRlZCBvZnQgdXNlZCBtYWdpYyBudW1iZXJzIHRvIHN5bWJvbGljIGNvbnN0YW50cyAoc29tZSBwcmUtZXhpc3RpbmcpLgogICAgQ2xlYW5lZCB1cCBzb21lIHNpbXBseSBmaXhlZCBidWlsZCB3YXJuaW5ncy4KICAgIFVwZGF0ZWQgbm9uZXhwb3J0L2NyeXB0by9SRUFETUUuICBTdGlsbCBuZWVkcyB3b3JrLgoKbWFyeiAyNSBOb3YgOTggMDc6NDQ6MjgKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkZWQgLVQgPGJvb3RzPiA8dGltZT4gdG8gc2V0IGFuIGluaXRpYWwgKGF1dGhlbnRpY2F0ZWQpIHRpbWUgdmFsdWUgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmdpbmVJRHMgYm9vdHMvdGltZSkKCm1hcnogMjUgTm92IDk4IDA3OjQ4OjQ5CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wLmgsIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgaW5jb21pbmcgUmVwb3J0cyAtIHByb3BhZ2F0ZSBTVEFUX0VSUk9SIHRvIGFwcHMgd2l0aCBhcHByb3AuIGVycm9yIG1lc3NhZ2UsIGhhbmRsZSByZWNvdmVyYWJsZSBlcnJvciBub3RJblRpbWVXaW5kb3cgYW5kIGVuZ2luZUlkIGRpc2NvdmVyeSwgc2VuZCByZXBvcnRzIHdpdGggc2VjTGV2ZWw9PW5vQXV0aE5vUHJpdiBleGNlcHQgbm90SW5UaW1lV2luZG93CgptYXJ6IDI1IE5vdiA5OCAwNzo1MTo1MAogICAgIC0odG9vbHMuYyk6IG9vcHMgYmFjayBvdXQgbGl0dGxlIGNvbXBpbGUgd29ya2Fyb3VuZCBJIGRpZCBub3QgbWVhbiB0byBjb21taXQKCm1hcnogMjUgTm92IDk4IDA3OjU0OjAxCiAgICAgLShzbm1wZC5jLCBzbm1wX2FnZW50LmMpOiBpbml0aWFsaXplIHBpZF9kaWxlLCBvbmx5IGFsbG9jYXRlIGVuZ2luZUlEIG1lbSBmb3IgUmVwb3J0cyB3aGVuIHNlbmRpbmcgUmVwb3J0LCBmaXggdmVyc2lvbiBpbmZvIGluIGRlYnVnIG1lc3NhZ2UKCmhhcmRha2VyIDI1IE5vdiA5OCAwNzo1NjozMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wTVBEU3RhdHMuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIEFkZGVkIGEgY291cGxlIG9mIERFVUJHUCBzdGF0ZW1lbnRzIGFuZCBhIGNvdXBsZSBvZiBjb21tZW50IGNsYWlyaWZpY2F0aW9ucy4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjozOTowMQogICAgLSAoc25tcHVzbS5jKTogY2hhbmdlcyBpbiBjb21tZW50cyBmb3IgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjo0MDozNQogICAgLSAoc25tcHYzLmMpOiBjaGFuZ2VzIGluIGNvbW1lbnRzIGZvciBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEyOjU0OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiB2ZXJzaW9uIGNoZWNrcyBhZ2FpbnN0IHYyYy92MnAgLT4gIXYxLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEzOjA0OjAyCiAgICAtIChzbm1wZC5jKTogY29tbWVudCBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDE3OjEyOjAyCiAgICAtIChkZW1vKToKICAgICAgLSBlbmNvZGVfa2V5Y2hhbmdlIHVzYWdlLgogICAgICAtIG1vdmUgY2xvc2VyIHRvIDQyLCBidXQgbGVhdmUgcm9vbSBmb3IgYSBmZXcgbW9yZSB0aGluZ3MuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTg6NDMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciB0Y2dldGF0dHIuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTk6NTYKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGNyZWF0ZSBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzQW5kVGltZSgpLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjAwOjQ3CiAgICAtICh0b29scy5jKTogZHVtcF9lbmdpbmVJRCBzaG91bGQgKm5ldmVyIGV2ZXIqIG1vZGlmeSB0aGUgcGFzc2VkIGxlbmd0aCBwYXJhbS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowMjo0OQogICAgLSAoZGVtbyk6CiAgICAgIC0gLXM6IDEgc2VjIHNsZWVwIGluc3RlYWQgb2Yga2V5cHJlc3MuCiAgICAgIC0gZG8gdGltZSB0ZXN0cy4KICAgICAgLSB1c2UgZW5jb2RlX2tleWNoYW5nZS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowNDoxMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIFNoaGhoaC4uLi4uICBib290cyBhbmQgdGltZSBhcmUgd3JpdGFibGUuLi4gIERvbid0IHRlbGwgYW55b25lLi4uIFNoaGguLi4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzoxNTowNQogICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKToKICAgICAgLSB1c2UgdV9jaGFyJ3Mgd2hlcmUgYXBwcm9wcmlhdGUuCiAgICAgIC0gc29tZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzozMjo1MQogICAgLSAodXNtVXNlci5jKToKICAgICAgLSBrZXljaGFuZ2UgbmVlZHMgYSB0ZW1wIGJ1ZmZlci4KICAgICAgLSBhIGZldyBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDoyMDo0NQogICAgLSAoc25tcHVzbS5jKTogdXNtX3NldF9zYWx0KCkgYWNjZXB0cyBhIGtleSB3aGljaCBpcyB0b28gbG9uZyAoU0hBIGZvciBERVMpLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjIzOjAzCiAgICAtIChzbm1wX2FwaS5jKTogc25tcHYzX3NlbmRfcmVwb3J0KCkgcmVtb3ZlcyB0aGUgc2VjU3RhdGVSZWZlcmVuY2UKICAgICAgZnJvbSB0aGUgcGR1IGlzIHRoZXJlIGlzIG9uZS4gIEl0IHNob3VsZG4ndCBiZSB1c2VkIGZvciByZXBvcnRzLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjMxOjEyCiAgICAtIChkZW1vKTogZmluYWwgZml4ZXMgZm9yIGFsbCBjdXJyZW50IHRlc3RzIHRvIHdvcmsuCgpoYXJkYWtlciAyNyBOb3YgOTggMTU6MTU6MjUKICAgIC0gKGRlbW8pOgogICAgICAtIC1UOiBwYXVzZSBhZnRlciB0ZXN0IGNvbXBsZXRpb25zLgogICAgICAtICoqKiogNDIvNDIgdGVzdHMgcGFzc2VkCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTU6MTUKICAgIC0gKHNubXBwYXNzLmMpOiBiZWdpbm5pbmdzIG9mIGEgc25tcCBwYXNzd29yZCBjaGFuZ2VyOgogICAgICAtIHN0b2xlIG1vc3QgY29kZSBmcm9tIHNubXBzZXQuYyBhbmQgZW5jb2RlX2tleWNoYW5nZS5jLgogICAgICAtIG5lZWQgdG8gZml4OiBtdXN0IHNwZWNpZnkgbW9zdCBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUgKGllLAogICAgICAgIC5jb25mIGZpbGUgdG9rZW5zIGRvbid0IHdvcmsgaGVyZSkuCiAgICAgIC0gdmVyeSB1bmNsZWFuIGFuZCBhIHF1aWNrIGhhY2suCiAgICAgIC0gZGlmZmVycyBmcm9tIGVuY29kZV9rZXljaGFuZ2UsIGluIHRoYXQgaXQgYWN0dWFsbHkgcHJlZm9ybXMgdGhlIHNldC4KCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1NToyMwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcHBhc3MuYwoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU2OjQ3CiAgICAtICguY3ZzaWdub3JlKTogc25tcHBhc3MgYW5kIGVuY29kZV9rZXljaGFuZ2UKCmhhcmRha2VyIDI4IE5vdiA5OCAxMTo0MTowMgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIG1lcmdlIHdyaXRlXyBrZXlDaGFuZ2UgYW5kIG93bktleUNoYW5nZSBmdW5jdGlvbnMgaW50byBvbmUuICBTaW5jZQogICAgICAgIHRoZSB1c2VyIG5hbWUgaXMgbm90IHBhc3NlZCBpbiwgdGhlIGNhbGxpbmcgbW9kdWxlIHdpbGwgaGF2ZSB0bwogICAgICAgIGNoZWNrIGZvciBpdCB1bnRpbCB3ZSdyZSB3aWxsaW5nIHRvIGNoYW5nZSB0aGUgQVBJIG9yIHRoZSBWQUNNIGlzCiAgICAgICAgZml4ZWQgYW5kIHRoZSBvd25LZXlDaG5hZ2Ugb2JqZWN0cyBjYW4gYmUgb2Jzb2xldGVkLgoKaGFyZGFrZXIgMjggTm92IDk4IDExOjQxOjM2CiAgICAtIChzbm1wcGFzcy5jKTogLW86IHVzZSB0aGUgb3duS2V5Q2hhbmdlIG9iamVjdC4KCm1hcnogMjkgTm92IDk4IDE5OjMyOjIxCiAgICAgKGRlbW8pOiBmaXggdGltZSBzeW5jIHRlc3QgdG8gdGVzdCBmb3IgdGltZW91dCBhcyBleHBlY3RlZCB3aGVuIGFwcCBjbG9jayBpcyBzZXQgYWhlYWQKCm1hcnogMjkgTm92IDk4IDE5OjM0OjQxCiAgICAgLShzbm1wX2FwaS5jKTogbW92ZSBjb21tYW5kbGluZSBiYXNlZCBib290cy90aW1lIHNldHRpbmcgY29kZSBhZnRlciBlbmdpbmVJRCBkaXNjb3ZlcnkgaW4gY2FzZSBlbmdpbmVJRCB3YXMgbm90IHN1cHBsaWVkIG9uIGNvbW1hbmQgbGluZSBhcyB3ZWxsCgpoYXJkYWtlciAzMCBOb3YgOTggMjI6MDA6MjMKICAgIC0gKGRlbW8pOiBiZXR0ZXIgZG9jdW1lbnQgdGhlIHJlcXVpcmVkIC5jb25mIGZpbGUgcGllY2VzLgoKaGFyZGFrZXIgMzAgTm92IDk4IDIyOjEyOjEwCiAgICAtIChkZW1vKTogZW5hYmxlIC1DOiBhdXRvLWNvbmZpZ3VyZSB0aGUgYWdlbnQuCgp3YmFic29uICAxIERlYyA5OCAwNzo1Njo1NQogICAgRml4ZWQgYSBsaWJyYXJ5IHNlYXJjaCBvcmRlciBidWcgd2hpY2ggaGFkIC91c3IvbG9jYWwvc3NsL2xpYiBhbmQgL3Vzci9sb2NhbC9saWIKICAgIHNlYXJjaGVkIGJlZm9yZSAuLi9zbm1wbGliLiBUaGlzIGNhdXNlZCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgd2hlbiB0cnlpbmcgdG8KICAgIGxpbmsgc25tcGQgYW5kIHRoZSBhcHBsaWNhdGlvbnMuIFRvIGRvIHRoaXMgTE9DQUxfTElCUyB3YXMgY3JlYXRlZCBhbmQgLi4vc25tcGxpYgogICAgd2FzIHJlbW92ZWQgZnJvbSBMSUJTIGFuZCBwbGFjZWQgdGhlcmUuIFRoZW4gTE9DQUxfTElCUyB3YXMgYWRkZWQgYmVmb3JlCiAgICBMREZMQUdTIGluIHRoZSBsaW5rIGNvbW1hbmRzLiBhZ2VudC9NYWtlZmlsZS5pbiBhbmQgYXBwcy9NYWtlZmlsZS5pbiB3ZXJlIG1vZGlmaWVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NToyOAogICAgLSAodG9vbHMuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NDkKICAgIC0gKHVzbVVzZXIuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NTUKICAgIC0gKHNubXBwYXNzLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKbWFyeiAgMiBEZWMgOTggMDg6MzI6MjkKICAgICAtKGRlbW8uYyk6IHRlc3QgIzM4IHdpbGwgc2hvdyB0aGUgNiBtZXNzYWdlIGV4Y2hhbmdlIHNpbmNlIGl0IGlzIGluaXRpYWxpemVkIHdpdGggYSBzaW11bGF0ZWQgYXV0aGVudGljIG9vdHMvdGltZSB3aGljaCBkZWZlYXRzIHRoZSBMQ0RfVElORV9TWU5DX09QVAoKaGFyZGFrZXIgIDIgRGVjIDk4IDE0OjI2OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiBhZnRlciBkZXRlY3Rpb24gb2Ygc25tcCB2ZXJzaW9uLCBlcnJvciBjb2RlcyB3ZXJlIHJldmVyc2VkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE1OjE4OjUzCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYWRkZWQgdjMgc3BlY2lmaWMgdG9rZW4gbm90ZXMuCgpoYXJkYWtlciAgMiBEZWMgOTggMTU6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wLmNvbmYuNS5kZWYpOiBjcmVhdGVkIGEgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE3OjAzOjI3CiAgICAtICguY3ZzaWdub3JlKTogc25tcC5jb25mLjUgaWdub3JlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxNzowMzo0OAogICAgLSAoc25tcC5jb25mLjUuZGVmKTogbWliZGlycywgbWlicywgYW5kIG1pYmZpbGVzIGRvY3VtZW50ZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTk6Mzg6MTIKICAgIC0gKGxjZF90aW1lLmMpOiBjb21tZW50IGNsYWlyaWZpY2F0aW9uLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjIyCiAgICAtIChtaWIuYyk6IHVubmVlZGVkIFhYWCByZW1vdmVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjQ3CiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSBza2lwIGFoZWFkIG9mIHNwYWNlIG9uIHJldHVybmVkIHBvaW50ZXIuCgpkcmVlZGVyICAzIERlYyA5OCAxODo0NDo0OQogICAgQ28tY2hlY2tpbiB3aXRoIG5ldyB2ZXJzaW9uIG9mIEtNVCAobG9jYXRlZCBpbiBub25leHBvcnQvS01ULXNubXApLgogICAga210X3JhbmRvbSgpIHNpZ25hdHVyZSBjaGFuZ2VkIGluIHNjX3JhbmRvbSgpLgogICAgU2Vjb25kIHZlcnNvbiB0ZXN0aW5nL2RlbW8gYXQgdGVzdGluZy9kZW1vMiogLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBmbGFnIGFuZCBkZWZpbmUgLS1lbmFibGUtdGVzdGluZy1jb2RlIC0+IFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIyOjU5CiAgICAtIChrZXl0b29scy5jKTogdXNlIFNOTVBfVEVTVElOR19DT0RFIGRlZiB0byBwcm90ZWN0IHNvbWUgc2VjdGlvbnMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjM6NDgKICAgIC0gKHNjYXBpLmMpOiB0ZXN0aW5nIERFQlVHUCBmb3IgcHJpbnRpbmcgb3V0IGtleXMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjY6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBwcm90ZWN0IHNlY3Rpb25zIHdpdGggU05NUF9URVNUSU5HX0NPREUuCiAgICAgIC0gYWxsb3cgKidzIGluIGZpZWxkcyBmb3IgZW5naW5lSURzIGZvciBrZXkgc2V0dGluZyAuY29uZiBlbnRyaWVzLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjMyOjIwCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gb25seSBtYWtlIHRpbWUvYm9vdHMgc2V0YWJsZSB3aGVuIFNOTVBfVEVTVElOR19DT0RFIGlzIGRlZmluZWQuCgpoYXJkYWtlciAgMyBEZWMgOTggMjM6MTc6MTcKICAgIC0gKGRlbW8pOiByZW1vdmVkLgoKbWFyeiAgNCBEZWMgOTggMDg6MDU6NTkKICAgICAtKHNubXBjbWQuMSk6IHVwZGF0ZSBtYW4gcGFnZSBmb3IgbmV3IFYzIHBhcnNlIGFyZ3MKCmhhcmRha2VyICA0IERlYyA5OCAxMTowMzoxNAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBwYXNzLmMsIHNubXB1c20uYyk6CiAgICAgIC0gZGVsZXRlIHNubXBwYXNzLgogICAgICAtIGNyZWF0ZSBmaXJzdCBwYXNzIHNubXB1c20uYy4KCmhhcmRha2VyICA0IERlYyA5OCAxMTowNDowOQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSAqIGZvciBlbmdpbmVJRCBmZWF0dXJlLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ1OjQzCiAgICAtIChVQ0QtREVNTy1NSUIudHh0KTogZGVtbyBtaWIgb2JqZWN0cy4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0NjowOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24vcmVzZXJ2ZSB0aGUgZGVtbyBvYmplY3QgZ3JvdXAgaW4gYSBjb21tZW50LgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ5OjIxCiAgICAtICguY3ZzaWdub3JlKTogLmdkYiBzdHVmZgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjA0CiAgICAtICh1Y2REZW1vUHVibGljLmMsIHVjZERlbW9QdWJsaWMuaCk6CiAgICAgIC0gZXhhbXBsZXMvdWNkRGVtb1B1YmxpYyBtb2R1bGU6ICBzaW1wbGUgb2JqZWN0cyBmb3IgZG9pbmcgZGVtb3MsCiAgICAgICAgaW5jbHVkaW5nIHJlbW90ZSByZXNldHRpbmcgb2Yga2V5cyB0byBhIGtub3duIHBhc3N3b3JkcyBmb3IgYSBsaXN0CiAgICAgICAgb2YgdXNlcnMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NTA6MjgKICAgIC0gKHVjZERlbW9QdWJsaWMuY21kcyk6IGNvbW1hbmRzIHRvIHJ1biB0byBzZXQgdXAgZm9yIHRoZSBkZW1vLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjM4CiAgICAtICh1Y2REZW1vUHVibGljLmNvbmYpOiBjb25maWd1cmF0aW9uIGZpbGUgbGluZXMgbmVlZGVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyICA0IERlYyA5OCAxODozODowNQogICAgLSAodmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQpOiA0LjAucHJlMSB0YWcKCmRyZWVkZXIgIDUgRGVjIDk4IDE2OjUyOjQ5CiAgICBFeHRlbmRlZCBkZW1vMiBpbnRvIGRlbW8ucmVtb3RlIHRvIGFsbG93IHRlc3RpbmcgYmV0d2VlbiA8aGVyZT4gYW5kCiAgICB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCm1hcnogMTMgRGVjIDk4IDE0OjU3OjAyCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jKTogYWRkIHN1cHBvcnQgZm9yIG1zZ0lEIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHJlcWlkIGFuZCB3aGljaCBpbmNyZW1lbnRzIHdpdGggZWFjaCByZXRyeS4gTm90ZTogbGF0ZSBSZXNwb25zZXMgd2lsbCBiZSBkcm9wcGVkIGlmIHRoZXkgYXJyaXZlIGFmdGVyIHRpbWVvdXQgLSB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIHYxIGJlaGF2aW91ciB3aGVyZSBhIGxhdGUgUmVzcG9uc2UgdG8gdGhlIGluaXRpYWwgdHJ5IHdpbGwgYmUgYWNjZXB0ZWQgdXAgdG8gdGhlIHRpbWUgd2hlcmUgdGhlIGxhc3QgcmV0cnkgdGltZXMgb3V0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6Mzk6MDIKICAgIC0gKG1pYjJjKTogbWlub3IgdXBkYXRlIChuZWVkcyBtb3JlKSBmb3IgbmV3ZXIgc25tcCBwZXJsIG1vZC4KCmhhcmRha2VyIDEzIERlYyA5OCAxODozOTo0NAogICAgLSAoLmN2c2lnbm9yZSk6IC5nZGIuYXV0by5pbml0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NDE6MTEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6IHJlbW92ZWQgdW5uZWVkZWQgbGludXggaWZkZWYuCgpoYXJkYWtlciAxNyBEZWMgOTggMTU6NTk6MTAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiB3cmFwIGNvbmZpZyBsaW5lIHByaW50J3MgaW4gU05NUF9URVNUSU5HX0NPREUgY2hlY2tzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIxOjU1OjA0CiAgICAtIChqdXN0IGFib3V0IGFsbCBmaWxlcyk6IG1lcmdlIG9mIFYzLWIxIGNoYW5nZXMgaW50byBWMy1iMiBicmFuY2guCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mjc6NTQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHVzbVVzZXIuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHJlYWRfY29uZmlnLmgsIHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHYzLmMsIHRvb2xzLmgpOgogICAgICAtIGZpbmFsIGNoYW5nZXM/IHRvIFYzLWIyIG1lcmdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjI5OjUyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSB0aGF0IDI4IGVycm9ycyBmcm9tIHdoaXRlc3BhY2UgY2hhbmdlcy4KCmhhcmRha2VyICAyIERlYyA5OCAyMjozNzowOAogICAgLSAoc25tcGQuYyk6IGNhbGwgaW5pdF9zbm1wdjMgYmVmb3JlIC1IIHVzYWdlIGluZm8uCgpoYXJkYWtlciAxMyBEZWMgOTggMTA6MzM6NDUKICAgIC0gKCopOiBtZXJnZTEgdG8gVjMtYjMuCgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NTY6MTgKICAgIC0gKCopOiBtZXJnZTIgdG8gVjMtYjMuCgpkcmVlZGVyIDE3IERlYyA5OCAwODowNTowNAogICAgQ3JlYXR1cmUgY29tZm9ydDogL2V0YyBzY3JpcHQgdG8gKHJlKXN0YXJ0IGFuZCBzdG9wIHNubXBkIGFuZCBzbm1wdHJhcGQKICAgIGFuZCBrZWVwIChjb21wcmVzc2VkKSBjb3BpZXMgb2YgcHJldmlvdXMgbG9nZmlsZXMuICBJbnRlbmRlZCB0byBiZSB1bml2ZXJzYWwKICAgIHRvIExpbnV4LCBTb2xhcmlzLCBGcmVlQlNELCAuLi4gLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjM2OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IGlmIEtNVCBpc24ndCBhdmFpbGFibGUuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NDk6MzgKICAgIC0gKGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgbWQ1LmMsIG1kNS5oLCBzY2FwaS5jLAogICAgICBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgdG9vbHMuYyk6CiAgICAgIC0gaW50ZXJuYWwgTUQ1IHN1cHBvcnQgZG9uZS4KICAgICAgICAtIHRlc3RlZCB3aXRoIGFuZCB3aXRob3V0IGttdCB0byBvcHBvc2l0ZSBhbmQgc2FtZSBzaWRlIGFwcHMvYWdlbnRzLgogICAgICAgIC0gdGVzdGVkIGFnYWluc3Qgb2xkZXIgNC4wLnByZTEgYWdlbnQgb24gYmFuZGl0IGFzIHdlbGwuCiAgICAgICAgLSBhbGwgYnV0IG9uZSB0ZXN0aW5nLyogdGVzdCBwYXNzZXMgKHdoaWNoIHdhcyBmYWlsaW5nIGJlZm9yZSBhbnl3YXkpLgogICAgICAgIC0gdGhlIG9sZGVyIGRlbW8gc2NyaXB0IHBhc3NlcyBhcyB3ZWxsLgogICAgICAtIE1vZGlmaWVkIG1hbnkgb3RoZXIgcm91dGluZXMuICBFdmVyeXRoaW5nIHNob3VsZCB1c2UgU0NBUEkgbm93IGFuZAogICAgICAgIEtNVCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGRpcmVjdGx5IG91dHNpZGUgdGhlIHNjYXBpLmMgYW5kCiAgICAgICAga2V5dG9vbHMuYyBmaWxlcy4KICAgICAgICAtIG5ldyBzY2FwaSByb3V0aW5lOiAgc2NfaGFzaCgpLgogICAgICAtIENvdWxkLCBhcyBhbHdheXMsIHVzZSBhIGJpdCBtb3JlIGNsZWFuIHVwLCBidXQgSSBuZWVkZWQgdG8gY2hlY2sKICAgICAgICBzb21ldGhpbmcgaW4gdGhhdCB3b3JrZWQgYmVmb3JlIEkgYnJlYWsgaXQgYWdhaW4gKGFoZW0pLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjUzOjEwCiAgICAtIChzbm1wZ2V0LmMsIHNubXB1c20uYyk6IHVubmVlZGVkIEtNVCBpbmNsdWRlcyByZW1vdmVkLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU0OjM4CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBzdXJyb3VuZCBhIGZldyBLTVQgc3BlY2lmaWMgaXRlbXMgd2l0aCAjaWZkZWZzLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU2OjU2CiAgICAtIChzbm1wX2FnZW50LmMpOiByZW1vdmUgdW5uZWVkZWQgS01UIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQwOjEyCiAgICAtIChrZXl0b29scy5jKTogZGVjb2RlX2tleWNoYW5nZSgpIHdhc24ndCBzZXR0aW5nIHRoZSByZXR1cm5lZCBidWZmZXIgbGVuZ3RoLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQzOjUwCiAgICAtIChzbm1wX2FwaS5jKTogREVCVUdQIG9mIHByb2JlZCBlbmdpbmVJRCBwcmludGVkIDAwJ3MgYXMgMCdzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjA5OjM4CiAgICAtIChzbm1wX2FnZW50LmMsIHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgsIHVzbVVzZXIuaCwKICAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQpOgogICAgICAtIHVwZGF0ZWQgVVNNIG1pYiwgaW5jbHVkaW5nIHRoZSBtb3ZlIGZyb20gc25tcE1vZHVsZXMuMTIgdG8gLjE1LgogICAgICAtIG1ha2UgcmVwb3J0cyBnZW5lcmF0ZWQgaW5jbHVkZSB0aGUgLjAgc3VmZml4IGZvciB0aGUgaW5zdGFuY2Ugc3BlY2lmaWVyLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjEwOjI4CiAgICAtICh0b29scy5jKTogd3JhcCBkdW1wX2VuZ2luZUlEIGluICNpZmRlZiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToxNzoyNQogICAgLSAobGNkX3RpbWUuYyk6IHdyYXAgZHVtcF9ldGltZWxpc3QoKSBpbiAjaWZkZWYgU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MjA6MzEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6CiAgICAgIC0gZG9uJ3QgdXNlIGR1bXBfc25tcEVuZ2luZUlEKCkgdW5sZXNzIHRlc3RpbmcuCiAgICAgIC0gTm90ZTogdGhpcyB1dGlsaXR5IGlzIG5vdCByZWFsbHkgbmVlZGVkIGFueW1vcmUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjI6MTI6MzIKICAgIC0gKFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0KTogdHlwbyAoY3V0IGFuZCBwYXN0ZSBtaXNzZWQgYSBsaW5lKS4KCmhhcmRha2VyIDIzIERlYyA5OCAyMTowNzozMwogICAgLSAoc25tcHVzbS5jKTogbXNnU2VjdXJpdHlQYXJhbXMgc2hvdWxkIGNvbnRhaW4gdGhlICpzYWx0Kiwgbm90IHRoZSBJViwKICAgICAgYXMgZGVmaW5lZCBieSB0aGUgVVNNIGRvY3VtZW50LCBzZWN0aW9uIDguMS4xLjEgKGFuZCBjb21tb24gc2Vuc2UpLgoKaGFyZGFrZXIgMjMgRGVjIDk4IDIxOjQ3OjQ0CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBTZW5kIG9ubHkgYXV0aE5vUHJpdiByZXBvcnRzIGZvciBub3RJblRpbWVXaW5kb3cgcmVwb3J0cy4KICAgICAgLSByZXBvcnQgbGVuZ3RoIGNoZWNrIGluY3JlYXNlZCBieSBvbmUgdG8gYWNjb21vZGF0ZSBmb3IgdGhlIC4wIHN1ZmZpeC4KCmhhcmRha2VyIDIzIERlYyA5OCAyMjowNjoyNQogICAgLSAoc25tcHVzbS5jKTogYWxsb3cgZ2VuZXJhdGVfb3V0X21zZygpIHRvIHVzZSB1bmtub3duIHNlY3VyaXR5IG5hbWVzCiAgICAgIGZvciBzZWNMZXZlbCA9IG5vQXV0aE5vUHJpdi4KICAgICAgLSB0aGlzIGlzIHJlcXVpcmVkIHNpbmNlIHVua25vd25Vc2VyIHJlcG9ydHMgbmVlZCB0byBnbyBvdXQgd2l0aCB0aGUKICAgICAgICBzYW1lIHVzZXIgbmFtZSBhcyB0aGUgYmFkIHJlcXVlc3QgdGhhdCBjYW1lIGluLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAxOjI0CiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAyOSBEZWMgOTggMTc6Mjg6MzEKICAgIC0gKGNvbmZpZyopOiBkZWZpbmUgdV9pbnR7OCwxNiwzMn1fdCBmb3IgS01UIGhlYWRlcnMuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTU6MzkKICAgIC0gKHNubXB1c20uYyk6IFVTTSBvaWQncyB3ZXJlIHdyb25nCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTg6MTkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTIgKQoKaGFyZGFrZXIgIDYgSmFuIDk5IDA3OjQ2OjAyCiAgICAtIChzbm1wdXNtLmMpOiB1c21fc2V0X3NhbHQoKSB3YXMgdXNpbmcgYSBob3N0IHNwZWNpZmljIGJ5dGUgb3JkZXJpbmcKICAgICAgZm9yIGdlbmVyYXRpbmcgdGhlIHNhbHQgZnJvbSB0aGUgZW5pZ2luZUJvb3RzIHZhbHVlIGFuZCBmcm9tIHRoZQogICAgICBhcmJpdHJhcnkgaW50ZWdlci4gIFRoaXMgdGVjaG5pY2FsbHkgc2hvdWxkbid0IG1hdHRlciwgYnV0IHNpbmNlCiAgICAgIHdlJ3JlIHNob290aW5nIHRvIGJlIGEgcmVmZXJlbmNlIHBsYXRmb3JtLi4uCgpoYXJkYWtlciAxOSBKYW4gOTkgMTk6MjA6MDcKICAgIC0gKElTU1VFUyk6IG5lZWQgcmFuZG9tIGludCBmb3IgSVYuCgp3YmFic29uIDI2IEphbiA5OSAwNTo1MjoxOQogICAgIENoYW5nZWQgTUlOKCkgbWFjcm8gdG8gU05NUF9NSU4oKSBiZWNhdXNlIHdlIGV4cGxpY2l0bHkKICAgICBkZWZpbmUgdGhhdCBpbiB0b29scy5oLi4uIFRoaXMgd2FzIG5lZWRlZCB0byBhbGxvdyBzdWNjZXNzZnVsCiAgICAgbGlua2FnZSBpbiBTb2xhcmlzIDIuNgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjM3OjU2CiAgICAtIChTTk1QLVRBUkdFVC1NSUIudHh0KTogdGFyZ2V0IG1pYiB3YXMgaW1wcm9wZXJseSBsb2NhdGVkIGF0IC4xNSBub3QgLjEyLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjUxOjEyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFjY2VwdCBzZWN1cml0eSBsZXZlbCBhYmJyZXZpYXRpb25zLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIxOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIGNyZWF0ZSAtLXdpdGgtcGVyc2lzdGVudC1kaXJlY3RvcnkgY29uZmlndXJlIHNjcmlwdCBmbGFnLgoKZHJlZWRlciAyOSBKYW4gOTkgMTU6MjA6NTEKICAgIFJlcGFpcmVkIHRlc3RzIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiB0aGUgY29kZWJhc2UuCgptYXJ6IDMxIEphbiA5OSAxMzo1NzoxMwogICAgIC0oc25tcF9hcGkuYyk6IHplcm8gbGVuZ2h0IHVzZXIgbmFtZSBmb3IgZW5pbmVJRCBkaXNjb3ZlcnkKCmRyZWVkZXIgIDIgRmViIDk5IDE0OjA0OjQ4CiAgICBSZXNvbHZlIE9JRCBjb2xsaXNpb25zOiAxKSBiZXR3ZWVuIGRlbW8gTUlCIGFuZCBVQ0QgZW50ZXJwcmlzZSBNSUI7IDIpCiAgICBpbnNpZGUgZGVtbyBNSUIuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDQ6MzgKICAgIC0gKHNubXB0cmFwZC5jKTogc3VwcG9ydCAtSC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxMzo0MQogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWxsb3cgZW52IHZhcmlhYmxlIFNOTVBfUEVSU0lTVEVOVF9GSUxFIHRvIG92ZXJyaWRlIHBlcnNpc3RlbnQKICAgICAgICBzdG9yYWdlIGxvY2FjdGlvbi4KICAgICAgLSBtZXJnZSBpbiBNaWtlJ3MgY2hhbmdlcyB0byBjb3B5X3dvcmQoKS4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxNDo0NgogICAgLSAodGFyZ2V0LmgpOiBtZXJnZSBtaWtlJ3MgdGFyZ2V0IG1pYmdyb3VwIGludG8gdGhlIDQuMCBsaW5lLgoKbWFyeiAgNiBGZWIgOTkgMTU6MDQ6MTMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9wYXJzZV9hcmdzLmMsc25tcHYzLltjaF0sc25tcHVzbS5jLHNubXBjbWQuMSk6IGFsbG93IGNvbnRleHRFbmdpbmVJRCBhbmQgc2VjdXJpdHlFbmdpbmVJRCB0byBiZSBkaWZmZXJlbnQsIGFkZGVkIC1FLy1lIHRvIHBhcnNlX2FyZ3MsIGZpeGVkIGVuZ2luZUlEIGRpc2NvdmVyeSB3aGljaCBicm9rZSBhZnRlciBuYW1lIHVzZWQgaW4gcHJvYmUgc3dpdGNoZWQgdG8gemVybyBsZW5ndGggc3RyaW5nCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDM6MTUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAtV2FsbCBmaXguCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDU6MTcKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGEgZmV3IC1XYWxsIGZpeGVzOgogICAgICAtIHByb3RveXBlIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKHZvaWQpLgogICAgICAtIHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZXMuCiAgICAgIC0gZG9uJ3QgY29tcGlsZSBpbiBzZXRfZW5naW5lQm9vdHNBbmRUaW1lIGludGVyZmFjZSBmdW5jdGlvbiBpZiBub3QgbmVlZGVkLgoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgc25tcGQuYywgc25tcGQuaCwgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGltcGxlbWVudCBhZ2VudCB1c2luZyBsaWJyYXJpZXMgcGFyc2luZyBhbmQgaGFuZGxpbmcgcm91dGluZXMKICAgICAgICBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LgoKaGFyZGFrZXIgIDggRmViIDk5IDAwOjExOjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHV0aWxfZnVuY3MuYywgdWNkRGVtb1B1YmxpYy5jLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgc25tcEVuZ2luZS5jLCB1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLAogICAgICBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBtb2RpZmllZCB0byB3b3JrIHdpdGggbmV3IHdyaXRlIHZhcmlhYmxlIGFwaS4KICAgICAgLSBmaXhlZCBhIG1pc3NpbmcgZmVhdHVyZSBpbiBEYXZlJ3MgY29kZTogY3JlYXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjI6MTMKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkuCgp3YmFic29uICA4IEZlYiA5OSAxMzozNDozOQogICAgQ2hhbmdlZCB0aGUgZnVuY3Rpb24gcHJvdG90eXBlIGZvciBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzYW5kIFRpbWUKICAgIGZyb20gaW50IGYoKTsgdG8gdm9pZCBmKCk7IHRvIG1hdGNoIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGkKICAgIHNubXB2My5jIC4KCndiYWJzb24gIDggRmViIDk5IDEzOjQwOjI3CiAgICBmaXhlZCBjYXN0aW5nIGVycm9yLi4uICoobG9uZykgY2hhbmdlZCB0byAqKGxvbmcgKikKCmRyZWVkZXIgMTcgRmViIDk5IDE2OjIzOjQzCiAgICBSYW5kb20gSVY7IGZpeGVkIHNhbHQgY29uc3RydWN0aW9uLgogICAgRml4ZWQgTlVMTCBkZXJlZmVyZW5jZSBzaG93LXN0b3BwZXIgaW50cm9kdWNlZCBieSBtZXJnZSBvZiBELiBTaGVsZCdzIGNoYW5nZXMuCiAgICBjb25maWd1cmUuaW4rTWFrZWZpbGUuaW4gYXV0b21hdGljYWxseSBjcmVhdGUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkuCiAgICBNaW5vciBjb21waWxlIHdhcm5pbmdzLCBvdXQtb2YtZGF0ZSBjb21tZW50cyBmaXhlZCwgY2xhcmlmaWVkIGRlYnVnIG91dG91dCwKICAgIAljbGFyaWZpZWQgcHJlLWNvbXBpbGUgY29kZSBpbiBzY2FwaS5jLgogICAgRGlzY292ZXJlZCB3aGVyZSBwZHUtPnNlY3VyaXR5RW5naW5lSUQgd2FzIGJlaW5nIG11bHRpcGx5IGZyZWUnZCwgYnV0IG5vdAogICAgCXRoZSAqZmlyc3QqIHRpbWUuLi4gKG9wZW4gcHJvYmxlbSkKCmhhcmRha2VyIDE3IEZlYiA5OSAyMDo1OToyOQogICAgLSAoc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjA3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIGZpeCBnZXRidWxrcy4KICAgICAgLSBmaXggc25tcHNldCdzIHRvIGFsbG93IGNyZWF0aW9uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjIyCiAgICAtIChkbG1vZF9taWIuYyk6IGRvbid0IGRlZmluZSBNQVRDSF9TVUNDRUVERUQgYXQgYWxsLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjM2CiAgICAtICh1dGlsX2Z1bmNzLmMpOiAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDo1OAogICAgLSAocm91dGVfd3JpdGUuYywgc25tcF9taWIuYywgc3lzdGVtLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAxOjM2CiAgICAtICh1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLCBwcm9jLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjA1OjI4CiAgICAtIChrZXl0b29scy5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHNubXB1c20uYywgdHJhbnNmb3JtX29pZHMuaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6Mjg6NTcKICAgIC0gKGtleXRvb2xzLmMpOiBvcHBzLiAgRGVsZXRlZCBhIHZhcmlhYmxlIEkgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MzA6MTEKICAgIC0gKHNubXBfYWdlbnQuYyk6IFlvdSBjYW4ndCBhc3NpZ24gYSBOVUxMIHRvIGEgdW5pb24sIG9ubHkgdG8gYSBzdWItdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTo0NToyMwogICAgLSAodGVzdGluZy9NYWtlZmlsZS5pbik6IHJlbW92ZSByZWZlcmVuY2VzIHRvIHN1YmRpcnMgc2luY2UgdGhlcmUgYXJlCiAgICAgIG5vbmUgYW5kIGl0IGJyZWFrcyBzaW1wbGllciB2ZXJzaW9ucyBvZiBzaCB3aGVuIG5vIGFyZ3VtZW50cyB0bwogICAgICBmb3JlYWNoIGV4aXN0LgoKbWFyeiAyNCBGZWIgOTkgMDk6MzE6MjkKICAgICAtKHNubXBsaWIvc25tcF9hcGkuW2NoXSxzbm1wbGliL3NubXAuaCxhZ2VudC9zbm1wZC5oLGFnZW50L3NubXBfYWdlbnQuaCk6IG1vdmVkIFJlcG9ydHMgaW50byBzbm1wbGliLCBjb25mb3JtIHRvIHNwZWMgb24gY3JpdGVycmlhIGZvciBzZW5kaW5nIFJlcG9ydHMsIGxheSBncm91bmQgd29yayBmb3IgbWF4TXNnU2l6ZSwgZGVmYXVsdCBjb250ZXh0RW5naW5lSUQgdG8gc2VjdXJpdHlFbmdpbmVJRCB3aGVuIG5vdCBleHBsaWNpdGx5IHNldCBpdHNlbGYKCm1hcnogMjUgRmViIDk5IDE0OjA0OjA1CiAgICAgLShzbm1wX2FwaS5jLHNubXBfY2xpZW50LmMpOiBmaXhlZCBidWcgaW4gc25tcF9jbG9uZV9wZHUgKG5vdCBjbG9uaW5nIHNlY3VyaXR5RW5pZ2luZUlEKSwgdW5jb21tZW50ZWQgX3NubXBfZnJlZQoKd2JhYnNvbiAgOSBNYXIgOTkgMDg6NTQ6MTIKICAgIEZpcnN0IGN1dCBhdCBzbm1wdHJhcGQgbW9kaWZpY2F0aW9uLiBSZWNlaXZlcyBhdXRoUHJpdiBhbmQgbG93ZXIgc2VjdXJpdHkKICAgIGxldmVsIHRyYXBzLgoKd2JhYnNvbiAgOSBNYXIgOTkgMDk6MDI6MDcKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IHRvIGdldCBzZWN1cml0eU5hbWUgZnJvbSBQRFUgcmF0aGVyIHRoYW4gc2Vzc2lvbgogICAgYXMgc2Vzc2lvbiB3YXMgbm90IHlldCBpbml0aWFsaXplZCBkdXJpbmcgZW5naW5lIElEIGRpc2NvdmVyeSBhbmQgdGhlIE5VTEwKICAgIHZhbHVlIGNhdXNlZCBhIHNlZ21lbnRhaW9uIGZhdWx0LgoKbWFyeiAxMCBNYXIgOTkgMDg6MDQ6NDcKICAgICAtKHNubXBfYXBpLmMpOiBmaXggZW5naW5lSWQgZGlzY292ZXJ5IHdoZW4gY29udGV4dCBlbmdpbmVJRCBpcyBzcGVjaWZpZWQgKG5lZWRlZCB0byBkaXNjb3ZlciBwcm94eSBlbmdpbmVJRCBpZiBhbGwgeW91IGtub3cgaXMgcHJveGllZCBhZ2VudCdzIGVuZ2luZUlEKQoKd2JhYnNvbiAxNyBNYXIgOTkgMTM6Mjc6NTkKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IGFib3V0IEJ1aWxkaW5nIHRoZSBTTk1QIG1lc3NhZ2Ugc28gdGhhdAogICAgZXZlbiBpZiBzZWN1cml0eU5hbWUgaXMgdW5pbml0aWFsaXplZCAoTlVMTCksIHByb2dyYW0gd2lsbCBjb250aW51ZQogICAgd2l0aG91dCBjb3JlIGR1bXBpbmcuIExhdGVyLCBzb21lb25lIHNob3VsZCBzZWUgYWJvdXQgZml4aW5nIHRoZSBsb2dpYwogICAgc28gdGhhdCBzZWN1cml0eU5hbWUgd2lsbCBub3QgYmUgYSBOVUxMIHBvaW50ZXIgaGVyZSwgb3IKICAgIHJlcGFpciB0aGUgZGVidWdnaW5nIHNjaGVtZSwgaWYgdGhhdCdzIHZhbGlkLgoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMwOjEyCiAgICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMyOjQ0CiAgICAtICh0ZXN0aW5nL01ha2VmaWxlLmluKTogcmVtb3ZlIHN1YmRpcnMuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MDM6MDQKICAgIC0gKHZhY21fdmFycy5oKTogcmVsb2NhdGUgVkFDTSBub2RlIHdoZXJlIGl0IHNob3VsZCBiZSAoMTMtPjE2KS4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjoxNjozOAogICAgLSAocmVhZF9jb25maWcuYyk6IHNraXAgc3BhY2UgYWZ0ZXIgY29weWluZyBhIHdvcmQgaW4gY29weV93b3JkKCkKCmhhcmRha2VyIDMwIE1hciA5OSAwOTo1MToyMQogICAgLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkZWQgaGVscCBzdHJpbmdzIHRvIGNvbmYgcGFyc2Vycy4KCmhhcmRha2VyICA2IEFwciA5OSAxNToyNzoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgYWNjaWRlbnRpYWxseSBjb21pdHRlZCBjb25mbGljdC4KCmhhcmRha2VyIDE1IEFwciA5OSAwNzoyNTo0OAogICAgLSAoa2V5dG9vbHMuYyk6IEFsbG93IHNob3J0IHBhc3NwaHJhc2VzIHdoZW4gU05NUF9URVNUSU5HX0NPREUgaXMgc2V0LgoKbWFyeiAxOSBBcHIgOTkgMTQ6MTQ6MjMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9jbGllbnQuYyk6IGZpeGVkIGJ1ZyB3aGVyZSBtc2dJZCBhbmQgcmVxSWQgd2VyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHkgaW4gcmVzcG9uc2VzIGlmIG9yZ2luYWwgcmVxdWVzdCBoYXBwZW5lZCB0byBoYXZlIG1zZ0lkIG9yIHJlcUlkIGVxdWFsIHRvIGFyYml0cmFyeSBkZWZhdWx0KDApCgptYXJ6IDE5IE1heSA5OSAwNzoxNDo0NAogICAgCiAgICBhZGRpbmcgdjMgcGFja2V0IGdlbmVyYXRvciBwZXJsNSBzY3JpcHQgKHJlcXVpcmVzIENvbnZlcnQ6OkJFUikKICAgIC4KCm1hcnogMTkgTWF5IDk5IDA3OjE2OjQxCiAgICAKICAgIGV4YW1wbGUgZGF0YSBmaWxlIHRvIGdlbmVyYXRlIGEgVjMgcGFja2V0IHdpdGggcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAwODowMjoyNAogICAgUkVBRE1FIGZvciBwa3RnZW4ucGwKCm1hcnogMTkgTWF5IDk5IDA4OjQ0OjAzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDE5IE1heSA5OSAwODo0NToxNQogICAgcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAxMDozMToxNAogICAgcmVtb3ZlIGxhc3Qgc3VibWl0CgptYXJ6IDIwIE1heSA5OSAxMjozNTowMwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAyMyBNYXkgOTkgMDg6MDQ6MDMKICAgIGhhbmRsZSBzZXFfb2YgdG8gYWxsb3cgYXJiaXRyYXJ5IG51bWJlciBvZiB2YXJiaW5kcywgYnVnIGZpeGVzLCBzZW5kL3JlY2VpdmUsIHByZXR0eSBwcmludCBkZWJ1Z2dpbmcgcGFja2V0IGR1bXAKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxODo0MgogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MjA6MDQKICAgIC0gKHZtc3RhdC5jKTogaW5jbHVkZSBsaW1pdHMuaC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDozMgogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODo0NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjExCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MzM6MDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGhyX2ZpbGVzeXMuYywgaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMpOgogICAgICBQYXRjaCBmcm9tIERlcmVrIEouIEJhbGxpbmc6CiAgICAgIC0gZnJlZWJzZDIgZml4ZXMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTI6NTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5UCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTQ6MjIKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvcXVldWUuaC4KCm1hcnogIDEgSnVuIDk5IDA3OjI1OjU1CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogYWRkZWQgYXV0aGVudGljYXRpb24gc3VwcG9ydCAobWQ1IGFuZCBzaGExKQoKZGF2ZXMgIDEgSnVuIDk5IDA4OjM3OjQ3CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRGV0ZXJtaW5lIHR5cGUgb2YgUlBNIHBhY2thZ2VzCgptYXJ6IDE2IEp1biA5OSAwOTozMDo1NQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGFkZGVkIGVuY3J5cHRpb24vcHJpdmFjdCBzdXBwb3J0IChkZXMtY2JjKQoKbWFyeiAxNiBKdW4gOTkgMTI6NTA6MjkKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBsYXRlc3QgYXR0ZW1wdCB0byBmaXggcHJpdmFjeS9lbmNyeXB0aW9uCgptYXJ6IDIzIEp1biA5OSAwODoxODo1OQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGxhdGVzdCBhdHRlbXB0IHRvIGZpeCBwcml2YWN5L2VuY3J5cHRpb24od29ya2luZyB3aXRoIENyeXB0OjpERVMvQ3J5cHQ6OkNCQytwYXRjaCkKCmhhcmRha2VyICA2IEFwciA5OSAxNToxMzo0MAogICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KCmhhcmRha2VyICA2IEFwciA5OSAxNTozODo0NQogICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KCm1zbGlmY2FrICA2IEFwciA5OSAyMToyNDoyMgogICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTM6NTkKICAgIC0gKHZhY21fdmFycy5jKSAtIHNldCBnbG9iYWwgcHRycyA9IDAuCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTQ6NDMKICAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAoKbXNsaWZjYWsgIDcgQXByIDk5IDA2OjE3OjI4CiAgICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQyOjEwCiAgICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgIE1ha2VmaWxlLmluLCBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBrZXl0b29scy5jLCBrZXl0b29scy5oLAogICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgIC0gbWlzYyBtZXJnaW5nLCBpbmNsdWRpbmcgZml4ZXMgYW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY2hhbmdlcyB0bwogICAgICAgIG5ld2VyIG1vZGVsLgogICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQ4OjA3CiAgICAtIChzbm1wX21pYi5jKTogcmVtb3ZlZCB1bm5uZWVkZWQgaGVhZGVyX3NubXAoKS4KCmhhcmRha2VyICA3IEFwciA5OSAxMToyODowMgogICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICAgdXNtVXNlci5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KCm1zbGlmY2FrICA3IEFwciA5OSAxMjowMDoyMAogICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgICBhZ2VudC92aWV3X3BhcnNlLmMgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KCm1zbGlmY2FrICA3IEFwciA5OSAxMjoxNzoyMwogICAgLShpcGZ3Y2hhaW5zLmMpIHJlbW92ZSBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBNQVRDSF9GQUlMRUQKCm1zbGlmY2FrICA3IEFwciA5OSAxNTowMDozOQogICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE0OjMxCiAgICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTU6MzkKICAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTY6NDUKICAgIC0gKHRrbWliKTogbWFrZSBkaXNwbGF5ZWQgbWliIG5vZGUgaW5mbyBpbnRvIHR3byBjb2x1bW5zIGluc3RlYWQgb2Ygb25lLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjI1OjA5CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgIHZhcmxpc3QgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgdG8gaXQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MTk6MjAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgIC0gZml4IGxpYndyYXAgdG8gb25seSBhZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjIwOjAwCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c0Rlc2NyIHJlYWQtb25seS4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozMjoyMwogICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgICAtIGFkZCBjYXBhYmlsaXR5IGZvciBiaW5hcnkgb2N0ZXQgc3RyaW5ncyBpbiBwYXNzIHNjcmlwdHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzY6MzEKICAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTQ6NDgKICAgIC0gKGZyZWVic2QuaCwgZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZWJzZCB1dG1wIGNsZWFudXBzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU2OjUzCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBsb2cgd2l0aCB0aW1lc3RhbXAgYXQgc2h1dGRvd24uCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTc6MjQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjAyCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHN1cHBvcnQgLVAuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MjcKICAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY2xlYW4gdXAgc21hbGwgYnVncy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMDo0OQogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmljZXIgcGFyc2VyIG1lc3NhZ2VzIChpbmNsdWRlIGZpbGUgbmFtZXMpLiBDb3JyZWN0IGhlbHAgZm9yIC1QYy4KICAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMzoyOQogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNToyOTo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6MzA6MzQKICAgIC0gKHBhcnNlLmMpIEZpbGUgcG9pbnRlciBpbml0aWFsaXplZCB0byAiIiBiZWZvcmUgZmlyc3QgdXNlLgoKaGFyZGFrZXIgMTQgQXByIDk5IDE1OjUyOjM1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBpbml0X3NubXAoInNubXBhcHAiKS4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNjozMTo1NQogICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKCm1zbGlmY2FrIDE0IEFwciA5OSAxNjo1NjozNwogICAgLSBhcHBzIHRoYXQgdXNlIHNubXBfZml4X3BkdSBtdXN0IGNsZWFuIHVwIHRoZSByZXNwb25zZSBQRFUgIQoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjMwOjI5CiAgICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjU0OjIyCiAgICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAoKbXNsaWZjYWsgMTYgQXByIDk5IDA4OjMzOjE2CiAgICAtIChtaWIuYykgIi1tIiBvciBNSUJTIDogY2FuIHNwZWNpZnkgTUlCIG1vZHVsZSBieSBmaWxlIG5hbWUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTA6MDYKICAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMTo0OAogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNToxNAogICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTY6MTYKICAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzowNgogICAgLSAoTkVXUyk6IHVwZGF0ZWQKCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzo0MQogICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjM0OjQ5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKCm1zbGlmY2FrIDE4IEFwciA5OSAwNjo1NDoyNgogICAgLSAoaXBmd2FjYy5oKSBzdWJkaXIgY2hhbmdlIHBlciBKb2UgUHJ1ZXR0dCA6IDkgLT4gMTAKCmhhcmRha2VyIDE5IEFwciA5OSAyMTowMToxNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIHJld3JvdGUgbWliMmMgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gLmNvbmYgZmlsZXMuICBUaGUgbWFpbiAuY29uZgogICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjA5OjI3CiAgICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxMjoxNwogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgIC0gY2xlYW5lZCB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UgcGFyc2luZyByb3V0aW5lcy4KICAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTQ6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoKS4KCmhhcmRha2VyIDIwIEFwciA5OSAxMToyODoxNAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTU6MzE6MzUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICAgdGhlIG1pYjJjIHByb2dyYW0uICBUaGlzIHNob3VsZCBlbnRpdGxlIG1pYjJjIHRvIGJlIHVzZWQgbW9yZQogICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICAgYWJsZSB0byBwcm9kdWNlIEMgY29kZSBmb3IgYSBub24tdWNkLXNubXAgYWdlbnQsIG9yIGV2ZW4gYmV0dGVyLAogICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAgLSBUaGUgZG93biBzaWRlLCBpcyB0aGF0IHRoZSBjdXJyZW50IC5jb25mIGZpbGVzIGFyZSBub3cgYW1iaWd1b3VzCiAgICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgICBpdCB1cCBmb3IgbWUgbGlrZSBoZSBkaWQgbGFzdCB0aW1lLiAgSGEgaGEuICBJIHdvbmRlciBpZiBoZSdsbAogICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MDQ6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdmFyaWFibGUgbmFtZSBjb252ZXJzaW9uczoKICAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgICAtIGNuYW1lIC0+IE5BTUUKCmhhcmRha2VyIDIwIEFwciA5OSAxNjoxMDo0NAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhIGxpdHRsZSBtb3JlIGNsZWFuIHVwLgoKaGFyZGFrZXIgMjAgQXByIDk5IDIxOjM4OjQyCiAgICAtIChtaWIyYy5jb25mKTogY2xlYW4gdXAgc2tpcGlmIHJlZ2V4cHMgYSBiaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTQ6NDQKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTY6MDMKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYWxsb3cgTm9BY2Nlc3MgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgdXNlIHNraXBpZjoKICAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAxMDo1MTozMAogICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KCm1zbGlmY2FrIDI2IEFwciA5OSAwOToyMTowNgogICAgLSAoc25tcGxpYi5jKSAtIHVzZSByZXF1ZXN0IGNhbGxiYWNrJ3MgZGF0YSBpZiByZXF1ZXN0IHNwZWNpZmllcyBhIGNhbGxiYWNrLgoKbmJhIDI2IEFwciA5OSAxMToyMToxMAogICAgCiAgICAocGFyc2UuaCkgU2lsbHkgc3BlbGluZyBtaXN0ZWFrIChBQ0NFU1NfQ1JBRVRFKQoKbmJhIDI2IEFwciA5OSAxMTo0ODo1NwogICAgCiAgICAKICAgIC0gc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IG5ldyBtaWIgcHJpbnRlcjogbWliX3ByaW50X3RyZWUKICAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgICAtIHNubXBsaWIvc25tcF9hcGkuYzogc29tZSBsZWZ0IG92ZXIgX19QIG1hY3JvcwoKbmJhIDI2IEFwciA5OSAxMjowMzo0NwogICAgCiAgICAoaWYuYykgbWFrZSB0aGUgd2lkdGggb2Ygc25tcG5ldCAtaSAoYW5kIC1vKSBhZGFwdCB0byB0aGUgbGVuZ3RoIG9mIHJldHVybmVkCiAgICAJc3RyaW5ncwoKbmJhIDI2IEFwciA5OSAxMjowOTozNQogICAgCiAgICAKICAgIGFwcHMvKi5jOiB1c2Ugc25tcF9wZXJyb3IgdG8gcmVwb3J0IGVycm9ycyBmcm9tIHJlYWRfb2JqaWQgYW5kIGZyaWVuZHMKICAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCgpuYmEgMjYgQXByIDk5IDEyOjEzOjUwCiAgICAKICAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAgCWZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI2IEFwciA5OSAxMjozNzowOQogICAgLSAoc25tcF9hcGkuYykgLSBmaXggb3RoZXIgdXNlIG9mIHJlcXVlc3QncyBjYWxsYmFjayBkYXRhCgptc2xpZmNhayAyNyBBcHIgOTkgMDk6NTE6MzUKICAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozMjozOQogICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6Mzk6NDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSB1c2UgdGhlIGNhbGxiYWNrIG1lY2hhbmlzbSBmb3IgcG9zdC1jb25maWcgc3R1ZmYuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MDc6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbm1wdHJhcGQuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MTM6MzEKICAgIC0gKHNubXBkLmMpOiBmaXggLUEgZmxhZywgd2hpY2ggZ290IGJyb2tlbiBkdXJpbmcgc29tZW9uZXMgY2hhbmdlcy4KCmhhcmRha2VyICAzIE1heSA5OSAxMjo1ODoxOQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgICBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICAgZXRpbWV0ZXN0LmMsIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmMpOgogICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCgpuYmEgIDMgTWF5IDk5IDE1OjQwOjExCiAgICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgIAl3aXRoIGdjYyAtV2FsbCAtcGVkYW50aWMgLVd3cml0ZS1zdHJpbmdzIC1XY2FzdC1xdWFsKQoKbmJhICA0IE1heSA5OSAwMDo0Nzo0NAogICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCm5iYSAgNCBNYXkgOTkgMDA6NTE6MTYKICAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwoKaGFyZGFrZXIgIDQgTWF5IDk5IDExOjA4OjU1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEFkZGVkIC0tZW5hYmxlLWRldmVsb3BlciBmbGFnLgoKbXNsaWZjYWsgIDYgTWF5IDk5IDA5OjIwOjMwCiAgICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCgpuYmEgMTAgTWF5IDk5IDE0OjQ3OjIyCiAgICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCgpuYmEgMTAgTWF5IDk5IDE0OjQ5OjQ5CiAgICBzbm1wbGliL3NubXBfYXBpLmM6IE1peC11cCBvZiBWMV9JTl9WMi9WMl9JTl9WMSBlcnJvciBjb2RlIHdoZW4gR0VUQlVMSwogICAgCWluc2lkZSBWMSBzZXNzaW9uLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAyOjQ4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAzOjI1CiAgICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MTE6NDAKICAgIC0gKGhwdXguYywgaHB1eC5oKTogaW50IC0+IHNpemVfdCBjb252ZXJzaW9ucy4KCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo1MzoyMwogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyMjoxNgogICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTI6MTkKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA5OjE4CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCm1zbGlmY2FrIDE0IE1heSA5OSAwNjo1NDo1MQogICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCgptc2xpZmNhayAxNCBNYXkgOTkgMDk6NDc6MTAKICAgIC0gKGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiAgICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDEzOjU5OjM3CiAgICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDo1MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgpkYXZlcyAxNyBNYXkgOTkgMDQ6MzQ6NTUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDQ6Mzg6MDAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA3OjE4OjAyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oIGFnZW50L3NubXBkLmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSBhIHNpbmdsZSBhZGRyZXNzIGZpZWxkIHdpdGhpbiB0aGUgUERVIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQoKZGF2ZXMgMTggTWF5IDk5IDA2OjI2OjE2CiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCgptc2xpZmNhayAxOCBNYXkgOTkgMDk6MDE6NDYKICAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCgpkYXZlcyAxOCBNYXkgOTkgMDk6MjM6NTAKICAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB2My5jIHNubXBsaWIvc3lzdGVtLmMKICAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRhYmxlLmMgYXBwcy9zbm1wdGVzdC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICAoICNpZiBIQVZFX1dJTlNPQ0tfSCAvICNlbHNlIC8gI2VuZGlmICkKCmRhdmVzIDE5IE1heSA5OSAwMjozMzowNwogICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCgpkYXZlcyAxOSBNYXkgOTkgMDU6MTE6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKCm1zbGlmY2FrIDE5IE1heSA5OSAxODowMjo1NQogICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1Cgptc2xpZmNhayAxOSBNYXkgOTkgMTg6NTA6MTIKICAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKCmRhdmVzIDIwIE1heSA5OSAwMzo0NjoyNAogICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKCm1zbGlmY2FrIDIxIE1heSA5OSAwNToyNDoyMwogICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgoKZGF2ZXMgMjEgTWF5IDk5IDA1OjU0OjIyCiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgICAtICBOZXcgQVBJIGNhbGwgdG8gY2xvc2UgZG93biBhbGwgb3BlbiBzZXNzaW9ucwogICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCgpoYXJkYWtlciAyMSBNYXkgOTkgMTE6MTA6NDQKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgIC0gY29udmVydCB0byBzaXplX3Qgc3RvcmFnZXMuCiAgICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCgptc2xpZmNhayAyMSBNYXkgOTkgMTU6Mjk6NDYKICAgIC0gbGlicmFyeSBjaGFuZ2VzIHRvIGJ1aWxkIG9uIFdpbjMyLgoKbXNsaWZjYWsgMjQgTWF5IDk5IDA1OjM2OjEzCiAgICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTk6MDMKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE0OjU1CiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE4OjA0CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MjA6MzIKICAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1NjowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6NDA6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgoKbXNsaWZjYWsgMjcgTWF5IDk5IDA1OjE2OjI1CiAgICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjAzCiAgICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MTUKICAgIC0gKHNubXB0cmFwZC5jKTogbmVlZCBhbiBpbml0X21pYigpLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjA2CiAgICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MzIKICAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCgpkYXZlcyAyOCBNYXkgOTkgMDc6MDI6MDEKICAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCgpkYXZlcyAyOCBNYXkgOTkgMDg6MTQ6MDUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNhdmUgbG9jYWwgc29ja2V0IGFkZHJlc3MgaW4gaW50ZXJuYWwgc2Vzc2lvbiBzdHJ1Y3R1cmUKCmRhdmVzIDI4IE1heSA5OSAwODo1NzoxOQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAoKZGF2ZXMgMjggTWF5IDk5IDA5OjEyOjIwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCgptc2xpZmNhayAyOCBNYXkgOTkgMDk6MjQ6NTYKICAgIC0oc25tcF9hcGkuYykgLWNhdGNoIG9uZSBtb3JlIGVycm9yIGNsb3NlIGZyb20gc25tcF9zZXNzX2NvcHkKCmhhcmRha2VyIDI4IE1heSA5OSAxNjoxNzoxMwogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBzYXZlIGFuZCB1c2UgaW5kZXggY2xhdXNlcy4KCmhhcmRha2VyIDI4IE1heSA5OSAxNjo0NDo0MgogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBjcmVhdGVkIGdlbmVyaWMgZGVmYXVsdCB2YWx1ZSBzdG9yYWdlIHNwYWNlIGFuZCBwYXJzZXJzIHRvIHJlZHVjZQogICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgIGxpYnJhcnkuCgpkYXZlcyAgMSBKdW4gOTkgMDI6MTc6MjcKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgVHJhZGl0aW9uYWwgU0FQSSBzZXNzaW9ucwoKZGF2ZXMgIDEgSnVuIDk5IDAyOjMyOjEzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCgpkYXZlcyAgMSBKdW4gOTkgMDc6MzA6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwoKaGFyZGFrZXIgIDEgSnVuIDk5IDE3OjIxOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICAgd2hpY2ggaXMgbmV4dCBhbmQgY2FsbGluZyBhbGFybSgpIGFuZCBzaWduYWwoKSBhcHByb3ByaWF0ZWx5LgoKbXNsaWZjYWsgIDQgSnVuIDk5IDA5OjUxOjEzCiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDQ6MDYKICAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCgptc2xpZmNhayAgNyBKdW4gOTkgMTM6MDQ6MjEKICAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKbXNsaWZjYWsgIDggSnVuIDk5IDA3OjQzOjEwCiAgICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KCmRhdmVzICA4IEp1biA5OSAwODo0Mzo1OQogICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oCiAgICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKCm1zbGlmY2FrICA4IEp1biA5OSAwOTozMjo0OAogICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKCmRhdmVzICA5IEp1biA5OSAwNjozMjowMgogICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKCmhhcmRha2VyICA5IEp1biA5OSAxODozMTo0MgogICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCgpkYXZlcyAxNSBKdW4gOTkgMDM6NTk6MjMKICAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKCmRhdmVzIDE1IEp1biA5OSAwODoyODowMAogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6CiAgICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwoKaGFyZGFrZXIgMTUgSnVuIDk5IDE2OjI1OjU3CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGFsbG93ZWQgemVyb2xlbmd0aCBwZHUtPnNlY3VyaXR5TmFtZSBwcm9ibGVtIGZvcgogICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgoKZGF2ZXMgMTYgSnVuIDk5IDA1OjExOjQ4CiAgICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCgpkYXZlcyAxNiBKdW4gOTkgMDU6NDk6MzgKICAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKCmRhdmVzIDE2IEp1biA5OSAwNjo1NjoxNAogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjI0OjU4CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMpOgogICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAgLSBwcmVtaWIgYXV0by1yZWdpc3RyYXRpb24gb2YgZGVmYXVsdF9zdG9yZSBuZWVkcyBjbGVhbmluZyB1cC4uLiAgc2lnaC4uLgoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjUxOjExCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgIC0gMiBuZXcgc25tcC5jb25mIHRva2VuczogZG9EZWJ1Z2dpbmcsIGRlYnVnVG9rZW5zLgoKaGFyZGFrZXIgMTcgSnVuIDk5IDA3OjM5OjAxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCAtLWhlbHAuCgptc2xpZmNhayAxNyBKdW4gOTkgMTM6MTg6MzUKICAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCgptc2xpZmNhayAxOCBKdW4gOTkgMDU6MDE6NTQKICAgIGFwcGxpZWQgZml4ZXMgZnJvbSBNLiBMYXVra2FuZW4KCmRhdmVzIDE4IEp1biA5OSAwNjo1ODo1MwogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKCmRhdmVzIDE4IEp1biA5OSAwNzo1Njo0NgogICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBkaXN0aW5ndWlzaCBiZXR3ZWVuIFNOTVAgcHJvdG9jb2wgJiBQRFUgaGFuZGxpbmcgZmxhZ3MKCmRhdmVzIDE4IEp1biA5OSAwODowMDozNAogICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKCmRhdmVzIDE4IEp1biA5OSAwODowNDoyMgogICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ0OjExCiAgICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ3OjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKCmRhdmVzIDE4IEp1biA5OSAwODo0OTo1MgogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gYWNjb21vZGF0ZSBzZXJ2ZXJzIHRoYXQgcmVxdWlyZSBhbiBhY2Nlc3NpYmxlIGNsaWVudC1lbmQgdW5peCBzdHJlYW0gc29ja2V0CiAgICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCgpkYXZlcyAxOCBKdW4gOTkgMDg6NTU6MzIKICAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAgLSBiYXNpYyBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcKCmRhdmVzIDE4IEp1biA5OSAwOTowMDoxNgogICAgLSAoc25tcF92YXJzLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBtZWFucyBvZiBieXBhc3NpbmcgVkFDTSBjaGVja3MKCmRhdmVzIDE4IEp1biA5OSAwOToxNDo1OAogICAgLSAoc25tcGQuYyBzbm1wZC5oIHNubXBfdmFycy5jIHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgKICAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgoKbXNsaWZjYWsgMTggSnVuIDk5IDEwOjAyOjAzCiAgICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0Cgptc2xpZmNhayAyMiBKdW4gOTkgMDU6MjE6MDMKICAgICBpbnZva2Ugc25tcF9zZXNzX2luaXQgYmVmb3JlIGFueSBNSUIgcHJvY2Vzc2luZyAoZml4ZXMgbWFzdGVyIGFnZW50KS4KCm5iYSAyMiBKdW4gOTkgMDU6MjU6MTMKICAgIFRPRE86CW5lZWQgZm9yIENvdW50ZXI2NCBzdXBwb3J0IGluIHNubXBkZWx0YQoKZGF2ZXMgMjggSnVuIDk5IDAzOjA4OjQyCiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCgpkYXZlcyAyOCBKdW4gOTkgMDQ6MDc6MzYKICAgIC0ge01ha2VmaWxlLmluIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcF92YXJzLmMgYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKCmRhdmVzIDI4IEp1biA5OSAwOTo1MjowOAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgICAtIE5vbi1yZWN1cnNpdmUgTUlCIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uCgpoYXJkYWtlciAyOCBKdW4gOTkgMTQ6NTk6NDEKICAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KCmhhcmRha2VyIDI4IEp1biA5OSAxNTowMToxNAogICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKCmRhdmVzIDMwIEp1biA5OSAwMTozNzoxMQogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCgpkYXZlcyAzMCBKdW4gOTkgMDE6NDU6MjYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgoKZGF2ZXMgMzAgSnVuIDk5IDAxOjQ4OjM0CiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQoKZGF2ZXMgMzAgSnVuIDk5IDAyOjMyOjAzCiAgICAtIChzbm1wX2FwaS5jKTogQ29ycmVjdCB0aGUgc2V0dXAgb2Ygc3RyZWFtLWJhc2VkIGFjY2VwdGVkIGludGVybmFsIHNlc3Npb25zCgpkYXZlcyAzMCBKdW4gOTkgMDM6MjA6NDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKCmRhdmVzIDMwIEp1biA5OSAwNTowNTo0NAogICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCgpkYXZlcyAzMCBKdW4gOTkgMDU6MDY6NTIKICAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKCmRhdmVzIDMwIEp1biA5OSAwNTo0ODo0MAogICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAoKaGFyZGFrZXIgMzAgSnVuIDk5IDE5OjM3OjM2CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGNvbnZlcnQgbW9yZSBzdHVmZiB0byB0aGUgZGVmYXVsdF9zdG9yZSBzcGFjZS4KCmRhdmVzICAyIEp1bCA5OSAwMjozOTo0MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeCB0aGF0IGxhc3QgJ3NlbmR0bycgY2FzZSAqY29ycmVjdGx5KiB0aGlzIHRpbWUKCmRhdmVzICAyIEp1bCA5OSAwNToxMzo0MgogICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAgLSBpbXBsZW1lbnQgYW4gaW50ZXJmYWNlIGZvciBkZWxlZ2F0aW5nIHJlcXVlc3RzIHRvIHN1YmFnZW50cwoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE1OjU2CiAgICAtICh2YXJfc3RydWN0LmggYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE2OjQxCiAgICAtIChzbm1wX2FwaS5oKTogc3VwcG9ydCBsaXN0cyBvZiBzZXNzaW9ucyAoYW5kIHN1YnNlc3Npb25zKQoKaGFyZGFrZXIgIDIgSnVsIDk5IDA4OjI3OjMwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiByZWdpc3RlciBkZWJ1Z2dpbmcgdG9rZW5zIHdpdGggLUQKCmRhdmVzICA2IEp1bCA5OSAwMjoyMDo1NwogICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCgpkYXZlcyAgNyBKdWwgOTkgMDY6NTQ6NTMKICAgIC0gKGFzbjEuYyBhc24xLmggc25tcC5jIHNubXAuaCBzbm1wX2FwaS5jIHNubXBfYXBpLmgKICAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQoKZGF2ZXMgIDggSnVsIDk5IDAyOjE2OjE1CiAgICAtIChzbm1wX2FwaS5jKTogUmV0YWluIGNvbW11bml0eSBzdHJpbmcgaW4gcmVzcG9uc2VzCgpkYXZlcyAgOCBKdWwgOTkgMDY6MjU6MDcKICAgIC0gKG1pYklJL3N5c3RlbV9taWIuYyBtaWJJSS9zbm1wX21pYi5jKToKICAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KCmhhcmRha2VyICA4IEp1bCA5OSAxNDoyOTozNQogICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjMwOjQ3CiAgICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OSAxNDozNjo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgdmlld19wYXJzZS5jLCB2YWNtX3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICAgbGlic25tcC5oLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKCmhhcmRha2VyICA4IEp1bCA5OSAxNDo0OTowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCgpoYXJkYWtlciAgOCBKdWwgOTkgMTU6MTY6MzUKICAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KCmhhcmRha2VyICA4IEp1bCA5OSAxNjowMjo1OAogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgogICAgICAtIEFkZCBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdG8gYSBnaXZlbiB1aWQgYW5kIGdpZC4KCmRhdmVzICA5IEp1bCA5OSAwMTo0OTo0OQogICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKCmRhdmVzICA5IEp1bCA5OSAwODoyNzozOQogICAgLSAoKi9NYWtlZmlsZS5pbiBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgICBhZ2VudC9zbm1wZC5bY2hdIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIE1vdmUgQWdlbnRYIGhhbmRsaW5nIG91dCBvZiB0aGUgbWFpbiBTTk1QIGxpYnJhcnkKCm1zbGlmY2FrICA5IEp1bCA5OSAxMjoxMjo1MAogICAgLShzbm1wX2NsaWVudC4qKSByZW1vdmUgc25tcF9zeW5jaF9zZXR1cCwgc25tcF9zeW5jaF9yZXNldAoKbXNsaWZjYWsgIDkgSnVsIDk5IDE0OjIwOjIzCiAgICAtKHdpbjMyLHNubXBsaWIsYXBwcyxhZ2VudCkgYWRkIHNubXBfc29ja2V0X2xlbmd0aCB0byBoaWRlIHNvY2thZGRyX3VuOyBXaW4zMiB0b3VjaHVwcwoKbXNsaWZjYWsgMTEgSnVsIDk5IDE4OjM2OjI0CiAgICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgoKZGF2ZXMgMTIgSnVsIDk5IDA3OjE0OjM2CiAgICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IHJlbW92ZSBkZXBlbmRlbmN5IG9uIHNubXBsaWIvYWdlbnR4LmgKCmRhdmVzIDEyIEp1bCA5OSAwODozMjoyNwogICAgLSAobWliZ3JvdXAvaG9zdC8qKTogRHluYW1pY2FsbHkgcmVnaXN0ZXIgYWxsIEhvc3QgUmVzb3VyY2UgbW9kdWxlcwoKbXNsaWZjYWsgMTQgSnVsIDk5IDEzOjE0OjMwCiAgICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCgptc2xpZmNhayAxNCBKdWwgOTkgMTM6NDY6NTMKICAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCgpoYXJkYWtlciAxNSBKdWwgOTkgMDg6NDY6MDAKICAgIC0gKGFzbjEuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAgLSBuZWVkcyBhIGxvdCBtb3JlIHdvcmsgYW5kIGNsZWFuIHVwLgogICAgICAtIEkgbmVlZCBjb21tZW50cy4uLiAgVGVsbCBtZSB3aGF0IHlvdSB0aGluay4uLgoKaGFyZGFrZXIgMjAgSnVsIDk5IDE0OjAyOjI2CiAgICAtIChhdXRvX25saXN0LmMsIGhpc3RvcnkuYywga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oLCB1dGlsX2Z1bmNzLmMsIGlwZndjaGFpbnMuYywKICAgICAgYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFjbV92YXJzLmMsIHZhcl9yb3V0ZS5jLCBkbG1vZC5jLCBzbXV4LmMsIGRpc2suYywgZXh0ZW5zaWJsZS5jLAogICAgICBsb2FkYXZlLmMsIG1lbW9yeV9zb2xhcmlzMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKICAgICAgS2r4cnN0YWQ6CiAgICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCgpoYXJkYWtlciAyMCBKdWwgOTkgMTc6MDY6NTMKICAgIC0gKGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLAogICAgICBpcGZ3Y2hhaW5zLmMsIGludGVyZmFjZXMuYywgZGxtb2QuYywgc211eC5jLCB2ZXJzaW9uaW5mby5jLAogICAgICBhbGFybS5jKToKICAgICAgLSBjb252ZXJ0IHNubXBfbG9nKExPR19ERUJVRykgdG8gREVCVUdNU0dUTCgpLgoKbXNsaWZjYWsgMjAgSnVsIDk5IDE4OjExOjUwCiAgICAtbWlub3IgY2hhbmdlcyB0byBidWlsZCBXaW4zMiBwbGF0Zm9ybXMgdXNpbmcgQ3lnV2luLWVnY3MgYW5kIE1TVkMgY29tcGlsZXJzLgoKbXNsaWZjYWsgMjAgSnVsIDk5IDE5OjMzOjI2CiAgICAtIG5vIHByaW50ZiBpbiBhc2NpaV90b19iaW5hcnkKCmhhcmRha2VyIDIxIEp1bCA5OSAxNjowNjo1MgogICAgLSAodGttaWIsIG1pYjJjKTogdWRwYXRlIHRvIHVzZSBpbmRleGVzIChyZXF1aXJlcyBhIHBlcmwgcGF0Y2guCgpoYXJkYWtlciAyMyBKdWwgOTkgMTA6MzY6NTQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbG9nIHRvIHN0ZGVyci4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMDo0NDoxNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBrZXJuZWxfc3Vub3M1LmMsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLAogICAgICBpbnRlcmZhY2VzLmgsIHN5c3RlbV9taWIuYywgdmFyX3JvdXRlLmMsIHNubXBFbmdpbmUuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXB0cmFwZC5jLCBIT1NULVJFU09VUkNFUy1NSUIudHh0LAogICAgICBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQsIFRDUC1NSUIudHh0LAogICAgICBVRFAtTUlCLnR4dCwgcGFyc2UuYywgc25tcF9hbGFybS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgICAtIG1lcmdlIGZyb20gVjMtbGluZSBwb3N0IDMuNi4yIHRvIGN1cnJlbnQuCiAgICAgIC0gbWlzYyBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSBhcHBzIHR1cm4gb24gc3RkZXJyIGxvZ2dpbmcgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxODoyMwogICAgLSAoc25tcGQuYyk6IG1vcmUgc25tcF9sb2cgY29udmVyc2lvbnMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTg6NDQKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGNoYW5nZSBtYWxsb2Mgc2l6ZSgpLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE5OjIwCiAgICAtIChhc24xLmMpOiBudWxsIHRlcm1pbmF0ZSBwYXJzZWQgc3RyaW5ncywganVzdCBpbiBjYXNlLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjIwOjAyCiAgICAtIChzbm1wLmMpOiB4ZHVtcCBmaXhlcy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoyMDozMwogICAgLSAoa2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IHNubXBfbG9nIGNvbnZlcnNpb25zLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE0OjE5OjM5CiAgICAtIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgICAtIHJldmVydCB0byBub24tZHBhcnNlIHZlcnNpb25zIG9mIGFzbiBkZWNvZGluZy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNDoyNjo1NwogICAgLSAoc25tcGQuYyk6IGluaXQgZGVidWdnaW5nLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE1OjIyOjAyCiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgICAgIHNubXBfY2xpZW50LmMpOgogICAgICAtIG1ha2UgYW5kIHVzZSBzbm1wX3Nlc3NfcGVycm9yKHN0ciwgc2VzcykgZm9yIGVycm9yIHByaW50aW5nLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjExOjMwCiAgICAtKGFzbjEuYykgLSBmaXggY29tcGFyZSBlcnJvciBhdCBsaW5lIDM4NjsgcmVtb3ZlIHVudXNlZCB2YXJzIGVsc2V3aGVyZQoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjE4OjEzCiAgICAtKGxpYnNubXAuZGVmKSAtIGFkZCBkZWNscyBmb3IgbmV3IGVycm9yIGxvZ2dpbmcgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjQ1OjU5CiAgICAtKHNubXBfY2xpZW50LmMpIC0gdXNlIFNFVF9TTk1QX0VSUk9SIGZvciByZXN0b3JlZCBzbm1wX2Vycm5vIHNldHMuCgptc2xpZmNhayAyNCBKdWwgOTkgMDg6MTE6MDUKICAgIC0obWQ1LmMpIC0gd3JhcCB1bnVzZWQgTUQ1cHJpbnQgd2l0aCBTTk1QX1RFU1RJTkdfQ09ERSBpZmRlZgoKaGFyZGFrZXIgMjYgSnVsIDk5IDA3OjM3OjA5CiAgICAtIChTTk1QdjItQ09ORi50eHQpOiByZW1vdmVkIGJvZ3VzIElNUE9SVFMgY2xhdXNlCgpoYXJkYWtlciAyNiBKdWwgOTkgMDk6MDQ6MDkKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgMjYgSnVsIDk5IDA5OjE0OjI0CiAgICAtIChORVdTKTogdXBkYXRlZCBhIGJpdAoKaGFyZGFrZXIgMjYgSnVsIDk5IDExOjUxOjIyCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU0ICkKCmhhcmRha2VyIDI2IEp1bCA5OSAxNDozMjoxNwogICAgLSAobWliLmMpOiBCSVRfc3RyaW5nOiAtPiBCSVRTOgoKbXNsaWZjYWsgMjYgSnVsIDk5IDE1OjEyOjQ1CiAgICAtKGFzbjEuYyxhc24xLmgsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMsc25tcHVzbS5jKSBtb3JlIGRldGFpbGVkIHBhcnNlIGVycm9yIG1lc3NhZ2VzLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE1OjU5OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNjowMwogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIHZhcmlhYmxlIG5hbWluZyBjaGFuZ2UuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDY6NDcKICAgIC0gKGhwdXguaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBkZWZpbmUgaHB1eAoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA3OjMxCiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLCBzY2FwaS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIHNpemVfdCBjaGFuZ2VzLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDA0OjI0OjA4CiAgICBhZGQgaW5jbHVkZSBuZXQvaWZfZGwuaCBzdWdnZXN0ZWQgYnkgVG9tIEl2YXIgSGVsYmVra21vCgpkYXZlcyAyNyBKdWwgOTkgMDY6Mzg6MDkKICAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLyouYyk6IHR3ZWFrIHJlZ2lzdHJ5IGxhYmVscwoKbXNsaWZjYWsgMjcgSnVsIDk5IDA3OjUyOjM3CiAgICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYyxhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLAogICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICAgc25tcGxpYi9hc24xLmMsc25tcGxpYi9zY2FwaS5jLHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgIHNubXBsaWIvc25tcF9jbGllbnQuaCkgIEVSUk9SX01TRywgcHJpbnRmIC0tPiBERUJVR01TR1RMCgptc2xpZmNhayAyNyBKdWwgOTkgMDk6MzM6NDMKICAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvc25tcGQuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyxhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsYXBwcy9zbm1wZGVsdGEuYyxhcHBzL3NubXBnZXQuYywKICAgIGFwcHMvc25tcGdldG5leHQuYyxhcHBzL3NubXBzZXQuYyxhcHBzL3NubXBzdGF0dXMuYywKICAgIGFwcHMvc25tcHRhYmxlLmMsYXBwcy9zbm1wdGVzdC5jLGFwcHMvc25tcHRyYXAuYywKICAgIGFwcHMvc25tcHRyYXBkLmMsYXBwcy9zbm1wdXNtLmMsYXBwcy9zbm1wd2Fsay5jLAogICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsc25tcGxpYi9wYXJzZS5jLHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgIHNubXBsaWIvc25tcHYzLmMpIGZpeCBzbm1wX3Nlc3NfcGVycm9yIHVzZTsgdXNlIGxvZ19wZXJyb3IgZm9yIHBlcnJvcgoKbXNsaWZjYWsgMjcgSnVsIDk5IDEyOjAwOjM3CiAgICAtKGVuY29kZV9rZXljaGFuZ2UuZHNwLHNubXB1c20uZHNwKSAtYnVpbGQgdXNpbmcgY29tbW9uIFdpbjMyIGNvbXBpbGVyCgptc2xpZmNhayAyNyBKdWwgOTkgMTI6MjQ6MDMKICAgIC0oYXBwczplbmNvZGVfa2V5Y2hhbmdlLmMsc25tcGRlbHRhLmMsc25tcHRhYmxlLmMsIHNubXB1c20uYzsKICAgIHNubXBsaWI6cmVhZF9jb25maWcuYyxzbm1wdjMuYzsgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpIC0KICAgICBhZGp1c3QgaGVhZGVycywgYnVpbGQgV2luMzIgc25tcHVzbStlbmNvZGVfa2V5Y2hhbmdlCgptc2xpZmNhayAyNyBKdWwgOTkgMTY6MDY6MzUKICAgIC0oaW50ZXJmYWNlcy5jKSAtIGZpeCBlcnJvciBzZXR0aW5nIGlmX2lieXRlcyBmb3IgTGludXggMi4wCgpoYXJkYWtlciAyNyBKdWwgOTkgMTY6MTQ6MjgKICAgIC0gKGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAgLSBjbGVhbmVkIHVwIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgICAgLSBhZGRlZCBtb3JlIGR1bXAgcGFyc2UgaGVhZGVycyBmb3IgdjMgZHVtcHMuCgpoYXJkYWtlciAyNyBKdWwgOTkgMTY6MjA6NDYKICAgIC0gKGFzbjEuYyk6IGZpeCBoZWFkZXIgZHVtcC4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxNzoxNTowMQogICAgaW5jbHVkaW5nIG1pYi5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gZGVmaW5lIEZJTEUgKi4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxOTowMjozMQogICAgLShzbm1wX3BhcnNlX2FyZ3MpIGluIHNubXBfcGFyc2Vfb2lkLCB0cnkgZ2V0X25vZGUgaWYgcmVhZF9vYmppZCBmYWlscy4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxOTowNjowOAogICAgLShtaWIuYykgZml4IHdhbGtpbmcgT0lEIGxlbmd0aCBwb2ludGVyLCBudW1lcmljIHN1Yi1pZCBub3QgZm91bmQKICAgIGluIHJlYWRfb2JqaWQgYW5kIHBhcnNlX3N1YnRyZWUuCgptc2xpZmNhayAyNyBKdWwgOTkgMjM6MzQ6NTkKICAgIC0oc25tcGQuYykgaW52b2tlIGxvZyBmdW5jdGlvbnMgZnJvbSBjaGlsZCAoY29ycmVjdCBwcm9jZXNzIElEIGluIHN5c2xvZykKCm1zbGlmY2FrIDI3IEp1bCA5OSAyMzo1ODo1MQogICAgLShrZXl0b29scy5jLG1kNS5jLG1kNS5oLHNjYXBpLmMsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMpIGNhdGNoIE1ENSBlcnJvcnMKCm1zbGlmY2FrIDI4IEp1bCA5OSAwMjo0MjozMgogICAgaHJfc3dydW4gLSByZXNldCBwb2ludGVyIGluIG1vZHVsZSBpbml0IChoZWxwIEhQL1VYIDkpCiAgICBzbm1wX2xvZ2dpbmcgLSB1c2UgdnNwcmludGYgZm9yIEhQL1VYLTkKCmhhcmRha2VyIDI4IEp1bCA5OSAwNjo0NToxOQogICAgLSAoYnVnLXJlcG9ydCk6IGNoYW5nZSBtYWlsIGFkZHIgdG8gdWNkLXNubXAtYnVncwoKZGF2ZXMgMjkgSnVsIDk5IDAzOjI5OjQwCiAgICAtIChtaWJJSS92YWNtX3ZhcnMuYyk6IENhdGNoIHVzZSBvZiB1bmNvbmZpZ3VyZWQgRVhBTVBMRS5jb25mIGZpbGVzCgptc2xpZmNhayAyOSBKdWwgOTkgMDg6MzQ6NTkKICAgIG1lbW9yeV9zb2xhcmlzMiA6IGhhbmRsZSBtYWxsb2MgZXJyb3JzCiAgICBrZXJuZWxfc3Vub3M1IDogc2hhcmUga3N0YXQgZmlsZGVzIFtTSEFSRV9LU1RBVF9GRF0KCm1zbGlmY2FrIDI5IEp1bCA5OSAxMzoyODozNgogICAgLShhcHBzL01ha2VmaWxlLmluKSAtIGNvbW1lbnQgdW5uZWVkZWQgVFJBUFNQRUNJQUwgbGluZQoKbXNsaWZjYWsgMjkgSnVsIDk5IDEzOjU5OjAyCiAgICAtKGFnZW50L3NubXBkLmMpIC0gbG9nIHN0YW5kYXJkIGVycm9yIHVudGlsIGluaXQgaXMgY29tcGxldGVkLgoKbXNsaWZjYWsgMjkgSnVsIDk5IDE1OjA0OjQ5CiAgICBhdXRvX25saXN0LCBrZXJuZWwgOiBwbGFjZSBsb2dfcGVycm9yIHRvIGNhdGNoIGVycm5vIHZhbHVlIGluIHJlcG9ydC4KCmhhcmRha2VyIDI5IEp1bCA5OSAxNzowMzoyNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogcmVtb3ZlIHRyYXBfc3BlY2lhbCBzdHVmZi4KCmhhcmRha2VyIDI5IEp1bCA5OSAxNzowNjo1NgogICAgLSAobWliZ3JvdXAvdjJwYXJ0eSk6IHJlbW92ZWQgZmlsZXMuCgptc2xpZmNhayAzMCBKdWwgOTkgMDM6NTE6MzEKICAgIFJlbW92ZWQgZHVwbGljYXRlIEhBVkVfR0VUPz8/QllOQU1FOyBSZW1vdmVkIHVudXNlZCBfQ1JUSU1QCgptc2xpZmNhayAzMCBKdWwgOTkgMDM6NTc6MjMKICAgIFJlbW92ZWQgaGludCBvZiB2MnBhcnR5IGZyb20gY29tbWVudC4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDowMDoyOAogICAgLShhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLGFnZW50L2hpc3RvcnkuYyxhZ2VudC9zbm1wX3ZhcnMuYywKICAgIGFnZW50L3NubXBkLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLHNubXBsaWIvc25tcF9hbGFybS5jLAogICAgc25tcGxpYi9zbm1wX2FwaS5jLHNubXBsaWIvc25tcF9sb2dnaW5nLmMsc25tcGxpYi9zbm1wdjMuYywKICAgIHNubXBsaWIvc3lzdGVtLmMpIC0gcHNvcyBkaWZmcyBvZmZlcmVkIGJ5IEFudGhvbnkgU3ltb25zCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6Mzc6MjAKICAgIHJlbmFtZSBsb2NhbCB2YXIgJ2xhc3QnIHRvICdsYXN0X2lwY2gnIC0gYXZvaWQgc2hhZG93IGdsb2JhbCBkZWNsCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6Mzk6MzgKICAgIGRlY2wgbG9nX3BlcnJvcgoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjQyOjQ4CiAgICByZW5hbWUgc2QgdG8gaWZzZCAtIGF2b2lkIGdsb2JhbCBzaGFkb3cgZGVjbAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA1OjQyOjM0CiAgICBocl9zdG9yYWdlLmMgLSBhdXRvX25saXN0IGZvciBIUl9TVE9SRV9TSVpFCiAgICBocl9zd3J1bi5jIC0gZml4IGdsb2JhbCBzaGFkb3cgZGVjbAogICAgc25tcF9sb2dnaW5nLmMgLSBjaGFuZ2UgZmlsdGVyIGZvciBvcGVubG9nIHBlciBBLiBTeW1vbnMgcGF0Y2gKCmRhdmVzIDMwIEp1bCA5OSAwNjowMTowOAogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMKICAgICAgIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oKToKICAgICAgIC0gIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2YgdjJwIHN1cHBvcnQKCmRhdmVzIDMwIEp1bCA5OSAwNjoyMzowNgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFyc19tMm0uaCk6CiAgICAgIC0gUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiBvYnNvbGV0ZSB2MnBhcnR5IE1hbmFnZXItdG8tTWFuYWdlciBzdXBwb3J0Cgptc2xpZmNhayAzMCBKdWwgOTkgMDY6MzA6MzAKICAgIHN5c3RlbSAtIHVzZSBzaXplb2YKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjozMDo1OQogICAgd2luMzIvY29uZmlnLmggLSBkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRQoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjQ2OjIyCiAgICB1c2UgdHJhZGl0aW9uYWwgSyZSIGNvbW1lbnRpbmc7IG5vdCBhbGwgIkMiIGNvbXBpbGVycyBhY2NlcHQgIi8vIiBjb21tZW50cy4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjo1ODowOAogICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbm9uLWV4aXN0ZW50IHNubXBfdmFyc19tMm0uaAoKZGF2ZXMgMzAgSnVsIDk5IDA3OjAxOjQ2CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CgpkYXZlcyAzMCBKdWwgOTkgMDc6MzE6NTYKICAgIC0gKGFjY29uZmlnLmgpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKCm1zbGlmY2FrIDMwIEp1bCA5OSAwODowMToxOAogICAgYWRkIHZzbnByaW50ZiBjaGVjayBhbmQgSEFWRV9WU05QUklOVEYgY29uc3RhbnQKCm1zbGlmY2FrIDMwIEp1bCA5OSAwODozMjoyOAogICAgbm8gc3RydWN0IHNvY2thZGRyX2RsIGluIEFJWCAzLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjEwOjA1CiAgICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjEwOjMwCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgL3Zhci91Y2Qtc25tcCBleGlzdC4gIFdlIHNob3VsZCBkbyBhIHBlcm1pc3Npb24KICAgICAgc2V0IGFzIHdlbGwuCgpoYXJkYWtlciAzMCBKdWwgOTkgMTQ6MTg6NTUKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjE5OjIxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU1ICkKCm1zbGlmY2FrICAyIEF1ZyA5OSAwNDoyOTozNQogICAgYXNuMSwgcGFyc2UpIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4gKE1KUy11c2UgeGNhbGxvYyBpbiBwYXJzZSkKCm1zbGlmY2FrICAyIEF1ZyA5OSAwNDozNzo0NgogICAgcGFyc2UgLSBzaGFtZSBvbiBtZSBmb3Igbm90IGNvbXBpbGUgdGVzdGluZyBmaXJzdCEKCm1zbGlmY2FrICAyIEF1ZyA5OSAyMjoyOTozNwogICAgc25tcF9kZWJ1ZyAtIERFQlVHTVNHIG1hY3JvcyBjYWxsIHNubXBfZ2V0X2RvX2RlYnVnZ2luZyBiZWZvcmUgaW52b2tpbmcgZGVidWdtc2cqIGZ1bmN0aW9ucy4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNDo0Njo0MQogICAgc25tcF9hcGkuYyAtIHJlbW92ZSAiQlkiIGZyb20gSEFWRV9HRVRIT1NUQllOQU1FIChTb2xhcmlzIDIuNS4xIHdyb25nISkKCm1zbGlmY2FrICAzIEF1ZyA5OSAwNjo1OTo1MAogICAgYXNuMS5jIC0gZml4IG91dC1vZi1ib3VuZCBhcnJheSB3cml0ZSBhbmQgbWVtb3J5IGxlYWsgaW4gcGFyc2luZyBzdHJpbmdzLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjAwOjE2CiAgICBzbm1wX2RlYnVnLmMgLSByZW1vdmUgdHJhY2UgbWVzc2FnZXMgZnJvbSBkZWJ1Z21zZ19oZXh0bGkuCgptc2xpZmNhayAgMyBBdWcgOTkgMDc6MDM6MTQKICAgIHNubXBfZGVidWcuaCAtIG1vdmUgREVCVUdUUkFDRSBmcm9tIGRlYnVnbXNnX2hleHRsaSB0byBERUJVR0RVTVBTRVRVUAoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjU4OjQ5CiAgICB2YWNtX3ZhcnMuYyAtIGNvcHkgY29tbXVuaXR5IHN0cmluZywgbnVsbCB0ZXJtaW5hdGUsIHRoZW4gZGVidWcgcHJpbnQKCm1zbGlmY2FrICAzIEF1ZyA5OSAxMjo1MzozMgogICAgc25tcF9kZWJ1Zy5oIC0gZml4ICJ3YXJuaW5nOiBBTlNJIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIHdpdGggb25seSBvbmUgdm9pZCBzaWRlIi4KCm1zbGlmY2FrICAzIEF1ZyA5OSAxNDowNjozMwogICAgc25tcF9kZWJ1Zy5jIC0gc2lnbmVkIGNvbXBhcmlzb24gZm9yIGxlbiBpbiBkZWJ1Z21zZ19oZXh0bGkuCgptc2xpZmNhayAgNCBBdWcgOTkgMDM6NDg6MDIKICAgIC0oc211eC5jKSAtIHBhdGNoIHN1cHBsaWVkIGJ5IE5pY2sgQW1hdG8gdG8gZml4IEFTTl9JUEFERFJFU1MgcGFyc2UuCgptc2xpZmNhayAgNCBBdWcgOTkgMDU6MDM6MTEKICAgIHVuZG8gcGF0Y2ggYXJvdW5kIFNvbGFyaXMnIGNvbmZpZ3VyZSBmYWlsdXJlIHRvIHJlZ2lzdGVyIEhBVkVfR0VUSE9TVEJZTkFNRS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAwOToxNzoxOAogICAgLShjb25maWd1cmUqKSAtIEtlbiBIb3Juc3RlaW46IGZpeCB0ZXN0IHh4Z2V0aG9zdGJ5bmFtZSwgeHhnZXRzZXJ2YnluYW1lLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDEyOjMzOjU2CiAgICBzbm1wX2FwaS5jIC0gZHVtbXkgZnVuY3Rpb25zIHNubXBfc3luY2hfe3NldHVwLHJlc2V0fSBhbmQgc25tcF9nZXRfZXJybm8uCgptc2xpZmNhayAgNSBBdWcgOTkgMDM6MjU6NTUKICAgIGNvbmZpZy5zdWIgLSBwYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW4gdG8gc3VwcG9ydCBIUFVYIDExCgptc2xpZmNhayAgNSBBdWcgOTkgMTE6MTE6NTMKICAgIHNubXBfYXBpLjMgLSBkZXNjcmliZSBzbm1wX2Vycm9yKCksIHJlcGxhY2VzIHNubXBfZXJybm8gYW5kIHNubXBfZ2V0X2Vycm5vKCkKCmRhdmVzICA2IEF1ZyA5OSAwNTo1OTo0NgogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAgLSBjb25maWd1cmUtdGltZSBmbGFnIHRvIGNvbnRyb2wgcHJvdmlzaW9uIG9mICJkdW1teSIgdmFsdWVzCgpkYXZlcyAgNiBBdWcgOTkgMDY6MDI6MTUKICAgIC0gKG1pYklJLyouYyBob3N0LyouYyk6IERvbid0IHByb3ZpZGUgImR1bW15IiB2YWx1ZXMgKHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQpCgpuYmEgIDkgQXVnIDk5IDAwOjI0OjM3CiAgICBwYXJzZS5jOglwYXJzZSBhZ2VudCBjYXBhYmlsaXRpZXMKCmRhdmVzICA5IEF1ZyA5OSAwMTowMjoxNQogICAgLSAoRkFRKTogTmluZSBuZXcgcXVlc3Rpb25zLCBwbHVzIGFzc29ydGVkIHR3ZWFrcyBmb3IgdGhlIG5ldyByZWxlYXNlLgoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjQ4OjQ3CiAgICBtaWIuKiwgcGFyc2UuKiAtIG1vdmUgcHJpbnRfb2lkX3JlcG9ydCBhbmQgbWluaW9ucyB3aG9sbHkgaW50byBtaWIuYwoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjUwOjM2CiAgICAgc25tcGRlbHRhLCB0cmFuc2xhdGUsIHRyYXBkKSAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2U7IHJlbW92ZSBkaXNhYmxlcyBmb3IgcHJpbnRfb2lkX3JlcG9ydCBpbiB0cmFuc2xhdGUuCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTI6NDcKICAgIHNubXBkLmMgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTQ6MDEKICAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHByaW50X29pZF9yZXBvcnQgZGlzYWJsZSBvcHRpb25zCgptc2xpZmNhayAgOSBBdWcgOTkgMDk6NDU6MTUKICAgIC0oc25tcC5jKSBmaXggYnVmZmVyIG92ZXJmbG93IGluIHhkdW1wLCBvZiBhbGwgcGxhY2VzICg3NyBzL2IgNzg7IHVzaW5nIDgwKQoKbmJhICA5IEF1ZyA5OSAxMDo0MzoyOAogICAgKG1hbnkpOgludWtlIHZhcmlvdXMgcHJvdG90eXBlIHdhcm5pbmdzCgptc2xpZmNhayAgOSBBdWcgOTkgMTE6NDA6MjUKICAgIC0obWQ1LmMpIGZpeCByZWFkIHBhc3QgZW5kIHByb2JsZW0KICAgIC0oc25tcF9hcGkuYykgZml4IGxvc2luZyBjb21tdW5pdHkgc3RyaW5nIHByb2JsZW0KCmhhcmRha2VyICA5IEF1ZyA5OSAxMzoxMjozNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIC9kZXYvcmFuZG9tIHRlc3QuCgptc2xpZmNhayAgOSBBdWcgOTkgMTU6MDc6MjQKICAgIHNubXB1c20uYyAtIGFsd2F5cyBjbGVhciBmaWVsZF9sZW4gaWYgcmVmIGlzIHZhbGlkIHB0cjsKICAgIHNubXBfYXBpLmMgLSBkb24ndCBvdmVyd3JpdGUgY29tbXVuaXR5IHBvaW50ZXIgd2l0aCBzZWN1cml0eUF1dGhQcm90byBwb2ludGVyCgpuYmEgMTAgQXVnIDk5IDA0OjQ1OjE3CiAgICBjb25maWd1cmUuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIHMvbmV0YnNkIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAgCXN1cHBvcnQgZm9yIE5ldEJTRC9zcGFyYyBhbmQgTmV0QlNEIDEuNAoKbmJhIDEwIEF1ZyA5OSAwNDo0NjozNQogICAgc25tcGxpYi9taWIuYzoJZml4IGhhbmRsaW5nIG9mIG51bWVyaWMgb2lkcyBhbmQgcmVwb3J0aW5nIGVycm9ycwoKbmJhIDEwIEF1ZyA5OSAwNDo0NzoyMgogICAgYWdlbnQva2VybmVsLmM6CWFib3J0IG9uIGt2bV9vcGVuIGZhaWx1cmVzCgpuYmEgMTAgQXVnIDk5IDA0OjQ4OjQxCiAgICBzbm1wbmV0c3RhdC9pZi5jOglmaXhlcyBmb3Igc25tcG5ldHN0YXQgLWkgb24gdmlydHVhbCBpbnRlcmZhY2VzCgpuYmEgMTAgQXVnIDk5IDA0OjUwOjUyCiAgICBpbnRlcmZhY2VzLmMgdmFyX3JvdXRlLmMgc25tcF9sb2dnaW5nLmM6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKbXNsaWZjYWsgMTAgQXVnIDk5IDA5OjE5OjEwCiAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSLFdBUk5JTkcpCgptc2xpZmNhayAxMCBBdWcgOTkgMTA6MDQ6NDAKICAgIEZpeCBmb3IgYnVpbGQgKG5vIHBhZ2VzaXplIHZhciBkZWZpbmVkIGZvciBsaW51eCkuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTE6MDU6MzgKICAgIC0gKHNubXBkLmMpOiBsb2cgdmVyc2lvbiBudW1iZXIgYWZ0ZXIgc3RkZXJyIGlzIG9wdGlvbmFsbHkgY2xvc2VkLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE0OjI2OjMzCiAgICAtIChzbm1wX3ZhcnMuYyk6IHByb3RlY3QgYWdhaW5zdCBldmlsIG1pYiBtb2R1bGVzIGZyb20gbW9kaWZ5aW5nCiAgICAgIG1lbW9yeSB0aGV5IHNob3VsZG4ndCBiZSBtb2RpZnlpbmcgeWV0LgogICAgICAtIChpZmRlZidlZCBmb3Igc3BlZWQgcHJvZmlsaW5nIGxhdGVyKS4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNTo1NDozMwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmb3JjZSB2MyBlbmdpbmVJRCBzZXR0aW5nIHRvIHNvbWV0aGluZyBib2d1cyB0bwogICAgICBnZXQgYXJvdW5kIGxvY2FsIGNvbmZpZ3VyYXRpb24gZGF0YSBzdG9yZSB0aW1lIHN5bmNocm9uaXphdGlvbiBjb25mbGljdHMuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTc6MjM6NTkKICAgIC0gKHNubXBkLmMpOiBwcmludCAtSCB1c2FnZSB0byBzdGRlcnIuCgpoYXJkYWtlciAxMSBBdWcgOTkgMTM6MDQ6NTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBNYWtlIHBlcnNpc3RlbnQgY2FjaGUgY29uZm9ybSB0byBhIG1vcmUgc2VjdXJlIHVtYXNrLgoKbmJhIDExIEF1ZyA5OSAyMTo1MjoyNgogICAgaHJfc3RvcmFnZS5jOglyZW1vdmUgdG8gZm9yZ290dGVuIGRlYnVnIGxpbmVzLgoKbmJhIDExIEF1ZyA5OSAyMTo1MzozMQogICAgc25tcG5ldHN0YXQvaWYuYzoJaGFuZGxlIG5vbi1jb250aWd1b3VzIGlmVGFibGUuIEFsc28gbWFrZSB0aGUKICAgIAljb3VudGVycyB1bnNpZ25lZC4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjoxNjowMQogICAgLSAoc25tcC5jb25mLjUuZGVmKTogdXBkYXRlZCB3aXRoIHRoZSBuZXdlciB0b2tlbiBsaXN0LgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjQxOjIyCiAgICAtIChGQVEsIHNubXBjbWQuMSwgc25tcHRyYXAuMSk6IG1pbm9yIGRvYyB1cGRhdGVzLgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjQ2OjM0CiAgICAtIChORVdTLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgoKZGF2ZXMgMTMgQXVnIDk5IDAyOjQ3OjAwCiAgICAtIChleGFtcGxlcy91Y2REZW1vUHVibGljLltjaF0KICAgICAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5bY2hdIG1pc2MvaXBmd2FjYy5bY2hdCiAgICAgICB0YXJnZXQvc25tcFRhcmdldHtBZGRyLFBhcmFtc31FbnRyeS5bY2hdCiAgICAgICBzbXV4L3NubXBfKi5bY2hdKToKICAgICAgIC0gUmVnaXN0ZXIgbW9kdWxlcyBkeW5hbWljYWxseSBhdCBydW4tdGltZQoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjExOjM1CiAgICAtIChNYWtlZmlsZS5pbik6ICJtYWtlIHRlc3QiIGluIHRvcCBsZXZlbCBNYWtlZmlsZS4KCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxMjoxOAogICAgLSAoTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTY6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDk6MzM6NDAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgdXNlIE5PX0RVTU1ZX1ZBTFVFUyBieSBkZWZhdWx0LgoKbXNsaWZjYWsgMTMgQXVnIDk5IDExOjE0OjM5CiAgICAoaG9zdC9ocl9kZXZpY2UuYyxob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLGhvc3QvaHJfc3RvcmFnZS5jLAogICAgaG9zdC9ocl9zd2luc3QuYyxob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsbWliSUkvYXQuYywKICAgIG1pYklJL2ludGVyZmFjZXMuYyxtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsbWliSUkvdGNwLmMsCiAgICBtaWJJSS91ZHAuYyxtaWJJSS92YXJfcm91dGUuYykgLSAjaWYgTk9fRFVNTVlfVkFMVUVTIChoZWxwIG91dCBjb25maWd1cmUpCgpoYXJkYWtlciAxMyBBdWcgOTkgMTE6NTU6MzEKICAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgZG8gY2FjaGluZyBmb3IgTk9fRFVNTVlfVkFMVUVTLgoKbXNsaWZjYWsgMTMgQXVnIDk5IDEyOjE4OjE3CiAgICB2YXJfcm91dGUuYyAtICNpZmRlZiBOT19EVU1NWSAtLT4gI2lmIE5PX0RVTU1ZIChsaWtlIHRoZSBvdGhlciB1c2VzKS4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxMjo0OTozNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwcm9wZXJseSBkbyB3aGF0IC0td2l0aG91dC1kdW1teS12YWx1ZXMKICAgICAgc2hvdWxkIGRvLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE1OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBjb25maWdfbG9hZF9taWIgcGFyc2luZy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNTozNTo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCByZW1vdmUgbWliX21vZHVsZV9sb2Fkcy5oLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE2OjA1OjQyCiAgICAtIChyZW1vdmUtZmlsZXMpOiByZW1vdmUgdGhlIElTU1VFUyBmaWxlIGZvciByZWxlYXNlcy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNjowNjo1MQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNiApCgpuYmEgMTYgQXVnIDk5IDE0OjU4OjQwCiAgICBzbm1wbmV0c3RhdC9pZi5jOiBhbGxvdyAtaSBhbmQgLW8gb3V0cHV0cyBldmVuIHdpdGggaW5jb21wbGV0ZSByZXNwb25zZXMKICAgIAlmcm9tIHNubXBkIChzdWNoIGFzIExpbnV4IHRoYXQgZG9lcyBub3QgcmV0dXJuIGlmSW5OVUNhc3RQa3RzCiAgICAJd2l0aCB0aGUgbmV3IERVTU1ZIHNldHVwKQoKbmJhIDE2IEF1ZyA5OSAxNDo1OToyOQogICAgc25tcG5ldHN0YXQvbWFpbi5jOiBlbmFibGVfc3RkZXJybG9nKCkgc28gdGhhdCB3ZSBnZXQgYW4gZXJyb3IgbWVzc2FnZQogICAgCWZvciBiYWQgaG9zdCBuYW1lcy4KCm5iYSAxOCBBdWcgOTkgMDI6NDA6NDgKICAgIGFnZW50L3NubXBkLmM6CW1vdmUgdGhlIHRlcm1pbmF0aW9uIHByb2Nlc3NpbmcgZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKICAgIAl0byBhZnRlciB0aGUgbWFpbiBsb29wIGhhcyB0ZXJtaW5hdGVkLgoKbmJhIDE4IEF1ZyA5OSAwMjo1MTo1NwogICAgLSBzbm1wZC5jLCBhZ2VudF9yZWFkX2NvbmZpZy4/LCB2ZXJzaW9uaW5mby5jOiBtb3ZlIHRoZSByZWNvbmZpZ3VyYXRpb24KICAgIAlvdXRzaWRlIHRoZSBzaWduYWwgaGFuZGxlci4KCm5iYSAxOCBBdWcgOTkgMDk6MjY6MzUKICAgIC0gaW50ZXJmYWNlcy4/OiB1cGRhdGVzIGZvciBMaW51eCB0byBoYW5kbGUgbGFyZ2UgY291bnRlcnMgYW5kIHZpcnR1YWwKICAgIAlpbnRlcmZhY2VzLgoKbmJhIDE4IEF1ZyA5OSAwOTozMTowNgogICAgLSAobWFueSk6CWNoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIGxvZ2dpbmcgZnVuY3Rpb25zIHRvIGJlIHNubXBfKgogICAgCWRlZmF1bHQgZG9fc3RkZXJyX2xvZ2dpbmcgdG8gMS4KCm5iYSAxOSBBdWcgOTkgMDI6MzM6NTYKICAgIC0gaW50ZXJmYWNlcy5jOiByZW1vdmUgc29tZSBsZWZ0IG92ZXIgZGVidWcgb3V0cHV0CgpuYmEgMTkgQXVnIDk5IDAyOjM1OjEwCiAgICAtIHNubXBfbG9nZ2luZy5jLCBhZ2VudC92YXJpb3VzOiByZWluc3RhdGUgLWEgYW5kIC1WIGxvZ2dpbmcgKGFsbW9zdCkuCiAgICAJdGltZXN0YW1wIGZpbGUgYW5kIHN0ZGVyciBsb2dnaW5nLgoKbmJhIDE5IEF1ZyA5OSAxMDozODowMgogICAgLSBzbm1wX2FwaS5jOgljb3JyZWNseSBjYWxsIHByZS1wYXJzZSBob29rLCBhbHNvIHdoZW4gbm90IGRlYnVnZ2luZwogICAgCSh0aGlzIGtpbGxlZCB0aGUgbGlid3JhcCBjaGVjayBpbiBzbm1wZCkKCm5iYSAxOSBBdWcgOTkgMTA6Mzg6NDgKICAgIC0gc211eC5jOiByZW1vdmUgc29tZSBleHRyYW5lb3VzIFxuIGZyb20gc25tcF9sb2dfcGVycm9yIGNhbGxzLgoKbmJhIDE5IEF1ZyA5OSAxMDo0MDoyMgogICAgLSBzbm1wZC5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyA6IGZyb20gc25tcF9sb2dfcGVycm9yLgogICAgCUxvZyB3aGVuIHNubXBkIHJlY29uZmlndXJlcyBmb2xsb3dpbmcgYSBTSUdIVVAKCm5iYSAxOSBBdWcgOTkgMTQ6MDk6MjUKICAgIC0gc25tcF9hcGkuPywgc25tcGQuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6IHJlaW5zdGF0ZSBhZ2VudF9hZGRyIGluCiAgICAJdGhlIHBkdSBzdHJ1Y3R1cmUgKHVzZWQgZm9yIHYxIHRyYXBzKS4KCmhhcmRha2VyIDE5IEF1ZyA5OSAxNjowOTo1NAogICAgLSAoc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMpOiBQYXRjaCBmcm9tIGRsZW5nZWxAaG9tZS5jb206CiAgICAgIC0gY2hlY2sgYXJndW1lbnQgY291bnQgZm9yIG1pbmltdW0gbnVtYmVyLgoKbmJhIDIwIEF1ZyA5OSAwMzo0MzozNwogICAgLSBhZ2VudHgvKjogdmFyaW91cyBwcm90b3R5cGUgZml4ZXMsIHRvIGtlZXAgbnVtYmVyIG9mIHdhcm5pbmdzIGRvd24KCmhhcmRha2VyIDIwIEF1ZyA5OSAxMzo0Mzo1NgogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgICAtIG1ha2UgbG9nZ2luZyBvZiB0aW1lc3RhbXBzIG9wdGlvbmFsIGJ5IGEgc25tcC5jb25mIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxMzo1Njo1NwogICAgLSAoc25tcC5jb25mLjUuZGVmLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfbG9nZ2luZy5jKToKICAgICAgLSB0dXJuIG9mZiB0aW1lIHN0YW1wIGxvZ2dpbmcgYnkgZGVmYXVsdC4gIEl0IG11c3QgYmUgZXhwbGljaXRseQogICAgICAgIHJlcXVlc3RlZCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdG8gdHVybiBpdCBvbi4KICAgICAgICAodGhlIHJlYXNvbiBpcyB0aGF0IGEgbG90IG9mIGxvZ2dpbmcgaXMgaW5jcmVtZW50YWwgaW4gbmF0dXJlIGFuZAogICAgICAgIGlzIG5vdCBsaW5lIGJ1ZmZlcmVkIGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBsb2dnaW5nIHJvdXRpbmVzLgogICAgICAgIFRoZSBvdGhlciBzb2x1dGlvbiBpcyB0byBoYXZlIHRoZSBsb2dnaW5nIHJvdXRpbmVzIGRldGVjdCB3aGVuIHRvCiAgICAgICAgcHJpbnQgdGltZXN0YW1wcyBieSB3YXRjaGluZyBvdXQgZm9yIFxuJ3MuICBCdXQsIG5vdCB0aGlzIHJvdW5kLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDE2OjM5OjIxCiAgICAtIChzbm1wX2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgsIGFzbjEuYyk6IDY0Yml0IGNsZWFudXAuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTc6MDg6MTcKICAgIC0gKE5FV1MpOiBsYXN0IG1pbnV0ZSBjaGFuZ2VzCgpoYXJkYWtlciAyMCBBdWcgOTkgMTc6MTA6MjYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTcgKQoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjMzOjAwCiAgICAtIChpcGZjaGFpbnMpOiByZW1vdmVkIGZyb20gZGlzdHJpYnV0aW9uLiAgTmV3ZXIgb25lIGluIGZ0cCdzIGNvbnRyaWIgZGlyLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU0OjU3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gLS13aXRob3V0LWR1bW15LXZhbHVlcyBpcyBkZWZhdWx0IGFnYWluLgogICAgICAtIGNsZWFudXAgb2YgLS1oZWxwIHN0dWZmLgogICAgICAtIGZpeCBvZiBwZXJpc3RlbnQgZGlyZWN0b3J5IGNyZWF0aW9uLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU2OjI3CiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NzoyNwogICAgLSAoc25tcF9hcGkuaCk6IHZlcnNpb24gLT4gdV9sb25nLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDA2OjE0OjM5CiAgICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBjb25maWdfbG9hZF9taWIKCmhhcmRha2VyIDIzIEF1ZyA5OSAwNzowMjo0MwogICAgLSAoTkVXUyk6IGFuc2kgbWVudGlvbmVkLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDA5OjAwOjU5CiAgICBXaW4zMiBidWlsZCBmaXhlcwoKbmJhIDIzIEF1ZyA5OSAxMzo1NDozMgogICAgLSBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wX3ZhcnMuYzogbW92ZSBzb21lIC12IGxvZ2dpbmcgdG8gYSBtb3JlIHJhdGlvbmFsCiAgICAJcGxhY2UuCgptc2xpZmNhayAyMyBBdWcgOTkgMTQ6MDI6NTEKICAgIERlc2NyaWJlIFVTRV9BU05fU0hPUlRfTEVOIGluIEZBUSwgYW5kIGltcGxlbWVudCBpbiBfc25tcF9idWlsZC4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAxNTozMjoyMQogICAgSEFDSyEgZml4dXAgc2hvcnQgbGVuZ3RoIChmaXJzdCBwdXQgY29ycmVjdCBjb21tdW5pdHkgc3RyaW5nIGluIHBkdS0+ICkuCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6MTQ6MDAKICAgIC0gKFQwMjhzbm1wdjNnZXRmYWlsKTogc25tcHYzIGdldCBmYWlsdXJlIHRlc3QuCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6MTQ6MDAKICAgIC0gKElOU1RBTEwpOiByZW1vdmUgdmVyc2lvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4xIC0+IFYzLjYuMgoKaGFyZGFrZXIgMTYgTWFyIDk5IDA4OjE1OjE4CiAgICAtIChkbG1vZC5jKTogcmVtb3ZlZCBhIGJvZ3VzIG5ldy1saW5lLgoKaGFyZGFrZXIgMTYgTWFyIDk5IDEwOjM0OjAzCiAgICAtIChocl9zd3J1bi5jKTogZml4IGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGZyZWVic2QuCgptc2xpZmNhayAxNiBNYXIgOTkgMTE6MjM6MzAKICAgIC0oc25tcF9hcGkuYykgY29uc2lzdGVudCBlcnJvciByZXR1cm4uCgptc2xpZmNhayAxNiBNYXIgOTkgMTE6MzM6NTIKICAgIC0gbW92ZSBNQVRDSF9GQUlMRUQvTUFUQ0hfU1VDQ0VFREVEIGZyb20gdXRpbF9mdW5jcy5oIHRvIG1pYmluY2wuaAoKbXNsaWZjYWsgMTcgTWFyIDk5IDEzOjUzOjQ4CiAgICAtKGhyX3N3cnVuLmMpIC0gcHJldmVudCBTdW5PUyA0LjEgY29yZSAoc3Vub3M0IHN0aWxsIHByaW1pdGl2ZSkKCm1zbGlmY2FrIDE4IE1hciA5OSAwODozNzo0NQogICAgLSAobWliSUkvaXAuYykgZml4IE1JQl9JUENPVU5URVJfU1lNQk9MIHVzYWdlCgpoYXJkYWtlciAxOSBNYXIgOTkgMDk6MjM6MzgKICAgIC0gKHNubXBnZXQuYywgc25tcHdhbGsuYyk6IGZpeGVkIGluaXRpYWxpemF0aW9uIGFuZCB1c2FnZSBvZiAiZmFpbHVyZXMiLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjA5OjQ3CiAgICAtIChNYWtlZmlsZS5pbik6IGFkZCBtb3JlIHRhcmdldHMuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MTA6MTEKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHJldHVybiB0aGUgbmV4dCB0b2tlbiwgbm90IHRoZQogICAgICBuZXh0IHNwYWNlLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjExOjAzCiAgICAtIChtaWJkZWZzLmgsIHN0cnVjdC5oLCBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaCwgcHJvYy5jLCBwcm9jLmgsCiAgICAgIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHBlci1wcm9jZXNzL2V4ZWMgZml4IHNjcmlwdHMgY3JlYXRlZC4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoyMzoyMQogICAgLSAodmVyc2lvbnRhZyk6IHJlZ2V4cCBmaXguCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTE6MzIKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOiByZWxvY2F0ZSB0bwogICAgICBzbm1wTW9kdWxlcy4xMiwgd2hlcmUgdGhleSBzaG91bGQgYmUuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTc6MjQKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIHdoZW4gdXNpbmcgY29weV93b3JkKCkgZG9uJ3Qgc2tpcCBzcGFjZXMsIHNpbmNlIGl0IGRvZXMgdGhhdC4KCm1zbGlmY2FrICAxIEFwciA5OSAxMzoxMDo0NwogICAgLSAobGlic25tcC5oKSBBc3ltcHRvdGljYWxseSBjbG9zZXIgdG8gc3VwcG9ydGluZyBDTVUgY29uc3RhbnRzLgoKbXNsaWZjYWsgIDUgQXByIDk5IDExOjA2OjI3CiAgICAtIChzbm1wX2FwaS5jLCBtYWluLmMsIHNubXBfcGFyc2VfYXJncy5jKSBKb2UgTWFyem90J3MgZml4IHRvIGNvcHkgZXZlbiBhbiBlbXB0eSBjb21tdW5pdHkgbmFtZS4KCm1zbGlmY2FrICA1IEFwciA5OSAxNDoxMDoxNAogICAgLSBidWlsZCBzbm1wbmV0c3RhdCB3aXRoIEN5Z1dpbjMyCgptc2xpZmNhayAgNSBBcHIgOTkgMTQ6MjI6NDMKICAgIC0gQnVpbGQgd2l0aCBDeWdXaW4zMgoKbXNsaWZjYWsgIDUgQXByIDk5IDE1OjU5OjIwCiAgICAtIEJ1aWxkIHVzaW5nIEN5Z1dpbjMyIChpbmNsdWRlcyBOaWVscyBCLidzIHNubXBfdmFycy5jIHBhdGNoKS4KCmhhcmRha2VyICA2IEFwciA5OSAwOToyMzoxNgogICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViKTogbmV3IHZlcnNpb25zIGZyb20gYXV0b2NvbmYgMi4xMy4KCm1zbGlmY2FrICA2IEFwciA5OSAxMDo1OTowNQogICAgLSAoZXh0ZW5zaWJsZS5jKSBxdWVsbCB3YXJuaW5nIGFib3V0IGNvbXBhcmluZyBwb2ludGVyIHdpdGggbm9uLXBvaW50ZXIuCgptc2xpZmNhayAgNiBBcHIgOTkgMTE6MzM6NTQKICAgIC0gYW5vdGhlciByb3VuZCBvZiBBTlNJLWZ5aW5nIHRoZSBhZ2VudCBjb21wbGV0ZWQuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6MTM6NDAKICAgIC0gKCopOiBNZXJnZWQgdGhlIDQuMCBsaW5lIGludG8gdGhlIDMuNi4xIGxpbmUuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mzg6NDUKICAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWVyZ2UgcGllY2VzIG9mIHJlY2VudCB2MyBsaW5lIGNoYW5nZXMuCgptc2xpZmNhayAgNiBBcHIgOTkgMjE6MjQ6MjIKICAgIC0gY2hhbmdlcyBmb3IgQU5TSSBoZWFkZXJzOyBQT1NJWChpbmRleCB2cyBzdHJjaHIpOyBtaW5vciBmaXhlcwoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjEzOjU5CiAgICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjE0OjQzCiAgICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKCm1zbGlmY2FrICA3IEFwciA5OSAwNjoxNzoyOAogICAgLSAoKSBtb3JlIEFOU0kgaGVhZGVyIGZpeHVwczsgdG91Y2h1cCBmb3IgTSQgV2luMzIgYnVpbGQKCmhhcmRha2VyICA3IEFwciA5OSAxMDo0MjoxMAogICAgLSAoY29uZmlnLmguaW4sIHNubXBfdmFycy5jLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB0cmFwZC5jLAogICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHYzLmMsIHRvb2xzLmMsIHRvb2xzLmgpOgogICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgICBuZXdlciBtb2RlbC4KICAgICAgLSBhIGZldyAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA3IEFwciA5OSAxMDo0ODowNwogICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTE6Mjg6MDIKICAgIC0gKHVjZERlbW9QdWJsaWMuYywgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgc211eC5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MDA6MjAKICAgIC0gKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfYWdlbnQuYyBhZ2VudC9zbm1wX3ZhcnMuaAogICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgICBzbm1wbGliL3ZpZXcuaCkgIGZnZXRzIHVzZSBzaXplb2YgbW9zdGx5LCBvaWQgYmFzZSBzaXplIGlzIE1BWF9PSURfTEVOCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MTc6MjMKICAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECgptc2xpZmNhayAgNyBBcHIgOTkgMTU6MDA6MzkKICAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNDozMQogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE1OjM5CiAgICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE2OjQ1CiAgICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoyNTowOQogICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBwb3NzaWJsZSBjcmVhdGUgYQogICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjE5OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhbmllbCBIYWdlcnR5OgogICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToyMDowMAogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzI6MjMKICAgIC0gKHBhc3MuYyk6IFBhdGNoIGZyb20gSmltIE1hcjoKICAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjM2OjMxCiAgICAtIChTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU0OjQ4CiAgICAtIChmcmVlYnNkLmgsIGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWVic2QgdXRtcCBjbGVhbnVwcy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1Njo1MwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU3OjI0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODowMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IC1QLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjI3CiAgICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDA6NDkKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDM6MjkKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhcGQgb3B0aW9uIHRvIGlnbm9yZSBhdXRoIHRyYXBzLCBhZGQgLVMgb3B0aW9uLCBsb2cgdGVybWluYXRpb24uCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6Mjk6NTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjMwOjM0CiAgICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KCmhhcmRha2VyIDE0IEFwciA5OSAxNTo1MjozNQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6MzE6NTUKICAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6NTY6MzcKICAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKCm1zbGlmY2FrIDE2IEFwciA5OSAwNzozMDoyOQogICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KCm1zbGlmY2FrIDE2IEFwciA5OSAwNzo1NDoyMgogICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKCm1zbGlmY2FrIDE2IEFwciA5OSAwODozMzoxNgogICAgLSAobWliLmMpICItbSIgb3IgTUlCUyA6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjEwOjA2CiAgICAtIChSRUFETUUpOiBBZGRlZCB2MyB0ZWFtIG1lbWJlcnMuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTE6NDgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZWQgZGVmYXVsdCBzdG9yZSBsb2NhdGlvbiB0byAvdmFyL3VjZC1zbm1wCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTU6MTQKICAgIC0gKHNubXAuaCk6IFNOTVBBRE1JTkxFTkdUSCBkZWZpbml0aW9uLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE2OjE2CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZWQgZml4IG5vdGUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6MDYKICAgIC0gKE5FV1MpOiB1cGRhdGVkCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6NDEKICAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKCmhhcmRha2VyIDE2IEFwciA5OSAyMTozNDo0OQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMyApCgptc2xpZmNhayAxOCBBcHIgOTkgMDY6NTQ6MjYKICAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQgOiA5IC0+IDEwCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDE6MTUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgIC0gbmVlZCB0byB3cml0ZSBhIGZvcmVhY2gobWlibm9kZSkgdHlwZSBwYXJzZXIgbmV4dC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMTowOToyNwogICAgLSAobWliaW5jbC5oKTogYWRkIHJlYWRfY29uZmlnLmguCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTI6MTcKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgICBnZW5lcmljYWxseSByZWFkIGEgdG9rZW4gaW50byBhIGdpdmVuIHZhcmlhYmxlLgogICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgIHRoZW0gaWYgdGhlIHN0b3JhZ2UgYXJlYSBpcyBOVUxMLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjE0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogRG9uJ3Qgc25tcF9zZXRfdmFyX29iamlkIGlmIG5hbWUgaXMgTlVMTCBpbgogICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTE6Mjg6MTQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE1OjMxOjM1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAgLSBlbnRpcmUgY29kZSBiYXNlIGlzIG5vdyBwdXQgaW50byB0aGUgLmNvbmYgZmlsZXMgcmF0aGVyIHRoYW4gaW4KICAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgIGJhc2VkIG9uIHRoZSAuY29uZiBmaWxlIGl0IGlzIGdpdmVuLiAgSW4gdGhlb3J5LCBpdCBzaG91bGQgYmUKICAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgICB1cCBzaWRlIGlzIHRoYXQgSSdtIHN1cmUgRGF2ZSBTaGllbGQgd2lsbCBnbyB0aHJvdWdoIGFuZCBjbGVhbgogICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjA0OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAgLSBjbmFtZSAtPiBOQU1FCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MTA6NDQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KCmhhcmRha2VyIDIwIEFwciA5OSAyMTozODo0MgogICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU0OjQ0CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlZCAqcmVhZF9jb25maWdfc3RvcmVfZGF0YSgpOwoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU2OjAzCiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMTA6NTE6MzAKICAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCgptc2xpZmNhayAyNiBBcHIgOTkgMDk6MjE6MDYKICAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KCm5iYSAyNiBBcHIgOTkgMTE6MjE6MTAKICAgIAogICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKCm5iYSAyNiBBcHIgOTkgMTE6NDg6NTcKICAgIAogICAgCiAgICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAgLSBhcHBzL3NubXB0cmFuc2xhdGU6IGxldCB0aGUgLXAgb3B0aW9uIGNhbGwgdGhpcyBuZXcgcHJpbnRlcgogICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKCm5iYSAyNiBBcHIgOTkgMTI6MDM6NDcKICAgIAogICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAgCXN0cmluZ3MKCm5iYSAyNiBBcHIgOTkgMTI6MDk6MzUKICAgIAogICAgCiAgICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgICAJZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwLgoKbmJhIDI2IEFwciA5OSAxMjoxMzo1MAogICAgCiAgICAqLyo6IHJlcGxhY2UgaG9ycmlibGUgKGNoYXIgKikic3RyaW5nIiB3aXRoIGNvbnN0IHNwZWNpZmllcnMgaW4gcmVsZXZhbnQKICAgIAlmdW5jdGlvbnMuCgptc2xpZmNhayAyNiBBcHIgOTkgMTI6Mzc6MDkKICAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQoKbXNsaWZjYWsgMjcgQXByIDk5IDA5OjUxOjM1CiAgICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6MzI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjM5OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjA3OjE1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gc2h1dGRvd24gYW5kIHN0b3JlIGNhbGxiYWNrIHVzYWdlLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjEzOjMxCiAgICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCgpoYXJkYWtlciAgMyBNYXkgOTkgMTI6NTg6MTkKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBNYWtlZmlsZS5pbiwgaGVhZGVyX2NvbXBsZXguYywKICAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wdXNtLmMsIHRvb2xzLmMsIHRvb2xzLmgsIE1ha2VmaWxlLmluLCBULmMsCiAgICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgIC0gbWFrZWZpbGVpbmRlcGVuZCBhcyB3ZWxsLgoKbmJhICAzIE1heSA5OSAxNTo0MDoxMQogICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAgCXdpdGggbW9yZSBzdHJpY3Qgbm9pc2UgbGV2ZWxzLiAoYWxzbyBnb29kIHdoZW4gY29tcGlsaW5nCiAgICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKCm5iYSAgNCBNYXkgOTkgMDA6NDc6NDQKICAgIChtaWIuYyk6CUZpeCBwcm9ibGVtIChjb3JlIGR1bXApIHdpdGggTUlCRklMRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpuYmEgIDQgTWF5IDk5IDAwOjUxOjE2CiAgICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKCmhhcmRha2VyICA0IE1heSA5OSAxMTowODo1NQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KCm1zbGlmY2FrICA2IE1heSA5OSAwOToyMDozMAogICAgLSAodWNkLXNubXAvdm1zdGF0LmMpIC0gY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbWl0cy5oIHBlciBFZHVhcmQgS291Y2t5LgoKbmJhIDEwIE1heSA5OSAxNDo0NzoyMgogICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgoKbmJhIDEwIE1heSA5OSAxNDo0OTo0OQogICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMjo0OAogICAgLSAodXRpbF9mdW5jcy5jKTogcmVhZCByZXR1cm5zIHNzaXplX3Qgbm90IHNpemVfdC4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMzoyNQogICAgLSAobWVtb3J5LmgpOiByZW1vdmUgZXh0ZXJuLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjExOjQwCiAgICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCgptc2xpZmNhayAxMiBNYXkgOTkgMTA6NTM6MjMKICAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCgptc2xpZmNhayAxMiBNYXkgOTkgMTE6MjI6MTYKICAgIC0ocGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgoKZGF2ZXMgMTMgTWF5IDk5IDAzOjUyOjE5CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowOToxOAogICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCgptc2xpZmNhayAxNCBNYXkgOTkgMDY6NTQ6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDA5OjQ3OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKCm1zbGlmY2FrIDE0IE1heSA5OSAxMzo1OTozNwogICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6NTMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM0OjU1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzc2VzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM4OjAwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNzoxODowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKCmRhdmVzIDE4IE1heSA5OSAwNjoyNjoxNgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogTW9yZSBnZW5lcmFsIGhhbmRsaW5nIG9mIFBEVSBmbGFncwoKbXNsaWZjYWsgMTggTWF5IDk5IDA5OjAxOjQ2CiAgICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgoKZGF2ZXMgMTggTWF5IDk5IDA5OjIzOjUwCiAgICAtIChjb25maWd1cmUuaW4gc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wZ2V0LmMgYXBwcy9zbm1wZ2V0bmV4dC5jIGFwcHMvc25tcHNldC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgIC0gIENsZWFuIHVwIGNvbmRpdGlvbmFscyBwcm90ZWN0aW5nIGluY2x1ZGUgZmlsZXMKICAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCgpkYXZlcyAxOSBNYXkgOTkgMDI6MzM6MDcKICAgIC0gKGNvbmZpZy5oLmluKTogQWRkaXRpb25hbCBpbmNsdWRlIHByb3RlY3Rpb24gZW50cmllcwoKZGF2ZXMgMTkgTWF5IDk5IDA1OjExOjM3CiAgICAtIChzbm1wX2FwaS5jKTogTW9yZSBnZW5lcmFsaXNlZCBoYW5kbGluZyBvZiBzb2NrZXQgYWRkcmVzc2VzCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDI6NTUKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjUwOjEyCiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpkYXZlcyAyMCBNYXkgOTkgMDM6NDY6MjQKICAgIC0gKHNubXBfYXBpLmgpOiBUZW1wb3JhcnkgZml4IHRvIHNvY2tldCBhZGRyZXNzIHByb2JsZW1zCgptc2xpZmNhayAyMSBNYXkgOTkgMDU6MjQ6MjMKICAgIC0ocmVhZF9jb25maWcuYykgY2FzdCBmaXggcGVyIE1hcmtrdSBMYXVra2FuZW4KCmRhdmVzIDIxIE1heSA5OSAwNTo1NDoyMgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKToKICAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQoKaGFyZGFrZXIgMjEgTWF5IDk5IDExOjEwOjQ0CiAgICAtIChtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmYpOgogICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAgLSBtb3JlIGNsZWFudXAgb2YgdGhlIHN0b3JhZ2UgZGVmLgoKbXNsaWZjYWsgMjEgTWF5IDk5IDE1OjI5OjQ2CiAgICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KCm1zbGlmY2FrIDI0IE1heSA5OSAwNTozNjoxMwogICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjE5OjAzCiAgICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDo1NQogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODowNAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjMyCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTY6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjQwOjI4CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm1zbGlmY2FrIDI3IE1heSA5OSAwNToxNjoyNQogICAgLShlbmNvZGVfa2V5Y2hhbmdlLCByZWFkX2NvbmZpZywgc25tcHVzbSkgYUNDIGZpeGVzIGJ5IFBLWSAoTWFya2t1IExhdWtrYW5lbikKCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDowMwogICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjE1CiAgICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzowNgogICAgLSAoc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjMyCiAgICAtIChzbm1wdHJhcGQuYyk6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQgaW4gaGVscCBsaW5lLgoKZGF2ZXMgMjggTWF5IDk5IDA3OjAyOjAxCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwoKZGF2ZXMgMjggTWF5IDk5IDA4OjE0OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCgpkYXZlcyAyOCBNYXkgOTkgMDg6NTc6MTkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFVuaXggZG9tYWluIChkYXRhZ3JhbSkgc29ja2V0IHN1cHBvcnQKCmRhdmVzIDI4IE1heSA5OSAwOToxMjoyMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQoKbXNsaWZjYWsgMjggTWF5IDk5IDA5OjI0OjU2CiAgICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6MTc6MTMKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6NDQ6NDIKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgICBsaWJyYXJ5LgoKZGF2ZXMgIDEgSnVuIDk5IDAyOjE3OjI3CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKCmRhdmVzICAxIEp1biA5OSAwMjozMjoxMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQoKZGF2ZXMgIDEgSnVuIDk5IDA3OjMwOjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oKTogU3VwcG9ydCBmb3Igc3RyZWFtLWJhc2VkIHNvY2tldHMKCmhhcmRha2VyICAxIEp1biA5OSAxNzoyMTo1MwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgICBiZSBjYWxsZWQgYmFjayBhZnRlciBYIHBlcmlvZCBvZiB0aW1lIGFuZCBpdCBoYW5kbGVzIGZpZ3VyaW5nIG91dAogICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KCm1zbGlmY2FrICA0IEp1biA5OSAwOTo1MToxMwogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jLGZyZWVic2QzLmgpIGZpeCBGcmVlQlNEMy4xIGluY2wgS2VuIEtleSdzIHRjcC91ZHAgcGF0Y2hlcwoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ0OjA2CiAgICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjA0OjIxCiAgICAtKGlmLmMpIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCm1zbGlmY2FrIDExIE1heSA5OSAxNDozOTo1OAogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiAgICAgICBhcHBzL3NubXB0cmFwZC5jIGxvY2FsL21pYjJjIGxvY2FsL3RrbWliIG1hbi9zbm1wX2NvbmZpZy41LmRlZgogICAgICAgbWFuL3NubXBkLjEuZGVmIG1hbi9zbm1wdHJhcC4xIG1hbi9zbm1wdHJhcGQuOAogICAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVBST1hZLU1JQi50eHQgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCBzL2ZyZWVic2QuaCBzL2ZyZWVic2QyLmgKICAgICAgIHNubXBsaWIvbWliLmMgc25tcGxpYi9wYXJzZS5jIHNubXBsaWIvcGFyc2UuaAogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvdmFjbS5jKSAtIGNoYW5nZXMgYy9vIE5pZWxzIEJhZ2dlc2VuCgptc2xpZmNhayAxMSBNYXkgOTkgMTg6NTg6MzcKICAgIC0oY3lnd2luLmgpIC0gdXNlIHRvIGJ1aWxkIG9uIEN5Z1dpbiBwbGF0Zm9ybS4KCm1zbGlmY2FrIDExIE1heSA5OSAxOTo1NDowNAogICAgLShhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC92aWV3X3BhcnNlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oCiAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L2lmLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmggc25tcGxpYi9hY2xfcGFyc2UuYwogICAgICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYykKICAgICAgUG9ydCBzb21lIG9mIHRoZSBmaXhlcyBmcm9tIHRoZSBjdXJyZW50IGRldmVsb3BtZW50IGJyYW5jaAoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjQ1OjA1CiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjI4OjA3CiAgICAtKG1pYi5jIHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzozODowMwogICAgCiAgICAobWliLmMpOiBGaXhlZCBtaW5vciB0eXBvCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTU6MDYKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA3OjEzCiAgICAtICh2bXN0YXQuYyk6IGluY2x1ZGUgbGltaXRzLmguCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDc6MzkKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKaGFyZGFrZXIgMTMgTWF5IDk5IDE1OjQyOjQ4CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yICkKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDoxMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDE6NDgKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjQ5OjI1CiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpoYXJkYWtlciAyNSBNYXkgOTkgMjA6MjA6MzEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjIucHJlMSApCgpuYmEgMjYgTWF5IDk5IDA3OjU3OjQyCiAgICAKICAgICAgVGFnOiBWMy1saW5lCiAgICAKICAgIGlmLmM6IGR5bmFtaWMgd2lkdGggZm9yIC1pIGFuZCAtbyBvcHRpb24KCm1zbGlmY2FrIDI2IE1heSA5OSAwODowMDowNwogICAgLSBmaXgtdXBzIHRvIGJ1aWxkIFdpbjMyIE1TVmlzdWFsQysrCgpuYmEgMjYgTWF5IDk5IDA4OjI0OjM1CiAgICAKICAgIAogICAgU29tZSBmaXhlcyBmb3IgU29sYXJpcyAyLjcgKHByb2MgYWNjZXNzIHN0aWxsIGRvZXMgbm90IHdvcmsgd2hlbiBjb21waWxlZAogICAgd2l0aCBnY2MgKDMyLWJpdCBjb21waWxlcikKCm5iYSAyNiBNYXkgOTkgMDg6Mjk6MjYKICAgIAogICAgRml4ZXMgZm9yIEZyZWVCU0QgMi4xIGZyb20gRGVyZWsgSi4gQmFsbGluZyA8ZGJhbGxpbmdAeWFob28taW5jLmNvbT4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowNzoxNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDc6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzd2luc3RhbGwgYmUgInVua25vd24iIHNpbmNlIHdlIGNhbid0IHRydWx5IGtub3cuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDg6MDkKICAgIC0gKGlwZndhY2MuaCk6IG1vdmUgdG8gY29ycmVjdCBsb2NhdGlvbi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowODoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogbWFrZSBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzozMToyNQogICAgLSAocHJvYy5jKTogdWx0cml4IGZpeGVzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjM4OjU2CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm5iYSAyNyBNYXkgOTkgMDI6NTY6MjUKICAgIAogICAgCiAgICBob3N0L2hyX3N3cnVuLmMsIHVjZC1zbm1wL3Byb2MuYzogRml4ZXMgZm9yIFNvbGFyaXMgMi43CgpuYmEgMjcgTWF5IDk5IDAyOjU5OjE2CiAgICAKICAgIHNubXBkLmM6CVByb3Blcmx5IGhhbmRsZSB0aGUgY2FzZSBvZiBubyBjb21tdW5pdHkgc3BlY2lmaWVkCiAgICAJZm9yIGFnZW50IHRyYXBzLgoKbmJhIDI3IE1heSA5OSAyMzo1NTowOQogICAgCiAgICBzb2xhcmlzMi4/Lmg6CWRlZmluZSBfU0xBU0hfUFJPQ19NRVRIT0RfIGFzIDEKCm5iYSAyNyBNYXkgOTkgMjM6NTU6NDkKICAgIAogICAgcmVhZF9jb25maWcuYzoJY29tcGxhaW4gYWJvdXQgZXhpc3RpbmcgYnV0IHVucmVhZGFibGUgY29uZmlnIGZpbGVzLgoKbmJhIDI3IE1heSA5OSAyMzo1OTozNwogICAgCiAgICBpbmV0LmM6CTAgSVMgYSB2YWxpZCBzaG9ydCAoYW5kIHBvcnQgYWRkcmVzcyBmb3IgcmVtb3RlIGVuZHMgb2YgcG9ydHMKICAgIAlpbiBMSVNURU4gc3RhdGUpCgpuYmEgMjggTWF5IDk5IDAzOjI1OjI5CiAgICAKICAgIGNoYW5nZSB0aGUgdHJhcHNpbmsvdHJhcDJzaW5rIGRpcmVjdGl2ZXMgdG8gc3VwcG9ydCBhIGNvbW11bml0eSBwYXJhbWV0ZXIuCgpuYmEgMjkgTWF5IDk5IDAyOjQ5OjQ3CiAgICAKICAgIC0gc211eC5jOiBmaXggYSBtaXNzaW5nIG50b2hzIGluIGEgZGVidWcgbWVzc2FnZQoKbmJhICAxIEp1biA5OSAwMDoyNzozNgogICAgCiAgICAtIHByb2MuYzogWUFQQk8gKFlldCBhbm90aGVyIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdykKCm5iYSAgMSBKdW4gOTkgMDA6Mjk6MzUKICAgIAogICAgLSBzbm1wX2FnZW50LmM6IGNoYW5nZSBub0NyZWF0aW9uIHJldHVybiB0byBub0FjY2Vzcy4gVGhlcmUgYXJlIHByb2JhYmx5CiAgICAJc2l0dWF0aW9ucyB3aGVyZSB0aGUgZm9ybWVyIGlzIGNvcnJlY3QsIGJ1dCB0aGlzIGlzIGxlc3MgY29uZnVzaW5nCgpuYmEgIDEgSnVuIDk5IDAwOjMzOjUyCiAgICAKICAgIC0ga2VybmVsX3N1bm9zNS4/LCBocl9zd3J1bi5jLCBhdC5jLCBpbnRlcmZhY2VzLmM6IGZpeCBhdC5hdFRhYmxlIGFuZAogICAgCWlwLmlwTmV0VG9NZWRpYVRhYmxlIGZvciBTb2xhcmlzLiBBbHNvIGEgdHdlYWsgZm9yIGdldEtzdGF0SW50LgoKaGFyZGFrZXIgIDIgSnVuIDk5IDA3OjI3OjQ2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yLnByZTIgKQoKbXNsaWZjYWsgIDIgSnVuIDk5IDEzOjQ2OjM0CiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsZnJlZWJzZDMuaCkgZml4IGJ1aWxkIG9uIEZyZWVCU0QgMy4xCgpuYmEgIDMgSnVuIDk5IDE0OjMxOjE4CiAgICAKICAgIC0ga2VybmVsLmM6CWFkZCBzb21lIHNhbml0eSBjaGVja3Mgd2hlbiBydW5uaW5nIHdpdGhvdXQgcm9vdCBhY2Nlc3MuCgpuYmEgIDMgSnVuIDk5IDE0OjM0OjUwCiAgICAKICAgIC0gaHJfc3dydW4uYzoJYWRkIGEgYmxhbmsgYmV0d2VlbiBwcm9jZXNzIHBhcmFtZXRlcnMKCm5iYSAgMyBKdW4gOTkgMTQ6Mzg6MTgKICAgIAogICAgLSBuZXRic2QuaCwgdGNwLmMsIHVkcC5jOglmaXggc29ja2V0IHRhYmxlcyBmb3IgTmV0QlNEIDEuMy8xLjQKCm5iYSAgMyBKdW4gOTkgMTU6MTI6MDEKICAgIAogICAgLSBzbm1wdHJhcC5jOiBmaXggYSBiYWQgZnJlZSB3aGVuIGNhbGxpbmcgc25tcGluZm9ybS4KCm5iYSAgMyBKdW4gOTkgMTU6MjE6MDkKICAgIC0gdGNwLmM6IGxvc3QgYSAnOycgZm9yIHRoZSBGcmVlQlNEIGNhc2UgLi4uLgoKZGF2ZXMgIDQgSnVuIDk5IDA0OjUxOjA0CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRml4IFJQTSBoYW5kbGluZwoKZGF2ZXMgIDQgSnVuIDk5IDA1OjA2OjQ0CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQWRkaXRpb25hbCBsaWJyYXJ5IGZvciBSUE0gaGFuZGxpbmcKCm1zbGlmY2FrICA0IEp1biA5OSAwOTozMDoxMgogICAgLSh0Y3AuYywgdWRwLmMpIGFwcGx5IEtlbiBLZXkncyBmaXggZm9yIEZyZWVCU0QzLjEKCm5iYSAgNCBKdW4gOTkgMTE6NTI6MzgKICAgIC0gaXAuYzogRml4IGZvciBGcmVlQlNEIDMgZnJvbSBLZW4gS2V5CgpuYmEgIDQgSnVuIDk5IDExOjUzOjMyCiAgICAtIGtlcm5lbF9zdW5vczUuYywgYXNuMS5jOiBGaXhlcyBmb3IgNjQtYml0IFNvbGFyaXMgNwoKbmJhICA1IEp1biA5OSAwNTo0NzoyMAogICAgLSBpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmM6IGNsZWFudXAgb2YgY29uZGl0aW9uYWxzIGZvciBGcmVlQlNECgpuYmEgIDUgSnVuIDk5IDA2OjAyOjUyCiAgICAtIGNvbmZpZ3VyZS5pbjogcHJvcGVyIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3lzL3NvY2tldHZhci5oCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDU6MTAKICAgIC0oaXAuYywgdmFyX3JvdXRlLmMpIGZpeCBzaXplb2YsIENQUCAjZW5kaWYKCmhhcmRha2VyICA3IEp1biA5OSAxMDo1MjozMgogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOgogICAgICAtIGRvbid0IHB1dCBDRkxBR1MgaW4gdGhlIGxpbmsgbGluZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMDo1NDoyMQogICAgLSAoUkVBRE1FLndpbjMyKTogYWRkZWQgdG8gdGhlIDMuNi4yIGxpbmUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MjU6MjcKICAgIC0gKEZBUSwgUkVBRE1FKTogdXBkYXRlIGZvciAzLjYuMi4KCmhhcmRha2VyICA3IEp1biA5OSAxMToyNzoxNQogICAgLSAoTkVXUyk6IDMuNi4yIHVwZGF0ZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMTozMDo0MAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZSBmb3IgMy42LjIuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MzI6NTQKICAgIC0gKElOU1RBTEwpOiB1cGRhdGUgZm9yIDMuNi4yLgoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjAyOjEwCiAgICAtKGlmLmMpIC0gY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE1OjQ2OjI2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaWJkYjEgYmVmb3JlIGxpYmRiIGZvciBycG0gdXNhZ2UuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTU6NTA6MDEKICAgIC0gKEZBUSk6IG1lcmdlCgpoYXJkYWtlciAgNyBKdW4gOTkgMTY6MDM6MjUKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIC1sZGIxIHRoZW4gLWxkYiBmb3IgcnBtIHVzYWdlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE2OjQzOjUwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgcnBtR2V0UGF0aCB0byBoZWxwCiAgICAgIGRldGVybWluZSB3aGljaCB2ZXJzaW9uIG9mIFJQTSB3ZSdyZSB1c2luZyAoMyBvciAyKS4KCnBqbCAgNyBKdW4gOTkgMTc6MzA6MzMKICAgIEFkZGVkIFJQTSB2MyBzdXBwb3J0Cgptc2xpZmNhayAgOCBKdW4gOTkgMDM6NDA6MzYKICAgIC0obWliSUkvKixzbm1wbGliLyopIE1hcmtrdSBMLidzIGZpeGVzIHRvIGNvbXBpbGUgb24gSFAtVVggd2l0aCBhQ0MKCm1zbGlmY2FrICA4IEp1biA5OSAwMzo1NDo1MAogICAgc3BlbGwgY2hlY2sgQ09NTVVOSVRZCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy42IC0+IFYzLjYuMQoJCm1zbGlmY2FrICA4IE1hciA5OSAwNDowMjowMQogICAgKHBhcnNlLmMpIC0gZml4IHN1YmlkIGluaXQ7IHJlbW92ZSB1c2VsZXNzICctUGwnIG9wdGlvbi4KCm1zbGlmY2FrICA4IE1hciA5OSAwNDoxNDo0MQogICAgLSAoc25tcF9hcGkuYykgdXNlIHJlcXVlc3QgZGF0YSB3aXRoIHJlcXVlc3QgY2FsbGJhY2sKCm1zbGlmY2FrICA4IE1hciA5OSAwNTowMTo0OQogICAgLSh3aW4zMi9jb25maWcuaCkgcmVtb3ZlIHVudXNlZCBTWVNfVElNRV9OQU1FLEdMT0JBTFNFQ1VSSVRZLiBhZGQgbmV3IGNvbnN0YW50cy4KCm1zbGlmY2FrICA4IE1hciA5OSAwNTowNzoxMwogICAgLSAoQUdFTlQpIE1BWF9OQU1FX0xFTiAtLT4gTUFYX09JRF9MRU4gaW4gZXhhbXBsZQoKbXNsaWZjYWsgIDggTWFyIDk5IDA5OjU4OjE3CiAgICAtIChzbm1wbGliL3BhcnNlLmMpIENvbXBsZXRlIERhdmUgU2hpZWxkcycgcGF0Y2ggZm9yIGNvbnRpbnVlIGFmdGVyIGVycm9yLgoKbXNsaWZjYWsgIDggTWFyIDk5IDE0OjI4OjIwCiAgICAtIChzbm1wbmV0c3RhdDppZi5jLCByb3V0ZS5jKSBsaW1pdCBpbnRlcmZhY2UgbmFtZSBzaXplcyB0byBmaXQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCgpoYXJkYWtlciAxMCBNYXIgOTkgMTU6MDc6MzEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBncm91cCBsaW5lcyB3ZXJlIGJhY2t3YXJkcy4KCmhhcmRha2VyIDExIE1hciA5OSAxNTo0ODoyMgogICAgLSAoUkVBRE1FKTogQWRkZWQgTWlrZSBCYWVyLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE1OjQ4OjUyCiAgICAtIChtZW1vcnlfc29sYXJpczIuYyk6IGNoYW5nZWQgc29tZSBjb21tZW50cyB0byAvKiAqLyBpbnN0ZWFkIG9mIC8vLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjEwOjMxCiAgICAtIChBR0VOVCk6IHJlbW92ZWQgQUdFTlQKCmhhcmRha2VyIDExIE1hciA5OSAxNjoxMDo0NwogICAgLSAobWliMmMpOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzIGFuZCBhbnNpJ2lmaWVkIHRoaW5ncy4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoyMjo0MwogICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOiBtb3ZlIE1BVENIX1NVQ0NFRURFRCBkZWZzIHRvIC5oLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjIzOjQ0CiAgICAtIChzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgpOiBQYXRjaCBmcm9tIEVyaWsgSmFjb2JzZW46CiAgICAgIC0gZml4ZWQgcHJvdG90eXBlcyBmb3IgREVCVUdQKCkgYW5kIERFQlVHUE9JRCgpLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDA3OjA4OjQwCiAgICAtIChkbG1vZF9taWIuYykgOiBVc2UgTUFUQ0hfRkFJTC9TVUNDRUVERUQgaW4gdXRpbF9mdW5jcy5oCgpoYXJkYWtlciAxMiBNYXIgOTkgMDk6MTU6MTQKICAgIC0gKG1pYmluY2wuaCwgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsIGRsbW9kLmMsCiAgICAgIHJlZ2lzdHJ5LmMpOiBmaXhlZCBNQVRDSF9GQUlMRUQvU1VDQ0VFREVEIGRlZmluZXMgLT4gdXRpbF9mdW5jcy5oLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDExOjMxOjE2CiAgICAtIChkbG1vZF9taWIuYykgOiBleHBsaWNpdCB0ZXN0IGZvciBNQVRDSF9GQUlMRUQKCmhhcmRha2VyIDEyIE1hciA5OSAxMjoyMDoxMgogICAgLSAobWliMmMpOiBmaXggYXNuX3BhcnNlIGZ1bmN0aW9ucyB0byBwYXNzIGEgcG9pbnRlciB0byB0aGUgc2l6ZSB2YXJpYWJsZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDoxNzowOAogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDoxNzo0NAogICAgLSAoc211eC5jKTogcHJvdGVjdCBzdHJjcHkoKSBhZ2FpbnN0IGEgbnVsbCBwYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlCiAgICAgIGNvbmZpZyBsaW5lLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjM0OjEyCiAgICAtIChocl9zeXN0ZW0uaCkgLSBkb24ndCByZXF1aXJlIGhyX3V0aWw7IGRvbmUgaW4gbWliZ3JvdXAvaG9zdC5oCiAgICAtIChocl9zd3J1bi5jKSAtIHNvbGFyaXMyIDogbWFrZSBzdXJlIGt2bV9vcGVuIGlzIGNhbGxlZCBiZWZvcmUga2QgaXMgdXNlZC4KICAgIC0gKGhyX3N3cnVuLmMpIC0gYWRkIGxhbWUgc3Vub3M0IGVxdWl2YWxlbnQgaW4gSFJTV1JVTlBFUkZfQ1BVLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjM1OjM4CiAgICAtICh0YXJnZXQuaCwgdGFyZ2V0LyouaCkgcmVxdWlyZSB1dGlsX2Z1bmNzIG9uY2UuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MzY6MzkKICAgIC0gKHV0aWxfZnVuY3MuaCk6IE1BVENIX0ZBSUxFRCAtPiAtMSwgc2luY2Ugc29tZSB1c2UgaXQuCgptc2xpZmNhayAxMiBNYXIgOTkgMTQ6NTQ6NTEKICAgIC0gcmVzdG9yZSBjb25maWdfcmVxdWlyZSBsb2dpYzsgZml4IHNwcmludGYgY2FsbHMgdG8gY29tcGlsZSB1bmRlciBTdW5PUyA0LjEueC4KCmhhcmRha2VyIDEyIE1hciA5OSAxNToyMzoxOAogICAgLSAoSU5TVEFMTCk6IGRvbid0IHByaW50IG1vZHVsZSBsaXN0IGhlcmUuLi4gIHRlbGwgdGhlbSB0byBsb29rIGF0CiAgICAgIGNvbmZpZ3VyZSAtLWhlbHAuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTU6MjQ6MzcKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRSwKICAgICAgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLCBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsCiAgICAgIGxpYmlwZndjLmgpOiBQYXRjaCBmcm9tIERpZGllciBEaGFlbmVuczoKICAgICAgLSBuZXcgbW9kdWxlczogaXBmd2NoYWlucy4KCm1zbGlmY2FrIDE1IE1hciA5OSAwNTo1NDowNwogICAgLSAoTWFrZWZpbGUuaW4gbGlic25tcC5oIG1pYi5jIHNubXAuaCBzbm1wX2FwaS5jKSB1cGRhdGUgQ01VX0NPTVBBVElCTEUKCmhhcmRha2VyIDE1IE1hciA5OSAwODo0OToxMAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMpOgogICAgICAtIHJldmVydCB0byBzbm1wX3BhcnNlLgogICAgICAtIGRvbid0IGluc3RhbGwgbGlic25tcC5oLgoKbXNsaWZjYWsgMTUgTWFyIDk5IDA5OjQyOjM0CiAgICAtIHNlY29uZCBwYXNzIGF0IENNVV9DT01QQVQgOiBEaXNhYmxlIGJ5IGRlZmF1bHQsIGxlYXZlIHNubXBfcGFyc2UgYWxvbmUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTQ6MzA6NDUKICAgIC0gKHNubXAuaCk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50ZWQgb3V0IGRlZmluZS4KCmhhcmRha2VyIDE1IE1hciA5OSAxNDozMToyMwogICAgLSAoYWNjb25maWcuaCk6IGFkZGVkIENNVV9DT01QQVRJQkxFCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6MjE6MDIKICAgIC0gKGhyX3Byb2MuYywgaHJfcHJvYy5oLCBsb2FkYXZlLmMsIGxvYWRhdmUuaCk6IGZpeCB0cnlfbG9hZGF2ZSBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTozMTo1MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGludGVyZmFjZXMuYywgbGludXguaCk6IGRldGVjdAogICAgICAvcHJvYy9uZXQvZGV2IHZlcnNpb24gYXQgcnVuIHRpbWUsIG5vdCBjb21waWxlIHRpbWUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NDY6MTIKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpeGVzIGZvciBsaW51eCAyLjIgaW50ZXJmYWNlIHNjYW5uaW5nLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjU1OjM1CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NTg6MDcKICAgIC0gKEZBUSwgTkVXUyk6IHVwZGF0ZXMgdG8gdGFsayBhYm91dCB0aGUgQUdFTlQudHh0IGZpbGUuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4zIC0+IFYzLjYKCmhhcmRha2VyIDE5IEp1biA5OCAxMzoxNDo0MwogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuCgpoYXJkYWtlciAyMiBKdW4gOTggMDk6MTY6MzIKICAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgICAtIGNvbW1lbnRlZCBvdXQgdHJhaWxpbmcgI2VuZGlmIGNvbW1lbnQuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzA6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMToyMgogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9wZHVfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6NTY6NDYKICAgIC0gKHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZWQgaGV4X3RvX2JpbmFyeSwgYXNjaWlfdG9fYmluYXJ5LCBhbmQgc25tcF9hZGRfdmFyIHRvIHNubXBsaWIuCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6MDg6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gbWlzYyBtaWIgZml4ZXMuCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6NDA6NDAKICAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgICAtIGNyZWF0ZWQgKHBvb3JseSkgc2VuZF90cmFwX3BkdSgpIGZvciBzZW5kaW5nIHYyIHRyYXBzIGZyb20gbWliIG1vZHVsZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDI6MzIKICAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDU6MTUKICAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxNTowMzozOAogICAgLSAoZ2VuZXJpYy5oKTogcHV0IGluIGEgY29tbWVudCB0byBrZWVwIGNvbXBpbGVycyBmcm9tIGNvbXBsYWluaW5nIHRvbyBtdWNoLgoKaGFyZGFrZXIgMjggSnVuIDk4IDA5OjMwOjM0CiAgICAtIChzbm1wX2FwaS5jKTogZml4IHNubXBfYWRkX3ZhcigpLgoKaGFyZGFrZXIgIDEgSnVsIDk4IDExOjI4OjE3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KCmhhcmRha2VyICAxIEp1bCA5OCAxNTo1NjoxMgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmgpOgogICAgICAtIGFkZGVkIERFQlVHUE9JRChuYW1lLCBuYW1lbGVuKTsKICAgICAgLSBtb3ZlZCBERUJVR1AgZGVmaW5pdGlvbiBpbnRvIHNubXBfYXBpLmggd2hlcmUgaXQgYmVsb25ncy4KCmhhcmRha2VyICAxIEp1bCA5OCAxNTo1Nzo1MwogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKToKICAgICAgLSBmaXggZXh0ZW5zaWJsaXR5IGNoZWNraW5nIG9mIG9pZHMuCiAgICAgIC0gc2VwZXJhdGUgcnVubmluZyBvZiBleHRlcm5hbCBjb21tYW5kIGludG8gbmV3IGZ1bmN0aW9uLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjI1CiAgICAtIChmcmVlYnNkMi5oKTogdXNlIF9VVE1QX1BBVEggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjM0CiAgICAtIChpcml4LmgpOiBkZWZpbmUgX0tNRU1VU0VSCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6Mjc6MTIKICAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgIE1hcnpvdDoKICAgICAgLSB3aW4zMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MzQ6MjYKICAgIC0gKHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgcGFzcy1wZXJzaXN0LmMsCiAgICAgIHBhc3MtcGVyc2lzdC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgICAtIGNyZWF0ZSBhIHBhc3MtcGVyc2lzdCBtb2R1bGUgdG8gaGFuZGxlIGNvbnRpbnVvdXNseSBydW5uaW5nIHBhc3MgdGhyb3VnaHMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTY6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiByZW1vdmVkIGZyb20gYWdlbnQgZGlyLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU3OjA2CiAgICAtICh1Y2Rfc25tcC5oKTogYWRkZWQgcGFzcy1wZXJzaXN0IG1vZHVsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1ODowMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAyOjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMzozNgogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjA4OjE4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjA0OjIyCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYywKICAgICAgZXhhbXBsZS5oLCBkbG1vZC5jLCBkbG1vZC5oLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIERMTU9ELU1JQi50eHQsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRXVnZW5lCiAgICAgIFBvbG92bmlrb3Y6CiAgICAgIC0gbmV3IGRsbW9kIHNldC4KICAgICAgLSBmaXggY29uZmlndXJlIHNjcmlwdC4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDoyMDo0MgogICAgIC0gKGRsbW9kLmMpOiB1c2Ugc25tcGRfIHJlZ2lzdGVyX3JlYWRfY29uZmlnKCkgd3JhcHBlcnMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDM6NTYKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDoyNQogICAgLSAodWNkX3NubXAuaCk6IHJlbW92ZWQgdWNkLXNubXAvcGFzc19wZXJzaXN0IGZyb20gZGVmYXVsdCBpbmNsdWRlIGxpc3QuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MzQKICAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjQxCiAgICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjIyCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjMxOjM2CiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTozMTo1MAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjUxOjI4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxICkKCmhhcmRha2VyIDEwIEp1bCA5OCAwOTo0MjoxNgogICAgLSAoc25tcGQuYyk6IHdyb25nIHBkdSBwb2ludGVyIGZvciBzbm1wdjJjIHRyYXBzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjI4CiAgICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0Njo1NQogICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoxMToxMAogICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgoKaGFyZGFrZXIgMjAgSnVsIDk4IDE3OjE0OjIxCiAgICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNTozNTowNwogICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCgpoYXJkYWtlciAyMiBKdWwgOTggMTY6MjM6NDUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAyOjI3CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDM6MzAKICAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDQ6MzgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcGVyc2lzdGVudCBjb25maWcgZmlsZSBxdWVzdGlvbi4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NDo1MwogICAgLSAoTWFrZWZpbGUuaW4pOiB0eXBvLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ3OjE1CiAgICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIHByZS9wb3N0IG1pYiBsb2FkaW5nIGNvbmZpZyBmaWxlcy4KICAgICAgLSBjcmVhdGUgaW5pdF9zbm1wKCkgdG8gd3JhcCBvdGhlciBmdWN0aW9ucy4KICAgICAgLSBuZXcgc25tcC5jb25mIGRpcmVjdGl2ZXM6IG1pYnMsIG1pYmRpcnMsIG1pYmZpbGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDc6NDgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBpbml0X3NubXAoKS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0ODoyNQogICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0ODo0MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiB1c2UgaW5pdF9zbm1wIGluc3RlYWQgb2YgaW5pdF9taWIoKS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo1MDozNAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgIHNubXBkLmgpOgogICAgICAtIHN1cHBvcnQgbWliLW1vZHVsZSBzaHV0ZG93biBmdW5jdGlvbnMuCiAgICAgIC0gZG8gYSBtaW5pbWFsIHBlcnNpc3RlbnQgY2FjaGUgaW1wbGVtZW50YXRpb24gYW5kIHJlYWQgaXQgYXQgc3RhcnQgdXAuCiAgICAgIC0gdGVzdCB3aXRoIGJlZ2lubmluZ3MgKHdyb25nIHBsYWNlKSBvZiBhZ2VudEJvb3RzIHZhcmlhYmxlLgoKbmJhICAzIFNlcCA5OCAxNDoyOTowMwogICAgLSAoZml4cHJvYyk6IGFkZGVkIGNvbW1lbnQgdG8gdGVzdCBDVlMuCgpoYXJkYWtlciAgOSBTZXAgOTggMTY6MTI6MzIKICAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDE2OjU1OjA0CiAgICAtIChzbm1wZC5jKTogZml4IHRyYXAgc3R1ZmYgYnJva2VuIGJ5IHRoZSBjb2RlIG1lcmdlLgoKaGFyZGFrZXIgMTEgU2VwIDk4IDA5OjI2OjQyCiAgICAtICgqKTogTWVyZ2VkIHRoZSBNVCBjaGFuZ2VzIGludG8gdGhlIG1haW4gYnJhbmNoLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjQ2OjAxCiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG90eXBlIG1vdmUgaW5pdF9zbm1wKCkgYWJvdmUgaW5pdF9zbm1wX3Nlc3Npb24uCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTM6MjMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbW92ZSB1bi1jb25maWd1cmVkIGRlZmluZXMgYWJvdmUgQFRPUEAuCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTQ6MjQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRG9uJ3QgZm9yY2UgY2MgYW55bW9yZSwgYWxsb3cgZ2NjIHRvIGdvIGZpcnN0LgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjU2OjUxCiAgICAtIChvdi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgc2VjdGlvbnMgYWxyZWFkeSBkZWZpbmVkIGluIE1ha2VmaWxlLnRvcC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowMjozNwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowODo0NgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBNb3ZlIENBTl9VU0VfTkxJU1QgdGVzdHMgYmVsb3cgYXJjaCAuaCBmaWxlcy4KCmhhcmRha2VyIDEzIFNlcCA5OCAxODoyNDowMAogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGV4aXQgLT4gcmV0dXJuLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjEyOjA5CiAgICAtIChzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICAtIG1lcmdlIGludG8gbWFpbiBsaW5lIGZyb20gdGhlIDMtNi1wcmUxLXRyYW5zIGJyYW5jaC4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDoxODoxMAogICAgLSAoc25tcF9hcGkuYyk6IGRlZmluZSB1c2FnZSBtaXNwZWxsaW5nIFNOTVBfQkFEX1BBUlNFIC0+IFNOTVBFUlJfQkFEX1BBUlNFLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjMwOjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJldmVudCBkb3VibGUgaW5pdF9zbm1wKClzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA1OjI2CiAgICAtIChSRUFETUUpOiBOYW1lIGFkZGl0aW9uLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA2OjUyCiAgICAtIChtaWIuYywgcmVhZF9jb25maWcuYyk6IHJlZml4IHRoZSBub24tbWFsbG9jZWQgY29uZmlndXJhdGlvbiB2YXJzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA5OjM2CiAgICB2ZXJzaW9uIHVwZGF0ZTogMy42LnByZTIKCmhhcmRha2VyIDE0IFNlcCA5OCAxMjozNToxMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbnN0YWxsIHNubXBfc2Vzc19hcGkuMy4KCmhhcmRha2VyIDE0IFNlcCA5OCAxMjo0MzozMgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIGRsbW9kX21pYi5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICAgICBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgc25tcF9iZ3AuYywKICAgICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBocHV4LmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsCiAgICAgIHJlZ2lzdHJ5LmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLAogICAgICBwYXJ0eV92YXJzLmMsIHZpZXdfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW5hbWUgY29tcGFyZSAtPiBzbm1wX29pZF9jb21wYXJlKCkuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDI6MzQKICAgIC0gKGluZXQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1lbW9yeSByZWxhdGVkIGZpeGVzLgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjA3OjA1CiAgICAtIChtaWIuYyk6IC8vIGNvbW1lbnQgLT4gLyogKi8gY29tbWVudC4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowNzo0NQogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBpbml0X3NubXAgY2FsbHMgZnJvbSBzZXNzaW9uIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEzOjIwOjExCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogYWRkZWQgdGhlIEZpbGVUYWJsZSBzdWJtaXR0ZWQgYnkgSm9uYXMgT2xzc29uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDE0OjAxOjUxCiAgICAtICh1Y2Rfc25tcC5oKTogYWRkIHRoZSBmaWxlIG1pYiBtb2R1bGUuCgpoYXJkYWtlciAxOCBTZXAgOTggMTQ6MDQ6NDMKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDaGFuZ2UgZmlsZSByZXR1cm4gY29kZSBmcm9tIFRydXRoVmFsdWUgdG8KICAgICAgaW50ZWdlciBzaW5jZSAxLzIgZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IDAvMSByZXR1cm4gY29kZSBzY2hlbWUuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTE6MzkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyMyBTZXAgOTggMTM6MDc6MDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGFyc2UuYyk6IE5ldyBmbGFnOgogICAgICAtIC0tZW5hYmxlLWVvbC10ZXJtaW5hdGVkLWNvbW1lbnRzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjA1OjQwCiAgICAtIChzbm1wX2FwaS5jKTogZG9uJ3QgcmVseSBvbiB0aGUgZ2V0c2VydmJ5bmFtZSBwb2ludGVyIHRvIHN0YXkgYXJvdW5kLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjE1OjIyCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBUaGUgQ01VIGxpYnJhcnkgaGFzIGFuIG9wdGltaXphdGlvbiBpbiBzbm1wX2Nsb25lX3BkdSgpIHRoYXQgZG9lcwogICAgICAgbm90IGNvcHkgemVybyBsZW5ndGggc3RyaW5ncy4gIEkgaGFkIG1lcmdlZCB0aGlzIGluIHdpdGggY2hhbmdlcwogICAgICAgbWFkZSBmb3IgbXVsdGktdGhyZWFkIHN1cHBvcnQuICBVbmZvcnR1bmF0ZWx5LCBJIGRpZCBub3QgbWFrZSBzdXJlCiAgICAgICB0aGUgY2xvbmVkIFBEVSBoYWQgbm8gcG9pbnRlciBmb3IgdGhpcyBjYXNlLiAgT29wcyEKICAgICAtIEFub3RoZXIgcHJvYmxlbSBpbiBzbm1wX2Nsb25lX3BkdSgpIHdhcyB0aGUgdGVzdCBmb3IgemVybyBsZW5ndGgKICAgICAgIHN0cmluZyB3YXMgbm90IGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY2hhaW4uCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MjQ6MTYKICAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20KICAgICAgTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncywgZXJyb3JzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjI1OjEwCiAgICAtIChzbm1wdGFibGUuYyk6IHByb2Nlc3MgYXJncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZ2V0X29wdCgpLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjMzOjA2CiAgICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzdHVwaWQgT1MgdXBkYXRlLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjU1OjUwCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGluc3RhbGwgbW9yZSBoZWFkZXJzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjU2OjQzCiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGluc3RhbGwgbGlic25tcC5oLiAgSXQncyBnb2luZyB0byBjaGFuZ2UgdG9vCiAgICAgIG11Y2ggaW4gdGhlIGZ1dHVyZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxODowMzoyNwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHZlcnNpb24uaCwgYW5kIHN0cmlwIGluY2x1ZGVzIG91dCBvZiBjb25maWcuaAoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjA0OjExCiAgICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQtb3V0LgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjE0OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXRpbF9mdW5jcy5jKTogdXNlIFVTTEVFUCBpZiBhdmFpbGFibGUgZm9yCiAgICAgIHNtYWxsIHNsZWVwIHRpbWVzIHdoaWxlIHdhaXRpbmcgZm9yIHByb2Nlc3NlcyB0byBmaW5pc2guCgpoYXJkYWtlciAzMCBTZXAgOTggMTQ6NTc6MTEKICAgIC0gKENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGludGVyZmFjZXMuYywgbWVtb3J5LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHBhcnNlLmMpOgogICAgICAtIG1lcmdlIDMuNS4zIGNoYW5nZXMgaW50byBtYWluIHRydW5rLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDE2OjUzOjIzCiAgICAtIChkdW1teS5jLCBkdW1teS5oKTogdXBkYXRlIHRvIHJlbW92ZSBjb21tb25faGVhZGVyLmgKCmhhcmRha2VyICA1IE9jdCA5OCAxNzowMzozNAogICAgLSAoaHJfcHJvYy5jKTogcG9zc2libGUgZml4IGZvciBzb2xhcmlzJ3MgcHJvY2VzcyBwZXJjZW50YWdlLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjAzCiAgICAtICh2YXJfcm91dGUuYyk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODoxNgogICAgLSAoaHB1eC5oKTogaGFjayBmaXhlcyBmb3IgaHB1eDEwIGFuZCBydGVudHJ5LgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjU1CiAgICAtIChjb25maWcuaC5pbik6IHNldHVwIGRlZmluZSBmb3IgSEFWRV9VU0xFRVAuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MzQ6NTgKICAgIC0gKHJlbW92ZS1maWxlcyk6IHVwZGF0ZS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozNTowNgogICAgLSAodmVyc2lvbnRhZyk6IGZpeCBmb3IgY3ZzIDEuMTAuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6Mzg6NDkKICAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM4OjU2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUzICkKCmhhcmRha2VyICA3IE9jdCA5OCAxNjo0OToxMQogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwcm9wZXJseSBsb2NhdGUgdmVyc2lvbi5oIGluICQoc3JjZGlyKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo0OTozMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggbWFrZSBodG1sLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjUwOjIzCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIHVuLW5lZWRlZCBoZWFkZXJzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjUxOjU2CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGRlZmF1bHQgcG9ydCBwcm9ibGVtcyAoYWdhaW4pLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjU0OjM4CiAgICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBleGl0aW5nIHByb2JsZW1zIG9uIE5ULgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjAwOjQwCiAgICAtIChsaWJzbm1wLmRzcCwgbGlic25tcF9kbGwuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gd2luTlQgcHJvamVjdCBmaWxlIHVwZGF0ZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMDg6MDk6MTIKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzowODoxOAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gQ2hlY2sgZm9yIGZ1bGx5IHF1YWxpZmllZCBvaWQgc3RhdGVtZW50cy4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzoxMjowMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc3VwcG9ydCBmb3Igc3RyaWN0IChjYXNlIHNlbnNpdGl2ZSkgb3B0aW9uIHRvIHRoZSBtaWIgY29tcGlsZXIuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MjA6MjUKICAgIC0gKEZBUSk6IERhdmUgU2hpZWxkIGV4cGxhaW5zIGluIHdvbmRlcm91cyBkZXRhaWwgYWxsIGFib3V0IHRoZSBWQUNNIG1vZHVsZS4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOToxNzowMgogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSBwdWJsaWMgY29tbXVuaXR5IGV4YW1wbGVzIC0+IHByaXZhdGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDE6MTIKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBtYWNoaW5lL3R5cGVzLmguCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDE6MzgKICAgIC0gKGhvc3RfcmVzLmgpOiBuZXQvaW5fdmFyLmggZm9yIGZyZWVic2QzLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQyOjIwCiAgICAtIChocl9zdG9yYWdlLmMpOiBtYWNoaW5lL3R5cGVzLmggYW5kIHN5cy92bW1ldGVyLmggZm9yIGZyZWVic2QzLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjUwOjI2CiAgICAtIChmcmVlYnNkMy5oKTogZGVmaW5lIGZyZWVic2QyIGFuZCBNT1VOVF9ORlMuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NTE6NTgKICAgIC0gKGZyZWVic2QzLmgpOiBvcHBzOiAgZGVmaW5lIE1PVU5UX05GUyBhcyAibmZzIi4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MDowNQogICAgLSAoc25tcGQuYyk6IC1BOiBhcHBlbmQgdG8gbG9nIGZpbGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDE6NTIKICAgIC0gKHNubXBkLmMpOiBkb2N1bWVudCAtQS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MjoxMAogICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtQS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0OTowMwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZm9yIGJyb2tlbiBjb21waWxlciB3YXJuaW5ncyBvbiBOVC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo1Mjo1MQogICAgLSAobWVtb3J5LmMpOiBmaXggZm9yIGhwdXg5LgoKaGFyZGFrZXIgMTYgT2N0IDk4IDA4OjM4OjM5CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgYWl4LmgpOiBhaXggaGVhZGVyIGZpbGUgZml4ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTA6NTQ6NDkKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIEZpeCBwYXJzZXIgdG8gZGVhbCB3aXRoIGFub255bW91cyBjaGlsZHJlbiBwcm9wZXJseS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxMTowODo1NgogICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB3YXRjaCBvdXQgZm9yIGVtcHR5IGZpbGUgbmFtZXMgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjAxOjEyCiAgICAtICguY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYpOgogICAgICAtIG5ldyB1bnByb29mcmVhZCBtYW51YWwgb24gdGhlIHJlYWRfY29uZmlnIGFwaSAobW9zdCBvZiBpdCkuCgpoYXJkYWtlciAyMyBPY3QgOTggMDc6NTc6MTcKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gTlVMTCBjaGVja2luZyBvbiB0aGUgZmlsZXN5c3RlbSBtb3VudCBwb2ludC4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NDoxMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnNlcnQgQCBzaWduLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU0OjQ3CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYyk6IGJ1ZyBmaXhlcywgbWlzc2luZyAjZW5kaWYuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTY6MDkKICAgIC0gKHRrbWliKTogZWRpdGFibGUgb2lkIGZpZWxkLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU5OjQ0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBkLmMsIHdvbWJhdC5oLAogICAgICBzeXN0ZW0uaCwgdmFjbV92YXJzLmgsIGRsbW9kLmMsIGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsCiAgICAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5oLCBwYXNzLmgsIHBhc3NfcGVyc2lzdC5oLAogICAgICBwcm9jLmgsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywgbWliLmMsIHJlYWRfY29uZmlnLmMsCiAgICAgIHJlYWRfY29uZmlnLmgpOgogICAgICAtIG5ldyBvcHRpb24gLUggb24gY29tbWFuZCBsaW5lIHRvIHByaW50IG91dCAuY29uZiBmaWxlIGRpcmVjdGl2ZXMKICAgICAgICB0aGF0IHRoZSBhcHBsaWNhdGlvbiB1bmRlcnN0YW5kcy4KICAgICAgLSBjcmVhdGVkIGEgbmV3IG9wdGlvbiB0byB0aGUgcmVhZCBjb25maWcgcmVnaXN0cmF0aW9uIHRvIGFsbG93CiAgICAgICAgc3BlY2lmeWluZyBvZiBhIGhlbHAgbGluZS4KCmhhcmRha2VyICA2IE5vdiA5OCAxNzoyMzo0NgogICAgLSAoc25tcGQuYyk6IGZpeCB2MiB0cmFwIGdlbmVyYXRpb24uCgpoYXJkYWtlciAgNiBOb3YgOTggMTc6NDQ6NDMKICAgIC0gKHNubXBkLmMpOiB2MiB0cmFwIHNlbmQgZGVidWdnaW5nLgoKaGFyZGFrZXIgMTYgTm92IDk4IDIyOjEwOjA4CiAgICAtICh0a21pYik6IHRvbyBtYW55IGltcHJvdmVtZW50cyB0byBjb3VudC4KCmhhcmRha2VyIDIzIE5vdiA5OCAxNTo0Mjo1MgogICAgLSAoaW50ZXJmYWNlcy5jLCBpcml4LmgpOiBmaXggbG9jYXRpb24gb2YgX0tFUk5FTCBkZWZpbmUgZm9yIGlyaXguCgpoYXJkYWtlciAyMyBOb3YgOTggMTY6MzU6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0Mjo0NAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gdXNlIHNldGxvY2FsZSgpIGlmIGF2YWlsYWJsZSB0byBjb3JyZWN0IGlzcHJpbnQgcHJvYmxlbXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDg6NTMKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBuZXcgZnVuY3Rpb25zOiBzbm1wX21pYl90b2dnbGVfb3B0aW9ucygpIGFuZCB1c2FnZS4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0OTo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiAtUCBmbGFnIGZvciB0b2dnbGluZyBuZXcgbWliIHBhcnNpbmcgb3B0aW9ucy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODowNjozMwogICAgLSAoTkVXUyk6IGJlZ2lubmluZyBub3RlcyBmb3IgMy42LgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjA3OjI0CiAgICAtIChkaXNrLmMpOiBmaXggZGlzayBzaXplIGVycm9yIGZsYWcgcmVwb3J0aW5nIG9uIFNvbGFyaXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTI6MTMKICAgIC0gKHBhcnNlLmMpOiBzcGFjaW5nIGluIG1pYiBvcHRpb24gdXNhZ2UgZml4ZXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTQ6NDQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIC13Ly1XIGZsYWcgaW4gdXNhZ2UuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTg6MDcKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHJlbW92ZSBhIGZldyBkZWZpbmVzIHRoYXQgd2VyZSBtZXNzaW5nIHVwIHNvbGFyaXMgNy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0MTo1NQogICAgLSAoaHJfZmlsZXN5cy5jKTogd2F0Y2ggb3V0IGZvciBOVUxMIGZpbGUgcG9pbnRlcnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDI6MjAKICAgIC0gKGluZXQuYyk6IGluaXQgcG9pbnRlciB0byBOVUxMLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQ4OjM4CiAgICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gSmVmZiBKb2huc29uOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtZW1vcnkgbGVha3Mgd2l0aCB0aGUgUlBNIHBhY2thZ2UgaW5mbyBjYWxscy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo1Nzo1MgogICAgLSAoUkVBRE1FKTogYWRkZWQgSmVmZiBKb2huc29uIHRvIHRoZSBjb250cmlidXRvcnMgbGlzdC4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo1OToxNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNSApCgpoYXJkYWtlciAxNiBEZWMgOTggMDc6MzE6MjYKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwb2ludGVyIGNoZWNrcyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCgpoYXJkYWtlciAxOCBEZWMgOTggMTE6MzY6MzkKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB0eXBvLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjEwOjI0CiAgICAtIChwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBmaXhlcyBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgICAgLSBtaXNjIHJlYWRfY29uZmlnIGZ1bmN0aW9ucyBwdWxsZWQgaW4gZnJvbSB0aGUgdjMgd29yay4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMTowMwogICAgLSAobGlic25tcC5kZWYpOiB1cGRhdGUgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTI6NTQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogaW5jbHVkZSByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjE2OjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHN0b3JlIGNvbmZpZ3VyZSBmbGFncyB0byBhIGRlZmluZS4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxNjo1MwogICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IG1pYiBvYmplY3QgdG8gZGlzcGxheSBjb25maWd1cmUgb3B0aW9ucy4KCmhhcmRha2VyIDIxIERlYyA5OCAxODoxOToxMgogICAgLSAoZmlsZS5oLCBVQ0QtU05NUC1NSUIudHh0KTogbW92ZSB0aGUgZmlsZSBtaWIgdG8gLjE1IHNvIGl0IGRvZXNuJ3QKICAgICAgY29uZmxpY3Qgd2l0aCB0aGUgZGVtbyBtaWIuCgpoYXJkYWtlciAyMSBEZWMgOTggMTg6MjA6MjUKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gV2luMzIgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIG9wZW5kaXIoKSwgZXRjLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDA4OjUwOjI5CiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGNvbXBpbGUgZGxtb2RzCgpoYXJkYWtlciAyMiBEZWMgOTggMTQ6NTY6NDQKICAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IG15IGJyb2tlbiBzZXRfbG9jYWxlIHN0dWZmLgoKaGFyZGFrZXIgMjYgRGVjIDk4IDEwOjM1OjIzCiAgICAtIChkbG1vZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGRsbW9kIGNvbXBpbGF0aW9uIGluIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkgY2FsbC4KCmhhcmRha2VyIDI5IERlYyA5OCAxNjo1NTo1NAogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgbmV3bGluZXMgZnJvbSBzcHJpbnRfdmFsdWUoKSB3aGVyZSBhcHBsaWNhYmxlLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAyOjMzCiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDY6MTEKICAgIC0gKGV2ZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAgLSBtZW1jbXAncyBzaXplcyB3ZXJlIHdyb25nLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ4OjU3CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gbmVlZCB0byByZWFkX29iamlkKCkgdGhlIGNvbnRleHQgb2lkIGJhc2UsIG5vdCB0aGUgcGFydHkgb2lkIGJhc2UKICAgICAgICBpbiBvbmUgbG9jYXRpb24uCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDk6NTEKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gb2lkTGVuJ3Mgd2VyZSB3cm9uZyBmb3IgbTJtIG9pZHMuCgpoYXJkYWtlciAgMiBKYW4gOTkgMDg6NDg6MjkKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAgLSBuZXcgY29tcGxldGUgbGlzdCBvZiBpZlR5cGVzLgoKaGFyZGFrZXIgIDUgSmFuIDk5IDEwOjQxOjUyCiAgICAtIChzbm1wdGFibGUuYyk6IE1ha2UgZmllbGQgc2VwYXJhdG9yIHRha2UgYXJndW1lbnRzIGRpcmVjdGx5IGFmdGVyIHRoZSAtZi4KCmhhcmRha2VyICA1IEphbiA5OSAxMDo0ODo1MQogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgIHNubXB0YWJsZS5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIG1ha2UgbWFpbigpIHJldHVybiBhbiBpbnQgaW5zdGVhZCBvZiB2b2lkLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjI4OjIxCiAgICAtIChtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jKToKICAgICAgLSBJbXBsZW1lbnQgdGhlIG5ldyB0b2tlbiBiYXNlZCBkZWJ1Z2dpbmcgbWVzc2FnZSBzdXBwb3J0LgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjMwOjEyCiAgICAtIChzbm1wdGFibGUuYyk6IGNoYW5nZSBpbnRlcm5hbCBkZWJ1ZyB2YXJpYWJsZSB0byBsb2NhbGRlYnVnLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjMwOjQ3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1ha2UgLUQgcmVnaXN0ZXIgdGhlIGRlYnVnZ2luZyB0b2tlbnMgc3BlY2lmaWVkLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjQ5OjI5CiAgICAtIChGQVEsIFJFQURNRSk6IFVSTCBjaGFuZ2VzLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUwOjE1CiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUwOjI4CiAgICAtIChpZi5jLCBtYWluLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUyOjEwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogREVCVUdQT0lEIHJlcGxhY2VtZW50OiBERUJVR01TR09JRC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MjoyMgogICAgLSAoc25tcGNtZC4xKTogZGlzY3VzcyAtRCB1c2FnZSBjaGFuZ2UuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjE6NTA6MTMKICAgIC0gKGFnZW50LyouYyk6CiAgICAgIC0gdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgICAgLSBpbXBsZW1lbnQgbmVlZGVkIC1EIGZsYWcgY2hhbmdlcy4KCmhhcmRha2VyIDE0IEphbiA5OSAwOTowMjozNgogICAgLSAobWliMmMpOiB1cGRhdGUgZm9yIFNOTVAucG0gMS44LgoKaGFyZGFrZXIgMTUgSmFuIDk5IDExOjEwOjA5CiAgICAtIChzbm1wMnAuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTE6MTI6MjIKICAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6MjQ6MDIKICAgIC0gKGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSByZWdpc3Rlcl9taWIoKS4KCmhhcmRha2VyIDE1IEphbiA5OSAxNTo1ODoyMAogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KCmhhcmRha2VyIDE1IEphbiA5OSAxNTo1ODo1MAogICAgLSAodmFjbS5jKTogREVCVUdNU0cgdHlwby4KCmhhcmRha2VyIDE1IEphbiA5OSAxNjoxNzowNQogICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gc211eCBwYXRjaGVzLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjA0OjEyCiAgICAtIChzbm1wY21kLjEpOiB1cGRhdGVkIC1EIGRlc2NyaXB0aW9uLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjEyOjAzCiAgICAtIChzbm1wbGliLyouW2NoXSk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhc25pJ2lmeSBhbGwgZnVuY3Rpb25zLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjEzOjEwCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU2ICkKCmhhcmRha2VyIDE4IEphbiA5OSAxMDo0NzozNgogICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDE5OjU5OjUzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgX19QIGNoZWNraW5nLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDIwOjAxOjU5CiAgICAtIChzbm1wdGFibGUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXV0aC5jLCBsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20KICAgICAgTWljaGFlbCBKLiBTbGlmY2FrOgogICAgICAtIGFwcHMvc25tcHRhYmxlLmMgLSBzb21lIGNvbXBpbGVycyB3YXJuIGNvbXBhcmluZyBwb2ludGVyIHdpdGggaW50ZWdlcgogICAgICAtIHNubXBsaWIvbWliLmMgLSBhbHJlYWR5IG1lbnRpb25lZCBiZWZvcmU7IGhlcmUgZm9yIGNvbXBsZXRlLW5lc3MKICAgICAgLSBzbm1wbGliL3BhcnNlLmMgLSBtaW5vciB0b3VjaHVwIG9mIGluY2x1ZGVzOyBzeXN0ZW0uaCBkdXAgcmVtb3ZlZAogICAgICAtIHNubXBsaWIvc25tcF9hcGkuaCAtIE1TVmlzdWFsIEMrKyBkb2Vzbid0IGhhdmUgX19GVU5DVElPTl9fCiAgICAgIC0gc25tcGxpYi9zbm1wX2F1dGguYyAtIG1pbm9yIGZpeCBvZiBjb21tZW50CiAgICAgIC0gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLSBzbm1wX3BhcnNlX2FyZ3MgbmVlZHMgYSBuZXcgZnVuY3Rpb24KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMDowOAogICAgLSAoRkFRKTogcGVybC1TTk1QIGFuZCB5MmsgcXVlc3Rpb25zIGFkZGVkLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIxOjM1CiAgICAtIChhY2NvbmZpZy5oKTogdW5uZWVkZWQgY29tbWVudCByZW1vdmVkLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIxOjU3CiAgICAtIChpbnRlcmZhY2VzLmMpOiB0eXBvIGluIGFuc2kgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyNDozNAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwgLmN2c2lnbm9yZSwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaWYuYywgTWFrZWZpbGUuaW4sIG1pYi5jLCBwYXJzZS5jLAogICAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwKICAgICAgdmFjbS5jKTogZGVidWdnaW5nIHN1cHBvcnQgY29kZSBtb3ZlZCB0byBzbm1wX2RlYnVnLltjaF0uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTE6NTkKICAgIC0gKE1ha2VmaWxlLmluKTogdmVyc2lvbiB0YWcgY3JlYXRpb24uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6MTMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGFzbS9wYWdlLmggKGxpbnV4KS4KICAgICAgLSBjaGVjayBmb3Igc3lzL3N0cmVhbS5oIChTQ08pLgogICAgICAtIEZpeCBydGVudHJ5IHRlc3QuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6NDIKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvc3RyZWFtLmggZm9yIFNDTy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNDo1OAogICAgLSAodmVyc2lvbnRhZyk6IHZlcnNpb24gdGFnZ2luZyBhYmlsaXR5IHRvIGRvIG1hbnkgdGhpbmdzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE2OjM0CiAgICAtIChhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMpOgogICAgICAtIHN5cy9zdHJlYW0uaCBuZWVkZWQgYnkgU0NPLgogICAgICAtIGludGVyZmFjZXMgc2NhbiBmaXhlcyBmb3IgbGludXggMi4wIHZzIDIuMSBjYW4gYmUgY29uZmlndXJlZCBlbHNld2hlcmUgbm93LgogICAgICAtIHByb3RlY3QgZ2V0X2FkZHJlc3MgY2FsbHMgYWdhaW5zdCBOVUxMIHBvaW50ZXIgcmV0dXJucy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNzoxNwogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOgogICAgICAtIGxpbnV4IDIuMSBrZXJuZWwgbmVlZHMgYXNtL3BhZ2UuaCAoYWxsIGluY2x1ZGVzIG5lZWQgdG8gYmUgcmUtd3JpdHRlbikuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTc6NDEKICAgIC0gKGxpbnV4LmgpOiBkZWZpbmUgTElOVVhfSU5URVJGQUNFX1NDQU5fTElORS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToyMDowNAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHVjZC1zbm1wLWluY2x1ZGVzLmguCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjI6MDgKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjI6MzgKICAgIC0gKEZBUSwgUkVBRE1FKTogYWRkZWQgdmVyc2lvbiBzdGFtcC4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTozMDo1OAogICAgLSAoQ09QWUlORyk6IEl0J3MgMTk5OQoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjMxOjEzCiAgICAtIChSRUFETUUpOiBoZWxwaW5nIG91dCBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjQ4OjUzCiAgICAtIChzbXV4LmMpOiB0eXBvCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NDk6MzAKICAgIC0gKGhyX3N3aW5zdCk6ICNpZmRlZiBSUE0gcHJvdGVjdCBhIGZyZWUgcm91dGluZS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo1MDoxNwogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1pYiBtb2R1bGUgbWFrZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTQ6MDIKICAgIC0gKHNubXBkLmMpOiBleHBvcnQgc2RsaXN0IGFuZCBzZGxlbiB2YXJpYWJsZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTQ6MzYKICAgIC0gKHNtdXguYyk6IGRlYnVnZ2luZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE2OjQxOjIwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIG1haW4uYywgc25tcF9hcGkuYyk6CiAgICAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGFsbG93IHplcm8gbGVuZ3RoIChsZWdhbCkgY29tbXVuaXR5IHN0cmluZ3MuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTc6MDI6MzcKICAgIC0gKGNvbmZpZy5oLmluKTogcmFuIGF1dG9oZWFkZXIKCmhhcmRha2VyIDIwIEphbiA5OSAxNzoxMToyNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6Mzk6MzQKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBKLiBTbGlmY2FrOgogICAgICAtIHR5cG8gb24gSm9lJ3MgbmFtZSBmaXhlZC4KCmhhcmRha2VyIDIxIEphbiA5OSAwODo0MDoyNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfYXBpLmMsIGNvbmZpZy5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsCiAgICAgIEouIFNsaWZjYWs6CiAgICAgIC0gTk9fTlVMTF9DT01VTklUWSAtPiBOT19aRVJPTEVOR1RIX0NPTU1VTklUWS4KCmhhcmRha2VyIDIxIEphbiA5OSAwODo0MjoxNwogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1vZHVsZSBkZXBlbmRzLgoKaGFyZGFrZXIgMjIgSmFuIDk5IDA3OjIzOjEzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gQ2hlY2sgZm9yIE5VTEwgb24gc2Vzc2lvbiBjbG9zZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6MDgKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpbmV0LmMsIG1haW4uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBtb3JlIGFuc2kgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6MjYKICAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjQxCiAgICAtIChsaW51eC5oKTogMi4yIGRlZmluZSB1cGRhdGUuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6MzM6MjQKICAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIGFuc2kgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6MzQ6MTEKICAgIC0gKHN5c3RlbS5jKTogZml4IHN0cmluZ3MuaCBpbmNsdWRlLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjExOjQ5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHRlc3QgaWYgX19GVU5DVElPTl9fIGlzIHN1cHBvcnRlZCBieSB0aGUgY29tcGlsZXIuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTE6MTU6NTMKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsCiAgICAgIGZpbGUuYywgaW5ldC5jLCBwYXJzZS5jLCBzbm1wX2RlYnVnLmMpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjE2OjE2CiAgICAtIChsaW51eC5oKTogY29tbWVudCB0eXBvLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDE2OjI1OjM3CiAgICAtIChSRUFETUUsIFJFQURNRS5taWIyYyk6IG1pYjJjIHJlYWRtZSBmaWxlLgoKaGFyZGFrZXIgMjYgSmFuIDk5IDA5OjQ1OjQyCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogY2hhbmdlIHJlZmVyZW5jZSBJUCBuZXQgYWRkcmVzc2VzIHRvIDEwLjEwLjEwLjAuCgpoYXJkYWtlciAgMiBGZWIgOTkgMTM6MzM6MjUKICAgIDIwMzYgLT4gMjAzOAoKaGFyZGFrZXIgIDIgRmViIDk5IDEzOjM0OjM2CiAgICAtIChzbm1wZC5jKTogdHlwbzogLUwgLT4gLUEgaW4gaGVscCBzdHJpbmdzIGRvY3MuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDA6MTMKICAgIC0gKEZBUSk6IG1lbnRpb24gbGFjayBvZiBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAxOjAxCiAgICAtIChUT0RPKTogUmVtb3ZlIHVuc3VwcG9yZWQgbWliIG5vZGVzIGZyb20gb3V0cHV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDAncy4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMjowNAogICAgLSAoaHJfcHJvYy5jKTogdXNlIFswXSBpbmRleCBvZiBsb2FkIGF2ZXJhZ2UgdGFibGUuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDI6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1lbnRpb24gdGhhdCB0aGUgbWVtb3J5IHNlY3Rpb24gaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbAogICAgICAgIGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjE6MjUKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9obiBQb2xzdHJhOgogICAgICAtIGNhbGwgYWNjZXB0KCkgdG8gZ2V0IHRoZSBzb2NrZXQgZmlsZSBkZXNjcmlwdG9yLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjA4OjU3CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBUay5wbSBtZW50aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjEzOjAxCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gaWluZGV4LgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE0OjQyCiAgICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIHRpbWUgLT4gbV90aW1lLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE3OjUwCiAgICAtIChyb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gSWZJbmRleC4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxODowOAogICAgLSAoaW5ldC5jKTogcHJvcGVyIGJyYWNrZXQgaW5kZW50YXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTk6MjIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2Ugc2l6ZV90IGluc3RlYWQgb2YgInVuc2lnbmVkIiBmb3IgeG1hbGxvYywgZXRjLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjIwOjQ3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFrZSBzbm1wX29pZF9jb21wYXJlIHVzZSBjb25zdCdzLgoKaGFyZGFrZXIgIDggRmViIDk5IDIzOjIyOjMzCiAgICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMjM6MjM6NDEKICAgIC0gKGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oKSBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbmNsdWRlIHVwZGF0ZXMuCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MTA6MzMKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBGQVEuaHRtbC4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDoxMDo1MgogICAgLSAobWliMmMpOiB0eXBvLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjM1OjQ2CiAgICAtIChtaWIuYyk6IGluY3JlYXNlIGJ1ZmZlciBzaXplIGZvciBvaWQgcHJpbnRpbmcuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MTA6MzkKICAgIC0gKCopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjb252ZXJ0IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTi4KICAgICAgLSBjb252ZXJ0IHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSBidWZmZXJzIHRvIFNQUklOVF9NQVhfTEVOLgogICAgICAtIG1ha2UgdGhlIGxpYnJhcmllcyBwcmludF8gZnVuY3Rpb25zIHVzZSB0aGUgZnByaW50XyBmdW5jdGlvbgogICAgICAgIGFscmVhZHkgZGVmaW5lZCBhbmQgcGFzcyBpdCBzdGRvdXQuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MjI6MDMKICAgIC0gKGhvc3RfcmVzLmgpOiBpbmNsdWRlIHNubXBfdmFycy5oIGFoZWFkIG9mIHZhcl9zdHJ1Y3QuaC4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjoyMzoxNgogICAgLSAoYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gTW9yZSBidWYgc2l6ZSBzdGFuZGFyZGl6YXRpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgICAgIC0gQSBmZXcgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOIGNvbnZlcnNpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MzQ6MDAKICAgIC0gKHRjcC5jKTogdmFyX3RjcEVudHJ5IHdhcyBjaGVja2luZyBhZ2FpbnN0IHRoZSBpbmNvbWluZyBvaWQgd2l0aCB0aGUKICAgICAgd3JvbmcgbGVuZ3RoIGFuZCBjb3VsZCBzdWNjZWVkIGF0IHRpbWVzIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDY6NDgKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRXh0LTMtNi1wcmU4ICkKCmhhcmRha2VyIDExIEZlYiA5OSAxNjo0ODowNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOCApCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDg6MjkKICAgIC0gKHZlcnNpb250YWcpOiB1cGRhdGUuCgpoYXJkYWtlciAxNiBGZWIgOTkgMTc6MDU6NDUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlZCBtaWIyYyBwcm9ncmFtLi4uICBzdGlsbCBpbiBwcm9ncmVzcy4uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEwOjAwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgTC4gSGl0Y2g6CiAgICAgIC0gZml4IGlmX25hbWUgdmFyaWFibGUgYnkgbWFraW5nIGl0IHN0YXRpYy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMzozOAogICAgLSAoc25tcGQuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgcHJvdG90eXBlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEzOjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2FnZSBmaXguCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTU6NTkKICAgIC0gKGlmLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWtlIHNubXBuZXRzdGF0IHdpbjMyIGNvbXBhdGlibGUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTY6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlIGFnYWluIGZvciBiZXR0ZXIgc3RpbGwgb3V0cHV0LgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE3OjEzCiAgICAtIChNYWtlZmlsZS5pbik6IHNlcGFyYXRlIHRhcmdldCBmb3IgZ2VuZXJhdGVkIG1hbnVhbCBwYWdlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxODowNgogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNlIGEgJy0nIGluc3RlYWQgb2YgYSAnLicgZm9yIElFRUU4MDItMTEuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTk6MDMKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGNvbW1lbnQgcmVmb3JtYXR0aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE5OjUyCiAgICAtIChjb250ZXh0X3BhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBkb24ndCB1c2UgYSB2YXJpYWJsZSBjYWxsZWQgJ3RpbWUnLiAgVHNrIHRzay4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyMToyNQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZnByaW50X3ZhcmlhYmxlIHRvIG5vdCByZWN1cnNlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjIzOjQ0CiAgICAtIChwYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2F1dGguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIG5hbWUgY29uZmxpY3QgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6Mjg6NTQKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICBzbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB3aW4zMiB1cGRhdGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE2OjEzOjQ3CiAgICAtIChzbm1wZC5jLCBkdW1teS5jLCB3b21iYXQuYywgc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgZGxtb2QuYywKICAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICAgbWVtb3J5X2ZyZWVic2QyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywgbWliLmMsCiAgICAgIHJlYWRfY29uZmlnLmMpOiB3b3JkIC0+IHRva2VuICgid29yZCIgaXMgcmVzZXJ2ZWQgaW4gc29tZSBjb21waWxlcnMuCgpoYXJkYWtlciAyMiBGZWIgOTkgMDk6MTE6NTIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc2VsZWN0ICJhbGxvdyB1bmRlcnNjb3JlIGluIE1JQgogICAgICAgIHN5bWJvbHMiIGlzIG1pc3NpbmcuCgpoYXJkYWtlciAyMiBGZWIgOTkgMDk6NDQ6MjEKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBEb24ndCBwcmludCAiY2FuJ3QgZmluZCBtb2R1bGUgWFhYIiBtZXNzYWdlcyB3aXRob3V0IHdhcm5pbmdzIHR1cm5lZCBvbi4KCmhhcmRha2VyIDI0IEZlYiA5OSAxNDo0MzoyMQogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogdXBkYXRlLgoKaGFyZGFrZXIgMjQgRmViIDk5IDE3OjEwOjEzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxpbnV4LmgpOgogICAgICAtIENoZWNrIGZvciBhbmQgaGFuZGxlIDIuMiAvcHJvYy9uZXQvZGV2IGNoYW5nZXMuCgpoYXJkYWtlciAyNSBGZWIgOTkgMTA6MDM6NDEKICAgIC0gKFJFQURNRSwgdWNkX3NubXAuaCwgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oKTogUGF0Y2gKICAgICAgZnJvbSBEYXZpZCBGLiBOZXdtYW46CiAgICAgIC0gbWVtb3J5IHN1cHBvcnQgZm9yIHNvbGFyaXMyLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE1OjAyOjU1CiAgICAtIChsb2FkYXZlLmMsIGxvYWRhdmUuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gaW1wbGVtZW50IGxvYWQgYXZlcmFnZSByZXBvcnRpbmcgYXMgYSBpbnRlZ2VyIGFuZCBhcyBhIGZsb2F0LgoKaGFyZGFrZXIgMjYgRmViIDk5IDE1OjQyOjMxCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFVubGlua2VkIE9JRCAuLi4gY2NpdHQgMCBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgIC0gQ29udGludWUgYWZ0ZXIgcmVzZXJ2ZWQgd29yZCBlcnJvciBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgIC0gTW9kaWZpY2F0aW9uIHRvICMyIGNvdXJ0ZXN5IG9mIE5pZWxzIEJhZ2dlc2VuLgogICAgICAtIE1vZGlmaWNhdGlvbiB0byBwcmludCBzdWItaWRlbnRpZmllciA9PSAwCiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgICAgIC0gSW5zdGVhZCBvZiByZS1vcmRlcmluZyBhbGwgc2luZ2x5LWxpbmtlZCBsaXN0cywgdXNlIGEgbmV3IG1lbWJlcgogICAgICAgIHRoYXQgZmxhZ3Mgd2hlbiBhIHJlcG9ydCBoYXMgYmVndW4uCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MDY6NDkKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgYW5kIG1hZGUgYmV0dGVyIGV4YW1wbGVzLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjEwOjIxCiAgICAtIChORVdTKTogdXBkYXRlIGZvciAzLjYgcmVsZWFzZS4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMDo0NwogICAgLSAoc25tcHRyYXBkLmMpOiB1c2FnZSB1cGRhdGUsIGFuZCAtSCBzdXBwb3J0LgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZik6CiAgICAgIC0gbmV3IGRvY3VtZW50YXRpb24gb24gY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MzM6MDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTkgKQoKaGFyZGFrZXIgIDEgTWFyIDk5IDEwOjQ4OjAzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogdHlwbzogZmlsZU1heCAtPiBmaWxlRXJyb3JGbGFnIG5hbWUgY2hhbmdlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjEyCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVuYW1pbmcgb2YgdmFyaWFibGVzIGF3YXkgZnJvbSBzeXN0ZW0gZnVuY3Rpb24gbmFtZXMgKGluZGV4IC0+IGxpbmRleCkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6MzAKICAgIC0gKGVycm9ybWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZXJybm8gdmFyaWFibGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6NDUKICAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSBmcmVlIHRoZSBpbnRlcmZhY2UgdGFibGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjg6MTcKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIGNhc2UgZW50cmllcy4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IHB1dCBhIHByb3BlciAodm9pZCkgaW50byB0aGUgZnVuY3Rpb24gcHJvdG90eXBlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI5OjQ1CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6MzA6MTkKICAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIGFkZGVkIE1JTl9PSURfTEVOIGZvciBpbnN0cnVjdGlvbmFsIHVzZSBtb3N0bHkgKGl0cyB1bnVzZWQpLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEzOjAzOjE1CiAgICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwZWNhc3RpbmcgZm9yIGNlcnRhaW4gZnVuY3Rpb25zIHRvIChjaGFyICopLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEzOjU5OjE0CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIGNvbXBhcmVfdHJlZSgpIGdsb2JhbC4KCmhhcmRha2VyICAxIE1hciA5OSAxNDowNDowNQogICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gY29tcGxldGVseSByZS13cml0dGVuIHNtdXggbW9kdWxlcy4KCmhhcmRha2VyICAxIE1hciA5OSAxNDoyMDoxMQogICAgLSAoc211eC5jLCBzbXV4LmgpOiAzLjZpZmllZC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxMDo1NwogICAgLSAoYWxhcm0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENhc3QgdG8gcG9pbnRlciB0byBpbnQgbWF5IG92ZXJmbG93IHRoZSByZXR1cm4gYnVmZmVyLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgICAtIHJlbW92ZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggdGhhdCB3YXNuJ3QgbmVlZGVkLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjE3OjM2CiAgICAtIChtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgICBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgIHZhcmlhYmxlcy41KTogTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHNwZWxsIGNoZWNrLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjE5OjU2CiAgICAtIChzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gRUNFIGRlcHQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MjI6NDAKICAgIC0gKGFzbjEuaCk6IHB1dCBiYWNrIGluIE1BWF9OQU1FX0xFTiB0ZW1wb3JhcmlseS4KCmhhcmRha2VyICAxIE1hciA5OSAxNzo0Mzo0OQogICAgLSAoc211eC5jKToKICAgICAgLSBhbGxvdyBudWxsIGxlbmd0aCBwYXNzd29yZHMuCiAgICAgIC0gY2xlYW4gdXAgZGVidWdnaW5nIG91dHB1dC4KCmhhcmRha2VyICAyIE1hciA5OSAwODo0NzoyOQogICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBEb24ndCBkZWZpbmUgTUFYX05BTUVfTEVOIGlmIGRlZmluZWQgc29tZXdoZXJlIGVsc2UuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTA6NDI6MzQKICAgIC0gKHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGlwZndhY2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFN1Z2dlc3RlZCBmaXhlcyB0byBlbGltaW5hdGUgbW9yZSBzaGFkb3dlZCBnbG9iYWwgcmVmZXJlbmNlcy4KICAgICAgLSBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZyAoKV0uCgpoYXJkYWtlciAgMiBNYXIgOTkgMTM6MjM6NTcKICAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgcmV0dXJuIGEgcG9pbnRlciB0byBhIHBvaW50ZXIuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MTc6NTMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9kZWJ1Zy5jLAogICAgICBzbm1wX2RlYnVnLmgpOgogICAgICAtIG5ldyBmbGFnOiAgLS1kaXNhYmxlLWRlYnVnZ2luZyB0byBjb21wbGV0ZWx5IHR1cm4gb2ZmIGl0cyBzdXBwb3J0LgogICAgICAtIHJlbmFtaW5nIG9mIERPREVCVUcgdG8gU05NUF9BTFdBWVNfREVCVUcuCiAgICAgIC0gY2xlYW4gdXAgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgb3B0aW9ucyBsaXN0ZWQsIGluY2x1ZGluZyBwdXR0aW5nCiAgICAgICAgYSBsaXN0IG9mIGF2YWlsYWJsZSBtb2R1bGVzIGZvciBjb21waWxhdGlvbiBpbnRvIHRoZSBhZ2VudC4KCmhhcmRha2VyICAyIE1hciA5OSAxNToxODo1OQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHR5cG8uCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MjE6MzQKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIExpbnV4IGNvbXBpbGVzIGRpZSBhdCBTT19SQ1ZUSU1FTy4KICAgICAgLSAtV2FsbCB0eXBlIGZpeGVzLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDA4OjI1OjMzCiAgICAtIChSRUFETUUpOiBBZGRlZCBOaWNrLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDA4OjI4OjA1CiAgICAtIChjb25maWd1cmUpOiByYW4gYXV0b2NvbmYuLi4KCmhhcmRha2VyICAzIE1hciA5OSAxMTo0MDoxMQogICAgLSAocHJvYy5jLCBzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAgLSBVc2UgL3Byb2Mgb24gc29sYXJpcy4KCmhhcmRha2VyICAzIE1hciA5OSAxNzo1MToyNgogICAgLSAoQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgVE9ETywgYnVnLXJlcG9ydCwgc25tcGQuYywKICAgICAgUkVBRE1FLm1pYjJjKTogZWNlLnVjZGF2aXMuZWR1IC0+IHVjZC1zbm1wLnVjZGF2aXMuZWR1LgoKaGFyZGFrZXIgIDMgTWFyIDk5IDE4OjAwOjUxCiAgICAtIChORVdTKTogbWVudGlvbiBuYW1lIGNoYW5nZS4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMjowNwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01VWC4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMjoyMwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMTAgKQoKbXNsaWZjYWsgIDQgTWFyIDk5IDA0OjA4OjAxCiAgICAKICAgIChzbm1wbmV0c3RhdC9pZi5jKSAtIGFkZCB2b2lkIHRvIGVtcHR5IGZvcm1hbCBwYXJhbWV0ZXIgbGlzdAoKaGFyZGFrZXIgIDQgTWFyIDk5IDA4OjM2OjM5CiAgICAtICh2ZXJzaW9udGFnKTogcmVwb3NpdG9yeSBtb3ZlLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA4OjM2OjQ2CiAgICAtIChSRUFETUUuc211eCk6IGFkZCBOaWNrLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjA3OjA3CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpeCB2b2lkIHRlc3QgZm9yIGFuc2kgY29tcGlsZXJzLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDA5OjIwOjA4CiAgICAKICAgIAogICAgKGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYykgOiByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGVzCiAgICAKICAgIChhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jKSA6IGNoYW5nZSAiKndvcmQiIHRvICIqdG9rZW4iIHRvIGhlbHAgc29tZSBjb21waWxlcgoKbXNsaWZjYWsgIDQgTWFyIDk5IDA5OjI0OjI2CiAgICAKICAgIAogICAgKE1ha2VmaWxlLmluKSAtIGZpbmQgbWliZGVmcy5oIHdoZW4gbm90IGJ1aWxkaW5nIGluIHRoZSBzb3VyY2UgdHJlZQoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjMzOjMxCiAgICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAgLSBmaXggbG9hZCBhdmVyYWdlIG9uIHNvbGFyaXMuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6Mzg6MjgKICAgIC0gKHJlbW92ZS1maWxlcywgZWNlLXNubXBkLmNvbmYsIGZpeHByb2MuY29uZik6CiAgICAgIC0gcmVtb3ZlZCBlY2Ugc3BlY2lmaWMgY29uZmlnIGZpbGVzIGZyb20gdGhlIHJlcG9zaXRvcnkuCiAgICAgIC0gZG9uJ3QgcmVtb3ZlIGxvY2FsLyouY29uZiBpbiB0aGUgZmlyc3QgcGxhY2UgYW55bW9yZS4KCmhhcmRha2VyICA0IE1hciA5OSAwOTo0NjozNwogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gV2hlbiB0aGUgYWdlbnQgaXMgY29tcGlsZWQgd2l0aCBIQVZFX0xJQlJQTSBzZXQsIHlldCBubyBkYXRhYmFzZQogICAgICAgIGlzIGZvdW5kLCBhZ2VudCB3aWxsIGNvcmUuLi4KCmhhcmRha2VyICA0IE1hciA5OSAxMzoxODo0NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB2b2lkIGNoZWNrLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjEzOjAwCiAgICAKICAgIAogICAgKGhyX3Byb2MuYywgbG9hZGF2ZS5jKSAtIGZpeGVkIGNvcmUgb24gZ2V0bG9hZGF2ZyBpbiBhIGRpZmZlcmVudCB3YXkKCm1zbGlmY2FrICA0IE1hciA5OSAxNToyNTo1MwogICAgCiAgICAoZGlzay5jKSAtIGV4cGxpY2l0IGJyYWNlcyB0byBhdm9pZCBhbWJpZ3VvdXMgYGVsc2UnCgptc2xpZmNhayAgNCBNYXIgOTkgMTU6Mjk6MjQKICAgIAogICAgKGhyX2Rpc2suYykgLSBjb25kaXRpb25hbGx5IHVzZSBkZWZpbmVkIERLQyBkaXNrIHR5cGVzCgpoYXJkYWtlciAgNCBNYXIgOTkgMTU6NDU6MDIKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBleGFtcGxlLmMsIHN5c09SVGFibGUuYywgaXBmd2FjYy5jLAogICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHZtc3RhdC5jLAogICAgICB2bXN0YXRfZnJlZWJzZDIuYyk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgaGVhZGVyX3NpbXBsZV90YWJsZSB0byByZXBsYWNlIGNoZWNrbWliKCkuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MTQ6MTYKICAgIC0gKFJFQURNRS5zbXV4KTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIHVwZGF0ZS4KCmhhcmRha2VyICA0IE1hciA5OSAxNjoyNjoyNgogICAgLSAoZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSBmaXhlcyBmb3IgZHVwbGljYXRlIGRlZmluZXMuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MzI6MTYKICAgIC0gKG1pYjJjKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6NTA6MTYKICAgIC0gKHV0aWxfZnVuY3MuYywgZHVtbXkuYywgZXhhbXBsZS5jLCB3b21iYXQuYywgdGNwLmMsIGhwdXguYywKICAgICAgbWVtb3J5LmMsIGFsYXJtLmMsIHNubXBfYXBpLmMpOgogICAgICAtIG1pc2MgZml4ZXMsIC1XYWxsIG1vc3RseS4KCm1zbGlmY2FrICA0IE1hciA5OSAxNzowMDo1MAogICAgCiAgICAoc3lzT1JUYWJsZS5jKSAtIHJlbW92ZSBzdGF0aWMgdV9sb25nIGxvbmdfcmV0dXJuLCBmb3IgY29uc2lzdGVuY3kuCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6MDc6MTAKICAgIAogICAgKHNvbGFyaXMuaCkgLSB1bmRvIF9TTEFTSF9QUk9DX01FVEhPRF8gOiBhbm90aGVyIHRpbWUKCm1zbGlmY2FrICA0IE1hciA5OSAxNzo1MDoyOQogICAgCiAgICBSZXBsYWNlIHVzZXMgb2YgYnplcm8gd2l0aCBtZW1zZXQsIGJjb3B5IHdpdGggbWVtY3B5LgogICAgRml4IHByb3RvdHlwZXMuCgptc2xpZmNhayAgNCBNYXIgOTkgMTg6MTE6MzcKICAgIAogICAgKHNubXBfYXBpLmMpIC0gZXhwb3NlIHNubXBfZnJlZTsgc25tcF9wZHVfYWRkX3ZhcmlhYmxlIHJldHVybnMgcHRyIHRvIHZhciBmb3IKICAgIGZ1dHVyZSBpbXByb3ZlZCBlcnJvciByZWNvdmVyeS4KCm1zbGlmY2FrICA1IE1hciA5OSAwOTo0MDoxMQogICAgCiAgICBGaXggV2luMzIgdmVyc2lvbiBvZiBnZXR0aW1lb2ZkYXkgOiB0dl91c2VjIHdhcyBtaWxsaXNlY3MgLCByZXR1cm4gbm93ID0gMAoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjExOjI5CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdGhlIHVzZSBvZiAnaGVhZGVyX3NpbXBsZV90YWJsZScgcmF0aGVyIHRoYW4gJ2NoZWNrbWliJwogICAgICAtIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCBNQVRDSF9GQUlMRUQKICAgICAgLSBkb24ndCBzZXQgZGVmYXVsdHMgZm9yICd3cml0ZV9tZXRob2QnIGFuZCAndmFyX2xlbicKICAgIAkJKHNpbmNlIGJvdGggJ2hlYWRlcl9nZW5lcmljJyBhbmQgJ2NoZWNrbWliJyBkbyB0aGlzIGFueXdheSkKICAgICAgLSBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHZhcmlhYmxlIGluaXRpYWxpc2F0aW9uIGluIHRoZQogICAgCQl3cml0ZSByb3V0aW5lIChzaW1pbGFybHkgaW4gdGhlIG1pYjJjLmNvbmYgcGF0Y2gpCiAgICAgICAgICBbVGhpcyBpcyBvbmUgb2YgbXkgaG9iYnktaG9yc2VzIHdpdGggb3VyIHN0dWRlbnRzLCBzbyBJIGRvbid0CiAgICAJCSBzZWUgd2h5ICJwcm9mZXNzaW9uYWwiIHByb2dyYW1tZXJzIHNob3VsZCBiZSBleGVtcHQhXQogICAgCiAgICAgIC0gTWFrZSBwcm9wZXIgdXNlIG9mIHRoZSB0aHJlZS1waGFzZSBuYXR1cmUgb2YgU0VUcwoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjIxOjI1CiAgICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlOiByZWFycmFuZ2luZyBhbmQgY2xlYW5pbmcuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTA6NDI6NDAKICAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc3dpdGNoIENPTU1JVCBhbmQgQUNUSU9OIHBoYXNlcy4KCm1zbGlmY2FrICA1IE1hciA5OSAxMTowMjozNAogICAgCiAgICAodGNwLmMpIC0gYnJlYWsgb3V0IG9mIGluZmluaXRlIGxvb3Agd2hlbiBrbG9va3VwIGZhaWxzLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjEzOjAyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZSBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mbywgc2luY2UgaXRzIG5vdCB1c2VkIHRoaXMgcmVsZWFzZS4KCmhhcmRha2VyICA1IE1hciA5OSAxNTozMTo1MgogICAgLSAoc25tcF9pbXBsLmgpOiBjcmVhdGUgVU5ETwoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjM4OjMyCiAgICAtICh0a21pYik6IHVwZGF0ZS4KCmhhcmRha2VyICA1IE1hciA5OSAxNTo1NzozNgogICAgLSAoa2VybmVsX3N1bm9zNS5jLCB3b21iYXQuYywgaHJfbmV0d29yay5jLCBzbm1wX21pYi5oLCBzeXN0ZW1fbWliLmgsCiAgICAgIGRpc2suaCwgZXJyb3JtaWIuaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsIG1lbW9yeV9zb2xhcmlzMi5oLCBwYXNzLmgsCiAgICAgIHByb2MuaCwgcmVnaXN0cnkuaCwgdmVyc2lvbmluZm8uaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMsIG1vc3RseSBpbml0XygpIHJvdXRpbmVzIGRlY2xhaXJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTY6MDI6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAncyBtb2R1bGUgbGlzdC4KCmhhcmRha2VyICA1IE1hciA5OSAxNjoxMDozMAogICAgLSAodm1zdGF0LmgpOiBkZWNsYWlyIGluaXRfdm1zdGF0KCkuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MDg6MjEKICAgIC0gKEZBUSk6IHJlZmVyZW5jZSBBR0VOVCBkb2N1bWVudC4KCmhhcmRha2VyICA1IE1hciA5OSAxNzoxMTo0OAogICAgLSAobWliSUkvc3lzdGVtLmgpOiByZW1vdmVkCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MTk6MTQKICAgIC0gKEZBUSwgTkVXUyk6IGZpbmFsIHVwZGF0ZXMuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMiAtPiBWMy41LjMKCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowMjozNwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMzoxOQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNjo1MzozMQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowMjozOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwZXJsIGVxIC0+IHRlc3QgPSAob3BwcykuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDg6MjUKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjaGVjayBmb3IgYSBudWxsIG5hbWUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6NDI6MTAKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIGEgbWVtc2V0IHRvIHplcm8gb3V0IG5ldyBwb2ludGVycyBpbnN0ZWFkIG9mIGRvaW5nIGl0IGJ5IGhhbmQuCgpoYXJkYWtlciAyOCBTZXAgOTggMTM6MDk6MDYKICAgIC0gKGludGVyZmFjZXMuYyk6IGRvbid0IHVzZSBhICYgb24gb3NmMyBmb3IgYXJwY29tLmFjX2VuYWRkci4KCmhhcmRha2VyIDI4IFNlcCA5OCAxMzowOTo0NQogICAgLSAoc25tcF9hcGkuYyk6IHR5cGVjYXN0IHRoZSBkZWZhdWx0IGNvbW11bml0eSBzdHJpbmcgdG8gKHVfY2hhciAqKS4KCmhhcmRha2VyIDI4IFNlcCA5OCAxNTo0MjoyMQogICAgLSAobWVtb3J5LmMpOiAvZXRjL3N3YXBpbmZvIC0+IC91c3Ivc2Jpbi9zd2FwaW5mbyBmb3IgaHB1eDEwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4xIC0+IFYzLjUuMgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjI2OjEzCiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjMzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjM1OjU1CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xICkKCmhhcmRha2VyICA5IFNlcCA5OCAwOTo0NToyNAogICAgLSAoTWFrZWZpbGUuaW4pOiBQdXQgYW4gQCBzaWduIGluIGZyb250IG9mIHRoZSBsYXN0IGVjaG8gbGluZS4KCmhhcmRha2VyICA5IFNlcCA5OCAwOTo0NjozNQogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuYywgbWVtb3J5X2ZyZWVic2QyLmgpOgogICAgICAtIENoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIFVTRUQgLT4gQVZBSUwgc2luY2UgdGhhdHMgcmVhbGx5IHdoYXQKICAgICAgICB3ZSdyZSByZXBvcnRpbmcuCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NTA6MjIKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9mcmVlYnNkMi5oKToKICAgICAgLSBjb3JyZWN0IHdvcmsgSSBzdHVwaWRseSBtYWRlIHdoZW4gdGlyZWQuCgpoYXJkYWtlciAgOSBTZXAgOTggMTE6MDA6NDQKICAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNS4yLgoKbWFyeiAgOSBTZXAgOTggIDE4OjMxOjAwCiAgICAtIChzbm1wdHJhcC5jLCBzbm1wdGVzdC5jKTogYWRkIFNPQ0tfIG1hY3JvcyBmb3Igd2luMzIgc3VwcG9ydAoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQpDaGFuZ2VzOiBWMy41IC0+IFYzLjUuMQoKaGFyZGFrZXIgMjIgSnVuIDk4IDA5OjE2OjMyCiAgICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMwOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6MDg6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gbWlzYyBtaWIgZml4ZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDI6MzIKICAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDU6MTUKICAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxNTowMzozOAogICAgLSAoZ2VuZXJpYy5oKTogcHV0IGluIGEgY29tbWVudCB0byBrZWVwIGNvbXBpbGVycyBmcm9tIGNvbXBsYWluaW5nIHRvbyBtdWNoLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjI1CiAgICAtIChmcmVlYnNkMi5oKTogdXNlIF9VVE1QX1BBVEggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjM0CiAgICAtIChpcml4LmgpOiBkZWZpbmUgX0tNRU1VU0VSCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6Mjc6MTIKICAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgIE1hcnpvdDoKICAgICAgLSB3aW4zMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTg6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAyOjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMzozNgogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjA4OjE4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQzOjU2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDozNAogICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6NDEKICAgIC0gKHZlcnNpb25pbmZvLmMpOiBpbmNsdWRlIHN5c3RlbS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6MjIKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NTo0MgogICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6MjgKICAgIC0gKHNlZHNjcmlwdC5pbik6IHVzaW5nX21vZHVsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjU1CiAgICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjExOjEwCiAgICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGVkIHNtaWNuZyBpbnB1dCBmaWxlLgogICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MjI6MzIKICAgIC0gKFJGQy0xMjE1LnR4dCk6IGNyZWF0ZWQgYW4gZW1wdHkgbWliIG1vZHVsZSBmb3IgaW1wb3J0aW5nIG9mIFRSQVAtVFlQRS4KCmhhcmRha2VyIDE3IEp1bCA5OCAxNjo1OTo1MQogICAgLSAoKik6IHVwZGF0ZSBmb3IgMy41LjEuCgpoYXJkYWtlciAyMCBKdWwgOTggMTc6MTQ6MjEKICAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE1OjM1OjA3CiAgICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNjoyMzo0NQogICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IGZpeCBzZWRzY3JpcHQgaW5jbHVkZXMuCgpoYXJkYWtlciAyNCBKdWwgOTggMDk6MjU6MzMKICAgIC0gKGRpc2suYyk6IGluY3JlbWVudCBpbmRleCBieSAxIHNvIGl0IGRvZXNuJ3Qgc3RhcnQgYXQgMC4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDowMjoxNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHZhcmlvdXMgZG9jdW1lbmF0aW9uIHVwZGF0ZXMgYW5kIG5vdGVzLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEwOjAyOjI1CiAgICAtIChzbm1wdHJhbnNsYXRlLjEpOiBucm9mZiBlcnJvci4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDoyNTo0NAogICAgLSAoc25tcHRyYXBkLjgpOiBicm91Z2h0IHVwIHRvIGRhdGUuCgpoYXJkYWtlciAyNCBKdWwgOTggMTI6MTA6MDcKICAgIC0gKHNubXAuYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCgpoYXJkYWtlciAyNCBKdWwgOTggMTI6MjQ6MjIKICAgIC0gKGFjbC5oLCBhc24xLmgsIG1kNS5oLCBtaWIuaCwgcGFyc2UuaCwgc25tcC5oLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwgdmFjbS5oLCB2aWV3LmgpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb25zLgoKaGFyZGFrZXIgMjkgSnVsIDk4IDEzOjQ0OjIyCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgaW5zdGFsbCBzaG91bGQgZG8gYSByZWFsIG1ha2UgYWxsIGZpcnN0LgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjE4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIGZpeGVzIGZvciB2MnBhcnQgbW9kdWxlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1Nzo0MgogICAgLSAoZXh0ZW5zaWJsZS5jLCBwcm9jLmMpOiBmaXhpdCBwcm9ibGVtcyB3aXRoIGFycmF5IGluZGV4IHdyb25nLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjUyCiAgICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlIGFkZGVkLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjA1OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbGlid3JhcCBjb21tYW5kIGxpbmUgZml4ZXMuCiAgICAgIC0gLS13aXRoLWxkZmxhZ3MgY29tbWFuZCBsaW5lIG9wdGlvbiBjcmVhdGVkLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU1OjMyCiAgICAtIChtaWJfYXBpLjMsIHNubXBkLjEuZGVmLCB2YXJpYWJsZXMuNSk6IHVwZGF0ZXMgdG8gcmVtb3ZlIG1pYi50eHQgcmVmZXJlbmNlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1ODoxMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBkb24ndCBpbmNsdWRlIGxpYnJhcmllcyB0aGF0IGFyZW4ndCBuZWVkZWQgaWYgZ2V0aG9zdGJ5bmFtZSBpc24ndCBpbiBvbmUuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTk6NTAKICAgIC0gKHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IHRoZSBFUlJPUl9NU0coKSBtYWNybyB0byB1c2Ugc25tcF9zZXRfZGV0YWlsLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjIxOjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jKTogdXNhZ2UgZml4ZXMgYW5kIC1tLy1NIHRvIHNubXB0cmFuc2xhdGUuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDI6NDkKICAgIC0gKGF1dG9fbmxpc3QuYyk6IGZpeCBmb3Igc3R1cGlkIGFpeCBrZXJuZWxzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICAtICh1Y2Rfc25tcC5oLCBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X2ZyZWVic2QyLmMpOiBQYXRjaCBmcm9tIEpvbmFzIE9sc3NvbjoKICAgICAgLSBtYWtlIHRoZSBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGUgd29yayB1bmRlciBmcmVlYnNkMi4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjI5CiAgICAtIChSRUFETUUpOiBBZGRlZCB0d28gbmV3IG5hbWVzIHRvIHRoZSB0aGFua3lvdSBsaXN0LgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjM3CiAgICAtIChzZWRzY3JpcHQuaW4pOiBjb3JyZWN0IGluY2x1ZGUgZmlsZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6NTIKICAgIC0gKE1ha2VmaWxlLmluKTogQ1BQIG5lZWRzIHRvIGNoZWNrIGFnZW50L21pYmdyb3VwIGZvciBoZWFkZXJzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjUyOjMyCiAgICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gYWRvcHQgdW5rbm93biBjaGlsZHJlbiBpbnRvIHRoZSBjb3JyZWN0IHBsYWNlIGlmIElNUE9SVFMgYXJlIHNjcmV3ZWQgdXAuCgpoYXJkYWtlciAxNCBBdWcgOTggMDk6MzI6NDUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSmFtZXMgSC4gWW91bmc6CiAgICAgIC0gdXNhZ2Ugb3V0cHV0IGNsZWFuIHVwLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjEzOjEzCiAgICAtIChDT1BZSU5HKTogY29weXJpZ2h0IGNoYW5nZS4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxNDowNgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gTWFsbG9jIC0+IHhtYWxsb2MuCiAgICAgIC0gcGFyc2VyIGNoYW5nZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTQ6NTkKICAgIC0gKGF0LmMpOiBmaXhlcyBmb3IgbGludXguCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDM6MDIKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDoyNQogICAgLSAoc25tcF92YXJzLmMpOiBpbl9hX3ZpZXcoKTogY3JlYXRlIG5ldyBmdW5jdGlvbiwgYW5kIHVzZSBpdC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDo1MAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2ltcGwuaCk6IGZpeCByZWFkL3dyaXRlIGNoZWNrcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMzowMgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjI1CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluX2FfdmlldygpOiBjcmVhdGUgbmV3IGZ1bmN0aW9uLCBhbmQgdXNlIGl0LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjUwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfaW1wbC5oKTogZml4IHJlYWQvd3JpdGUgY2hlY2tzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjM3OjA0CiAgICAtIChDaGFuZ2VMb2csIE5FV1MpOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjM3OjE1CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xLnByZTEgKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDEwOjU1OjUyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywgc25tcDJwLmMsIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBkLmgsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLCBzeXN0ZW0uaCwKICAgICAgdGNwLmMsIHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLAogICAgICBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICAgc25tcHRyYXBkLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIG1pYl9hcGkuMywgc25tcF9hcGkuMywKICAgICAgc25tcGQuMS5kZWYsIGZyZWVic2QuaCwgZnJlZWJzZDIuaCwgbmV0YnNkLmgsIGFzbjEuaCwgbWliLmMsCiAgICAgIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwZXMsIGFzIHVzdWFsICh3aGVuIGlzIGV2ZXJ5Ym9keSBzdGFydGluZyB0byB1c2UgLVdhbGwKICAgICAgICAtV3N0cmljdC1wcm90b3R5cGVzIC4uLi4pCiAgICAgIC0gc25tcGQgc2VuZCBhbiBlbnRlcnByaXNlIHNwZWNpZmljIHRyYXAgd2hlbiBpdCB0ZXJtaW5hdGVzCiAgICAgIC0gcG9zc2liaWxpdHkgZm9yIHNlbmRpbmcgdjJjIHRyYXBzIChvciBpbmZvcm1zKSwgdmlhIHRyYXAyc2luayBkaXJlY3RpdmUKICAgICAgLSBmaXhlcyB0byBzbm1wbGliIGFuZCBzbm1wdHJhcGQgZm9yIGJ1Z3MgdW5jb3ZlcmVkIHdoZW4gc25tcGQgc2VuZHMKICAgICAgICBhbiBJTkZPUk0gaW5zdGVhZCBvZiBhIFRSQVAKICAgICAgLSAtbSBhbmQgLU0gb3B0aW9uIGZvciBzbm1wdHJhcGQKICAgICAgLSAtRCBvcHRpb24gZm9yIHNubXB0cmFuc2xhdGUKICAgICAgLSBmaXhlcyB0byBjb25maWd1cmUgdG8gY29ycmVjdGx5IGNhbGwgQUxMIG1vZHVsZSBpbml0IGZ1bmN0aW9ucwogICAgICAtIG1ham9yIHJld29yayBvZiB0Y3AuYywgZm9yIG5ldGJzZC4gSSBob3BlIHRoaXMgaXMgT0sgbm93LCBJIGhhdmVudCBoYWQKICAgICAgICB0aW1lIHRvIHRlc3QgaXQgb24gYWxsIHBsYXRmb3JtcyB5ZXQgLSBidXQgdGlsbCBmcmlkYXkgOi0pCiAgICAgIC0gc25tcG5ldHN0YXQgcHJpbnRzIHVkcCBzb2NrZXQgdGFibGUKICAgICAgLSBzb21lIENNVV9DT01QQVRJQkxFIHN0dWZmCiAgICAgIC0gbWFuIHBhZ2UgZml4ZXMsIHdpdGggYW4gaW5jbHVkZSBsaXN0IHRoYXQgd29ya3MhCgpoYXJkYWtlciAgMiBTZXAgOTggMTA6NTg6MTAKICAgIC0gKHRjcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgIC0gIENvbWJpbmUgdGhlIHR3byAoYWxtb3N0KSBpZGVudGljYWwgbm9uLXNvbGFyaXMgY2FzZXMKICAgIC0gIEFkZCBzdXBwb3J0IGZvciB0aGUgbWlzc2luZyBMaW51eCBlbnRyaWVzIChJbkVycnMvT3V0UnN0cykKICAgIC0gIEFkZCBzdXBwb3J0IGZvciB0aGUgbWlzc2luZyBTb2xhcmlzIGVudHJ5IChPdXRSc3RzKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDExOjAzOjMzCiAgICAtICh0Y3AuYyk6IHJldmVyc2UgRGF2ZSdzIGNoYW5nZXMgc2luY2UgdGhleSBjb25mbGljdCB3aXRoIE5pZWxzJy4KCmhhcmRha2VyICAyIFNlcCA5OCAxMjoxOTowMwogICAgLSAoZXh0ZW5zaWJsZS5jLCBwcm9jLmMpOiB1c2UgY29ycmVjdCBuYW1lIGluZGV4IGZvciBsb29rdXBzIG9uIHdyaXRlcy4KCmhhcmRha2VyICAyIFNlcCA5OCAxMjoxOTozMwogICAgLSAoc25tcF9hZ2VudC5jKTogY2hlY2sgdG8gbWFrZSBzdXJlIG9wZXJhdGlvbiBpcyBub3QgYSBTRVQgd2hlbgogICAgICByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBzdWNoIGFzIG5vU3VjaE5hbWUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTQ6MDQ6NDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgaW5jbHVkZSBtb2R1bGVzIG5vdCByZXF1ZXN0ZWQgZXZlbgogICAgICBpZiByZXF1aXJlZCBieSBhbm90aGVyIG1vZHVsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxNDoxMDo1MwogICAgdmVyc2lvbiB0YWcgKCAzLjUuMS5wcmUyICkKCmhhcmRha2VyICAyIFNlcCA5OCAxODo0MzozMAogICAgLSAoVE9ETyk6IGFkZGVkIHNlY3VyaXR5IGNoZWNrcy4KCm5iYSAgMyBTZXAgOTggMTQ6Mjk6MDMKICAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgoKaGFyZGFrZXIgIDQgU2VwIDk4IDEwOjA5OjQ3CiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaXggZm9yIHNnaSdzLgoKaGFyZGFrZXIgIDQgU2VwIDk4IDE0OjE0OjE5CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBmaXggdG8gYWxsb3cgbm9uLXNvdXJjZSBkaXJlY3RvcnkgYnVpbGRzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjEwOjA1CiAgICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGlmZGVmIHJlLW9yZGVyaW5nIGZpeGVzIGZvciBhbHBoYS9saW51eC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0NzowMAogICAgLSAocHJvYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc29sYXJpcyAyLjYgZml4ZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDg6MDkKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENhdGNoIHN1YmlkZW50aWZpZXIgY29ycmVjdGx5LgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ5OjA4CiAgICAtIChhc24xLmgpOiByZW1vdmUgX19QKCkgZGVmaW5pdGlvbi4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0OTo1MwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWxsb2MgY29ycmVjdGlvbnMgZm9yIEVOViB2YXJzLi4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1MToyMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbml0X21pYl9pbnRlcm5hbCgpIGNhbGxzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjUzOjExCiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGV4aXQgLT4gcmV0dXJuIG9uIHdpbjMyIHN5c3RlbSByb3V0aW5lcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1NTo1MQogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIE5VTEwgcmV0dXJuIGJ5IG1hbGxvYyBwcm90ZWN0ZWQuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6MTc6MzYKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBkZXNjcmlwdGlvbiBvZiB0aGUgdmlldyBtYXNrLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICAtIChtZW1vcnlfZnJlZWJzZDIuaCwgdm1zdGF0X2ZyZWVic2QyLmgpOiBjcmVhdGVkIGZyb20gbWVtb3J5LmggYW5kIHZtc3RhdC5oCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6Mjc6NDIKICAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjo0NzozNwogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaCBmb3Igc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6NTQ6MTYKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjaGVjayBtYWxsb2MgY2FsbHMgbW9yZSBjYXJlZnVsbHkuCiAgICAgIC0gbWlzYyBidWcgZml4ZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTM6MTU6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBjb25maWcuaCBhcyAkKGluY2x1ZGVkaXIpL3VjZC1zbm1wLWNvbmZpZy5oLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEzOjIxOjE4CiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgpOgogICAgICAtIE1FTVVTRURSRUFMIC0+IE1FTUFWQUlMUkVBTCAodHlwZWRlZiByZW5hbWluZyB0byBtYXRjaCBmdW5jdGlvbmFsaXR5KS4KCmhhcmRha2VyICA3IFNlcCA5OCAxNDowNjoyMQogICAgLSAodGNwLmMpOiBiYWNrIG91dCBOaWVscycgY2hhbmdlcyBzaW5jZSB0aGV5IGJyb2tlIG90aGVyIGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTQ6MTk6MjQKICAgIC0gKE1ha2VmaWxlLmluKHMpKTogbWFrZSBkZXBlbmRzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE2OjM5OjU5CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMpOiA2NGJpdCBsb25nIHJldHVybiBjbGVhbiB1cHMuCgptYXJ6ICA3IFNlcCA5OCAxOTowMTowMQogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4KCm1hcnogIDcgU2VwIDk4IDE5OjAyOjAxCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbixmaXggd2luMzIgY29tcGlsZSBlcnJvciB3LyBub24gaW50ZWdyYWxzd2l0Y2ggY2FzZQoKbWFyeiAgNyBTZXAgOTggMTk6MDM6MzMKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluLCByZXNvbHZlIGNvbmZsaWN0IHcvIHN0ZCBsaWIgbG9nIGZ1bmN0aW9uCgptYXJ6ICA3IFNlcCA5OCAxOTozMDoxMQogICAgcmVuYW1lIGFuZCBzdGF0aWMgbGluayBkZWJ1ZyB0YXJnZXRzLCBkbGwgdG8gYmluIGRpciwgYWRkZWQgc25tcHRlc3QsIHNubXB0cmFwLCBzbm1wZGVsdGEgcHJvamVjdHMKCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXBkZWx0YS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcGRlbHRhLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdGVzdC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRlc3QucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0cmFwLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdHJhcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIHJlbmFtZSBhbmQgc3RhdGljIGxpbmsgZGVidWcgdGFyZ2V0cywgZGxsIHRvIGJpbiBkaXIsIGFkZGVkIHNubXB0ZXN0LCBzbm1wdHJhcCwgc25tcGRlbHRhIHByb2plY3RzCgpoYXJkYWtlciAgOCBTZXAgOTggMDk6MjY6MTMKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy40IC0+IFYzLjUKCmhhcmRha2VyIDI0IE1heSA5OCAxNToyMjoyMQogICAgLSAoRkFRKTogdXBkYXRlIHRvIGNoYW5nZSBhIGZldyB0aGluZ3MuCgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6MzgKICAgIC0gKE5FV1MpOiBjaGFuZ2UgdmFjbSBuZXdzIHdvcmRpbmcuCgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6NTcKICAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBmb3IgbmV0YnNkIDwgMS4zLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDEwOjE0OjMyCiAgICAtIChhdC5jKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDogZml4IGZvciBpcml4LgoKaGFyZGFrZXIgMjkgTWF5IDk4IDEwOjI0OjU0CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggY29tbXVuaXR5IG5hbWUgbGVuZ3RoIHByb2JsZW1zIGFuZCBpbmNyZWFzZSBzaXplLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjI2OjQ3CiAgICAtIChjb25maWd1cmUuaW4pOiBwYXRjaCBmcm9tIE5pZWxzOiBpbmNsdWRlIHN5cy9zb2NrZXQgaW4gaWZfbXR1IHRlc3QuCgpoYXJkYWtlciAyOSBNYXkgOTggMTE6Mjc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IG1ha2Ugb2YgY29uZmlndXJlLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjM0OjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIEFkZCBhIGRlcGVuZGFuY3kgbGluZSBmb3Igc25tcF92YXJzLm8gZm9yIGFsbCB0aGUgbW9kdWxlIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE1OjIwOjUzCiAgICAtIChUT0RPKTogd2luU05NUCBtZW50aW9uLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE1OjIxOjEzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhYmlsaXR5IHRvIHNwZWNpZnkgbWliIGluZm9ybWF0aW9uIG9uIHRoZSBjbWQgbGluZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxNjoyMTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1vdmVkIG1vc3QgbWliZ3JvdXAgcGllY2VzIGludG8gcmVsZXZlbnQgc3ViLWRpcmVjdG9yaWVzLgogICAgICAgIC0gY2hhbmdlZCBhbGwgaGVhZGVyIGZpbGUgYW5kICNpZmRlZiBVU0lOR18qIGxpbmVzIHRvIHJlZmxlY3QgdGhpcy4KCmhhcmRha2VyIDI5IE1heSA5OCAxNjoyMTo1MQogICAgLSAoc25tcF9pbXBsLmgpOiBjaGFuZ2UgcGR1IHZlcnNpb24gZnJvbSBsb25nIHRvIGludC4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1NTo0NQogICAgLSAoYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oKToKICAgICAgLSBpbXBsZW1lbnQgc3BlY2lhbCBkYXRhIHR5cGVzIHZpYSBvcGFxdWVzOiBmbG9hdCwgZG91YmxlLCBpbnQ2NCwgdWludDY0cy4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1NjowNwogICAgLSAoc25tcHNldC5jKTogZW5hYmxlIHNldHRpbmcgb2Ygb3BhcXVlIGZsb2F0cywgZG91YmxlcywgaW50NjRzLCB1aW50NjRzLgoKaGFyZGFrZXIgMzEgTWF5IDk4IDE3OjU2OjU1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG1ha2UgaXQgcG9zc2libGUgbm90IHRvIHVzZSBvcGFxdWUgc3BlY2lhbCB0eXBlcyB3aXRoIG5ldyBjbWQgbGluZSBmbGFnLgoKaGFyZGFrZXIgIDIgSnVuIDk4IDE0OjIzOjE1CiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBocl91dGlscy5jLCBhdC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgIHZhcl9yb3V0ZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBmcmVlYnNkMi5oLCBocHV4LmgsIGxpbnV4LmgsIG5ldGJzZC5oLAogICAgICBzb2xhcmlzLmgsIHN5c3YuaCwgYXNuMS5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgIC0gbWFrZSBob3N0IHJlc291cmNlcyB3b3JrIHVuZGVyIE5ldEJTRCwgRnJlZUJTRCwgU29sYXJpcyBhbmQgTGludXguCiAgICAgICAgLSBTdW5PUzQgYWxtb3N0IHdvcmtzLgogICAgICAtIEFkZCAtcy8tUyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJpbnRpbmcgb2Ygc2hvcnRlciBvaWRzLgogICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1MToxMAogICAgLSAoc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsCiAgICAgIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICAgICBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6CiAgICAgIC0gbW92ZWQgc211eCBzdHVmZiBpbnRvIGEgc211eCBzdWItZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjE1CiAgICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtb3ZlZCBpcGZ3YWNjIHRvIHVjZGF2aXMuMTMgYW5kIHJlbW92ZWQgXk1zIGFuZCBzb21lIGJsYW5rIGxpbmVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjQ0CiAgICAtIChJTlNUQUxMKTogbWVudGlvbiBpcGZ3YWNjCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTg6NTkKICAgIC0gKFJFQURNRSk6IG1lbnRpb24gQ3Jpc3RpYW4gRXN0YW4gaW4gdGhlIGNvZGVycyBsaXN0LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjA2OjQ3CiAgICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCk6IFBhdGNoIGZyb20gRXVnZW5lIFBvbG92bmlrb3Y6CiAgICAgIC0gaW1wbGVtZW50IGEgZHluYW1pYyBsb2FkaW5nIG1vZHVsZSBmb3IgbG9hZGluZyBzaGFyZWQgb2JqZWN0IG1pYiBtb2R1bGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjEwOjQ4CiAgICAtIChSRUFETUUsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgsIGV4YW1wbGUuYywKICAgICAgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOgogICAgICAtIG1vdmVkIHdvbWJhdCBhbmQgZXhhbXBsZSB0byBleGFtcGxlcy8gZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjI3OjI3CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbmNsdWRlIG1pYklJL3NubXBfbWliLmguCgpoYXJkYWtlciAgMyBKdW4gOTggMTE6Mjk6MDQKICAgIC0gKG1pYi5jKTogbWlzc2VkIGEgbmVlZGVkIE9QQVFVRV9TUEVDSUFMX1RZUEVTIGlmZGVmLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEyOjE3OjAwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gZml4IHBkdS0+dmVyc2lvbnMgdG8gYmUgYWxsIGludHMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6Mzk6MTIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogTmV3IGZsYWdzOgogICAgICAtIC0td2l0aC1jYz1DQwogICAgICAtIC0td2l0aC1jZmxhZ3M9Q0ZMQUdTCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NDM6NDcKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcHRyYXBkLmMpOgogICAgICAtIGNoZWNrIGZvciBnZXRkdGFibGVzaXplIGFuZCB1c2UgYSBnZW5lcmljIGlmIG5vdCBhdmFpbGFibGUuCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NTI6MjgKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZnJlZWJzZDIuaCk6CiAgICAgIC0gbW92ZSBjb25maWd1cmFibGUgZGVmaW5lcyB0byBjb25maWd1cmUgcmF0aGVyIHRoYW4gaW4gZnJlZWJzZDIuaC4KCmhhcmRha2VyICAzIEp1biA5OCAxMzo1NTo0MAogICAgLSAoaTM4Ni5oLCBpNTg2LmgsIGk2ODYuaCk6IHJlbW92ZWQgdGhlc2UgKHVudXNlZCkgaGVhZGVycy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDowMjozNAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggbmV3IC0td2l0aC1jYyBhbmQgLS13aXRoLWNmbGFncyBhcmd1bWVudHMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjE6MTAKICAgIC0gKGhyX2Rpc2suYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBzbm1wc2V0LmMsIGFzbjEuaCwKICAgICAgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjIzOjE0CiAgICAtIChNYWtlZmlsZS5pbidzKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjQ6NTgKICAgIC0gKE1ha2VmaWxlLmluKTogcmVhZF9jb25maWcubyBpcyBtaWJtb2R1bGUgaGVhZGVyIGRlcGVuZGFudCB0b28uCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjY6MTAKICAgIHZlcnNpb24gdGFnICggMy41LnByZTEgKQoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjUyOjExCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGVzdCBmb3Igc2V0ZW52LgoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjUyOjQwCiAgICAtIChtYWtldGFyZ2V0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IGZvciBsYXJnZXIgdHJlZSBkZXB0aHMuCgpoYXJkYWtlciAgNSBKdW4gOTggMTA6NTQ6MzEKICAgIC0gKGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gTUlCX0FDQ0VTUyBkZWZpbmUgY2hhbmdlcy4KICAgICAgLSBzZXRlbnYgaW1wbGVtZW50YXRpb24uCiAgICAgIC0gaWZkZWYgd3JhcHBlcnMgZm9yIE9QQVFVRV9TUEVDSUFMX1RZUEVTLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEwOjUwOjEyCiAgICAtIChGQVEpOiB1cmwgdHlwZSBzcGxpdHRpbmcuCgpoYXJkYWtlciAgOCBKdW4gOTggMTI6MzQ6MDkKICAgIC0gKE1ha2VmaWxlLmluKTogY3JlYXRlIGEgLmMgLT4gLm8gcnVsZSB0byBtYWtlIHN1cmUgYW5kIHBsYWNlIHRoZQogICAgICBvYmplY3QgZmlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIHN1YmRpcmVjdG9yaWVzLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEzOjU5OjA4CiAgICAtIChSRUFETUUpOiBBZGRlZCBFdWdlbmUncyBuYW1lLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEzOjU5OjI1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIHJmYyAjIGZvciB2YWNtIHJlZmVyZW5jZS4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoxMjozNwogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gcmVtb3ZlIG1vcmUgY29uZmlnIGNyZWF0ZWQgaGVhZGVycyBvbiBtYWtlIGNvbmZpZ2NsZWFuLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjE2OjI2CiAgICAtIChsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogdzMyIHVwZGF0ZS4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoyMjo1MAogICAgLSAocGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoCiAgICAgZnJvbSBKb2UgTWFyem90OgogICAgICAtIGFzeW5jIHN0dWZmIGFkZGVkLgogICAgICAtIGdldF90YyBhZGRlZC4KICAgICAgLSBiZXR0ZXIgY29tbWVudHMgaW4gc29tZSBwbGFjZXMuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6NTU6NTMKICAgIC0gKHNubXBfYXBpLmMpOiB1bmRpZCByZWRvIG9mIGNvbW1lbnQgb2YgZ2V0dGltZW9mZGF5KCkuCgpoYXJkYWtlciAxMCBKdW4gOTggMDc6MTE6NDQKICAgIC0gKGNvbmZpZy5oLmluKTogaGF2ZV9zZXRlbnYuCgpoYXJkYWtlciAxMCBKdW4gOTggMDg6NTM6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gIHN0YXJ0cyB0byBzZXBhcmF0ZSBvdXQgdGhlIGhpc3RvcmljIFNOTVB2MiBzdHVmZi4KICAgICAgLSAgZG9lcyBhIGJpdCBvZiAnY29kZSB0aWR5aW5nJy4KICAgICAgLSAgc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBwb3J0LXNwZWNpZmljIGhhbmRsZXJzLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE0OjE1OjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUyICkKCmhhcmRha2VyIDEwIEp1biA5OCAxNTozMDo1OQogICAgLSAoVE9ETyk6IGFkZGVkIERhdmUncyBsaXN0LgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjMxOjEyCiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IC1XYWxsIGNsZWFudXBzLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDA4OjUyOjI4CiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHVwZGF0ZSBmb3IgVkFDTSBzdHVmZi4KCmhhcmRha2VyIDEyIEp1biA5OCAxMDoxMjoyNwogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHNob3cgdmFjbSBleGFtcGxlIGZvciBwdWJsaWMvcHJpdmF0ZSBmcm9tIGFueXdoZXJlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEwOjEyOjQwCiAgICAtIChORVdTKTogbWlub3IgdXBkYXRlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjEyCiAgICAtIChzbm1wX2FwaS5jKTogdHJhcCB0eXBlcyB3ZXJlIGludCdzIG5vdCBsb25ncyAoZmFpbGVkIHVuZGVyIDY0Yml0IGFyY2gpLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjI3CiAgICAtIChwYXJzZS5jKTogZnVuY3Rpb24gbmFtZSB0eXBvLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjM5CiAgICAtICh3aW4zMi9jb25maWcuaCk6IGRvbid0IGhhdmUgc2V0ZW52LgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjU3CiAgICAtIChsaWJzbm1wLmRlZik6IGFkZCBzZXRlbnYgdG8gdGhlIGxpc3QuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6NDM6NDEKICAgIC0gKE5FV1MpOiA2NGJpdCBmaXggbWVudGlvbmVkLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjQ4OjIxCiAgICAtIChrZXJuZWwuYyk6IGRvbid0IHByaW50IGtscmVhZCBlcnJvcnMgdW5sZXNzIGluIGRlYnVnZ2luZyBtb2RlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDE1OjE3OjQ3CiAgICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgYSB1Y2RFeHBlcmltZW50YWwgc2VjdGlvbiBmb3IgdGhlIGlwZndhY2MgbWliIHRpbGwKICAgICAgICBpdCBzdGFiaWxpemVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjA4OjIzCiAgICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWlzYyB0eXBlIGZpeGVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjA4OjU4CiAgICAtIChzbm1wZGVsdGEuYyk6IHVzYWdlKCkgdXBkYXRlLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjEwOjAyCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgICAgc25tcGdldG5leHQuMSwgc25tcHNldC4xLCBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcC4xLAogICAgICBzbm1wd2Fsay4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXAgYW5kIGNlbnRyYWxpemF0aW9uIG9mIGNvbW1vbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjEwOjU0CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJjb3B5IC0+IG1lbWNweS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMToyMgogICAgLSAobWliLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHJlbW92ZSAybmQgaW5pdF9taWIoKSBwcm90b3R5cGUuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MjE6NTMKICAgIC0gKFJFQURNRSwgQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15LmgpOgogICAgICBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgIC0gbWliIG1vZHVsZSBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGZvciBkdW1taWVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDE1OjI3OjEzCiAgICAtIChSRUFETUUpOiBtZW50aW9uIGR1bW15IGdyb3VwLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjQxOjAwCiAgICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZDogbm90IGZvdW5kIG1vZHVsZXMgd2l0aCBjb25maWd1cmU/LgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjQ2OjMxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gQlNESSB1c2VycyBhZ2FpbnN0IC91c3IvdWNiL2NjLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjU4OjA1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAgLSBleGFtcGxlIG91dHB1dCBjb3JyZWN0aW9ucy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo1OTo1MwogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgICAtIGluc3RhbGwgSVBGV0FDQyBtaWIuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6MDM6NDgKICAgIC0gKHNubXBfdmFycy5jKTogZml4IHJlZ2lzdGVyX21pYigpIHRvIGluaXQgcG9pbnRlcnMgdG8gbnVsbC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMjo1MDo1NQogICAgLSAodXRpbF9mdW5jcy5jKTogZml4IGNoZWNrbWliKCkgaW4gY2FzZSB3ZSBnZXQgY2FsbGVkIG9uIGEgZ2V0IHdoZW4KICAgICAgd2UgcmVhbGx5IHNob3VsZG4ndCAoYmFkIGFydGlmYWN0IG9mIG5ldyB0cmVlIHN0cnVjdHVyZSkuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6NTM6MjIKICAgIC0gKHNubXBfdmFycy5jKTogbWVtc2V0IHRvIDAgdGhlIGVudGlyZSBzdWJ0cmVlIHN0cnVjdC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMzowMTo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMzoxMjo1NQogICAgLSAoTkVXUyk6IExhc3QgdXBkYXRlIGZvciAzLjUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4zIC0+IFYzLjQKCmhhcmRha2VyICAxIERlYyA5NyAxMjo0NDoyNAogICAgLSAoKik6IDMuMy4xIGJyYW5jaCBtZXJnZWQgaW50byBtYWluIGRldmVsb3BtZW50IGJyYW5jaC4KCmhhcmRha2VyICA1IERlYyA5NyAwODo0Njo1MAogICAgLSAoc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWFrZSB0cmFwIHZhcmlhYmxlcyBsb25nJ3Mgbm90IGludHMgZm9yIDY0Yml0IG1hY2hpbmVzIHRvIG1hdGNoCiAgICAgICAgYXNuX2J1aWxkX2ludCBmdW5jdGlvbnMuCgpoYXJkYWtlciAgNSBEZWMgOTcgMTE6NTg6NTIKICAgIC0gKGFwcHMvKi5jKTogc3VwcG9ydCByYW5kb20gYWNjZXNzIHJlcXVlc3RzIG9uIGFsbCBhcHBzIHZpYSAtUiBzd2l0Y2guCgpoYXJkYWtlciAgNSBEZWMgOTcgMTQ6MzA6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBpbnN0ZWFkIG9mIGVycm9yIGZvciBjb25maWdfcmVxdWlyZSBtYWNybydzLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjA4OjAxCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBtYWNybyB0byBjaGFuZ2UgZGVmYXVsdCBNSUJTIHdoZW4gbW9kdWxlcyBhcmUgY29tcGlsZWQ6CiAgICAgICAgY29uZmlnX2FkZF9taWIoKS4KCmhhcmRha2VyIDE1IERlYyA5NyAxMTowODoxOQogICAgLSAoaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5LmgpOgogICAgICAtIHVzZSBjb25maWdfYWRkX21pYigpLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjE0OjE4CiAgICAtIChhdC5jLCBleGFtcGxlLmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywKICAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICAgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMsIGNvbW1vbl9oZWFkZXIuaCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gdG8gaW1wcm92ZSBpcml4IDYuMiBzdXBwb3J0LgoKaGFyZGFrZXIgMTUgRGVjIDk3IDE1OjA3OjI2CiAgICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbik6IFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDE1OjA3OjU5CiAgICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIGFjY29uZmlnLmgpOgogICAgICAtIFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgICAgLSBzdXBwb3J0IG1vcmUgT1MgdHlwZXMgaW4gdGhlIG92LyBkaXJlY3RvcnkgZmlsZXMuCiAgICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjIwOjA0CiAgICAtIChocl9zd3J1bi5jKTogQ29ycmVjdCBhIG5vbi1jYXN0ZWQgbWFsbG9jLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjMzOjU5CiAgICAtIChocl9maWxlc3lzLmMpOiBTb2xhcmlzIHNwZWNpZmljIGZpeGVzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjM1OjI2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluKTogQlNESSBkZWZpbml0aW9uIGZpeGVzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQxOjQ5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MjoyOAogICAgLSAobWliZ3JvdXAvKi5jLCBjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MjozOQogICAgLSAoc25tcHRyYXAuYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQyOjU0CiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDY6MDgKICAgIC0gKGhwdXguYyk6ICNpZmRlZidlZCBvdXQgdW51c2VkIHdyaXRlSFAgZnVuY3Rpb24uCgpoYXJkYWtlciAyMyBEZWMgOTcgMTI6MzI6MjEKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAgLSBVc2Ugc3lzbG9nIG9wdGlvbiBMT0dfUElEIG9uIHN0YXJ0dXAuCiAgICAgIC0gZm9yayBpZiBzeXNsb2cgZW5hYmxlZC4KICAgICAgLSBFbmFibGUgbG9nZ2luZyB0byBvdGhlciBzeXNsb2cgZmFjaWxpdGllcy4KICAgICAgLSBwcmludCBhbGwgdHJhcCBkYXRhIHRvIGEgc2luZ2xlIHN5c2xvZyBsaW5lLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDEyOjQ4OjMxCiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gQ2hhbmdlIC1mIGZsYWcgdG8gLWwgYW5kIG1ha2UgLWYgbm8tZm9yay4KICAgICAgLSBmaXggcGF0Y2ggd2hpY2ggbXVuZ2VkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYm90aCAtUCBhbmQgLXMgc2ltdWx0YW5lb3VzbHkuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDA6MzYKICAgIC0gKFJFQURNRSk6IEFkZCBUZWQgUnVsZSB0byBjb2RlcnMgbGlzdC4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0Mjo0NwogICAgLSAoKik6IFR1cm4gYWxsIGRlYnVnZ2luZyByb3V0aW5lcyBpbnRvIGxpYnJhcnkgY2FsbHMgdGhhdCBjYW4gYmUKICAgICAgdHVybmVkIG9uIGFuZCBvZmYgYXQgcnVuIHRpbWUuCiAgICAgIC0gREVCVUdQKCkgaXMgbm93IGEgdHlwaWNhbCBwcmludGYgc3R5bGUgZnVuY3Rpb24gYW5kIGlzIHVzZWQgZXZlcnl3aGVyZS4KICAgICAgLSB2b2lkIHNubXBfc2V0X2RvX2RlYnVnZ2luZyhpbnQpLgogICAgICAtIGludCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcoKS4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0NDozOAogICAgLSAoc25tcGQuMS5kZWYsIHNubXB0cmFwZC44KTogZGVidWdnaW5nIGZsYWcgYWRkaXRpb25zLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQ3OjA4CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBicmVhayB1cCBjb21tb25faGVhZGVyLmguCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6Mjc6NTQKICAgIC0gKGF0LmMsIGF0LmgsIGhvc3RfcmVzLmgsIGljbXAuaCwgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgICAgIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gY2xlYW4gdXAgcmVxdWlyZWQgaGVhZGVycyBmb3IgbGludXguCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6NTY6MTgKICAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydAogICAgICBpZiBkZWJ1Z2dpbmcgaXMgb24gb3Igb2ZmLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjU5OjAzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQgaWYgZGVidWdnaW5nCiAgICAgIGlzIG9uIG9yIG9mZi4KCmhhcmRha2VyIDIzIERlYyA5NyAxNjozMDo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMSApCgpoYXJkYWtlciAyOSBEZWMgOTcgMDk6Mzc6MDYKICAgIC0gKHRrbWliKTogRmlyc3QgaW1wbGVtZW50YXRpb24uCgpoYXJkYWtlciAzMCBEZWMgOTcgMTQ6MDA6MDMKICAgIC0gKHRrbWliKToKICAgICAgLSBuZXcgY29tbWFuZDogdGFibGUgdG8gZGlzcGxheSBzbm1wdGFibGVzIGFzIGEgdGFibGUuCiAgICAgIC0gbWlzYy4uLgoKaGFyZGFrZXIgMzAgRGVjIDk3IDE3OjAxOjU3CiAgICAtICh0a21pYik6IENyZWF0ZSBhIGdyYXBoaW5nIHdpZGdldC4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyNzozOAogICAgLSAobWliX2FwaS4zKTogY2hhbmdlICJhbGwiIHRvICJBTEwiLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjAwCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IGFkZCBhIGZpbmRfbW9kdWxlKCkgcm91dGluZS4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODoyMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcHV0IGluaXRfbWliIGJhY2sgaW4gcGxhY2UgKG9wcHMpLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjQyCiAgICAtIChUT0RPKTogc25tcHYzCgpoYXJkYWtlciAgNSBKYW4gOTggMTY6Mjk6MzkKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGFzbjFfYnVpbGRfb2JqaWQuCgpoYXJkYWtlciAgNSBKYW4gOTggMTc6MzM6MDcKICAgIC0gKHBhcnNlLmMpOiBzd2FwIGFyZ3MgdG8gbWVyZ2VfYW5vbl9jaGlsZHJlbigpLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjE0OjU0CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIGZpeCBhbm9uX2NoaWxkcmVuIGludmFsaWQgbWVtb3J5IGFjY2Vzcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxODo1MAogICAgLSAobWliX2FwaS4zLCBzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2MgdXBkYXRlIHRvIHJlZmxlY3QgbW92ZWQgaGVhZGVycy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxOToxMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBsaW5rIGRpcmVjdGx5IHRvIGxpYi4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxOTo0NwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSByZW1vdmUgdW51c2VkIGhlYWRlcnMuCiAgICAgIC0gc25tcF9wZXJyb3IgY2hhbmdlcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToyMTo1NgogICAgLSAoYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBpY21wLmMsCiAgICAgIGludGVyZmFjZXMuYywgaXAuYywgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGhlYWRlcnMgZm9yIEZyZWVCU0QgYW5kIE5ldEJTRC4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo0MDozNgogICAgLSAoRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gZml4IHBhdGhzIGZyb20gcmVjZW50IGNoYW5nZXMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDE6MzgKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgIC0gc25tcF9wZXJyb3IgdXNhZ2UuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDQ6NTEKICAgIC0gKGFzbjEuYywgbWliLmMsIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMKICAgICAgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIGNoYW5nZXMgYW5kIGJvb2xlYW4gY2hlY2sgY29ycmVjdGlvbnMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NTE6MjcKICAgIC0gKHBhcnNlLmMpOiBVbmRpZCBhbm9uLWNoaWxkcmVuIGNoYW5nZS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo1NjoxNAogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbmNyZWFzZSBidWZmZXIgc2l6ZSB0byBpbmNyZWFzZSBtYXggaW50ZXJmYWNlcyByZXBvcnRlZCBvbiBTb2xhcmlzLgoKaGFyZGFrZXIgMTYgSmFuIDk4IDA5OjQ0OjU2CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBTaGVzaGFkcmkgWWFnYXRpOgogICAgICAtIHNpZ25hbCBhIHRyYXAgKDIpIHdoZW4gdGhlIGFnZW50IGlzIHNodXQgZG93bi4KCmhhcmRha2VyIDIxIEphbiA5OCAxMTowODozOQogICAgLSAoQ09QWUlORyk6IHVwZGF0ZS4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjowMQogICAgLSAoKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgICBjb25maWd1cmUuaW4pOgogICAgICAtIGJlZ2luIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCB1c2luZyBzaGFyZWQgbGlicmFyaWVzLgogICAgICAtIGFsbCBNYWtlZmlsZXMgbm93IGluY2x1ZGUgYSBNYWtlZmlsZS50b3AgZm9yIGVhc2llciBmdXR1cmUgZ2xvYmFsIGNoYW5nZXMuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MjIKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjozNAogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLAogICAgICBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgICB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCgpoYXJkYWtlciAyMSBKYW4gOTggMTc6MzM6MjQKICAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICovTWFrZWZpbGUuaW4pOgogICAgICAtIERvIGEgYmV0dGVyIHZlcnNpb24gb2Ygc2hsaWIgc3VwcG9ydC4gIFNob3VsZCBiZSB1c2VhYmxlIG5vdyBhdCBsZWFzdC4KCmhhcmRha2VyIDIxIEphbiA5OCAyMjowNTo0NAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjcmVhdGUgbS8gYW5kIHMvIGRpcmVjdG9yaWVzIGFuZCB1c2UgdGhlbSBmb3Igc3VwcGxlbWVudGFsIGNvbmZpZwogICAgICAgIGluY2x1ZGUgZmlsZXMgYmFzZWQgb24gdGhlIGNvbmZpZy5ndWVzcyBvdXRwdXQuCgpoYXJkYWtlciAyMyBKYW4gOTggMDg6MzA6MzUKICAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb24ndCBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgaW4gbGludXgncyBGSUxFX1RPX0JVRiBtYWNyby4KCmhhcmRha2VyIDIzIEphbiA5OCAxMToxOToxMgogICAgLSAoZ2VuZXJpYy5oLCBpMzg2LmgsIGk1ODYuaCwgaTY4Ni5oKTogbS8qLmggZmlsZSBiZWdpbm5pbmdzLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDExOjE5OjMzCiAgICAtIChic2QuaCwgZ2VuZXJpYy5oLCBsaW51eC5oLCBzeXN2LmgpOiBzLyogYmVnaW5uaW5ncy4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxMjowMgogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYyk6CiAgICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbnM6CiAgICAgICAgLSByZWdpc3Rlcl9zdWJ0cmVlKCkKICAgICAgICAtIHJlZ2lzdGVyX21pYigpCiAgICAgICAgLSB1bnJlZ2lzdGVyX21pYigpLgogICAgICAtIGdldCByaWQgb2YgcmVhZF9jb25maWcgc3BlY2lhbCBzdHVmZiBmb3IgZXh0ZW5zaWJpbGl0eSBhbmQgcHV0IGl0CiAgICAgICAgaW4gdGhlaXIgb3duIHN1Ym1vZHVsZXMgd2hpY2ggbm93IGNhbGwgcmVnaXN0ZXJfbWliKCkuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTQ6MjAKICAgIC0gKHJlZ2lzdHJ5LltjaF0sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZSBhIG5ldyB0YWJsZSBhdCB1Y2RhdmlzLjEwMyB0byBkaXNwbGF5IHJlZ2lzdGVyZWQgbWlicy4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxNTowNQogICAgLSAoYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1Y2Rfc25tcC5oLCB1ZHAuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gI2luY2x1ZGUgInNubXBfYXBpLmgiCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MzQ6NDMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCwKICAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1ha2UgdGhlIG1pYiByZWdpc3RyeSByZWNvcmQgYW5kIGRpc3BsYXkgYSBtaWIgbW9kdWxlIG5hbWUgYXMgd2VsbC4KCmhhcmRha2VyIDMwIEphbiA5OCAwODo1Nzo1NAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0ZXN0IGZvciAncHMgYXV4JyAocmVkaGF0IDUuMCkuCgpoYXJkYWtlciAzMCBKYW4gOTggMDk6MDE6MDYKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgICAtIHJlcG9ydCBjYWNoZWQsIGJ1ZmZlciwgYW5kIHNoYXJlZCBzdGF0aXN0aWNzIGZvciBsaW51eC4KCmhhcmRha2VyIDMwIEphbiA5OCAwOToyNDoxOQogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gbmV3IHN1YnRyZWUgc3RydWN0dXJlIHN5c3RlbS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MDoyNgogICAgLSAocGFzcy5jKTogcHV0IHBhc3NfY29tYXByZSBoZXJlLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQxOjUzCiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIC0gbWVyZ2UgRGF2ZSdzIGNvZGUgd2l0aCBtaW5lLiAgU3RpbGwgYSBmZXcgYnVncyB0byB3b3JrIHRocm91Z2guCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDI6MTcKICAgIC0gKHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOiBiZWdpbiBtdW5naW5nIGZvciBuZXcgaGllcmFyY2h5LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQzOjI4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlIG1vZHVsZSBpbmRleGluZyB0byB1c2Ugb2lkIGluc3RlYWQgb2YgYSBudW1lcmljLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQ5OjU5CiAgICAtIChkaXNrLmMsIGhvc3RfcmVzLmgsIHBhc3MuYywgcmVnaXN0cnkuYywgc25tcF9taWIuYywgc3lzdGVtLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIHNubXBfYXBpLmgpOgogICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGZvciBhZGRyZXNzIHN0cnVjdHVyZS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo1NToyMAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMiApCgpoYXJkYWtlciAzMCBKYW4gOTggMTM6NDk6NTYKICAgIC0gKFJFQURNRSk6IEkgY2FuJ3QgcmVhbGx5IGhhdmUgZm9yZ290dGVuIFNpbW9uJ3MgbmFtZSBpbiB0aGUgbGlzdAogICAgICBjb3VsZCBJPwoKaGFyZGFrZXIgMzAgSmFuIDk4IDEzOjUwOjI4CiAgICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUpOiBkZWZpbmUgaWZuZXQgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE0OjMxOjU4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaWZfc3BlZWQuCgpoYXJkYWtlciAzMCBKYW4gOTggMTQ6MzI6MTMKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpbmlzaCBsaW51eCBwcm9ibGVtcyBhbmQgdXNlIGlmX3NwZWVkLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE1OjI1OjAyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYyk6IGZpeCBkZWZhdWx0IHBvcnQgZm9yIHNubXB0cmFwLgoKaGFyZGFrZXIgIDIgRmViIDk4IDA4OjU3OjQxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBIYXdraW5zb246CiAgICAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIGZvciBzaGFyZWQgbGlicmFyeSBleHRlbnNpb24gdy9vIHNoYXJlZCBsaWJyYXJpZXMuCgpoYXJkYWtlciAgNiBGZWIgOTggMTM6Mjk6NDAKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOiBwcm90ZWN0IGFnYWluc3Qgbmxpc3QuaAoKaGFyZGFrZXIgIDYgRmViIDk4IDEzOjQ0OjQ0CiAgICAtIChocl9kaXNrLmMpOiBjbG9zZSgpIGdvdCBjYXVnaHQgaW5zaWRlIGFuIGVsc2UgaXQgc2hvdWxkbid0IGhhdmUgZHVlCiAgICAgIHRvIGFuIGlmZGVmIGVycm9yLgoKaGFyZGFrZXIgIDYgRmViIDk4IDE3OjEwOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwgYXV0b25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX3ZhcnMuYywgaXAuYyk6CiAgICAgIC0gY3JlYXRlZCBhIG5ldyBhdXRvX25saXN0IGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gaXAuYy4KCmhhcmRha2VyICA2IEZlYiA5OCAxNzoxMToyNQogICAgLSAoZ2VuZXJpYy5oLCBocHV4LmgsIGlyaXguaCwgbGludXguaCwgc29sYXJpcy5oKToKICAgICAgLSB1cGRhdGUgZm9yIGF1dG9fbmxpc3Qgc3ltYm9scy4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzowMgogICAgLSAoYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLAogICAgICBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMpOgogICAgICAtIHVzZSBhdXRvX25saXN0LgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjAzOjE3CiAgICAtIChhdXRvX25saXN0LmgpOiBwcm90b3R5cGUgd3JhcHBlci4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzo1NgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoYW5nZWQgLS13aXRoLXNoYXJlZC1saWJyYXJpZXMgdG8gLS1lbmFibGUtc2hhcmVkIHRvIG1hdGNoIG90aGVyIHBrZ3MuCiAgICAgIC0gZGlzcGxheSBhcmd1bWVudHMgZm91bmQgZm9yIC0tZW5hYmxlLXNoYXJlZC4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowNDozMQogICAgLSAoYnNkLmgsIGJzZGkuaCwgZnJlZWJzZC5oLCBmcmVlYnNkMy5oLCBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgsCiAgICAgIHNvbGFyaXMuaCk6CiAgICAgIC0gZGVmaW5lIHN5bWJvbHMgZm9yIGF1dG9fbmxpc3QgdG8gdXNlLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjA2OjUzCiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZml4IHByb3RvdHlwZXMgb24gbXkgYnJva2VuIHRhYmxlIHdhbGtpbmcgcm91dGluZXMuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTc6NTIKICAgIHZlcnNpb24gdGFnICggMy40LnByZTMgKQoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE4OjQ1CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaW9jdGxzLmgKCmhhcmRha2VyICA5IEZlYiA5OCAxMToxODo1OQogICAgLSAoaW50ZXJmYWNlcy5jKTogIGluY2x1ZGUgaW9jdGxzLmggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjIwOjAwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGlvY3Rscy5oLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjE5OjMzCiAgICAtIChnZW5lcmljLmgsIGF1dG9fbmxpc3QuYywgYXQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIG1lbW9yeS5jLAogICAgICB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBmaXggYWxsIG15IHR5cG9zIDstKS4KICAgICAgLSBjcmVhdGUgYXV0b19ubGlzdF92YWx1ZSB0byByZXR1cm4gdGhlIGxvb2tlZC11cCB2YWx1ZS4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODowOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHBzIGF1eCBzaG91bGQgZGVmaW5lIGF1eCBub3QgLWF1eC4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODozMwogICAgLSAoaG9zdF9yZXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZG9uJ3QgaW5jbHVkZSBjb25maWcuaAoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI4OjQ0CiAgICAtIChocl9uZXR3b3JrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHNvbGFyaXMgZml4ZXMuCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjk6MDYKICAgIC0gKHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdW5kZWYgSVBfRk9SV0FSRElOR19TWU1CT0wgYmVmb3JlIGRlZmluaW5nIGl0LgoKaGFyZGFrZXIgMTEgRmViIDk4IDE2OjQ0OjEzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHNlZCBkb2Vzbid0IGxpa2UgW2Etel0rIHR5cGUgZXhwcmVzc2lvbnMuCgpoYXJkYWtlciAxMyBGZWIgOTggMDk6MDc6MzEKICAgIC0gKEZBUSk6IHR5cG86IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gdXNlIHNubXBfaXBhZGRyIGluc3RlYWQgb2YgaXBhZGRyIHRvIGF2b2lkIGhwdXggY29uZmxpY3RzLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjUzOjEyCiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gdXNlIGFwcHJvcHJpYXRlIG1hbGxvY3MsIGFuZCBOVUxMIGluaXRpYWxpemF0aW9uIG9mIHBvaW50ZXJzLgogICAgICAtIG1hbGxvYyB0aGUgc3ltYm9sIHJhdGhlciB0aGFuIHVzaW5nIGEgZml4ZWQgbGVuZ3RoLgogICAgICAtIGluc2VydCBkZWJ1Z2dpbmcgY29kZS4KICAgICAgLSBlbmFibGUgcHJpbnRpbmcgb2YgdGhlIG5saXN0IHRyZWUgaWYgVEVTVElORyBpcyBkZWZpbmVkLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjU0OjAxCiAgICAtICh0Y3AuYywgdWRwLmMpOgogICAgICAtIG5saXN0IHN5bWJvbCBuYW1lIGVycm9ycy4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODowNjowMAogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgdm1zdGF0LmMsIHZtc3RhdC5oLCB1Y2Rfc25tcC5oLAogICAgICBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgIC0gaW1wbG1lbnQgYSB2bXN0YXQgbWliIGdyb3VwIG9uIGxpbnV4LgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE1OjU2CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBjaGVjayBmb3Igc3lzL3N5c21wLmguCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTY6MjEKICAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIGZpeCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQgKG1pc3NpbmcgYSB2YXJpYWJsZSkuCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTg6MDUKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIGlyaXguaCk6CiAgICAgIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIHBvcnQgdG8gaXJpeC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMTo0NToyMAogICAgLSAoc2Vkc2NyaXB0LmluKTogZGVmaW5lIExJQkRJUiBhbmQgREFUQURJUi4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMTo0Njo0OAogICAgLSAoc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYpOiBjaGFuZ2UgdG8gREFUQURJUiBmcm9tIExJQkRJUi4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzozMTowNwogICAgLSAoZGlzay5oLCBleHRlbnNpYmxlLmgsIGxvYWRhdmUuaCwgcHJvYy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSB0dXJuIHRoZXNlIG1pYnMgaW50byByZWFsIHRhYmxlcy4gIFJlcXVpcmVkIGNoYW5naW5nIHRoZSBtaWIgdGhvdWdoLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjM0OjU1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjQ0OjEzCiAgICAtIChhdC5jLCBleGFtcGxlLmMsIGhwdXguYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgIC0gYWxsIGJjb3B5cyAtPiBtZW1jcHkuCiAgICAgIC0gaW5jbHVkZSBhIGZldyBleHRyYSBoZWFkZXJzIGZvciBERUJVR1Agc3RhdGVtZW50cy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDoyNTo1MwogICAgLSAoYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICAgICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsCiAgICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIG1lbW9yeS5jLCBtaWJpbmNsLmgsCiAgICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywKICAgICAgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLAogICAgICB2bXN0YXQuYyk6CiAgICAgIC0gbWFzc2l2ZSAtV2FsbCBhbmQgLS1zdHJpY3QtcHJvdG90eXBlcyBjaGVja2luZy4KICAgICAgLSBiemVybyAtPiBtZW1zZXQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MzI6MDUKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGNoZWNrcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDozMjozOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IHByb3RvdHlwaW5nIGNoZWNrcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjoyODo1MQogICAgLSAob3BlbmJzZC5oKTogY3JlYXRlZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjoyOTo1OAogICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmVtb3ZlZCB1bm5lZWRlZCBzdHVmZi4KICAgICAgLSBhZGRlZCBvcGVuYnNkLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMwOjQ3CiAgICAtIChhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwKICAgICAgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oKToKICAgICAgLSB0cmllZCB0byBtZXJnZSBzb21lIHRoaW5ncyBpbnRvIHMvKi5oIGRlZmluZXMgaW5zdGVhZC4gIFRoZXJlIGlzIGEKICAgICAgICBsb3QgdG8gZ28gc3RpbGwuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6MzM6MTQKICAgIC0gKGNvbmZpZy5oLmluKTogb3BlbmJzZCBkZWZpbmVzLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMzOjQzCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6NTE6MTgKICAgIHZlcnNpb24gdGFnICggMy40LnByZTQgKQoKaGFyZGFrZXIgMjAgRmViIDk4IDA5OjE5OjAwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBmaXggaW5jbHVkZSBmaWxlIGRlcGVuZGFuY2llcyBvbiBpcml4IHdpdGggX0tFUk5FTCBkZWZpbmVkLgoKaGFyZGFrZXIgMjAgRmViIDk4IDExOjE1OjE0CiAgICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgoKaGFyZGFrZXIgMjUgRmViIDk4IDA3OjI3OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggcmVhZF9jb25maWcgcGFyc2VyJ3MgZW5kIG9mIGxpbmUgcHJvYmxlbXMuCgpoYXJkYWtlciAgNCBNYXIgOTggMTU6NDk6MzIKICAgIC0gKENPUFlJTkcpOiBkb2N1bWVudGF0aW9uIHJlcXVpcmVtZW50IGNoYW5nZS4KCmhhcmRha2VyICA2IE1hciA5OCAxNDowMTo1MgogICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLAogICAgICBldmVudC5jLCBleHRlbnNpYmxlLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCBtaWJpbmNsLmgsCiAgICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIHJvdXRlX3dyaXRlLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwKICAgICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICAgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICAgICBpZi5jLCBpbmV0LmMsIHJvdXRlLmMsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0YWJsZS4xLCAuaW5kZXgsCiAgICAgIE1ha2VmaWxlLmluLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICAgICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsCiAgICAgIE1ha2VmaWxlLmluLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgIG1pYi5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgdmFjbS5jLCB2YWNtLmgsCiAgICAgIHZpZXcuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gSW1wbGVtZW50IHRoZSBTTk1QdjMgVmlldyBCYXNlZCBBY2Nlc3MgQ29udHJvbCBNb2RlbCAoUkZDIDIyNzUpLgogICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAgLSBiZXR0ZXIgaGVhZGVyLWZpbGUgI2RlZmluZSBuYW1lcyB0byBpbmNsdWRlIFNOTVBfLCBBU05fLCBldGMuIHByZWZpeGVzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjAxCiAgICAtICh1dGlsX2Z1bmNzLmMpOgogICAgICAtIHJlbW92ZSBHTE9CQUwtU0VDVVJJVFkgY2hlY2tzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjE5CiAgICAtIChtaWJJSS5oKTogYWRkIHZhY21fdmFycy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0Nzo0MAogICAgLSAoaG9zdF9yZXMuaCk6IG1vdmUgc25tcF9hcGkuaCB1cCBhYm92ZSBzbm1wX2ltcGwuaC4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0ODozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmUgc2VjdXJpdHkgdHlwZSBwcm9tcHRzLgoKaGFyZGFrZXIgIDkgTWFyIDk4IDE3OjQwOjA0CiAgICAtIChtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBpbXBsZW1lbnQgc3lzT1JUYWJsZS4KICAgICAgLSByZWdpc3RlciBtaWJzIHVuZGVyIGl0LgoKaGFyZGFrZXIgMTEgTWFyIDk4IDA4OjA2OjE3CiAgICAtICgqLyovKi8qKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggYXV0b19ubGlzdCBvbiBwcmVjZWVkaW5nIF8gYXJjaGl0ZWN0dXJlcy4KICAgICAgLSBDaGFuZ2UgKmFsbCogZGVmaW5lIHVzYWdlIHRvIG5ldyBTTk1QXyBhbmQgQVNOXyBwcmVmaXhlcy4KICAgICAgLSBsZWF2ZSBtaWIgYWNjZXNzIG9wZW4gaWYgbm8gY29tMnNlYyBzdGF0ZW1lbnRzIHdlcmUgZm91bmQgaW4gc25tcGQuY29uZi4KCmhhcmRha2VyIDExIE1hciA5OCAwOTo0MDo0MgogICAgLSAoaHB1eC5oLCBocl9maWxlc3lzLmgsIG1lbW9yeS5oLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwKICAgICAgc25tcF9yaXAyLmgsIHN5c09SVGFibGUuaCwgdm1zdGF0LmgpOgogICAgICAtIGZpbmlzaCBjb252ZXJ0aW5nIGEgZmV3IG9mIHRoZSBmaWxlcyB0aGF0IE5pZWxzIG1pc3NlZC4KCmhhcmRha2VyIDExIE1hciA5OCAxMDozMDo1MAogICAgLSAoc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gZml4IHRpbWUgdmFsdWVzIGFuZCBtb3ZlIHN5c09STGFzdENoYW5nZWQgdG8gdGhlIHN5c3RlbSBncm91cC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjoxNDowOQogICAgLSAoKik6IFBhdGNoIGZyb20gQ3JhaWcgQmV2aW5zIGZvciBPcGVuQlNECgpoYXJkYWtlciAxMSBNYXIgOTggMTI6Mjc6MDEKICAgIC0gKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmgpOiBQYXRjaCBmcm9tCiAgICAgIENyYWlnIEJldmluczoKICAgICAgLSBwb3J0IHRvIE9wZW5CU0QuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6NDU6NDYKICAgIC0gKCopOiBwYXRjaCBmcm9tIEdhcnJldHQgV29sbG1hbiBmb3IgRnJlZUJTRC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjo1NjozNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpY21wLmMsCiAgICAgIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gR2FycmV0dAogICAgICBXb2xsbWFuOgogICAgICAtIGZyZWVic2QgMyBzeXNjdGwgaW1wbGVtZW50YXRpb25zLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE0OjQxOjExCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgICBob3N0X3Jlcy5oLCBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsIGhyX2Rpc2suYywgaHJfZGlzay5oLAogICAgICBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsIGhyX290aGVyLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLAogICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaCwgaW50ZXJmYWNlcy5jLAogICAgICBpcC5jLCBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHYycGFydHkuYywgdjJwYXJ0eS5oLAogICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgICAtIG1hc3NpdmUgcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBmaXhlcy4KICAgICAgLSBmaXhlZCB0aGluZ3MgYnJva2VuIGJ5IHRoZSBmcmVlYnNkIHBhdGNoIChvbmx5IHNvbWUgSSdtIHN1cmUpLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjQyOjM1CiAgICAtIChhdXRvX25saXN0LmMpOiBiZXR0ZXIgZGVidWdnaW5nIHByaW50ZnMKCmhhcmRha2VyIDExIE1hciA5OCAxNTo0NToyMgogICAgLSAoaHB1eC5oKTogc3dpdGNoIGluY29ycmVjdCBhcnB0YWIgc3ltYm9scy4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo1NjoxMwogICAgLSAoUkVBRE1FKTogbmFtZSB1cGRhdGUuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NTc6MTYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBkZXBlbmQgdXBkYXRlLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE3OjA1OjQxCiAgICAtIChzeXN0ZW0uYyk6IGRvbid0IGNob21wIG5ldyBsaW5lIG9uIHJlYWRfY29uZmlnIHV0aWxzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDA5OjE3OjQyCiAgICAtIChSRUFETUUpOiBjaGFuZ2VkIE9WIHBhdGgncyB0byBuZXdlciByZWxlYXNlIHBhdGhzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjEwOjM1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZS1udW1iZXJpbmcgb2YgdGhlIG5ldyB0YWJsZSBtb2R1bGVzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjI2OjIyCiAgICAtIChleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgICAtIHdhaXQgZm9yIHBpZCBhZnRlciBnZXRfZXhlY19vdXRwdXQoKSB3aXRoIG5ldyB3YWl0X29uX2V4ZWMoKSBmdW5jdGlvbi4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzo1NjoxNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jLAogICAgICBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1haW4uYywgbWliX2FwaS4zLAogICAgICBjb25maWcuaCk6CiAgICAgIC0gU05NUExJQlBBVEggLT4gU05NUFNIQVJFUEFUSAogICAgICAtIGEgcmVhbCBTTk1QTElCUEFUSAogICAgICAtIG1ha2UgdGhlIGFnZW50IHJlYWQgLmNvbmYgZmlsZXMgZnJvbSBTTk1QU0hBUkVQQVRIOlNOTVBMSUJQQVRILgoKaGFyZGFrZXIgMTggTWFyIDk4IDE0OjA5OjMxCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU1ICkKCmhhcmRha2VyIDIyIE1hciA5OCAxODoxMzo0MQogICAgLSAocGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBtb3ZlIHN5cy90eXBlcy5oIHVwIGZvciB1bHRyaXguCgpoYXJkYWtlciAyNSBNYXIgOTggMDk6MTU6NDUKICAgIC0gKHRjcC5jKTogaW5jbHVkZSB0Y3BpcC5oIGZvciBkaWdpdGFsIHVuaXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6Mzk6MTMKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oKToKICAgICAgLSBmaXggdGhlIHJlZ2lzdHJ5IG1pYiB0byB1c2UgdGhlIG5ldyBtb2R1bGUgc3RydWN0dXJlLgogICAgICAtIGNyZWF0ZSBhIHdvcmtpbmcgZmluZF9zdWJ0cmVlKCkgYW5kIGZpbmRfc3VidHJlZV9uZXh0KCkuCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6Mzk6NTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2ltcGx5IGRvbid0IGRlZmluZSBDQU5fVVNFX05MSVNUIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjQ0OjA2CiAgICAtIChzbm1wZC5jLCBzbm1wX2FwaS5jKTogU3BlbGxpbmcgZXJyb3JzIGZyb20gdGhlIENNVSBjb2RlIGZpeGVkLgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjQ2OjM2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbGludXguaCk6IG5ldyBkZWZpbmU6IERPTlRfVVNFX05MSVNULgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjU5OjIwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEFkZCBhbiAmIHRvIGFycGNvbS5hY19lbmFkZHIgaW4gbWVtc2V0LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEyOjQ4OjMwCiAgICAtIChNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBDb2RlIGZyb20gRGF2aWQgVC4gUGVya2luczoKICAgICAgLSBpbnRlZ3JhdGVkIERhdmlkJ3MgY29kZSB0byBwcmludCBjb3VudGVyNjRzIGFzIGludGVnZXJzIHJhdGhlciB0aGFuIGhleC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMzowNzowMAogICAgLSAodjJwYXJ0eS5jLCBtaWJJSS5jLCB2YWNtX3ZhcnMuYyk6IGRlY2xhaXIgcmVnaXN0cmF0aW9uIHZhcmlhYmxlcyBzdGF0aWNseS4KCmhhcmRha2VyIDI1IE1hciA5OCAxNjo0OTo1NgogICAgLSAoaHB1eC5jKTogZml4IHdyaXRlX21ldGhvZCBkZWNsYXJhdGlvbi4KCmhhcmRha2VyIDI2IE1hciA5OCAwNzoyMjozMAogICAgLSAoKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBtaXNjIHBvcnRpbmcgaW1wcm92ZW1lbnRzICh0aGUgYnNkIGdyb3Vwcywgc3Vub3MsIC4uLikuCiAgICAgIC0gc3dpdGNoIGF1dG9fbmxpc3RzIGNhbGxpbmcgb3JkZXIgb2YgXyB2cyBub24gXyBsb29rdXBzLgogICAgICAtIHJldmVyc2UgYWxsIHN0cmluZy5oL3N0cmluZ3MuaCBpbmNsdWRlIHBvc3NpYmlsaXRpZXMuCgpoYXJkYWtlciAyNyBNYXIgOTggMDk6MjA6MDQKICAgIC0gKHNubXB0cmFwZC5jKToKICAgICAgLSBCZXRhIHZlcnNpb24gb2YgYW4gZXh0ZW5zaWJsZSB0cmFwIGRlbW9uLgogICAgICAgIC0gLUMgJ2NvbW1hbmQnIG9uIHRoZSBjb21tYW5kIGxpbmUgcnVucyB0aGUgY29tbWFuZCBhbmQgZmVlZHMgaXQKICAgICAgICAgIHN0ZGluIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0cmFwLgogICAgICAgIC0gdjEgdHJhcHMgYXJlIGNvbnZlcnRlZCB0byB2MiB0cmFwcyBmb3IgY29uc2lzdGFuY3kgb2YKICAgICAgICAgIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIHNjcmlwdHMuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjA6MjEKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZSBjb25maWdfcHdhcm4oKSB0aGF0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIGVycm9yIGNvdW50IHRvCiAgICAgICAgcHJldmVudCBleGl0aW5nLiAgVXNlZCBmb3IgZGlza3MsIHNpbmNlIHNvbWUgbWlnaHQgYnkgcHJvY2VzcyBvcgogICAgICAgIG5mcyBtb3VudGVkLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIwOjU0CiAgICAtIChkaXNrLmMpOiB1c2UgY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgZGlza3MuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjI6MzUKICAgIC0gKGhyX2RldmljZS5jKTogY2hlY2sgZGV2aWNlIGluZGV4IGFnYWluc3QgbWF4aW11bSAoc2VnZmF1bHQgb24gSFBVWCkuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6MTA6MDUKICAgIC0gKFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKTogUGF0Y2ggZnJvbQogICAgICBBcnRodXIgSHl1bjoKICAgICAgLSB0Y3B3cmFwcGVycyBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjIzOjAzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBJbnRlcmZhY2VzX1NjYW5fTmV4dCBuZWVkZWQgYSA0dGggKE5VTEwpIGFyZ3VtZW50LgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjIzOjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOgogICAgICAtIGNvcnJlY3RseSAjaWZkZWYgb3V0IHRoZSB0Y3B3cmFwcGVycyBwYXRjaC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjo0MjoxMwogICAgLSAoSU5TVEFMTCk6IGRvY3VtZW50IGxpYndyYXAuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6NDM6MDYKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgaW50ZXJmYWNlcy5jLCBpcC5jLCByZWdpc3RyeS5jKToKICAgICAgLSBwcm90b3R5cGluZyBhbmQgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgMSBBcHIgOTggMDk6NTI6MzIKICAgIC0gKHNubXBfY2xpZW50LmMpOiBlbnRlcnByaXNlX2xlbmd0aCBpcyBzaXplb2Yob2lkKSBkZXBlbmRlbnQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6Mjc6MDcKICAgIC0gKGF1dG9fbmxpc3QuYyk6CiAgICAgIC0gcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudHMgb2YgdHJlZSB0cmF2ZXJzYWwuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6MzE6MjkKICAgIC0gKE5FV1MsIFBPUlRJTkcpOiB1cGRhdGVzIGZvciAzLjQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NDc6NTUKICAgIC0gKEZBUSwgUkVBRE1FKTogbW9yZSAzLjQgdXBkYXRlcy4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo1MzoyNwogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHZhY20gZXhhbXBsZSBjb25maWd1cmF0aW9uLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjU0OjExCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogbW92ZWQgdGhlIHZpZXcgZXhhbXBsZSBzZWN0aW9uIGFib3ZlIHRoZSBhY2Nlc3Mgc2VjdGlvbi4KCmhhcmRha2VyICAxIEFwciA5OCAxNDoxMDowNwogICAgLSAoVE9ETyk6IHJlbW92ZWQgYSBmZXcgdGhpbmdzIQoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjQwOjQ0CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIHVucmVnZXN0ZXJpbmcgb2YgbWlicyB3b3JrLgogICAgICAtIChpbiBtb3N0IGNhc2VzIDotPykKCmhhcmRha2VyICAxIEFwciA5OCAxNDo0MzoxNAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNiApCgpoYXJkYWtlciAgMSBBcHIgOTggMTY6MzU6NTkKICAgIC0gKHNubXB0cmFwZC5jKTogYWx3YXlzIHNlbmQgZW50ZXJwcmlzZSBhbmQgdHJhcG9pZCB0byBzY3JpcHRzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDEwOjMxOjA4CiAgICAtIChzbm1wZC5jKTogY2hhbmdlIG9pZCBmcm9tIHRleHR1YWwgdG8gbnVtZXJpYyB0byBhbGxvdyBub3cgbWlicyB0bwogICAgICBiZSBsb2FkZWQuCgpoYXJkYWtlciAyMCBBcHIgOTggMTU6NTQ6MjkKICAgIC0gKGhvc3RfcmVzLmgsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAgIC0gY29uc29saWRhdGUgdGhlIHN5c3RlbS1zcGVjaWZpYyBzdHVmZiBhIGJpdCAoc2hvdWxkIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgICB0byBmb2xsb3cpCiAgICAgICAgLSBSZS1zdHJ1Y3R1cmVzIHRoZSBEaXNrIHNlYXJjaGluZywgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBzZXQgdXAKICAgICAgICAgIHZpYSB0aGUgY29uZmlnIGZpbGUuICh3aGljaCBJIHN0aWxsIG5lZWQgdG8gZG8pCiAgICAgICAgLSBTcGVlZCB1cCBkaXNrIHNlYXJjaGluZyAoYnkgY2FjaGluZyBpbnZhbGlkIHJlc3VsdHMgLSBhICptYWpvciogd2luISkKICAgICAgICAtIEhhbmRsZSBwYXJ0aXRpb25zIHNlbnNpYmx5IChhcnRoZXIgdGhhbiBvbmUgcGVyIGRpc2spCiAgICAgICAgLSBJbXByb3ZlIFNvbGFyaXMgc3VwcG9ydCBmb3IgdGhlIERldmljZSBncm91cAoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU2OjUwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3Igc3lzL2RraW8uaAoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU5OjEyCiAgICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBzb21lIGhvc3QgcmVzb3VyY2VzIGZvciBzb2xhcmlzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAwOjM2CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhcHByb3ByaWF0ZSB1c2Ugb2Ygc3RyZHVwIGR1cmluZyBzdGFydHVwIGFuZCBiZXR0ZXIgZmxhZyBjaGVja2luZy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMDo1NgogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgbW92ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDI6MTIKICAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRlc3Qgc3ltYm9sIGRlZmluZXMgYW5kIGNsZWFudXAuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDM6MDMKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGluZyBhbmQgb3RoZXIgY2xlYW51cHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDU6MDAKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBnZXRob3N0YnlhZGRyIG1vdmVzIHVwLgogICAgICAtIGluY2x1ZGUgc3lzL3dhaXQuaC4KICAgICAgLSBzeXNsb2cgJWQgLT4gJWxkIGZvciBsb25nIHNwZWNpZmljX3R5cGUuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDU6MzQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0eXBlY2FzdCBhIHBvaW50ZXIuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDY6MDMKICAgIC0gKHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtICNpZmRlZiBjaGVja3Mgb24gc3ltYm9scyBhbmQgaGVhZGVyIG1vdmVtZW50LgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA2OjIxCiAgICAtIChzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHVuZGVmaW5lIGEgYnVuY2ggb2Ygbmxpc3Qgc3ltYm9scy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNzoxMAogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmVlZGVkIHBvaW50ZXIgY29waWVzLgoKaGFyZGFrZXIgMjIgQXByIDk4IDA3OjQ5OjIxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCB3b3JkaW5nLCBjbGVhbmVkIHVwIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk4IDA4OjM1OjI5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwYXJzZSBCSVRTIGtleXdvcmRzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjAwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1pYiBvaWQgbG9jYXRpb24gdXBkYXRlcyBmb3IgdWNkLXNubXAgbWliLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjAyOjI5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZW5hbWVkIGxhYmVscyB0byBiZSB1bmlxdWUgZnJvbSB0aGUgb2xkIGRlZmluaXRpb25zLgogICAgICAtIHJlbnVtYmVyZWQgYWdhaW4uCiAgICAgIC0gY29tbWVudGVkIG9uIHRoZSBkZXNnaW4gb2YgdGhlIG1pYiBhdCB0aGUgdG9wLgogICAgICAtIENoYW5nZWQgYmFjayB0byBTTUl2MS4KICAgICAgLSByZW1vdmVkIGxvY2tkIHNlY3Rpb24uCiAgICAgIC0gcmVtb3ZlZCB2bXN0YXQgc2VjdGlvbiB0aWxsIGl0IGdldHMgaW1wbGVtZW50ZWQuCiAgICAgIC0gcmVtb3ZlZCBzZXF1ZW5jZXMgb2Ygc2NhbGVycy4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDoyMjowMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgc29tZS4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDowMzoyNgogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vcmUgY2xlYW5pbmcgYW5kIHJlbmFtaW5nLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMyOjEyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIHN0YXR2ZnMuaCBmb3IgZl9iYXZhaWwuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6MDgKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZGVmaW5lIE1BWFBBVEhMRU4uCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6MjQKICAgIC0gKGhyX3BhcnRpdGlvbi5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGp1c3Qgb3BlbmVkLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjU4CiAgICAtIChkaXNrLmMpOiBjYWxjdWxhdGUgdmZzIGJsb2NrIHNpemUgaWYgcG9zc2libGUgYW5kIHNpemUgPiAyNTUgYnl0ZXMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6MzE6MzAKICAgIC0gKHRjcC5jKTogaW5jbHVkZSBuZXRpbmV0L3RjcGlwLmggZm9yIERVNC4wLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjMyOjA1CiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCk6IG5fdmFsdWUgaXMgYSBsb25nOgogICAgICAtIHJldHVybiB0aGUgdmFsdWUgZnJvbSBhdXRvX25saXN0X3ZhbHVlIGFzIGFuIHVuc2lnbmVkIGxvbmcuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6NDA6NDUKICAgIC0gKHZhcl9yb3V0ZS5jKTogd2F0Y2ggb3V0IGZvciBzaW5nbGUgcm91dGUgbG9vcHMuCgpoYXJkYWtlciAyNyBBcHIgOTggMTA6NTk6MTkKICAgIC0gKE1ha2VmaWxlLnRvcCk6IHJlbW92ZWQgdW5uZWVkZWQgdmFyaWFibGUuCgpoYXJkYWtlciAyNyBBcHIgOTggMTE6MDA6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFNITElCX0xEQ09ORklHX0NNRCBhcyAiOiIgZm9yCiAgICAgIHN0YXRpYyBsaWJyYXJ5IGNhc2VzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDExOjAwOjQ0CiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSBQdXQgdGhlIHdvcmQgIlRpbWVvdXQ6ICIgaW4gZnJvbnQgb2YgdGhlICJObyBSZXNwb25zZSIgZXJyb3JzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDEzOjMxOjEwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU3ICkKCmhhcmRha2VyIDI3IEFwciA5OCAxNjoyNDozNAogICAgLSAodGttaWIpOiBidWcgZml4ZXMgYW5kIG5ldyBtaWIgbWVudSB0byBsb2FkIG5ldyBtaWJzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjQ2OjI4CiAgICAtICh0a21pYik6IE5ldyBtaWIgbWVudSBjb21tYW5kOiBsb2FkIGEgbWliIG1vZHVsZSBieSBJRCBuYW1lLgoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjQ4OjAyCiAgICAtICh0a21pYik6IGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDI5IEFwciA5OCAwODo1Njo0NAogICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCAtSCBoZWFkZXIgcHJpbnRpbmcuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6MjY6NTgKICAgIC0gKHRjcC5jKTogZG9uJ3QgdXNlIFRDUFNUQVRfU1lNQk9MIHVubGVzcyBkZWZpbmVkLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjM0OjEyCiAgICAtIChleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAgLSBubGlzdCBjbGVhbnVwcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDo0MzowNAogICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6IG1vcmUgY2xlYW4gdXBzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDExOjMxOjQzCiAgICAtICh2bXN0YXQuYywgdm1zdGF0LmgpOiBtb3ZlcywgY2hhbmdlcywgcmVtb3ZhbHMsIGFuZCBmaXhlcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTozMjowMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHB1dCB2bXN0YXQgYmFjayBpbiBhbmQgcmVuYW1lZCB0byBzeXN0ZW1TdGF0cy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTo0MTo1OAogICAgLSAodGttaWIpOgogICAgICAtIGRpc3BsYXkgdW5sb2FkZWQgbW9kdWxlIGVycm9yLgogICAgICAtIGRvbid0IHRyeSB0byBsb2FkIGEgZmlsZSBvbiBhIGNhbmNlbC4KCmhhcmRha2VyICA2IE1heSA5OCAxMToyMjo1NgogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRrbWliLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDE0OjA2OjU3CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBhZGRlZCBpbnRlcm5hbCB0YWJsZSBzZWN0aW9uLgogICAgICAtIG1pYiBudW1iZXIgY29ycmVjdGlvbnMgdG8gbWF0Y2ggdGhlIHNvdXJjZS4KCmhhcmRha2VyICA2IE1heSA5OCAxNDo1ODoyMwogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsCiAgICAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgICAgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jLCB2bXN0YXQuYyk6CiAgICAgIC0gcmVtb3ZlIHRoZSBuZXduYW1lIHJlcXVpcmVtZW50IGZyb20gY2hlY2ttaWIoKS4KICAgICAgLSBjcmVhdGUgaGVhZGVyX2dlbmVyaWMoKSBmb3Igc2ltcGxlIHNjYWxhciB0ZXN0cy4KICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMoKSBpbiBhbGwgdWNkIHNwZWNpZmljIHNjYWxhciBtaWJzLCBhbmQgZXhhbXBsZS5bY2hdLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA2OjU5CiAgICAtIChORVdTKTogbWlub3Igd29yZGluZyBjaGFuZ2UuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDc6MjgKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAgLSBuZXcgZnVuY3Rpb246IGNhbGN1bGF0ZV90aW1lX2RpZmYodDEsIHQyKS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowODowMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgYm9ndXMgaW5kZXgncyBiZSAwLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA4OjM3CiAgICAtIChtaWIyYyk6IGNyZWF0ZWQgYSBtaWIyYyB0ZW1wbGF0ZSBjcmVhdG9yLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIyOjI4OjQ3CiAgICAtICh3aW4zMi9jb25maWcuaCk6IHVwZGF0ZSBmcm9tIEpvZSBNYXJ6b3QuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDU6NTUKICAgIC0gKENPUFlJTkcpOiBjb3JyZWN0aW9uIGZvciBkYXRlcy4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNzowNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzeXMvc3RhdCBpbmNsdXNpb24gaW4gZnMgY2hlY2tzLgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA3OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZGVidWcgaW5mbyBmb3IgY29uZmlnIGZpbGVzIHJlYWQuCgpoYXJkYWtlciAgOCBNYXkgOTggMTA6NTc6NDkKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgcGtnbG9jcy5oLgoKaGFyZGFrZXIgIDggTWF5IDk4IDExOjAxOjI0CiAgICAtIChocl9zd2luc3QuYywgaHJfZGlzay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMuCgpoYXJkYWtlciAgOCBNYXkgOTggMTQ6NTM6MzYKICAgIC0gKGRpc2suYyk6IHdvcmRpbmcgY2hhbmdlLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA4OjM3CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBibGFuayBsaW5lIHJlbW92YWwuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDg6NTMKICAgIC0gKHRrbWliKTogb3B0aW9uYWwgcG9ydCBudW1iZXIuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDk6NTgKICAgIC0gKG1pYjJjKToKICAgICAgLSBjb3VudGVyNjRzLgogICAgICAtIGNvbnNvbG9kYXRpb24gb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLgogICAgICAtIG1vcmUgZXJyb3Igc3RpbmdzIGluIGFsbCBmaWxlcyBmb3IgdW5rbm93biB2YXJpYWJsZSB0eXBlcy4KCmhhcmRha2VyIDExIE1heSA5OCAwODoxMDozMAogICAgLSAocGFyc2UuYyk6IG9wYXF1ZSdzIGNhbiBoYXZlIGEgc2l6ZSBzcGVjaWZpZXIuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MTA6NDYKICAgIC0gKGludDY0LmMpOiBhZGQgaW5jckJ5VTMyKCkuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6Mjk6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBzbm1wZC5oLCB2YXJfc3RydWN0LmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdGhlIHRyYXBzaW5rIGRpcmVjdGl2ZXMgaW4gc25tcGQKCmhhcmRha2VyIDExIE1heSA5OCAxMDozMDowMQogICAgLSAoaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc29tZSBwcm90b3R5cGVzIGZvciB0aGUgaHJfKi5jIGZpbGVzIChuZWVkcyBEYXZlJ3MgcmVjZW50IHBhdGNoKQogICAgICAgIFdhcm5pbmc6IHRoZSBwcm9jIHBhcnQgc3RpbGwgZG9lcyBub3Qgd29yayB3aXRoIFNvbGFyaXMhCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MzcKICAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMxOjMzCiAgICAtIChTTk1QdjItVEMudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0aGlzIGxhc3QgW3BhcnNlcl0gbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlCiAgICAgICAgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdCB3ZSBzaGlwKS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozMjoyNwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gQ29ycmVjdGlvbnMgb2YgZGlzayBlbnRyeSBjYXBpdGlsYXphdGlvbiBwcm9ibGVtcy4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozNDozOAogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgICAtIGZpeCB0aGUgcGFyc2VyIHRvIHJlcG9ydCB1bmxpbmtlZCBPSURzLiBUaGlzIGRpZCByZXZlYWwgYW4gZXJyb3IgaW4gYQogICAgICAgIENpc2NvIE1JQiAoQ0lTQ08tSVBNQ0FTVC1NSUIpIHRoYXQgSSBoYWQgYmVlbiB1c2luZyAoaXQgbmVlZHMgYW4KICAgICAgICBJTVBPUlRTIGNpc2NvRXhwZXJpbWVudCBGUk9NIENJU0NPLVNNSSkKICAgICAgICBBY3R1YWxseSB0aGUgcGFyc2VyIHdvcmtlZCBvaywgZXhjZXB0IGZvciB0aGUgbWlzc2luZyBlcnJvciBtZXNzYWdlcy4KICAgICAgLSByZXdyaXRlIG9mIHRoZSBwYXJzZXJzIGxleGljYWwgYW5hbHlzZXIsIHRvIGNvcnJlY3QgdGhlIGVycm9ycyB0aGF0CiAgICAgICAgRGF2ZSBQZXJraW5zIGFuZCBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCByZWNlbnRseSAobmFtZTo6PSAsIERFU0NSSVBUSU9OIgogICAgICAgIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgLS0gcGFydGlhbCBsaW5lIGNvbW1lbnRzIC0tKS4gV2F0Y2ggb3V0ISB0aGlzIGxhc3QKICAgICAgICBtYXkgZmluZCBlcnJvcnMgaW4gb2xkIE1JQnMgKGluY2x1ZGluZyB0aGUgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdAogICAgICAgIHdlIHNoaXApLiBNeSBGb3JlIFN5c3RlbXMgTUlCcyBoYWQgZXJyb3JzIHdpdGggdGhpcy4KICAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKCmhhcmRha2VyIDEyIE1heSA5OCAxMDo1MjoxNgogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIG1vcmUgc3dpbnN0IGZpeGVzIGZvciBycG0gbW9kdWxlcy4KCmhhcmRha2VyIDEyIE1heSA5OCAxMDo1Mjo1NwogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGluY2x1ZGUgYSBnZXRkdGFibGVzaXplKCkgZnVuY3Rpb24gZm9yIGhwdXg5LgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjEwOjQyCiAgICAtIChORVdTKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjExOjEwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG11bmdlIHJwbSBsaWIgY2hlY2sgdG8gbGluayB3aXRoIC1sZGIgYXMgd2VsbC4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMTozMgogICAgLSAoZGlzay5jKTogTlVMTCAtPiAwLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjQ1OjIxCiAgICAtICh2bXN0YXQuYyk6IGNvcnJlY3Qgc3RyaW5ncyBpbmNsdXNpb24uCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6NDU6NTEKICAgIC0gKHNubXBfYXBpLmMsIHN5c3RlbS5jKToKICAgICAgLSBtb3ZlIGRlYnVnZ2luZyBjb2RlIGZyb20gc3lzdGVtLmMgdG8gc25tcF9hcGkuYywgd2hlcmUgaXQgc2hvdWxkIGJlLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDE1OjE0OjQ4CiAgICAtIChkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsCiAgICAgIHByb2MuYywgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYyk6CiAgICAgIC0gaW5jbHVkZSB0aW1lLmggcHJvcGVybHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHV0aWxfZnVuY3MuaCB0byBkbyBpdC4KCmhhcmRha2VyIDEyIE1heSA5OCAxNToxNTowMQogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOCApCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjE6MjIKICAgIC0gKGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogbWFrZSBpbnQ2NC5jIHVzZSBjb3VudGVyNjQncyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjE6NDIKICAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgcmV0dXJuIGEgY291bnRlcjY0IHRvIGEgc25tcHYxIHJlcXVlc3QuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjI6MDkKICAgIC0gKGlwLmMpOiBpbmNsdWRlIG5ldC9yb3V0ZS5oIGFuZCBzeXNsb2cuaCBmb3IgYnNkaS4KCmhhcmRha2VyIDEzIE1heSA5OCAyMToyMjoxNwogICAgLSAobWVtb3J5LmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIGZvciBic2RpCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjU6MzkKICAgIC0gKG1pYi5jKTogc3ByaW50X2J5X3R5cGUoKSBkaWRuJ3QgaGFuZGxlIGNvdW50ZXI2NCdzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA3OjE3OjM0CiAgICAtIChtZW1vcnkuYyk6IG1vdmUgc3lzL3BhcmFtLmggdXAgYWJvdmUgZnMuaCBoZWFkZXJzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjIxOjU1CiAgICAtIChGQVEpOiBuZXcgRkFRIGZyb20gRGF2ZSBTaGllbGRzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjIyOjA4CiAgICAtIChORVdTKTogbWliMmMgbWVudGlvbmVkLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjI1OjU3CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IHR5cG9zLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjEzOjE2CiAgICAtIChwYXJzZS5jKTogc2luZ2xlIHF1b3RlIG1pc3NpbmcgbW9kdWxlIG5hbWVzLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjE3OjM2CiAgICAtIChyZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgIGhyX3N5c3RlbS5oLCBocl91dGlscy5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYW5zbGF0ZS4xLAogICAgICBic2QuaCwgc29sYXJpcy5oLCBzdW5vcy5oLCBpbnQ2NC5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFuc2xhdGUgc3VwcG9ydHMgLVIgYW5kIC1yLgogICAgICAtIG1pc2NlbGxhbmVvdXMgd2FybmluZyBmaXhlcy4KICAgICAgLSBvaWQgc2VhcmNoZXIgYWx3YXlzIGlnbm9yZXMgY2FzZS4KICAgICAgLSBmaXhlZCBocl9zeXN0ZW0gdG8gY29tcGlsZSBvbiBTdW5PUzQuCgpoYXJkYWtlciAxNSBNYXkgOTggMTA6MTk6MDUKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBwcm92aWRlIGFiaWxpdHkgdG8gZG8gcmFuZG9tIHNlYXJjaGVzIHNwZWNpZnlpbmcgYSBtb2R1bGUgbmFtZSB0byBsb29rIGluLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDExOjE3OjQ0CiAgICAtIChGQVEsIG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBoYW5kbGUgcmFuZG9tIGxvb2t1cHMgd2l0aCBtdWx0aXBsZSBvaWQgc2VnbWVudHMuCgpoYXJkYWtlciAxNSBNYXkgOTggMTE6MTk6MTAKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsCiAgICAgIGxpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LnBsZywKICAgICAgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LnBsZywgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUucGxnLAogICAgICBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgZmlsZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDExOjE4OjIxCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBydGVudHJ5IHN0cnVjdHVyZSB0ZXN0IG9uIHJlLWNvbmZpZ3VyZXMuCgpoYXJkYWtlciAxOCBNYXkgOTggMTM6MTM6MTgKICAgIC0gKGhyX3N3aW5zdC5jKTogcHJvdGVjdCB1c2luZyB0aGUgZGF0ZSBwb2ludGVyIGFnYWluc3QgTlVMTCBzZXR0aW5ncy4KCmhhcmRha2VyIDE4IE1heSA5OCAxNTozOTozOAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOSApCgpoYXJkYWtlciAxOCBNYXkgOTggMTg6MTQ6MTkKICAgIC0gKGludDY0LmMpOgogICAgICAtIGluY2x1ZGUgaGVhZGVyIGNoYW5nZXMgZm9yIHdpbjMyLgoKaGFyZGFrZXIgMTkgTWF5IDk4IDEwOjQxOjE0CiAgICAtIChhdC5jKTogc2V0IHRvIGRvIG5vdGhpbmcgd2hlbiBDQU5fVVNFX1NZU0NUTC4KCmhhcmRha2VyIDE5IE1heSA5OCAxMDo0MTo0OQogICAgLSAobWVtb3J5LmMpOiBmaXggc3dhcGluZm8gb24gaHB1eDEwIHN5c3RlbXMuICgvZXRjL3N3YXBpbmZvIC1yKS4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozMzowMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGV4dGVuZCByYW5kb20gbG9va3VwcyBmdXJ0aGVyLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM0OjMxCiAgICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNjoxNAogICAgLSAodXRpbF9mdW5jcy5jKTogbWFrZSBjaGVjbWliKCkgdXNlIG9pZCBub3QgaW50IGZvciBuZXduYW1lLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM3OjMzCiAgICAtIChzbm1wX2ltcGwuaCk6IHZlcnNpb24gc2hvdWxkIGJlIGEgbG9uZy4KCmhhcmRha2VyIDIwIE1heSA5OCAwODoyNTo0MQogICAgLSAocmVhZF9jb25maWcuYyk6IGNvbmZpZ19wZXJyb3IoKSAtPiBjb25maWdfcHdhcm4oKSBmb3IgbWlzc2luZyB0b2tlbnMuCgpoYXJkYWtlciAyMCBNYXkgOTggMDg6Mjc6MDYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4yIC0+IFYzLjMKCndoYXJkYWtlIDExIEp1biA5NyAwNDo1Mzo1MwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIG1ha2UgTUlCRklMRVMgZW52IHZhciB3b3JrIGNvcnJlY3RseS4KCndoYXJkYWtlIDExIEp1biA5NyAwNTo0NjoxOAogICAgLSAoQ2hhbmdlTG9nKTogd2hvb3BzLgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQwOjI4CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9obiBDaGFybHRvbiB0byBmaXggbGVhZGluZyBzcGFjZXMgaW4gc2Vkc2NyaXB0LgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQxOjU4CiAgICAtIChjb25maWd1cmUqKTogYnNkaTMgbmVlZHMgdG8gZGVmaW5lIGJzZGkyLCBub3QgaXRzZWxmIChkdWgpLgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQyOjM2CiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBuZWVkIDIgbGVhZGluZyAnLSdzIG9uIC0td2l0aC1taWItbW9kdWxlcyBmbGFnLgoKd2hhcmRha2UgMjYgSnVuIDk3IDIzOjM5OjMyCiAgICAtIChzbXV4LmMpOiBfX1AgbWFjcm9zIHdlcmUgY2FsbGVkIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzIChuZWVkZWQgKGFyZ3MpKS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNTo1Mzo1NwogICAgLSAoYWdlbnQvc25tcF97YWdlbnQsdmFyc30uYywgYWxhcm0uYywgZXZlbnQuYywgYXBwcy8qLAogICAgICAgc25tcGxpYi9zbm1weyxfYXBpLF9hdXRofS5jKToKICAgICAgIC0gQWRkZWQgYmFzaWMgKG1vc3RseSBjb25mb3JtaW5nPykgdjJjIHN1cHBvcnQuCiAgICAgICAtIE1lcmdlZCBhcmcgcGFyc2luZyBvZiBhcHBzLyogY2xpZW50cyBpbnRvIG9uZSBmaWxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA1OjU0OjM2CiAgICAtIChhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMpOiBEb24ndCBwdXQgJiBpbiBmcm9udCBvZiBvc2Y0IGFjX2VuYWRkci4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjozMzowOAogICAgLSAoc25tcHRlc3QuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IGdldCAtPiBmZ2V0ICdcbicgcHJvYmxlbS4KICAgICAgLSBBbHNvIG1ha2VzIHN1cmUgaXQgaGFuZGxlcyB1cCBhbmQgbG93ZXIgY2FzZXMuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6Mzg6NDMKICAgIC0gKHdvbWJhdC5oKTogYmV0dGVyIGRvY3VtZW50IGNvbmZpZ19sb2FkX21pYigpIGV4YW1wbGUuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6NDk6NDUKICAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKTogUGF0Y2ggZnJvbSB2bGFkQG1pc2VyeS5yb3NwcmludC5ydToKICAgICAgLSBpbXBsZW1lbnQgbWVtb3J5IHNlY3Rpb24gb2YgdWNkIG1pYiBvbiBsaW51eC4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjo1ODo0OQogICAgLSAobWliX2FwaS4zLCBwYXJzZS5bY2hdKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBIYW5kbGUgbWliIG1vZHVsZSByZXBsYWNlbWVudHMgdGhyb3VnaCBuZXcgZnVuY3Rpb24gYW5kIHJlcGxhY2VtZW50IHRhYmxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA3OjE5OjUxCiAgICAtIChtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYyk6IFN1Z2dlc3Rpb25zIGZyb20gTGF1a2thbmVuIE1hcmtrdSBOUkMvSGtpOgogICAgICAtIE1hbGxvYyB0eXBlY2FzdHMgYW5kIG90aGVyIGNvcnJlY3Rpb25zIGluIGNhc3RpbmcuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDE6MTA6MDAKICAgIC0gKHNtdXguYyk6IGZpeCBwcm90b3R5cGluZyBmYWlsdXJlcy4KCndoYXJkYWtlICAxIEp1bCA5NyAwNTo0MTo1OAogICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oLCBpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBmaXggZnJlZWJzZDMgc3BlY2lmaWMgcHJvYmxlbXMgKGJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gQmlsbCBGZW5uZXIpLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA2OjAyOjU3CiAgICAtIChhcHBzLyouYyk6IEJldHRlciB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgdXNhZ2UoKSBzdGFuZGFyaXphdGlvbi4KCndoYXJkYWtlICAxIEp1bCA5NyAwNjo0MTo0NAogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKTogYnNkaTMgc3BlY2lmaWMgaGVhZGVycy4KCndoYXJkYWtlICAxIEp1bCA5NyAwNzoyMDoyNQogICAgLSAoY29uZmlnKik6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDg6Mzc6NTEKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTEgKQoKd2hhcmRha2UgIDMgSnVsIDk3IDIzOjMzOjIzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIG1pYi5bY2hdLCBwYXJzZS5bY2hdKToKICAgICAgLSBOZXcgb3B0aW9uIHRvIHNubXB0cmFuc2xhdGUgKC1hKSB0byBvdXRwdXQgYSBhc2NpaSBkdW1wIG9mIHRoZSBtaWIKICAgICAgICBkYXRhYmFzZSBjYXBhYmxlIG9mIGJlaW5nIHVzZWQgYnkgdGhlIHBhcnNlciBmb3IgcXVpY2sgT0lEIHRyYW5zbGF0aW9ucy4KCndoYXJkYWtlICAzIEp1bCA5NyAyMzozNDoxNAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMiApCgp3aGFyZGFrZSAyNCBKdWwgOTcgMjM6NTA6NDgKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEVkZHkgSi4gR3VybmV5OiAgdW5jb21tZW50IGdldHRpbWVvZmRheSgpIGNhbGwuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDA6Mjk6MjQKICAgIC0gKFRPRE8pOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgYnkgYXBwcy4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMToxMTo1NAogICAgLSAoY29uZmlnKiwgbG9hZC5jLCBkaXNrLmMsIHBhcnNlLmMsIHNubXAuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gVWx0cml4IGZpeGVzIGZvciBzdGF0ZnMsIGxvYWRhdmUuCiAgICAgIC0gaW1wbGVtZW50IHN0cmR1cCBpZiBub3QgZm91bmQgaW4gc3lzdGVtLgogICAgICAtIHRlc3QgZm9yIHRlc3QgZmxhZ3MgZm9yIGtlcm5lbCBjaGVja2luZy4KICAgICAgLSB3YXRjaCBvdXQgZm9yIHBzJ2VzIHRoYXQgcmV0dXJuIGVncmVwIHdpdGggdGhlIHBzIGFyZyBvbiB0aGUgbGluZS4KICAgICAgLSB1cCBtYXhpbXVtIGRpc2tzIHRvIDUwLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAxOjMzOjM4CiAgICAtIChrZXJuZWwuYywgcHJvYy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBJbXBsZW1lbnQgcmVhbCBwcm9jZXNzIHRhYmxlIHdhbGtzIG9uIFVsdHJpeC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMjozNDo0NQogICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOgogICAgIC0gZml4IHN3YXAgb24gSFBVWCAxMC4yMAoKd2hhcmRha2UgMTMgQXVnIDk3IDA0OjQ3OjQ5CiAgICAtIChzbm1wc3RhdHVzLmMpOiBvcHRhcmcvb3B0aW5kIG5lZWQgdG8gYmUgZGVjbGFpcmVkIHVuZGVyIHVsdHJpeDQuCgp3aGFyZGFrZSAxMyBBdWcgOTcgMDg6MTE6NDIKICAgIC0gKHZlcnNpb24uaCwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZSB2ZXJzaW9uIHN0cmluZyB0byBhIGdsb2JhbCBoZWFkZXIuCiAgICAgIC0gaW5zZXJ0IFVTSU5HXypfTU9EVUxFIG1hY3JvJ3MgaW4gbWFueSBwbGFjZXMgdG8gbWFrZSBtb2R1bGUKICAgICAgICByZW1vdmFsIG1vcmUgcG9zc2libGUuICBZb3UgY2FuIG5vdyBjb21waWxlIHdpdGggYWxtb3N0IG5vIG1vZHVsZXMKICAgICAgICBpbnN0YWxsZWQuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDA6NDY6MzgKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgbWFpbi5jKToKICAgICAgLSBhZGQgLVYgdmVyc2lvbiBmbGFnZS4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwNzozODoxNwogICAgLSAoY29uZmlnKiwgRkFRLCBSRUFETUUsIGFnZW50L21pYmdyb3VwLyouYywgYXBwcy8qLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2aWQgUGF1bCBaaW1tZXJtYW46CiAgICAgICAgLSBwb3J0IHRvIEFJWCA0LjEuNS4KICAgICAgICAtIGZpeCBtb3JlIHR5cGUgY2FzdGluZyBwcm9ibGVtcy4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNTo0MgogICAgLSAoY29uZmlndXJlKik6CiAgICAgIC0gVHlwbydzIHdoZW4gY29weWluZyBpbiBhIGF1dG9jb25mIHRlc3QuCiAgICAgIC0gQWRkIGVycm9ybWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgKHNpbmNlIGl0cyBubyBsb25nZXIgcmVxdWlyZWQpLgogICAgICAtIGJhY2txdW90ZSBhIC4gaW4gYSBzZWQgcmVnZXhwIHRvIHdhdGNoIG91dCBmb3IgbW9kdWxlIG5hbWVzCiAgICAgICAgYmVnaW5uaW5nIHdpdGggdGhlIGxldHRlciBvLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE2OjEyCiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBQb2ludCBvdXQgdGhhdCBtaWIgbGlzdCBtdXN0IGJlIGluIGRlc2NlbmRpbmcgb3JkZXIuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTY6MzcKICAgIC0gKHByb2MuYyk6IGRvbid0IHVzZSBzZXRlcnJvcnN0YXR1cygpIGlmIG5vdCB1c2luZyB0aGUgZXJyb3JtaWIuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MjE6MjYKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2aWQgQy4gTGF3cmVuY2UgZm9yIG5ldGJzZCAqIGJzZC9vcyAyLjAuCgp3aGFyZGFrZSAxNSBBdWcgOTcgMDI6MzA6NTkKICAgIC0gKGNvbmZpZyosIHNubXBkLmMsIHNubXBfY2xpZW50LltjaF0sIHN5c3RlbS5bY2hdKToKICAgICAgLSBmaXggbW9yZSBsb25nL2ludCBwcm9ibGVtcyBvbiA2NCBiaXQgbWFjaGluZXMgdV9sb25nIC0+IGluX2FkZHJfdC4KICAgICAgLSBDaGVjayBmb3IgU0lPQ0dJRkFERFIgaW4gc3lzL2lvY3RsLmggYW5kIHVzZSBpdCBpbiBnZXRfbXlhZGRyKCkgaWYKICAgICAgICBkZWZpbmVkLgoKd2hhcmRha2UgMTUgQXVnIDk3IDA2OjQ2OjM5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUzICkKCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMToyMwogICAgLSAobWVtb3J5LmMpOiB0eXBvIGluIGlmZGVmLgoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIxOjQxCiAgICAtICh2ZXJzaW9udGFnKTogY2hlY2tpbiB2ZXJzaW9uLmguCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjI6MTgKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBuZXRic2QuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTU6MjMKICAgIC0gKG1pYl9hcGkuMyk6IGRvYyBhZGRpdGlvbjogIGFkZF9taWJkaXIoKSByZXR1cm4gdmFsdWUuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTY6MzYKICAgIC0gKHBhcnNlLmMpOiBGcm9tIERhdmUgU2hpZWxkczoKICAgICAgLSBzZWxmIGNvbnRhaW5lZCBtaWIgLnR4dCBmaWxlcyB3aXRoIG11bHRpcGxlIG1vZHVsZXMuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTk6MTYKICAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCk6IGR5bml4IGRvZXNuJ3QgaGF2ZSBuZXQvcm91dGUuaC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNToyMTo1NwogICAgLSAoRkFRKTogRnJvbSBEYXZlIFNoaWVsZHM6IHJlZmVyIHJlYWRlciB0byBhbm90aGVyIGFuc3dlciBhcyB3ZWxsLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjMzOjAzCiAgICAtIChhZ2VudC9taWJncm91cC8qLmMpOiBZTVdSQU1GU0ZOOgogICAgICAtICh5ZXQgbW9yZSB3YXJuaW5nIHJlbW92YWxzIGFuZCBtZW1vcnkgZnVuY3Rpb24gc3RhbmRhcmRpemF0aW9ucyBmcm9tIE5pZWxzKS4KICAgICAgLSBtaW5vciBsaW51eC9uZXRic2QvYnNkaSBjbGVhbiB1cHMuCgpoYXJkYWtlciAxNSBPY3QgOTcgMDk6NTA6MDgKICAgIC0gKHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmMpOiBGcm9tIE5pZWxzOiB3YXJuaW5nIHJlbW92YWxzIGFuZCBzdGFuZGFyZGl6YXRpb24uCgpoYXJkYWtlciAxNSBPY3QgOTcgMDk6NTg6MzYKICAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6IFBhdGNoIGZyb20gTmllbHM6CiAgICAgIC0gd2FybmluZyBmaXhlcy4KICAgICAgLSByZW1vdmUgdGhlIHByaW50ZidzIGZyb20gdGhlIGxpYnJhcnkgYW5kIHNldCBhIHNubXAgJ2Vycm5vJyBlcXVpdmFsZW50LgoKaGFyZGFrZXIgMTUgT2N0IDk3IDEyOjEyOjAyCiAgICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIG5ldyBmdW5jdGlvbjogIHNubXBfcGVycm9yKGNoYXIgKikKICAgICAgLSBmcmVlIGFsbG9jYXRlZCBzcGFjZSBvZiBzbm1wX2RldGFpbCB1cG9uIHVzYWdlIGJ5IHNubXBfYXBpX2VycnN0cmluZygpLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDE4OjQwOjM4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ociopOiBIb3N0IHJlc291cmNlcyBtaWIgZnJvbSBEYXZlIFNoaWVsZC4KICAgICAgLSBtaW5vciBwYXRjaGVzIGJ5IG1lLCBtb3N0bHkgcG9pbnRlciBlcnJvcnMuCiAgICAtIChtZW1vcnkuYyk6IGZpeGVkIGEgbnVsbCBwb2ludGVyIHByb2JsZW0gdW5kZXIgbGludXguCgpoYXJkYWtlciAyMCBPY3QgOTcgMTE6NDU6NTgKICAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDExOjUxOjM0CiAgICAtIChjb25maWcqLCBhZ2VudC9zbm1wKiwgYWdlbnQvbWliZ3JvdXAvKi5bY2hdKToKICAgICAgLSBDcmVhdGVkIGEgbmV3IG1pYm1vZHVsZS5oIGNvbmZpZ3VyYXRpb24gbWFjcm8gY2FsbGVkCiAgICAgICAgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgd2hpY2ggY2FuIGJlIGNhbGxlZCB0byByZXF1ZXN0IHBhcnNpbmcgb2YKICAgICAgICB0aGUgc25tcGQuY29uZiBmaWxlKHMpIG9uIGEgcGVyIG1vZHVsZSBiYXNpcy4KICAgICAgLSBBbGwgcmVsYXRlZCBwYXJzaW5nIGhhcyBiZWVuIHN0cmlwZWQgZnJvbSByZWFkX2NvbmZpZy5jIGFuZCBtb3ZlCiAgICAgICAgdG8gdGhlaXIgY29ycmVjdCBtb2R1bGUgaW5zdGVhZC4KICAgICAgLSBOZXcgZnVuY3Rpb246IGNvbmZpZ19wZXJyb3IoY2hhciAqKTogcHJpbnQgZXJyb3Igd2l0aCBmaWxlICYgbGluZSAjLgogICAgICAtIGJhc2ljIC1XYWxsIGNsZWFudXBzIGluIGhyKiBhcyB3ZWxsIChub3QgbmVhcmx5IGRvbmUgeWV0KS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjowNToxNAogICAgLSAocGFzcy5jKSBkb24ndCBudWxsIGxhc3QgY2hhciBpbiBjb21tYW5kIGxpbmUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6MDY6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIGRvbid0IHJlcG9ydCBhbiBlcnJvciBpZiB5b3UgY2FuJ3QgZmluZCBhIHNubXBkLmNvbmYgZmlsZS4KICAgICAgLSBkb24ndCByZXBvcnQgYWxsIGxpbmVzIGFzIGFuIGVycm9yIChvcHBzKS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjozODozMwogICAgLSAobWliLmMpOiBGcm9tIERhdmU6ICBwYXRjaCBERUZBVUxUX01JQlMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6NDQ6MzcKICAgIC0gKG1pYi5jKTogcGF0Y2ggYWxsIG90aGVyIGVudi12YXJzIHRvIHRha2UgJysnIGluIGZyb250LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjAxOjQ4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MTU6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSwgd29tYmF0LltjaF0pOgogICAgICAtIGRvY3VtZW50YXRpb24gdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgdXNhZ2UuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MTY6NTgKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxODowMTo0NgogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCB1Y2Rfc25tcC5oLCBzbXV4X2dhdGVkLmgpOgogICAgICAtIGNyZWF0ZWQgbmV3IHdyYXBwZXJzIGZvciB0aGUgdmFyaW91cyBtb2R1bGVzIHRvIG1ha2UgdGhlbSBlYXN5IHRvCiAgICAgICAgYWRkIGFuZCByZW1vdmUgYXMgbmVlZGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE5OjQyOjQ2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSBsaW51eCdzIE9TIHR5cGUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTk6NDM6MTMKICAgIC0gKHNubXBfdmFycy5jKTogZGVmaW5lIGF0IGxlYXN0IGJsYW5rIGZ1bmMgbmxpc3RfaW5pdCgpIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEwOjE1OjU0CiAgICAtIChQT1JUSU5HLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEwOjQ1OjQ3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFsbG93IC12IDJoIGFuZCAycCBmb3IgcGFydHkgY29kZS4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMDo1NwogICAgLSAoaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYyk6IGNsb3NlIG9wZW4gZmlsZXMgb24gbGludXguCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDE6MjcKICAgIC0gKE5FV1MpOiBiZWdpbm5pbmdzIG9mIE5FV1MgdXBkYXRlcy4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMjo0NgogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNCApCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MjU6MDMKICAgIC0gKGFnZW50L3JlYWRfY29uZmlnLltjaF0sIHNubXBkLmMsIHNubXBfdmFycy5jLCBtaWJncm91cC8qKToKICAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZy5bY2hdIHVwIGEgbGV2ZWwgdG8gYWx3YXlzIGJlIGNvbXBpbGVkIGluLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjMxOjU0CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kIHNldHVwLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjMyOjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kLi4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozNjozMwogICAgLSAoKi9NYWtlZmlsZS5pbik6IGRpZCBhIG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjM2OjM5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU1ICkKCmhhcmRha2VyIDIyIE9jdCA5NyAxMTo0MDowNgogICAgLSAoY29tbW9uX2hlYWRlci5oLCByZWFkX2NvbmZpZy5jLCBkaXNrLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBUeXBvJ3MgZml4ZWQgYnkgTmllbHMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMDk6NTY6MjYKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwLyouaCk6CiAgICAgIC0gbmV3IGNvbmZpZyBtYWNybzogIGNvbmZpZ19hcmNoX3JlcXVpcmUoYXJjaCwgbW9kdWxlKS4KICAgICAgLSBtb3ZlZCBhcmNoIGRlcGVuZGFudCBtb2R1bGVzIChtZW1vcnksIGhwdXgsIGtlcm5lbF9zdW5vczUpIGxvYWRzCiAgICAgICAgZnJvbSB0aGUgY29uZmlndXJlIGludG8gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAgLSAoaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gdHlwZWNhc3Qga2xvb2t1cCBjYWxscyBmb3IgZnJlZWJzZDIuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MDM6MTUKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wX3ZhcnMuYyk6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHYyaCAtPiB2MnAsIHYyIC0+IHYyYy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDowNDozMwogICAgLSAoYXBwcy8qLmMpOgogICAgICAtIGNoYW5nZXMgZm9yIFdJTjMyIHN1cHBvcnQuCiAgICAgIC0gc3VwcG9ydCBmb3IgY29tbWFuZCBsaW5lIGZsYWdzIHdpdGhvdXQgc3BhY2VzLgogICAgICAtIHYyaCAtPiB2MnAuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTY6NDIKICAgIC0gKHNubXBsaWIvKi5bY2hdKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gY2hhbmdlcyBmb3IgV0lOMzIgc3VwcG9ydC4KICAgICAgLSB2MmggLT4gdjJwLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIGNvbmZpZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSB3aW4zMi5kc3cgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIHdpbjMyLm9wdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIGZpbGUgbGlic25tcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICBmaWxlIGxpYnNubXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wLmRlZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcF9kbGwuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wX2RsbC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICBmaWxlIHNubXBidWxrd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICBmaWxlIHNubXBidWxrd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICBmaWxlIHNubXBnZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgZmlsZSBzbm1wZ2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIGZpbGUgc25tcGdldG5leHQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNwogICAgZmlsZSBzbm1wZ2V0bmV4dC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICBmaWxlIHNubXBzZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgZmlsZSBzbm1wc2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIGZpbGUgc25tcHN0YXR1cy5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICBmaWxlIHNubXBzdGF0dXMucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgZmlsZSBzbm1wdHJhbnNsYXRlLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIGZpbGUgc25tcHRyYW5zbGF0ZS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICBmaWxlIHNubXB3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NTIKICAgIGZpbGUgc25tcHdhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxNzoxMQogICAgLSAoY29uZmlnKikgd2luMzIgaGVhZGVyIGNoZWNrcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxNzo1MAogICAgLSAoYWdlbnQva2VybmVsLmMsIHNubXBfYWdlbnQuYyk6CiAgICAgIC0gRVJST1IoKSAtPiBFUlJPUl9NU0coKS4KICAgICAgLSBmdW50aW9uIHJlbmFtZXMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTg6MTYKICAgIC0gKGFnZW50L21pYmdyb3VwLyouYyk6CiAgICAgIC0gRVJST1IoKSAtPiBFUlJPUl9NU0coKS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMTo1MwogICAgLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gcHV0IHRhYnMgYmFjayBpbiBoZWxwIHN0cmluZy4KICAgICAgLSBwdXQgdmVyc2lvbiBzdHJpbmcgcmVxdWVzdCBiYWNrIGluLgogICAgICAtIG1ha2UgZXJyb3Igc3RyaW5ncyBiZXR0ZXIgYW5kIHB1dCBiYWNrIGluIHBlcmlvZHMuCiAgICAgIC0gZG9uJ3QgYm9tYiBvbiB1bmtub3duIHBhcmFtZXRlcnMgZm9yIGZ1dHVyZSB1c2UuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjI6MjEKICAgIC0gKHNubXBsaWIvc25tcC5jKTogcHV0IHN0cmR1cCBkZWNsYWlyYXRpb24gYmFjayBpbi4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMzoyMAogICAgLSAoc25tcGxpYi9zbm1wX2F1dGguYyk6CiAgICAgIC0gcmVtb3ZlICNpZmRlZiBPTEQgcmVxdWlyZW1lbnQuCiAgICAgIC0gY2hhbmdlIGJhY2sgaW50LT5sb25nIGFyZ3VtZW50IGNoYW5nZSBmb3Igc25tcF9jb21zdHJfYnVpbGQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6Mzc6NDYKICAgIC0gKHNubXBsaWIvc25tcC5oKToKICAgICAgLSBzbm1wIHZlcnNpb24gI2RlZmluZSBjbGFpcmlmaWNhdGlvbiBvbiBmdXR1cmUgaW1wbGVtZW50YXRpb25zLgogICAgICAtIG1vcmUgY2xlYXJseSBzdGF0ZSBwdXJwb3NlIG9mIGZ1dHVyZSBTTk1QVjMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTY6MjY6NTcKICAgIC0gKCopOiBtZXJnZSBvZiBXMzIgcG9ydCBhbmQgbWFpbiB2ZXJzaW9uIGJyYW5jaC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNjozNDo0NQogICAgLSAoc25tcF9hcGkuW2NoXSk6IGZpeCBwZXJyb3IgbG9zc2VzIGZyb20gbWVyZ2UuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6MDQ6NTEKICAgIC0gKGhyXyouYyk6IEVSUk9SIC0+IEVSUk9SX01TRy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzowNToxMgogICAgLSAoc25tcHN0YXR1cy5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYWlyYXRpb24uCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDI6NTUKICAgIC0gKHNubXBfdmFycy5jKTogdHdvIG1vZHVsZXMgZm9yIGV4dGVuc2libGUgY291bnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDM6MjIKICAgIC0gKGFnZW50L21pYmdyb3VwL2hyXyouaCk6IHByb3BlciBpbml0XyBwcm90b3R5cGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQzOjUwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1pc3NpbmcgYSBlbHNlIHN0YXRlbWVudCAoc2lnaCkuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDQ6MjcKICAgIC0gKHNubXBfYXV0aC5jKTogbWVyZ2UgYnVncy4gIE1pc3NpbmcgYnJhY2tldHMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDc6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtZXJnZSBidWdzOiBlbHNlIGNoZWNrIGFnYWluc3QgcGR1IGNvbW1hbmQgdHlwZS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODowMjo1NgogICAgd2luMzIgZmlsZXMKCmhhcmRha2VyIDI3IE9jdCA5NyAxODowNTozNgogICAgLSAod2luMzIpOiAgYWRkIGZpbGVzIG9uIG1haW4gYnJhbmNoLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjE4OjM2CiAgICAtIChzbm1wd2Fsay5jKTogcmVtb3ZlIGdvdHJvb3QgdmFyLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjE4OjU3CiAgICAtIChzbm1wbGliLyouYyk6IHVzZSBzbm1wX3NldF9kZXRhaWwgdG8gaGFuZGxlIG1hbGxvYy9mcmVlIG9mIHNubXBfZGV0YWlsLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjI2OjQxCiAgICAtIChjb25maWd1cmUuaW4pOiBmaXggY29uZmlnX2FyY2hfcmVxdWlyZSBtYWNybyB0byBhY3R1YWxseSB3b3JrLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjMxOjM0CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU2ICkKCmhhcmRha2VyIDI4IE9jdCA5NyAwOTo1NjoxMQogICAgLSAoYWNjb25maWcuaCwgc3lzdGVtLltjaF0sIHNubXAuYyk6IG1vdmUgc3RyZHVwIGRlZiB0byBzeXN0ZW0uW2NoXS4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDozMDo1NQogICAgLSAoYWNjb25maWcuaCwgbWliLmMpOiB1c2UgJzsncyBmb3IgRE9TIGVudiBwYXRocy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDo0MjoyMwogICAgLSAoY29uZmlnKik6IGZpeCBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3MgZm9yIHRoZSAqYnNkIGdyb3Vwcy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDo1NDoyNAogICAgLSAoKi4qLiouKik6IHJlbmFtZSBtYWNybyBfX1AgLT4gX19VQ0RfUCB0byByZWR1Y2Ugc3R1cGlkIGNvbmZsaWN0cy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNTo1MDowNQogICAgLSAoY29uZmlnKiwgcm91dGVfd3JpdGUuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIGZpeCBydGVudHJ5IHByb2JsZW1zIG9uY2UgYW5kIGZvciBwcm9iYWJseSBuZXZlci4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzowOTo1NwogICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6IGRlZmluZSBic2RpIGFnZW50IHR5cGUuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MTA6NTgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IFBhdGNoIGZyb20gTm9idW9fT2thYmVAeW9rb2dhd2EuY28uanA6CiAgICAgIC0gZml4IHVud3JhcHBlZCBmb3BlbigpIGJ5IGFkZGluZyByZXR1cm4gTlVMTCBjaGVjay4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzoxMjowMAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNyApCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NDE6NTQKICAgIC0gKHNubXB0cmFwLmMpOiByZW1vdmUgdW51c2VkIG5saXN0IHN0cnVjdC4KCmhhcmRha2VyIDI5IE9jdCA5NyAwOTo0MjowNwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgc3lzL3NlbGVjdC5oIGZvciBhaXguCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NTc6NDgKICAgIC0gKGRpc2suW2NoXSwgc3RydWN0LmgsIHNlZHNjcmlwdC5pbiwgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBhbGxvdyBhIG1pbmltdW0gcGVyY2VudGFnZSBvbiBkaXNrIHNwYWNlLgogICAgICAgIC0gKHdhcyBvcmlnaW5hbGx5IGEgbWF4aW11bSwgYnV0IEkgY2hhbmdlZCBpdCB0byBtaW5pbXVtIGluc3RlYWQpLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjA2OjExCiAgICAtIChkaXNrLmMpOiBmaXggcG9pbnRlciBwcm9ibGVtcyBmcm9tIG9sZCByZWFkX2NvbmZpZyBmb3JtIHRvIG5ldy4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDowNjozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHJlbW92ZSBzcGFjZSBiZWZvcmUgJSBzaWduLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjI1OjMxCiAgICAtICgqL01ha2VmaWxlLmluLCBtYW4vKik6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIHBhdGhzLgogICAgICAgIC0gKG1vZGlmaWVkIHRvIHBvaW50IGFnZW50IHRvIHNiaW5kaXIgaW5zdGVhZCBvZiBldGNkaXIpLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjQ4OjE4CiAgICAtIChjb25maWcqLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBNb3ZlIHNubXBsaWJwYXRoIHRvIEBkYXRhZGlyQCB3aGljaCBkZWZhdWx0cyB0byAvdXNyL2xvY2FsL3NoYXJlL3NubXAuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6NTQ6MDcKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogb3BwcywgZm9yZ290IHRvIHB1dCBpbiBAZXhlY19wYXRoQC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMToyMDo1NAogICAgLSAoYWNjb25maWcuaCwgYXNuMS5jLCBtaWIuW2NoXSwgcGFyc2UuaCxhcHBzLyosZXJyb3JtaWIuYyxsb2FkYXZlLmMsCiAgICAgICBleHRlbnNpYmxlLmMsIGRpc2suYywgc25tcGRlbHRhKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGhlIG5vdyB3ZWxsa25vd24gTmV0QlNEIGZpeCwKICAgICAgLSBTdW5PUzQgY2MgZG9lc24ndCBsaWtlIHVuc2lnbmVkIGxpdGVyYWxzIG9yIHN0cnRvdWwsCiAgICAgIC0gYWRkZWQgYSBjaGFyIHZlcnNpb24gb2YgIjsiLAogICAgICAtIGFkZGVkIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGV0YwogICAgICAtIGNoYW5nZWQgdGhlIGFwcHMgdG8gcHJpbnQgYWxsIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyciwKICAgICAgLSBjb21wbGV0ZWQgdGhlIGFjY2VzcyBhbmQgc3RhdHVzIHZhbHVlcyBpbiBzbm1wbGliL3BhcnNlLmgKICAgICAgLSBhZGRlZCBhIHJvdWdobHkgcGF0Y2hlZCB2ZXJzaW9uIG9mIHNubXBkZWx0YS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjoyMzoyNgogICAgLSAocGFyc2UuaCk6IFNUQVRVU19LV19PUFRJT05BTCAtPiBTVEFUVVNfT1BUSU9OQUwKCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo0Mzo0NAogICAgLSAoKi4qLiopOiBfX1VDRF9QIC0+IF9fUCwgYW5kIGEgY29uZmlndXJlIGNoZWNrIHRvIGxvb2sgZm9yIGl0LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjU3OjQ4CiAgICAtIChjb25maWcqKTogY2hlY2sgYW5kIGluY2x1ZGUgc3lzL2NkZWZzLmggaW4gY29uZmlnLmguCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NTg6MDEKICAgIC0gKGhvc3RfcmVzLmgpOiBkb24ndCBpbmNsdWRlIGNvbmZpZy5oIHR3aWNlLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDE0OjAwOjM4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU4ICkKCmhhcmRha2VyICA0IE5vdiA5NyAxMjo0NzoxMgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gI2luY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaAogICAgICAtIFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRSAtPiBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUKCmhhcmRha2VyICA0IE5vdiA5NyAxMjo0Nzo1OQogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSBDaGVjayBmb3IgJHByZWZpeCBiZWluZyBkZWZpbmVkIGFzIE5PTkUgZm9yIG90aGVyIHZhcnMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDI6NTcKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBwdXQgc25tcHRyYXBkIGluIEBzYmluZGlyQAoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ0OjU4CiAgICAtIChjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgaHB1eDEwIHJlLWRlZmluaW5nIHByb2JsZW1zLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ1OjIzCiAgICAtIChocl9kaXNrLmMpOiBuZXcgdmVyc2lvbiBmb3IgaHB1eDEwIHN1cHBvcnQgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NjoxNwogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jKTogUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGJ1ZyBmaXhlcyBhbmQgaHB1eDEwIHN1cHBvcnQuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDY6NDYKICAgIC0gKHZhcl9yb3V0ZS5jKTogZnJvbSBEYXZlIFNoaWVsZDogZG9uJ3QgcHJvdG90eXBlIG1hbGxvYy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0ODowNwogICAgLSAoKik6IG1lcmdlIGZyb20gRGF2ZSdzIHByZTYgcGF0Y2hlcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo1MjowMAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgZGlzay5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYyk6CiAgICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjU2OjU4CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKToKICAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIKCmhhcmRha2VyICA1IE5vdiA5NyAxNDowMDowOQogICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbF9zdW5vczUuYywgbWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG9jdGV0IGNvdW50ZXJzIGZvciBzb2xhcmlzLgogICAgICAtIE1ha2VmaWxlLmluIHBhdGNoZXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTQ6NDA6MDcKICAgIC0gKG1lbW9yeS5jKTogcHJvdGVjdCB2bW1ldGVyLmggZnJvbSBtdWx0aXBsZSBpbmNsdXNpb25zIG9uIG5ldGJzZC4KCmhhcmRha2VyICA1IE5vdiA5NyAxNToyOTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOSApCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6MjQ6MjIKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaW51eC9oZHJlZy5oCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6MjU6MzUKICAgIC0gKGhyX3N3cnVuLmMpOiBkb24ndCBwcmludCBhIHZhcmlhYmxlIHRoYXQgZG9lc24ndCBleGlzdCB1bmRlciBsaW51eC4KCmhhcmRha2VyICA3IE5vdiA5NyAxMjoyODowMwogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcGF0Y2ggZnJvbSBOaWVscyBmb3Igc29sYXJpcyA+Mi42LgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM3OjE0CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBVU0lORy4qX01JQl9NT0RVTEUgLT4gVVNJTkcuKl9NT0RVTEUuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTM6Mzc6NDQKICAgIC0gKGhyX25ldHdvcmsuYyk6IGRvbid0IHBhc3MgY2hhciAqKiB0byBpbnRlcmZhY2VzX3NjYW5fbmV4dCgpLgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM4OjM2CiAgICAtIChzbm1wd2Fsay5jKTogc3RvcCBvbiBubyByZXNwb25zZSBmcm9tIGhvc3QuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MTk6MjQKICAgIC0gKGFjY29uZmlnLmgpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZGVmaW5lIF9DUlRJTVAgZm9yIHVuaXggZHVlIHRvIFczMiBiYWQgT1MgZGVzaWducy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToxOTo1OQogICAgLSAoc25tcGdldG5leHQuaCk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgX0NSVElNUCBpbiBmcm9udCBvZiBlcnJubyBkZWNsYXJhdGlvbi4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyMDo1NAogICAgLSAocGFyc2UuW2NoXSwgc25tcF9jbGllbnQuYyk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgX0NSVElNUCBpbiBmcm9udCBvZiBlcnJubyBkZWNsYXJhdGlvbi4KICAgICAgLSBkZWZpbmUgZmluZF9ub2RlIGV4dGVybmFsbHkuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MjI6MDkKICAgIC0gKHdpbjMyLyopOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgc3BlY2lmaWMgY2hhbmdlcy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyODo1OQogICAgLSAoKik6IG1lcmdlIHRvIG1haW4gYnJhbmNoOiAgcGF0Y2hlcyBmcm9tIEpvZSBNYXJ6b3QuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6MTY6NTMKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHdhdGNoIG91dCBmb3IgL3Vzci91Y2IvY2Mgb24gc29sYXJpcyBhbmQgZG9uJ3QgdXNlIGl0LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjM3OjAxCiAgICAtIChORVdTLCBSRUFETUUsIFRPRE8pOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6Mzg6NDkKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTEwICkKCmhhcmRha2VyIDEyIE5vdiA5NyAwNzo0MjoyNAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBXMzIgc3BlY2lmaWMgZml4ZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDg6MjY6NDUKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gRnJlZSBhIHBkdSBpbiBhIHNwb3QgdGhhdCBzaG91bGQgdGVjaG5pY2FsbHkgbmV2ZXIgYmUgbmVlZGVkLCBidXQKICAgICAgICBpcyBuaWNlIGZvciBwZW9wbGUgcmVhZGluZyB0aGUgY29kZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxNzowOAogICAgLSAoRkFRKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE3OjI4CiAgICAtIChtaWJfYXBpLjMpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTg6MDIKICAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIGZvciBsaW51eC9ocHV4MTAgcHJvYmxlbXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MjU6MzAKICAgIC0gKE5FV1MsIFRPRE8pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvYyB1cGRhdGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjc6MDgKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjc6NDYKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI4OjExCiAgICAtIChwYXJ0eV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyOTo0MgogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzA6NTcKICAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB2YXJpb3VzIChyZW1vdmUgdW5uZWVkZWQgdmFycywgZXRjKS4KICAgICAgLSBhZGQgc25tcHRhYmxlLgogICAgICAtIG1ha2Ugc25tcHRyYXBkIG11bHRpLWxpbmd1YWwuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzI6MjIKICAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHYyYyBzdXBwb3J0IGFuZCBhcmd1bWVudCBwYXJzaW5nIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzM6MjAKICAgIC0gKG1hbi9zbm1wZGVsdGEuMSxzbm1wdGFibGUuMSxzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mzg6MzYKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHBhcnNlciBpbXByb3ZlbWVudHMuCiAgICAgIC0gcGFyc2VyIGRpcmVjdG9yeSBjYWNoaW5nLgogICAgICAtIHNhdmVfZGVzY3JpcHRpb25zL21pYl93YXJuaW5ncyBzZXQgZnVuY3Rpb25zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjQ0OjQ3CiAgICAtIChORVdTKTogZG9jIHVwZGF0ZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNToxMDoyNwogICAgLSAoc3lzdGVtLmgpOiBEb24ndCBpbmNsdWRlIGNvbmZpZy5oIQoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjE2OjQ0CiAgICAtIChwYXJ0eV92YXJzLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjIxOjQxCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNTo0MjowMgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE2OjA1OjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMSApCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6Mjc6MTEKICAgIC0gKHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBmdW5jdGlvbiBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjM1OjAwCiAgICAtICgpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAgLSBGaXhlcyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjM1OjI3CiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYywgc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAgLSBGaXhlcyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjQzOjMzCiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IGZpeCBxc29ydCBwYXJhbXMgZm9yIFNUREMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6NDc6NDcKICAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogU1REQyB0eXBvcy4KCmhhcmRha2VyIDE0IE5vdiA5NyAwODozMTo0MQogICAgLSAod29tYmF0LmMpOiBjb2RlIGNvbW1lbnRzIGZyb20gQWxhbiBCYXRpZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAwODozMjoyNgogICAgLSAoUkVBRE1FKTogY29kZXIgbGlzdCB1cGRhdGUuCgpoYXJkYWtlciAxNCBOb3YgOTcgMTI6MjE6MTAKICAgIC0gKHdvbWJhdC5jKTogcXVpY2sgZG9jIGNoYW5nZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAxMjozNToxOQogICAgLSAoRkFRLCBORVdTLCBSRUFETUUpOiBsYXN0IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCgkKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjMgLT4gVjMuMgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjQ4OjA2CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmxpbnV4LmgpOiBQYXRjaCBmcm9tIEplbm5pZmVyIEJyYXk6CiAgICAgIC0gR2V0IGFnZW50IHdvcmtpbmcgb24gbGludXguCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NTA6NDYKICAgIC0gKHNubXBfdmFycy5saW51eC5oKTogUmVtb3ZlZCBub24tbGludXggc3BlY2lmaWMgc3R1ZmYuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NTQ6MzYKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEZpeCBocHV4IHNwZWNpZmljIHByb2JsZW1zLgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjExOjIxCiAgICAtICgqTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAgLSBGaXggYWxsIE1ha2VmaWxlLmluJ3MgdG8gc3VwcG9ydCBhIGRpZmZlcmVudCBzcmMgZGlyLgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjEyOjE5CiAgICAtIChSRUFETUUpOiBVcGRhdGUgcGVvcGxlIHN1cHBseWluZyBwYXRjaGVzIGxpc3QuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTM6MTk6MzcKICAgIC0gKGFsbCAuYyB3aXRoIG1haW4oKSwgc25tcGxpYi8qKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgIC0gTWFrZSBiZXR0ZXIgc3VwcG9ydCBmb3Igc2hhcmVkIGxpYiBwb3NzaWJpbGl0aWVzLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjEwOjExCiAgICAtIChzbm1wX3ZhcnMubGludXguaCk6IEZpeCAjaWZkZWYuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTE6MjQKICAgIC0gKHtsb2NhbCxtYW4sb3Z9L01ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBpbiBmcm9udCBvZiB0YWJzLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjEzOjM0CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZSBub24tc3RhdGljIG1kNWRpZ2VzdCBwcm90b3R5cGUuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTQ6MDUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMSApCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTY6NDI6MDIKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBkZXNjZW5kIHdoZW4gbWFrZSBjbGVhbmluZy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNjo0NDowOAogICAgLSAobWFuL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZml4IHNyY2RpciBwcm9ibGVtcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNzowMDoyNgogICAgLSAoTWFrZWZpbGUuaW4pOiBSZXN0IG9mIFBoaWxpcCdzIHBhdGNoIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMgKHNoIHZhcnMpLgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjQxOjA4CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMsIGFnZW50L21pYmdyb3VwKTogRGF2ZSBTaGllbGQgc3BsaXQgdXAgdGhlCiAgICAgIHNubXBfdmFycy5jIGFuZCByZWxhdGVkIGZpbGVzIGludG8gcGllY2VzIGZvciBlYXNpZXIgbWFuYWdlbWVudC4KICAgICAgVGhlIHJlc3VsdHMgb2YgaGlzIHdvcmsgYXJlIGluIHRoZSBuZXcgYWdlbnQvbWliZ3JvdXAgZGlyZWN0b3J5LgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjQ3OjEzCiAgICAtIChtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gcmVtb3ZlCiAgICAgIEFOU0kgc3BlY2lmaWMgcmVxdWlyZW1lbnRzLgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjUzOjI0CiAgICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiAgTWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzA6MDQKICAgIC0gKGFsYXJtLmMpOiB0eXBlZGVmIGZvciBnZXRTdGF0UHRyKCkuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzA6MzYKICAgIC0gKGV2ZW50LmMpOiBXYXMgcGFzc2luZyBhbiBpbnQgdG8gYmNvcHkgaW5zdGVhZCBvZiAmaW50LgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMxOjI1CiAgICAtIChpY21wLmMpOiBkb24ndCB1c2UgcmV0IHZhcmlhYmxlLCBzaW5jZSBpdCdzIG5vdCBkZWZpbmVkLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMyOjMwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBSZW1vdmUgTUFYX05BTUVfTEVOR1RIIHJlcXVpcmVtZW50cy4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNjoxMTowOQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUyICkKCndoYXJkYWtlICA0IE1hciA5NyAxNTo0NjozMAogICAgLSAoY29uZmlnKiwgbWliZ3JvdXAvTWFrZWZpbGUuaW4pOgogICAgICAtIG1pYmdyb3VwIGNvbXBpbGUgbGlzdCBpcyBidWlsZCBieSBjb25maWd1cmUgYW5kIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgICBieSB0aGUgLS13aXRoLW1pYi1tb2R1bGVzPSJsaXN0IG9mIG1vZHVsZXMiIGNvbW1hbmQgbGluZSB0byBjb25maWd1cmUuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMDk6NDk6NTkKICAgIC0gKGNvbmZpZyosIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIEFkZGVkIC5vIGZpbGUgbGlzdCB0byBhZ2VudC9NYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLgogICAgICAtIG5ldyBmaWxlcyBnZW5lcmF0ZWQgYnkgY29uZmlndXJlOgogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oOiAgQSBsaXN0IG9mIG1pYiAuaCBmaWxlcyBmb3Igc25tcF92YXJzLmguCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVyeSBtb2R1bGUgKm11c3QqIGhhdmUgYSAuaCBmaWxlKQogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbml0cy5oOiBBIGxpc3Qgb2YgaW5pdF93b21iYXQoKSB0eXBlIGZ1bmN0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgcHJlc2VudCBpZiBleGlzdCBpbiB3b21iYXQuYykuCiAgICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2xvYWRzLmg6IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBuZXcgbWFjcm8gaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1pYi5oIGZpbGVzIGNhbGxlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfbG9hZF9taWIoKSwgd2hpY2ggc2ltcGxpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9hZGluZyBvZiB0aGUgbWliIHNlY3Rpb25zLgoKd2hhcmRha2UgIDUgTWFyIDk3IDEwOjAzOjU4CiAgICAtIChzeXN0ZW0uYyk6IHJlbW92ZWQgc3lzdGVtIG5saXN0ICh1bnVzZWQpLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjE3OjQ0CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBFbHd5biBCIERhdmllczoKICAgICAgLSBGaXggYSBQRFUgY2xvbmluZyBidWcuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6MjAKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjIzCiAgICBmaWxlIGtlcm5lbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjQ1CiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODo0OAogICAgZmlsZSBzbm1wZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjM1OjE4CiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMTozNzozNQogICAgLSAoUkVBRE1FKTogQ29udHJpYnV0ZXIgbmFtZSBhZGRpdGlvbi4KCndoYXJkYWtlICA1IE1hciA5NyAxNTowNjo0MQogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6MTM6MzgKICAgIC0gKGFjbF92YXJzLmMpOiBpbmNvcnJlY3RseSBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgZm9yIHdyaXRlX2FjbCgpLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjE1OjU0CiAgICAtIChzbm1wX2FwaS5jKTogZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGluIHNubXBfcGFyc2UuICBQb3NzaWJseSB3cm9uZy4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IFllcC4gSXQgd2FzIHdyb25nLiAgVGVzdGVkIGFuZCB3b3JrcyBub3cuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6MDY6MzQKICAgIC0gKGV4dGVuc2libGUvKiAtPiBtaWJncm91cC8qKTogbW92ZWQgZXh0ZW5zaWJsZSBzdHVmZiB0byBtaWIgbW9kdWxlcy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTowNzowNwogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1vcmUgbm9uLW1pYmdyb3VwIHNwZWNpZmljIGNhbGxzIGFuZCBoZWFkZXJzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjU5OjI4CiAgICAtIChzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvKik6IHN0cmljdC1wcm90b3R5cGluZyBhbmQgY29uZmlnX3JlcXVpcmUoKXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6MDc6NTMKICAgIC0gKG1pYm1vZHVsZS92ZXJzaW9udGFnKTogbW92ZWQgaW50byBwbGFjZSBmcm9tIGV4dGVuc2libGUvCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6MzQ6NTMKICAgIC0gKGhwdXguW2NoXSk6IEFkZGVkIGhwdXggc3BlY2lmaWMgZmlsZXMgZnJvbSBleHRlbnNpYmxlIGRpci4KCndoYXJkYWtlICA3IE1hciA5NyAxMDo0MzowOAogICAgLSAoZXh0ZW5zaWJsZS8qKTogY3ZzIHJlbW92aW5nIGZpbGVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjQ5OjAwCiAgICAtIChtaWJncm91cC9zdHJ1Y3QuaCk6IG1vdmVkIHRvIGhlcmUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTE6NDM6MDUKICAgIC0gKGNvbmZpZyopOiBnZW5lcmF0ZSBhIG1pYl9tb2R1bGVfY29uZmlnLmggd2l0aCBkZWZpbmVzIG9mIHdoYXRzIGJlaW5nIHVzZWQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6Mzk6MjQKICAgIC0gKG1ha2VkZXBlbmQuaW4pOiBuZXcgbWFrZSBkZXBlbmQgc2NyaXB0Cgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDA6NDAKICAgIC0gKHJlbW92ZS1maWxlcyk6IGFkZCBtYWtlZGVwZW5kLmluCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDY6MTUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBGaXggc2Vkc2NyaXB0IGdlbmVyYXRpb24uICBzaWdoLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ3OjQ1CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBleHRlbnNpYmxlLyByZW1vdmVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ4OjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogcmVtb3ZlIGV4dHByb3RvLmggaW5jbHVkZS4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo1MDoxNQogICAgLSAobWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOiBkZXBlbmQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTA6NTIKICAgIC0gKGhwdXguYyk6IGlmZGVmIGEgZmV3IGhlYWRlcnMgZm9yIGNvcnJlY3QgbWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTE6MzAKICAgIC0gKHNubXBsaWIvc25tcC5jKTogcmVtb3ZlIHNlY29uZCBjdHlwZS5oIGluY2x1ZGUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTQ6MDE6NTEKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMyApCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTU6MDE6MDUKICAgIC0gKG1pYmdyb3VwLyopOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTU6MDI6MTgKICAgIC0gKGNvbmZpZ3VyZSk6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KCndoYXJkYWtlICA3IE1hciA5NyAxNjowOTo1OAogICAgLSAoY29uZmlnKik6IG1ha2UgbmV3IGNvbmZpZ3VyZSBvcHRpb25zIHJlc3BlY3QgJChzcmNkaXIpLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE2OjExOjUwCiAgICAtIChjb21tb25faGVhZGVyLmgpOiBjb21tZW50IG91dCBlbmQgb2YgI2VuZGlmLgoKd2hhcmRha2UgMTAgTWFyIDk3IDE2OjU1OjQ2CiAgICAtIChjb25maWd1cmUuaW4pOiBOZXcgY29uZmlndXJlIG9wdGlvbjogIC0td2l0aC1vdXQtbWliLW1vZHVsZXM9Imxpc3QiLgoKd2hhcmRha2UgMTAgTWFyIDk3IDE3OjI4OjI5CiAgICAtIChjb25maWd1cmUuaW4pOiBzcGFjZSBwcm90ZWN0IG1vZHVsZXMgd2hlbiBjaGVja2luZyBmb3Igd2l0aCBncmVwLgoKd2hhcmRha2UgMTEgTWFyIDk3IDA5OjA0OjAzCiAgICAtIChpcC5jKTogZnJlZWJzZDIgcGF0Y2guCgp3aGFyZGFrZSAxMSBNYXIgOTcgMTc6Mzk6MjMKICAgIC0gKG1pYmdyb3VwLyopOgogICAgICAtIHJlbW92ZSB0cmFpbGluZyA7cyBvbiBidW5jaGVzIG9mIGZ1bmN0aW9ucy4KICAgICAgLSBtYWtlIGV2ZXJ5dGhpbmcgYnV0IGludGVyZmFjZXMuYyBjb21waWxlIG9uIGlyaXg2LjMuCiAgICAtIChjb25maWcqLHN5c3RlbS5jKTogdXNlIHVuYW1lIGFuZCBnZXRob3N0bmFtZSBpZiBhdmFpbGFibGUuCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IERvbid0IGNoZWNrIF9LRVJORUwgaWYgaWZuZXQuaWZfbXR1IGFscmVhZHkgd29ya3MuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMDk6Mjg6MDQKICAgIC0gKG1pYmdyb3VwL3NubXAuW2hjXSAtPiBtaWJncm91cC9zbm1wX21pYi5baGNdKTogTW92ZWQgZHVlIHRvIG5hbWUgY2xhc2hlcy4KCndoYXJkYWtlIDEyIE1hciA5NyAxNTo0NzowMAogICAgLSAoY29uZmlndXJlLmluLCBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHJvdXRlX3dyaXRlLltjaF0sCiAgICAgIHZhcl9yb3V0ZS5bY2hdLCBpcC5bY2hdLCBzbm1wLltjaF0gLT4gc25tcF9taWIuW2NoXSk6CiAgICAgIC0gTW92ZWQgc25tcCBtaWIgbW9kdWxlIC0+IHNubXBfbWliIGZvciBuYW1pbmcgY29uZmxpY3RzIHdpdGggc25tcGxpYi4KICAgICAgLSBNb3ZlZCBzbm1wX3Zhcl9yb3V0ZS5jIC0+IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiAgICAgIC0gTW92ZWQgd3JpdGVfcm91dGUuYyAtPiBtaWJncm91cC93cml0ZV9yb3V0ZS5jCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NDg6MzcKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCB1cGRhdGUuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NTU6MjAKICAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IGRvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDEyIE1hciA5NyAxNzoxNToyMAogICAgLSAoc25tcF9hcGkuYyk6IHJldHVybnMgZnJvbSBpbmV0X2FkZHIgYXJlIGluX2FkZHJfdCAodV9pbnQpIG5vdCB1X2xvbmcuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMDk6Mzc6MzcKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTA6MTQ6NTkKICAgIC0gKGV4dGVuc2libGVfc3VidHJlZXMuaCk6IFJlbW92ZWQgZmlsZS4KCndoYXJkYWtlIDEzIE1hciA5NyAxNDozNTowNQogICAgLSAoYWdlbnQvKiwgbWliZ3JvdXAvKik6IG1vdmVkIGFsYXJtLCBjb250ZXh0LCB2aWV3cywgZXZlbnQsIHBhcnR5LAogICAgICBhbmQgYWNsIHZhcmlhYmxlIGdyb3VwcyB0byBtaWJncm91cC8uCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTQ6NDQ6NTUKICAgIC0gKGtlcm5lbF9zdW5vczUuW2NoXSk6IG1vdmVkIHRvIG1pYmdyb3VwLy4KICAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmMpOiBkZWxldGUgZnJvbSBhZ2VudCBkaXIuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6MzU6MjYKICAgIC0gKGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IG1pbm9yIHByb2JsZW1zLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjM2OjE0CiAgICAtICh2aWV3X3ZhcnMuYywgY29udGV4dF92YXJzLmMsIGFjbF92YXJzLmMpOiBkb24ndCBpbmNsdWRlIHNubXB2Ml92YXJzLmguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6NDU6MTQKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3Igc3lzdGVtIGRlcGVuZGVudCBtb2R1bGVzLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjQ2OjE2CiAgICAtICgqL01ha2VmaWxlLmluKTogTmV3IG1ha2UgZGVwZW5kIHJ1bGVzIHRvIHNlcGVyYXRlIHN5c3RlbS9ub24gZGVwZW5kZW50IHN0dWZmLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjA3OjUyCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgYW5kIHJ1bGUgZml4ZXMgYXMgd2VsbC4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjoxMDo1OAogICAgLSAoY29uZmlnKik6IHJlbW92ZSBkdXBsaWNhdGUgZ2V0aG9zdG5hbWUgY2hlY2suCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MTc6NTkKICAgIC0gKGFwcHMvKi9NYWtlZmlsZS5pbik6IGRlcGVuZCBwcm9ibGVtcyBmaXguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTc6MTc6MzIKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGZpeCBwYXRoIHRvIGFsYXJtLmguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTc6NDc6MzIKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAgLSBBIGxhcmdlIG51bWJlciBvZiBwcm9ibGVtcyB3aXRoIHRoZSBMaW51eCBwb3J0CiAgICAgIC0gU29tZSBwcm9ibGVtcyB3aXRoIE5ldEJTRCAxLjJDLCBidXQgaXQncyBzdGlsbCBub3QgcGVyZmVjdAogICAgICAtIE1vcmUgKHN5bWJvbGljKSBkZWJ1ZyBvdXRwdXQgZnJvbSBzbm1wZCwgd2hlbiB1c2luZyAtVi4gLWQgaW1wbGllcyAtVgogICAgICAgIFNob3dzIHlvdSB2YXJpYWJsZSByZXF1ZXN0ZWQgYW5kIHZhbHVlIHJldHVybmVkCiAgICAgIC0gUmV0dXJuIGlwUm91dGVNYXNrIHVuZGVyIFNvbGFyaXMKICAgICAgLSBzbm1wbmV0c3RhdCAtciBzaG93cyBub24tc3RhbmRhcmQgbmV0bWFza3MKICAgICAgLSBzbm1wbmV0c3RhdCAtbyAobmV3KSBzaG93cyBpbnRlcmZhY2Ugb2N0ZXRzLCB3aXRob3V0IGVucXVpcmluZyBmb3IgbXR1CiAgICAgICAgYW5kIG90aGVyIHZhcmlhYmxlcyBub3QgcHJlc2VudCBmb3IgYSBDaXNjbyBGcmFtZS1SZWxheSB2aXJ0dWFsIGNpcmN1aXQKICAgICAgICBpbnRlcmZhY2UKICAgICAgLSBzbm1wbmV0c3RhdCB0Y3AvdWRwIHByaW50LW91dCBoYWQgbnRvaHMvaHRvbnMgaW4gd3JvbmcgcGxhY2VzIGZvciBwb3J0CiAgICAgICAgbnVtYmVycyAoc2hvd3MgdXAgb24gbGl0dGxlLWVuZGlhbiBhcmNoaXRlY3R1cmVzKQogICAgICAtIGFkZHMgYSBtYWtldGFyZ2V0IHNjcmlwdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhcmFsbGVsIHN5bWxpbmtlZAogICAgICAgIHNvdXJjZSBkaXJlY3RvcnkuIFVzZWZ1bCBpZiB5b3VyIG1ha2UgZG9lcyBub3Qgc3VwcG9ydCBWUEFUSAoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjM5OjE1CiAgICAtICh1Y2Qtc25tcC50eHQsIG1pYi50eHQsIE1ha2VmaWxlLmluKTogRG9uJ3QgYnVpbGQgbWliIGZpbGVzIGFueW1vcmUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NDY6MzEKICAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIG1pYnMvLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjQ3OjQ3CiAgICAtIChtaWIudHh0KTogc3RyZWFtZWQgZG93bi4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo1MDowMwogICAgLSAobWlicy97cmZjMTI3MSxzbm1wdjIsdWNkLXNubXB9LnR4dCk6IE5ldyBtaWJzIGRpcmVjdG9yeSBmb3Igc3ViLW1pYnMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTA6NDg6MzUKICAgIC0gKE1ha2VmaWxlLmluLCBjb25maWcqLCBtaWJzL01ha2VmaWxlLmluKTogZW5hYmxlIG1pYnMvIG1ha2UgaW5zdGFsbC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMDo0OTowMwogICAgLSAodWNkLXNubXAudHh0KTogcmVtb3ZlIHRoZSBsYXN0IG9mIHRoZSBzZWQgc2NyaXB0IGRlZnMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MDE6MTkKICAgIC0gKHNubXBkLjEuZGVmKTogVXBkYXRlZCB0byBpbmNsdWRlIC1jLy1DIGFuZCBTTk1QQ09ORlBBVEggZW52IHZhci4KCndoYXJkYWtlIDE0IE1hciA5NyAxMTowNzoxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggc2Vkc2NyaXB0IHRvIGluY2x1ZGUgcyMgYXMgd2VsbCBhcyBzLyBjb21tYW5kcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToxNzowNgogICAgLSAobWFrZWRlcGVuZC5pbik6IHJ1biBvbiBzbm1wbmV0c3RhdCBkaXIgYWxzby4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToxODoxNwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToyMDozOQogICAgLSAoc25tcF92YXJzX2V2ZW50LmgpOiBheGUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MjI6MjkKICAgIC0gKHNubXBfZ3JvdXB2YXJzLmgpOiBheGUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTE6NTkKICAgIC0gKGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbik6IGZpeCB0cmFwIGJ5IGluY2x1ZGluZyBvcHRpb25hbCAubyBmaWxlcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1MzoyMgogICAgLSAoc25tcGQuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gNjRiaXQgZml4OiBnZXRfbXlhZGRyKCkgc2hvdWxkIHJldHVybiBpbnQgbm90IGxvbmcuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTQ6MjIKICAgIC0gKGFjY29uZmlnLmgsIHVjZC1zbm1wLnR4dCk6IHJlY29nbml6ZSBuZXcgaG9zdHMgZm9yIHN5c09iamVjdElkLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjU1OjUwCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTQgKQoKd2hhcmRha2UgMTQgTWFyIDk3IDE2OjE2OjUyCiAgICAtIChtaWJncm91cC9SRUFETUUpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDE4IE1hciA5NyAxNjo1MjozNAogICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxOCBNYXIgOTcgMTY6NTM6MjYKICAgIC0gKEZBUSk6IHNubXAuY29uZiAtPiBzbm1wZC5jb25mCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NDk6NTQKICAgIC0gKG1lbW9yeS5jKTogcHJvdG90eXBlIHdyaXRlIGZ1bmN0aW9uIGJldHRlci4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MDo0OQogICAgLSAoZXhhbXBsZS5jLC5oKTogTmV3IGV4YW1wbGUgbWliIG1vZHVsZSBkdXBsaWNhdGluZyB0aGUgcGFzc3Rlc3QKICAgICAgc2NyaXB0IGluIEMgY29kZS4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MToxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBXYXRjaCBvdXQgZm9yIG11bHRpcGxlIHNwYWNlcyBpbiBDIGRlZnMuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTE6MzMKICAgIC0gKFJFQURNRSk6IHJ1bnMgb24gYnNkaSAyLjEuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMTM6NTY6NTAKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAyNSBNYXIgOTcgMDk6Mzk6MDEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCBzeXNsb2NhdGlvbiBhbmQgc3lzY29udGFjdCBleGFtcGxlcy4KCndoYXJkYWtlIDI1IE1hciA5NyAxMzozMDowNQogICAgLSAoSU5TVEFMTCk6IG1pbm9yIGRvYyB1cGRhdGUgZm9yIG5ldyBmbGFncy4KCndoYXJkYWtlIDI2IE1hciA5NyAxNzowNToxMQogICAgLSAobWliZ3JvdXAvc3lzdGVtLmMpOiByZXBvcnQgYWdlbnQgdXB0aW1lIHJhdGhlciB0aGFuIHN5c3RlbSB1cHRpbWUuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMDg6NDI6MDEKICAgIC0gKEZBUSk6IHZhcmlvdXMgdXBkYXRlcy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTowMjo1NgogICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6MjA6MzAKICAgIC0gKFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jKToKICAgICAgLSBzbXV4IHN1cHBvcnQgZm9yIGdhdGVkIGZyb20gUm9oaXQgRHViZS4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTo0NzowNgogICAgLSAoY29tbW9uX2hlYWRlci5oKTogcmVtb3ZlIGR1cGxpY2F0ZSAod2FybmluZykgVENQIGRlZmluZXMgb24gb3NmNCBzeXN0ZW1zLgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjUxOjQ0CiAgICAtIChzbm1wX2JncC5bY2hdLCBzbm1wX3JpcDIuW2NoXSwgc25tcF9vc3BmLltjaF0pOgogICAgICAtIGNvbmZvcm0gdG8gbmV3IG1vZHVsZSBzdGFuZGFyZHMgb2YgY29kaW5nLgoKd2hhcmRha2UgMjIgQXByIDk3IDE2OjQxOjEwCiAgICAtIChzbm1wX2JncC5jLCBzbm1wX3JpcDIuYywgc25tcF9vc3BmLmMsIHNtdXguW2NoXSk6CiAgICAgIC0gc3RhbmRhcmRpemUgaGVhZGVycyBmb3IgYXV0b2NvbmYuCiAgICAgIC0gc211eF9pbml0KCkgLT4gaW5pdF9zbXV4KCkuCiAgICAgIC0gU01VWERFQlVHIC0+IERPREVCVUcgKC0tZW5hYmxlLWRlYnVnZ2luZyB0dXJucyB0aGlzIG9uIGF1dG9tYXRpY2FsbHkpLgoKd2hhcmRha2UgMjIgQXByIDk3IDE3OjQ1OjA5CiAgICAtIChjb25maWcqLCBzbXV4LmMpOiBDaGVjayBmb3IgaGVhZGVycyBhbmQgZGVmaW5lIEZEX0NPUFkgaWYgbm90IGRlZmluZWQuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMjA6NDk6MTUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNSApCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6Mzg6MTUKICAgIC0gKG1pYi5bY2hdLCBwYXJzZS5bY2hdLCBNYWtlZmlsZS5pbik6IE5ldyBwYXJzZXIgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBSdW4tdGltZSBjb250cm9sIG9mIGluaXRpYWwgbW9kdWxlIGxvYWRpbmcKICAgICAgICAgICAgICAodXNlcyBlbnYgdmFyaWFibGVzIE1JQkRJUlMsIE1JQlMsIGFuZCBNSUJGSUxFKQogICAgICAtIERlZmluZWQgaW50ZXJmYWNlcyBmb3IgbG9hZGluZyBtb2R1bGVzIGFuZCByZXRyZWl2aW5nIGVudHJpZXMKICAgICAgLSBNb2R1bGUgc2NvcGluZyBub3cgaW5jbHVkZXMgVGV4dHVhbCBDb252ZW50aW9ucwogICAgICAtIFRva2VucyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5IG5vIGxvbmdlciByZXF1aXJlIGltcG9ydGluZyB0aGUKICAgICAgICBjb3JyZXNwb25kaW5nIG1vZHVsZXMKCndoYXJkYWtlICA5IE1heSA5NyAyMjo0NjozMAogICAgLSAoc211eC5jLCBjb25maWcqKToKICAgICAgLSBjaGVjayBmb3Igc2d0dHkuaCBhbmQgcHJvdG90eXBlIGJldHRlci4KCndoYXJkYWtlICA5IE1heSA5NyAyMjo0Njo0NgogICAgLSAoVE9ETyk6IFVwZGF0ZS4KCndoYXJkYWtlICA5IE1heSA5NyAyMzo1Mjo0MAogICAgLSAoc211eC5bY2hdKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDowMzozMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nIChtb3N0bHkpLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjI4OjI1CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBuZWdhdGl2ZSBudW1iZXJzIGluIG1pYnMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6NDY6NDQKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjUwOjIwCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcyAoZXZlbiBiZXR0ZXIpLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjQxOjIzCiAgICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkb24ndCBzdWJtaXQgYmxhbmsgYnVnLXJlcG9ydHMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMTY6NDU6MTQKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgdXBkYXRlLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjUyOjExCiAgICAtIChtaWJfYXBpLjMpOiBOZXcgZmlsZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE3OjIzOjIxCiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZGVmYXVsdCB0cmFwIGNvbW11bml0eS4KICAgICAgLSBtdWx0aXBsZSB0cmFwIHNpbmtzLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQzOjU5CiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiAgQlNESTMgc3BlY2lmaWMgaGVhZGVycyBhbmQgZGVmaW5lcy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0NDoxOQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiByZW1vdmVkIENDSEFDSyA/Pz8uCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDg6MTMKICAgIC0gKElOU1RBTEwsIFJFQURNRSwgVE9ETyk6IGRvY3VtZW50YXRpb24gdXBkYXRlLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ5OjIzCiAgICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1pYl9hcGkuMy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo1Mjo0OAogICAgLSAobWlicy91Y2Qtc25tcC50eHQpOiBQYXRjaCBmcm9tIE1hcmlvIERlRmF6aW8gdG8gZml4IHR5cG9zLgogICAgICAtIGNvbXBpbGVzIHVuZGVyIFNOTVBjIDQuMWcuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MjgKICAgIC0gKElGLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MToyOQogICAgLSAodWNkLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMxCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMyCiAgICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzMKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM1CiAgICAtIChJUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzYKICAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM3CiAgICAtIChTTk1QdjItTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM5CiAgICAtIChTTk1QdjItU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQwCiAgICAtIChTTk1QdjItVEMudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDIKICAgIC0gKFNOTVB2Mi1UTS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MwogICAgLSAoVENQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0NQogICAgLSAoVURQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0NgogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0OAogICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDkKICAgIC0gKFJGQzEyNzEtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjUxCiAgICAtIChSRkMxMTU1LVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo1MgogICAgLSAoUkZDMTIxMy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTI6MTIKICAgIC0gKHVjZC50eHQpOiB3aG9vcHMuICBSZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDExOjU3OjEwCiAgICAtIChyZmMxMjcxLnR4dCk6IHJlbW92ZWQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTI6MDI6MjYKICAgIC0gKHNubXB2Mi50eHQpOiByZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEyOjAzOjA0CiAgICAtIChtaWJzL01ha2VmaWxlLmluKTogcmVtb3ZlZCBzbm1wdjIudHh0LCByZmMxMjcxLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNDo0ODo1OQogICAgLSAodWNkLXNubXAudHh0KTogQ2hhbmdlZCBJRCB0byBVQ0QtU05NUAoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjA1OjI4CiAgICAtIChjb25maWcqLCBJTlNUQUxMKTogTmV3IGZsYWdzIHRvIHNldCBwcm9tcHRlZCB2YWx1ZXMgaW5zdGVhZCBvZiBwcm9tcHRpbmcuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MDU6NTMKICAgIC0gKFJFQURNRSk6IGFyY2hpdGVjdHVyZSBsaXN0IHVwZGF0ZS4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTozNjowOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vdmVkIGZyb20gdWNkLXNubXAudHh0LgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM2OjUxCiAgICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBVQ0QtU05NUC1NSUIudHh0Cgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6Mzg6NDcKICAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiB1Y2Qtc25tcC50eHQgLT4gVUNELVNOTVAtTUlCLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNjoyMjoxMwogICAgLSAoY29uZmlnKixtaWIuYyk6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWZhdWx0LW1pYnM9Imxpc3Q6bGlzdCIuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTE6NDE6MDkKICAgIC0gKE1ha2VmaWxlLmluLCBtaWIudHh0KTogcmVtb3ZlZCBtaWIudHh0IGZyb20gZGlzdHJpYnV0aW9uLiAgTm8gbG9uZ2VyIG5lZWRlZC4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzoxMzoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiB3YXJuIGlmIG1pYi50eHQgaXMgaW5zdGFsbGVkIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLgoKd2hhcmRha2UgMTQgTWF5IDk3IDEzOjE4OjAyCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE9kZGJqb3JuIFN0ZWZmZW5zZW46CiAgICAgIC0gUHJvdGVjdCBhZ2FpbnN0IGJhc2ggbmVlZGluZyAnOydzIG9uIG11bHRpcGxlIHN1YmRpciBtYWtlcy4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzo0NToyNAogICAgLSAoc25tcGQuYyk6ICBUeXBlY2FzdCBtYWxsb2MuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTU6MDA6MjIKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNiApCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MjI6MTgKICAgIC0gKGludGVyZmFjZXMuYyk6IHBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiBmb3IgRnJlZUJTRAoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjIzOjI5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggcHVyZWx5IG51bWVyaWMgT0lEcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxMToyODoxNQogICAgLSAoSU5TVEFMTCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcmVmZXJlbmNlIHRoZSBtYWtldGFyZ2V0IHNjcmlwdC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMToyOTozMwogICAgLSAobWliX2FwaS4zKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIE1JQlMgdmFyaWFibGUgY2FuIGJlIHNldCB0byBBTEwuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzA6MDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgaW1wb3J0IGluZGVudGlmaWVycy4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMTowMQogICAgLSAoU05NUHYyLVNNSS50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgY2NpdHQgLT4gMC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMjo1NgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwaW5nIGFuZCBudWxsIGNoZWNraW5nLgogICAgICAtIGlmIE1JQlMgaXMgc2V0IHRvIEFMTCwgcGFyc2UgZXZlcnl0aGluZyBmb3VuZC4KCndoYXJkYWtlIDE1IE1heSA5NyAxNDozNzozOQogICAgLSAocGFyc2UuYyk6IHBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZGVhbCB3aXRoIG11bHRpcGxlIG1vZHVsZSBJRCdzIGJlaW5nIHJlZmVyZW5jZWQgb3Igbm9kZXMgZGVmaW5lZC4KICAgICAgLSBzdXByZXNzICJuYW1lIGNsYXNoIiB3YXJuaW5ncyBmb3IgYW5vbnltb3VzIG5vZGVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE1OjIyOjUxCiAgICAtIChwYXJzZS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEFkZCBuZXcgbm9kZSBzdHJ1Y3R1cmUgZW50cmllcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjowMToxOAogICAgLSAoY29uZmlnKiwgbWliLmMpOgogICAgICAtIENoYW5nZWQgZW52IHZhcmlhYmxlIE1JQkZJTEUgLT4gTUlCRklMRVMgKHNpbmNlIGl0IGlzIGEgbGlzdCBub3cpLgogICAgICAgICh3aWxsIGFjY2VwdCBNSUJGSUxFIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCiAgICAgIC0gQnkgZGVmYXVsdCwgKm5vKiBhZGRpdGlvbmFsIG1pYmZpbGVzIGFyZSBsb2FkZWQgKGllLCBtaWIudHh0IGlzIG5vCiAgICAgICAgbG9uZ2VyIGxvYWRlZCkgYW5kIG11c3QgYmUgdHVybmVkIG9uIHRocm91Z2ggY29uZmlndXJlIG9yIHRoZSBlbnYgdmFyLgogICAgICAtIE5ldyBjb25maWd1cmUgb3B0aW9ucyB0byBzZXQgZGVmYXVsdCBNSUJTLCBNSUJGSUxFUywgTUlCRElSUy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjoyMjoxOQogICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgIC0gRGlzcGxheSBkZWZhdWx0cyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjI2OjEyCiAgICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAgLSBXb3JkaW5nIGFuZCBvcmRlciBjaGFuZ2VzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6NDM6MzcKICAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc2VuOgogICAgICAtIEZpeCB1ZHBfaW5wY2Igc3RydWN0dXJlcy4KCndoYXJkYWtlIDE2IE1heSA5NyAxMToyNTozMAogICAgLSAocGFyc2UuYyk6IFByb3RlY3QgbWFsbG9jIGFnYWluc3QgMCBleHRlcm5hbCBpbXBvcnRzLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjAzOjM1CiAgICAtICh1ZHAuYyk6IE9ubHkgZG8gTWFydGluIEphY29ic3NlbidzIGZpeGVzIGZvciBmcmVlYnNkMi4KCndoYXJkYWtlIDIwIE1heSA5NyAwODoxODo0OQogICAgLSAoU05NUHYyLVRDLnR4dCk6IENvbW1lbnQgb3V0IE9iamVjdFN5bnRheCBpbXBvcnQuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTk6MTIKICAgIC0gKHBhcnNlLmMpOiBwcm90ZWN0IGFnYWluc3QgMCBpbXBvcnQgY2FsbHMuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTk6MjgKICAgIC0gKG1pYi5jLCBzbm1wX2F1dGguYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTA6MDg6MjUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNyApCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTE6MjQ6MjcKICAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOiAgRml4IG15IGNwcCBzdHVwaWRpdHkuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTY6NTA6MTgKICAgIC0gKFRPRE8pOiBzbm1wc2V0IHNob3VsZCBjaGVjayBhZ2FpbnN0IHNpemUgZGVmaW5lZCBpbiBtaWIuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTY6NTA6NTUKICAgIC0gKHBhcnNlLmMpOiBjb2RlIGZyb20gRGF2ZSBTaGllbGQ6IGFkZCBiYWNrIGluIGZpbmRfbm9kZSgpIGZvciBwZXJsIHVzYWdlLgoKd2hhcmRha2UgMjEgTWF5IDk3IDEwOjEzOjM4CiAgICAtIChORVdTKTogVXBkYXRlIGZvciAzLjIuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTU6Mzg6MzIKICAgIC0gKE5FV1MpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCndoYXJkYWtlIDIxIE1heSA5NyAxNTo0MDozMQogICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCgp3aGFyZGFrZSAyMiBNYXkgOTcgMTM6MTM6NTkKICAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IHJlc3RvcmVkLiAgR290IHRydW5jYXRlZC4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNToxNAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBTZXQgZGVmYXVsdCBNSUIgbGlzdC4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNjoxNwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGlhbm5lcyBwcm9ibGVtcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNzowMgogICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dCk6IEZyb20gTmllbHM6IGNoYW5nZSBpbXBvcnQgY2xhdXNlcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNzozOQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGllbm5lcyBwcm9ibGVtcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozODoxMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IG11bHRpcGxlIGZyZWVzIGluIHYyIHBkdSdzLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjQwOjA5CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBTTk1QIHBlcmwgYWdhaW4uCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6NDA6MzIKICAgIC0gKHNubXBfYXBpLmgpOiBDaGFuZ2UgdHJhcCB0eXBlcyBmcm9tIGludCB0byBsb25nLgoKd2hhcmRha2UgMjMgTWF5IDk3IDE2OjIzOjU2CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTggKQoKd2hhcmRha2UgMjMgTWF5IDk3IDE2OjM0OjMzCiAgICAtIChtaWJfYXBpLjMpOiBNb2RpZml5IHRvIG5vdGUgZGVmYXVsdCBtaWJzLgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjUwOjIwCiAgICAtIChJTlNUQUxMLCBjb25maWd1cmUpOiBkZWZhdWx0IG1pYnMgbGlzdGVkIGNvcnJlY3RseS4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1MjoxMgogICAgLSAoc25tcF9hcGkuaCk6IHRyYXAgbG9uZydzIGJhY2sgdG8gaW50cywgYmFkIHNvbHV0aW9uLgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjU2OjE5CiAgICAtIChzbm1wY2hlY2suZGVmKTogbmV3IHZhcmlhYmxlcyB0byBzZXQgd2Fsay9nZXQvc2V0IGNvbW1hbmQgbGluZSB1c2FnZS4KCndoYXJkYWtlIDI2IE1heSA5NyAxMTozODo0MQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbmllbHMgQmFnZ2VzZW4gdG86CiAgICAgIC0gY2xvc2UgbWliZmlsZXMgZm9yIE1JQlM9QUxMLgogICAgICAtIEFsbG93IFNZTlRBWCBEaXNwbGF5U3RyaW5nIChTSVpFKDEuLjI1NSkpIGluc2lkZSBPQkpFQ1QtVFlQRS4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjIuMSAtPiBWMy4xLjMKCndoYXJkYWtlIDEwIEphbiA5NyAwODo0Mzo0MgogICAgLSAoQ09QWUlORyk6ICBVcGRhdGUgZm9yIDk3LgoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQ2OjAwCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIC9kZXYva3N5bXMgZm9yIHNvbGFyaXMga2VybmVsLgoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQ2OjM2CiAgICAtIChzbm1wdHJhcGQuYyk6IFJlbW92ZSBicm9rZW4gRkRfU0VUIGNvZGUuCgp3aGFyZGFrZSAxNCBKYW4gOTcgMTY6NDU6MzMKICAgIC0gKFBPUlRJTkcsIFJFQURNRSwgVE9ETyk6ICBBZGRlZCB1Y2Qtc25tcC1jb2RlcnMgYXMgZGVmYXVsdCBtYWlsIGFkZHJlc3MuCgp3aGFyZGFrZSAxNyBKYW4gOTcgMDk6Mjg6NTYKICAgIHBhdGNoIG5pZWxzLjAKCndoYXJkYWtlIDE3IEphbiA5NyAxMTo1MTo0MAogICAgLSAoc25tcGQuYywgZXh0ZW5zaWJsZS5jKToKICAgICAgLSBOZXcgYXJnIC1jIEZJTEU6ICAJICAgUmVhZCBGSUxFIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGFzIHdlbGwuCiAgICAgIC0gTmV3IGFyZyAtQzogICAgICAgCSAgIERvbid0IHJlYWQgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgICAtIE5ldyBlbnYgU05NUENPTkZQQVRIOiAgUmVhZCBzbm1wZHssLmxvY2FsfS5jb25mIGZpbGVzIGluIDogc2VwZXJhdGVkIHBhdGguCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTE6NTg6NDYKICAgIC0gKHNubXBkLmMpOgogICAgICAtIFVzYWdlKCkgdXBkYXRlIGFuZCB2ZXJzaW9uIHByaW50b3V0IHVwZGF0ZS4KCndoYXJkYWtlIDE3IEphbiA5NyAxNDo1NToyOAogICAgRGF2ZSBTaGllbGQgcGF0Y2hlcwoKd2hhcmRha2UgMjAgSmFuIDk3IDExOjE3OjUzCiAgICBOaWVsJ3MgcGF0Y2hlcyBpbnRlZ3JhdGVkCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6MDk6MjUKICAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gaW1wbGVtZW50ZWQ6IGludGVyZmFjZXMuaWZUYWJsZS5pZkVudHJ5LmlmU3BlY2lmaWMsCiAgICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNYXNrICwKICAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgIHVkcC51ZHBUYWJsZS4KICAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgIC0gaXBOZXRUb01lZGlhLgogICAgCiAgICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAgLSBsaW51eCBhcHBsaWNhdGlvbiBzdXBwb3J0LgogICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgIC0gTUlCIHBhcnNlciBmaXhlcy4KICAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6MjI6NTMKICAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgLSAoc25tcF9jbGllbnQuYyk6IFdhaXQgMTIwIHNlY29uZHMgYmVmb3JlIHJldHVybmluZy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTozNzowOAogICAgLSAoY29uZmlnKik6IEF1dG9oZWFkZXIgaXMgZHVtYjogIFB1dCBtYWNybyBkZWZpbmVzIGJlbG93ZSBAQk9UVE9NQCBzeW1ib2wuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6Mzg6NTkKICAgIC0gKHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgQU5TSSBjcHAgI2VsaWYncy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1MDozNwogICAgLSAoc25tcF92YXJzLmMpOiBic2RpICNpZmRlZiBmaXhlcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1NTo0NQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgICAtIGFkZCBic2RpIHRvIHNvbWUgI2lmZGVmcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1ODo1MQogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAgLSB3YXRjaCBvdXQgZm9yIHN0cmluZyBsZW5ndGhzIG9uIHZlcnNpb24gZGVzYyBhbmQgc3lzbmFtZS4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjozODoyMAogICAgcGF0cmljZS4xIHBhdGNoCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NDM6MjUKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfY2xpZW50LltjaF0pOgogICAgICAtIFBhdGNoIGZyb20gUGF0cmljZSBWQU5BQ0tFUiA8dmFuYWNrZXJAd29ybGRuZXQuZnI+OgogICAgICAgIC0gZml4IHJlcXVlc3QgZGVsZXRpb25zIGluIHNubXBfcmVhZCgpLgogICAgICAgIC0gYWRkZWQgcmV0dXJuIGFyZ3VtZW50IHRvIHNubXBfYWRkX251bGxfdmFyKCkuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NTk6MDIKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gc3hqemhhbmdAc3NzLnNzaTEuY29tOgogICAgICAgIC0gZml4IGRpc2sgcmVwb3J0aW5nIG9uIHN1bm9zIDQuMS4zIHdpdGggT0RTIDEuMC4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjo1OTo1NgogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUxICkKCndoYXJkYWtlIDIxIEphbiA5NyAwODozMzowNAogICAgLSAocmVhZF9jb25maWcuYyk6IFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPjoKICAgICAgLSAjaWYgRE9ERUJVRyAtPiAjaWZkZWYgRE9ERUJVRy4KCndoYXJkYWtlIDIxIEphbiA5NyAwODozMzo1MgogICAgLSAoc25tcGQuYyk6IHJlbW92ZSBzZWNvbmQgY2hhciBkZWZpbml0aW9uLgoKd2hhcmRha2UgMjEgSmFuIDk3IDA4OjM0OjMyCiAgICAtIChzbm1wX2NsaWVudC5oKTogcmVtb3ZlIHNlY29uZCAod3JvbmcpIGZ1bmN0aW9uIHByb3RvdHlwZS4KCndoYXJkYWtlIDIxIEphbiA5NyAwOToxNzo0MgogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOgogICAgICAtIFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPgogICAgICAgIC0gaGFuZGxlIG11bHRpcGxlIGludGVyZmFjZSBuYW1lcyA+IDEwIHByb3Blcmx5LgoKd2hhcmRha2UgMjkgSmFuIDk3IDEwOjQ3OjQwCiAgICBidWcgcmVwb3J0aW5nIHNjcmlwdCBhZGQKCndoYXJkYWtlIDI5IEphbiA5NyAxMjowNzowMAogICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgLSBBbHdheXMgdXNlIG11bHRpcGFydDogdmVyc2lvbiBpbmZvIGFuZCBjb25maWcuY2FjaGUgYXJlIG9uZS4KICAgICAtIHJlLWFycmFuZ2VkIGEgYml0LgogICAgIC0gQWRkZWQgaW50cm9kdWN0aW9uLgogICAgIC0gR3Vlc3MgYXQgZG9tYWluIG5hbWUgaWYgcG9zc2libGUuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDc6NTkKICAgIC0gKGFjY29uZmlnLmgpOgogICAgIC0gU05NUEJMT0NLID0gIVNOTVBCTE9DSwoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA5OjA1CiAgICAtIChhY2xvY2FsLm00KTogRml4IGNoZWNrX3N0cnVjdF9mb3IgdG8gZGVmaW5lIHRoaW5ncyBjb3JyZWN0bHkuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTA6MjgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBwcyBvcHRpb25zIHRvIGNoZWNrIGZvci4KCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMTowNAogICAgLSAoRkFRKTogcmV2aXNpb24gb25lIQoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjExOjI5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogdXBkYXRlCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6NTg6NDYKICAgIC0gKGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCB2YXJpb3VzIHdhcm5pbmdzL2Vycm9ycy4KICAgICAgLSBJbXBsZW1lbnQgcmVhbCB0cmFwcy4KCndoYXJkYWtlIDI5IEphbiA5NyAxMzowMzoxNQogICAgLSAodmVyc2lvbnRhZyk6IE1vZGlmeSAuLi8uLi9idWctcmVwb3J0IGFzIHdlbGwuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTM6MDg6MTEKICAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgICAtIGNoYW5nZSB0byBhZGRyZXNzIChiYWNrKSB0byB1Y2Qtc25tcC1jb2RlcnMuCiAgICAgIC0gQWRkIGEgdHJhcCBvbiBzaWduYWxzIHRvIHJlbW92ZSB0bXAgZmlsZXMuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMDk6NTg6MTAKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Iga3N0YXQuaCBhbmQgaWYgc3lzY3RsIGNhbiByZWFkIHRoZSBib290dGltZS4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDowMTo1OQogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb246CiAgICAgIC0gQ2hhbmdlIHNvbWUgc3lzdGVtIHNwZWNpZmljIGlmZGVmcyB0byBDQU5fVVNFX1NZU0NUTC4KICAgICAgLSBGaXggY29tcGxpYXRpb24gZXJyb3JzIG9uIGJzZGkyLgogICAgICAtIEZpeCByb3V0aW5nIHRhYmxlcyBmb3Igc2ltaWxhci4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDo0OTowNwogICAgLSAodmVyc2lvbnRhZyk6IHVoLCBjb21taXQgaXQgYWdhaW4uCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NTA6MDQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZmlyZSBvZmYga3NoIGlmIGhwdXggJiYgc2guCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NTk6NDMKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hhbmdlZCBhcmNoIHRvIGhwcGEgYW5kIG1ha2Ugc3VyZSAvYmluL2tzaCBleGlzdHMuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTE6MDM6MTEKICAgIHZlcnNpb24gdGFnIHVwZGF0ZQoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjAyOjEyCiAgICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBkb21haW4gbmFtZSBmaXggYW5kIGVkaXRvciBib21iIG91dC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMDowMzoxMAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNvbW1lbnQgb3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW0gbGluZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDY6MDIKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gQ2hlY2sgZm9yIHdob2FtaSwgbG9nbmFtZS4KICAgICAgLSBEb24ndCBwYXNzIG51bGwgYXJncyB0byBrc2guCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDc6MDQKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZAogICAgICAtIE1hcmsgc3R1ZmYgZm9yIGxhdGVyIGNoYW5nZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDg6MDYKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiAgVXNlIENBTl9VU0VfU1lTQ1RMIGluc3RlYWQgb2YgYnNkbGlrZS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMTo1MDoyMwogICAgLSAoY29uZmlnKik6CiAgICAgIC0gQ2hlY2sgZm9yIGlyaXggNi4yIGhlYWRlcnMuCiAgICAgIC0gQ2hlY2sgaWYgX0tFUk5FTCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBpcml4IGFuZCBpZm5ldCB1c2FnZS4KICAgICAgLSBVc2UgdGhlIGZvdW5kIFVOQU1FIHByb2dyYW0gaW5zdGVhZCBvZiBhc3N1bWluZyB3ZSBoYXZlIGl0LgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjQ0OjUxCiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogdHlwbzogIG5lZWRzIGEgc3BhY2UgYmV0d2VlbiAnc3RhdGljJyBhbmQgJ3N0cnVjdCcuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NDc6NTgKICAgIC0gKHNubXBfdmFycy5jKTogYWRkIHNvbWUgaXJpeCBhcHByb3ByaWF0ZSBpbmNsdWRlcy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo1MTowNAogICAgLSAoUkVBRE1FKTogcmVtb3ZlIHByb2plY3QgaGlzdG9yeS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzoxNToxMQogICAgLSAoUkVBRE1FKToKICAgICAgLSBhZGRlZCBGQVEgcG9pbnRlci4KICAgICAgLSBEYXZlJ3MgRW5nbGlzaCBwb2ludGVycyAoaWUsIGhlIHByb29mZWQgaXQgYW5kIEksIHVoLCBkb24ndC4uLikuCiAgICAgIC0gc3dpdGNoIGZ0cCBtaXJyb3IuCiAgICAgIC0gYnVnLXJlcG9ydCBzY3JpcHQgbWVudGlvbmVkLgogICAgICAtIEkgLT4gV2UsIG1lIC0+IHVzLi4uCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6MzM6MTEKICAgIC0gKFJFQURNRSwgTkVXUywgVE9ETyk6IFVwZGF0ZSBmb3IgMy4xLjMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6NTM6MDQKICAgIC0gKGJ1Zy1yZXBvcnQpOiBtb3ZlIGNvbmZpZy5jYWNoZSB0byBlbmQgb2YgbWVzc2FnZS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzo1NTowNQogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUzICkKCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNTowMgogICAgLSAoRkFRKTogRGF2ZSdzIGxhdGVzdCByZXZpc2lvbi4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNTozNwogICAgLSAoVE9ETyk6IEFkZGVkIHN1Z2dlc3Rpb25zIGZyb20gdWNkLXNubXAtY29kZXJzLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM2OjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEZpeCBocHV4IHByb2JsZW1zLCAqYWdhaW4qLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM3OjI2CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gU2ltb246IGNvbW1lbnQgI2lmZGVmIGVuZGluZ3MgZm9yIEFOU0kgY29tcGxpZXJzLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjQxOjM5CiAgICAtIChGQVEpOiBBZGRlZCBUT0MgYW5kIGF1dG9yIG5vdGVzIDstKS4KCndoYXJkYWtlICA1IEZlYiA5NyAxNjozMzowMQogICAgLSAoRkFRKTogRGF2ZSB1cGRhdGVkIGFyY2hpdGVjdHVyZSBsaXN0cy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNjozMzozMgogICAgLSAoVE9ETyk6IG1pc2MgcmVxdWVzdGVkIGFkZGl0aW9ucy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzowNzoyNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQdXQgL2Rldi9rc3ltcyBhaGVhZCBvZiAva2VybmVsL3VuaXguCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MTE6MTUKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXAgbWliIGdyb3VwIGNsZWFudXBzLgogICAgICAtIHRyYXAgZ2VuZXJhdGlvbiBjbGVhbnVwcy4KICAgICAgLSBhZGRlZCBtYW4gZW50cmllcyBmb3IgdHJhcCBnZW5lcmF0aW9uLgogICAgICAtIGltcHJvdmVkIGFnZW50IGRlYnVnZ2luZyBvdXRwdXQgd2l0aCBhZ2VudCdzIC1kIGZsYWcuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MTM6MDkKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggbmxpc3QgcHJvYmxlbXMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjA6MTAKICAgIC0gKGJ1Zy1yZXBvcnQpOiBDaGFuZ2Ugc3ViamVjdCBsaW5lIHRvIHNob3J0ZW4gYW5kIGZvcmNlIGJldHRlciBkZXNjcmlwdGlvbi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyMzo0MQogICAgLSAodGNsLCB0aywgc25tcHRjbCk6IE51a2VkLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjI1OjAzCiAgICAtIChORVdTKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6Mjk6NTQKICAgIC0gKE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHRjbCBzdHVmZi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzo0MTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmU0ICkKCndoYXJkYWtlIDEwIEZlYiA5NyAwOToyMjowMwogICAgLSAoRkFRKTogRGF2ZSBTaGllbGRzJyBhZGRpdGlvbnM6ICBmaW5kaW5nIG1vcmUgaW5mby4KCndoYXJkYWtlIDEwIEZlYiA5NyAwOToyMjo1MwogICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUmVtb3ZlIG1hbGxvYyBwcm90b3R5cGUsIG5vdyBpbiBzdGRsaWIuaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMiAtPiBWMy4xLjIuMQoKd2hhcmRha2UgIDUgRGVjIDk2IDA5OjEzOjU2CiAgICAtIChpZi5jKTogI2lmbmRlZiAtPiAjaWZkZWYgZm9yIHNpZ3NldC4KIAp3aGFyZGFrZSAgNSBEZWMgOTYgMDk6MTQ6NTkKICAgIC0gKG1kNS5jKTogcmVtb3ZlIGFuc2kgc3BlY2lmaWMgQyBmZWF0dXJlcyAodW5zaWduZWQgY29uc3RhbnRzKS4KIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjEgLT4gVjMuMS4yCgp3aGFyZGFrZSAxNyBPY3QgOTYgMDc6MDI6NTgKICAgIHZlcnNpb24gdGFnICggMy4xLjEuQlNESSApCgp3aGFyZGFrZSAzMCBPY3QgOTYgMTM6NDc6MjEKICAgIC0gKFBPUlRJTkcsUkVBRE1FKTogQWRkIGEgbmV3IFBPUlRJTkcgZmlsZSB0byByZWZlcmVuY2UgYXV0b2NvbmYgcGxlZS4KCndoYXJkYWtlIDMwIE9jdCA5NiAxMzo0OTowOQogICAgLSAoY29uZmlnKiwgZWNlLW1pYi5kZWYpOgogICAgICAtIENoYW5nZSBleHRlbnNpYmxlIG1pYiBsb2NhdGlvbiB0byB1Y2RhdmlzIGVudGVycHJpc2UgbWliOiAyMDIxLgogICAgICAtIFJlbW92ZSBhc3NvY2lhdGVkIHByb21wdGluZyBmcm9tIGNvbmZpZ3VyZSBzY3JpcHQgYW5kIGV0Yy4KCndoYXJkYWtlIDMxIE9jdCA5NiAxNzowNjoxNgogICAgLSAocmVhZF9jb25maWcuYyk6IG51bWRpc2tzIHdhcyBiZWluZyBpbmNyZW1lbnRlZCBiZWZvcmUgbGFzdCB1c2FnZS4KCndoYXJkYWtlICAxIE5vdiA5NiAwODo1NDoxMQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gIDxzaW1vbkBzd2l0Y2guY2g+OgogICAgICAtIGFzbl9idWlsZF91bnNpZ25lZF9pbnQsIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NDoKICAgICAgICAtIERvbid0IHRyeSB0byBzdHJpcCBGRnMgZnJvbSB0aGUgaGlnaCBlbmQgb2YgdW5zaWduZWQgdmFsdWVzLgogICAgICAgIC0gU2tpcCB0aGUgc3RyaXBwaW5nIGNvZGUgZW50aXJlbHkgaWYgd2UgaGF2ZSB0byBhZGQgYSBudWxsIGJ5dGUuCgp3aGFyZGFrZSAgNCBOb3YgOTYgMDk6MzA6NDYKICAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiAgTW9yZSBpbmNsdWRlIGNoZWNrcyBmb3IgbGludXguCgp3aGFyZGFrZSAgNCBOb3YgOTYgMTA6MDg6NDkKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Igbmxpc3QgaW4gLWxtbGQgKGlyaXgpLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjE2OjQ1CiAgICAtIE5ldEJTRCAzLjEuMC4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOToyNDoyMwogICAgLSBOaWVscyAzLjEuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MzU6NTIKICAgIC0gQlNEaTIgMy4xLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjU3OjE2CiAgICAtICh2ZXJzaW9udGFnKTogT25seSB0YWcgcmVsZWFzZSB2ZXJzaW9ucyAoRXh0KikuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMTQ6MTY6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogQ2hhbmdlZCBkZWZhdWx0IFNOTVBWMkFVVEggdG8gU05NUFYxLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE2OjM5CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogaWZkZWYncyBhcm91bmQgc3RyaW5ncy5oLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE3OjE3CiAgICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIHR5cG9zLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE5OjMzCiAgICAtIChtaWIuYyk6IHR5cGVjYXN0IGZvciBzcHJpbnRfb2JqaWQoKS4KCndoYXJkYWtlICA4IE5vdiA5NiAxNzowMzo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBDcmVhdGVkIGEgJ3RvdWNoaXQnIHRvIHRvdWNoIGNvbmZpZyBmaWxlcyBwcm9wZXJseS4KCndoYXJkYWtlICA4IE5vdiA5NiAxNzowNjo0NgogICAgLSAoTWFrZWZpbGUuaW4pOiBGaXhlZCAndG91Y2hpdCcuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTQ6NTAKICAgIC0gKGV4dGVuc2libGUuYyk6IFVzZSBzdGF0ZnMgaWYgc3RhdHZmcyBpcyB1bmF2YWlsYWJsZS4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNjoyMgogICAgLSAoc25tcF92YXJzLmMpOgogICAgICAtICNpZmRlZiB0eXBvLgogICAgICAtIHByb3RvdHlwZSBmb3IgSW50ZXJmYWNlX1NjYW5fSW5pdCgpLgogICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AgYmVmb3JlIHVzaW5nLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE3OjM2CiAgICAtIChjb25maWcqKToKICAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wLgogICAgICAtIENoZWNrIGZvciBzeXMvdmZzLmguCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MjQ6MjQKICAgIC0gKHNubXB0cmFwLmMsIGluZXQuYywgcm91dGUuYyk6IHR5cGVjYXN0aW5nIHdhcm5pbmcgZml4ZXMuCgp3aGFyZGFrZSAxNSBOb3YgOTYgMTY6NDM6MzMKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IE1ha2UgdW5hbWUgY2FsbHMgd29yayBjb3JyZWN0bHkuCgp3aGFyZGFrZSAxNSBOb3YgOTYgMTY6NDQ6MTEKICAgIC0gKHBhcnNlLmMpOiAgQWRkIGJhY2sgaW4gInJlYWRpbmcgbWliLi4uIiBkZWJ1Z2dpbmcgc3RhdG1lbnRzLgoKd2hhcmRha2UgMjIgTm92IDk2IDA4OjE4OjI5CiAgICAtIChzbm1wX3ZhcnMuYyk6IFRyYXNoIGludGVyZmFjZSBjYWNoaW5nLgoKd2hhcmRha2UgMjIgTm92IDk2IDA5OjA2OjEwCiAgICAtIChzbm1wX3ZhcnMuYyk6IE1lcmdlIGZyb20gRnJlZUJTRDItMy0xLTEuCiAgICAgIC0gQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgoKd2hhcmRha2UgMjIgTm92IDk2IDA5OjE0OjIyCiAgICAtIChjb25maWcqKTogQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgoKd2hhcmRha2UgMjIgTm92IDk2IDExOjM1OjI5CiAgICAtIChhZ2VudC9leHRlbnNpYmxlLyouYywgbmV3OiBleHRwcm90by5oKTogIFJlbW92ZWQgYWxsIC1XYWxsIHdhcm5pbmdzIQoKd2hhcmRha2UgMjIgTm92IDk2IDE0OjM4OjA1CiAgICAtIChjb25maWcqLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogVXBncmFkZWQgdG8gYXV0b2NvbmYgMi4xMS4KCndoYXJkYWtlIDIyIE5vdiA5NiAxNToxMDozNgogICAgLSAoZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogcmVtb3ZlZCBtb3JlIC1XYWxsIHdhcm5pbmdzLgoKd2hhcmRha2UgMjQgTm92IDk2IDE2OjI1OjA3CiAgICAtIChrZXJuZWwuYywgY29uZmlnKiwgSU5TVEFMTCk6ICBOZXcgY29uZmlndXJlIHN3aXRjaDogIC0td2l0aG91dC1yb290LWFjY2Vzcy4KICAgICAgLSBUaGUgYWdlbnQgZG9lc24ndCBleGl0IGlmIGl0IGNhbid0IG9wZW4gL2Rldi9rbWVtLgoKd2hhcmRha2UgMjQgTm92IDk2IDE2OjQ1OjI3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4yLnByZTEgKQoKd2hhcmRha2UgMjUgTm92IDk2IDA4OjQ0OjAzCiAgICAtICh7YWdlbnQsYXBwc30vTWFrZWZpbGUuaW4pOiBQdXQgbGlic25tcC5hIGluIGZyb250IG9mIC1sIGxpYnMuCgp3aGFyZGFrZSAyNSBOb3YgOTYgMDk6MTU6NTcKICAgIC0gKGNvbmZpZyosIHNubXBfaW1wbC5oKTogTW92ZWQgdm9pZCAtPiBjaGFyIGRlZmluZSB0byBhIGNvbmZpZ3VyZSB0ZXN0LgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjAyOjA2CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gQ2hhbmdlIGNvbW1lbnRzIHRvIHJlZmxlY3Qgd2hhdCBpdHMgYWN0dWFsbHkgbG9va2luZyBhdC4KICAgICAgLSBSZW1vdmUgaWZkZWYgYXJvdW5kIGlmbmV0IGRlY2xhcmF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowMzo0NwogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBSZW1vdmUgcmV0dXJuKDApIG9uIHZvaWQgaW5pdF9leHRlbnNpYmxlKCkuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDY6MDQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRGVmYXVsdCBzeXNsb2MgVUNEYXZpcyAtPiBVbmtub3duLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjIxOjIwCiAgICAtIChJTlNUQUxMKTogVHlwbzogIDMuMS4zIC0+IDMuMC4zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjIxOjM0CiAgICAtIChSRUFETUUpOiBVcGRhdGUuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MzQ6MTIKICAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIFdhdGNoIG91dCBmb3IgaW50ZXJmYWNlIG5hbWVzIHdpdGggJyAnIGluIHRoZW0uCiAgICAgIC0gUmVzZXQgc2lnbmFsIG9uIEJTRCBzaWduYWwgaW1wbGVtZW50YXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjQ1OjQ2CiAgICAtIChpZi5jKTogUmVzZXQgc2lnbmFsIG9uIGFsbCB0eXBlcyBvZiBzaWduYWwgaW1wbGVtZW50YXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjU2OjQ0CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IFRydW5jYXRlIHN5c3RlbSBuYW1lcyBiZXlvbmQgWy1fXS4qLgoKd2hhcmRha2UgIDIgRGVjIDk2IDA4OjU1OjQ5CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gaWZQaHlzQWRkciAtIGluIEludGVyZmFjZV9HZXRfRXRoZXJfQnlfSW5kZXgsIEhQLVVYIGhhcyB0aGUgc2FtZQogICAgICAgICAgICBFdGhlckFkZHIgc3RydWN1cmUgYXMgTUlQUy4KICAgIAogICAgICAtIGlwQWRFbnRJZkluZGV4IC0gaW4gdmFyX2lwQWRkckVudHJ5LCB0aGVyZSBpcyBhIGZhbHNlIG1hdGNoIG9uCiAgICAgICAgICAgIHRoZSBsb29wYmFjayBpbnRlcmZhY2UsIGdpdmluZyB0aGUgd3JvbmcgYW5zd2VyIG9mIHRoZSBmaXJzdAogICAgICAgICAgICBpbnRlcmZhY2UgaW5kZXguCiAgICAKICAgICAgLSB1ZHBJbkVycm9ycyAtIGluIHZhcl91ZHAsIHRoZSBjb3VudCBvZiBVRFAgZXJyb3JzIG9taXRzIGRpc2NhcmRlZAogICAgICAgICAgICBwYWNrZXRzLiAgU29tZSBzeXN0ZW1zIChpLmUuIEhQLVVYKSBoYXZlIGV4dGVuZGVkIHRoZSB1ZHBzdGF0CiAgICAgICAgICAgIHN0cnVjdHVyZSB0byBpbmNsdWRlIHRoZXNlLiAgSSd2IHR3ZWFrZWQgdGhpcyBhbmFsb2dvdXMgdG8gYQogICAgICAgICAgICBzaW1pbGFyIGFkZGl0aW9uIGluIHRoZSB0Y3BzdGF0IHN0cnVjdHVyZS4KICAgIAogICAgICAtIHRjcENvbm5TdGF0ZSAtIEhQLVVYIGhhcyBhZGRlZCBhbiBleHRyYSBzdGF0ZSBpbnRvIHRoZSBsaXN0LCB3aGljaAogICAgICAgICAgICB0aHJvd3MgdGhlIHJlc3Qgb2YgdGhlbSBvdXQuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTA6MDQ6MDIKICAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jKToKICAgICAgLSBXcm90ZSBBQ19DSEVDS19TVFJVQ1RfRk9SIGFuZCB1c2UgaXQuCiAgICAgIC0gTWFrZSBBQ19DSEVDS19JRk5FVF9GT1IgdXNlIGFib3ZlLgogICAgICAtIENoYW5nZXF1b3RlICdbXScgLT4gJycgYXJvdW5kIHNlZCBleHByZXNzaW9uIHdpdGggW11zICgtRG9zdHlwZSkuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTA6MDU6MTcKICAgIC0gKG1kNS5jKTogUHV0ICdVJ25zaWduZWQgbWFya2VyIGF0IGVuZCBvZiBjb25zdGFudHMgdG8gcmVtb3ZlIGdjYyB3YXJucy4KCndoYXJkYWtlICAzIERlYyA5NiAxMTowNDozMwogICAgLSAoc25tcF92YXJzLmMpOiBGcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIEZpeCBhcnAgdGFibGUgZm9yIGhwdXguCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGFycGhkLmF0X25leHQgYW5kIHVzZSBpbiBhYm92ZS4KCndoYXJkYWtlICAzIERlYyA5NiAxMToxNDo0MwogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgcGFzc3Rlc3QpOiBNb3ZlIHBhc3N0ZXN0IHRvIHVjZGF2aXMgc3VidHJlZS4KCndoYXJkYWtlICAzIERlYyA5NiAxNDo1MToyNAogICAgLSAoZWNlLW1pYi5kZWYpOiBVc2VkIC0+IEF2YWlsIGluIG1lbW9yeSBzZXF1ZW5jZS4KCndoYXJkYWtlICA0IERlYyA5NiAwOToxNjowOQogICAgLSAoYXNuMS5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgICAgLSBQYXJzZXIgZml4ZXMgZm9yIG11bHRpcGxlIG5vZGVzLgogICAgICAgIC0gbWVtbW92ZS9jb3B5IGRlbGV0ZXMuCgp3aGFyZGFrZSAgNCBEZWMgOTYgMDk6NDk6MzgKICAgIC0gKFBPUlRJTkcsIFJFQURNRSk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjAuMSAtPiBWMy4xLjEKCndoYXJkYWtlIDExIFNlcCA5NiAwODo0OToxNAogICAgLSAocmVhZF9jb25maWcuYyk6IEZpeGVkIGNvbW11bml0eSBudW1iZXIgY2hlY2tzLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE2OjU0OjU5CiAgICAtIChjb25maWcqLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKTogQWRkZWQgc3lzL3NlbGVjdC5oIGZvciBBSVguCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTY6NTk6MjYKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogdHlwb3MuCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTc6MDI6NDcKICAgIC0gKHNubXBfdmFycy5jKTogTW92ZWQgYSB2YXJpYWJsZSBkZWNsYWlyYXRpb24uCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTc6MTY6NTgKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiB0eXBvIGZpeGluZyBhIHR5cG8gKHNpZ2guLikuCgp3aGFyZGFrZSAyNSBTZXAgOTYgMTQ6MTQ6NTMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBmcmVlYnNkMiB0eXBlY2FzdC4KCndoYXJkYWtlICAxIE9jdCA5NiAxNTozMDo0NgogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IEZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBhbGxvd3MgdGhlIENNVSBsaWIgdG8gcmV0YWluIHRoZSBUQyBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggYQogICAgICAgIHBhcnRpY3VsYXIgb2JqZWN0LiBJbiBwYXJ0aWN1bGFyIHRoaXMgYWxsb3dzIERpc3BsYXlTdHJpbmdzIHRvIGJlCiAgICAgICAgZGlmZmVyZW50aWF0ZWQgZnJvbSBPY3RldFN0cmluZ3Mgd2hlbiB0aGV5IGFyZSBsb29rZWQgdXAgaW4gdGhlCiAgICAgICAgTWliIFRyZWUuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTU6NTQ6MjIKICAgIC0gKGV4dGVuc2libGUuYyk6IGludCAtPiBkb3VibGUgdG8gc3VwcG9ydCBsYXJnZXIgZGlzayBzaXplcy4KCndoYXJkYWtlICAxIE9jdCA5NiAxNjoyODo1MgogICAgLSAoY29uZmlnKiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gQ2hlY2sgZm9yIG1udGVudC5oIGFuZCBpbmNsdWRlIGl0LgogICAgICAtIENoZWNrIGZvciAvZXRjL21udHRhYiBvciAvZXRjL210YWIgYW5kIHVzZSBhcHByb3ByaWF0ZWx5LgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcGljayBnZXRtbnRlbnQgb3ZlciBnZXRmc2ZpbGUgaWYgYm90aCBhcmUgYXZhaWxhYmxlLgogICAgICAtIGRlYnVnIGNsZWFudXAgKG9maWxlIC0+IHN0ZGVyciwgY2hlY2sgZm9yIERPREVCVUcgaW5zdGVhZCBvZiBjb25zdCB2YXIpLgoKd2hhcmRha2UgIDMgT2N0IDk2IDE2OjA1OjQ3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIE1ha2UgYWdlbnQgcHJvcGVybHkgY2hlY2sgc25tcHNldCBleGl0IGNvZGVzIGFuZCB1c2UgdGhlbSAob24gQ09NTUlUKS4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjowODo1OQogICAgLSAocGFzcy5jKToKICAgICAgLSBDaGVjayBmb3IgcGFzc3RocnUgZXhpc3RhbmNlIGJlZm9yZSByZXR1cm5pbmcgRVJSX05PRVJST1IsIGVsc2UKICAgICAgICByZXR1cm4gRVJSX05PU1VDSE5BTUUuCiAgICAgIC0gQ29ycmVjdGx5IGNoZWNrIGZvciBhbmQgcGFzcyAibm90LXdyaXRhYmxlIiBhbmQgIndyb25nLXR5cGUiIHBhc3MgcmV0dXJucy4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjoxMDozOAogICAgLSAoc25tcF9pbXBsLmgpOiAgVHVybiBvbiBvbGQgQ01VIGRlYnVnZ2luZyBzdGF0bWVudHMgd2l0aCAtLWVuYWJsZS1kZWJ1Z2dpbmcuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDM6NDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBBZGRlZCBzbm1wZ2V0L3NldCB0byBwYXNzIGV4YW1wbGUuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDQ6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBmcm9tIHNlZHNjcmlwdCB3aGVuIHVzaW5nIGJyb2tlbiBjcHAgKGdjYykuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDY6MDkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOgogICAgICAtIENsZWFuZWQgdXAgbWFuIHBhZ2UgZm9ybWF0dGluZy4KICAgICAgLSBBZGRlZCBub3RlIGFib3V0IFNOTVBzZXQgY29tbXVuaXR5IHN0cmluZ3MuCiAgICAgIC0gbWlub3IgcHJvb2YtcmVhZGluZyAobWFqb3IgcHJvb2ZpbmcgbmVlZGVkIHN0aWxsKS4KICAgICAgLSBSZS1vcmdhbml6ZWQgYSBiaXQuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMTA6MDE6MjAKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBsaWIgLT4gbGliL3NubXAgcGF0aCBjb3JyZWN0aW9uIGluIEZJTEVTIHNlY3Rpb24uCiAgICAtIChzbm1wZC4xLmRlZik6CiAgICAgIC0gQWRkZWQgYSBGSUxFUyBzZWN0aW9uLgogICAgICAtIEdlbmVyYWwgY2xlYW4gdXAuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDc6NDE6NDAKICAgIC0gKHBhcnNlLmMpOiAgTm93IGxvYWRzIGFsbCBtaWJzIChmaWxlcykgaW4gdGhlIGRpcmVjdG9yeSBTTk1QTElCL21pYnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDc6NDk6NTkKICAgIC0gKHBhcnNlLmMpOiAgUHJvcGVyIGF1dG9jb25mIGRpcmVudCBoZWFkZXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA4OjAxOjQzCiAgICAtIChNYWtlZmlsZS5pbik6IE1pYiBpbnN0YWxsYXRpb24gY2hhbmdlZCB0byByZWZsZWN0IG5ldyBtaWIgZGlyZWN0b3J5LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA4OjUzOjA2CiAgICAtIChjb25maWcqKTogY2hlY2sgY29ycmVjdGx5IGZvciBnZXQvc2V0bW50ZW50LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA5OjExOjQzCiAgICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIHNubXAgdmVyc2lvbiBjaGVjayBvbiBlcnJvciByZXR1cm4gZnJvbSBzZXQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDk6MTI6MjMKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBVc2UgZ2V0bW50ZW50IGNvcnJlY3RseS4gIFBhaW4uCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjI6NDcKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBhZGRlZCAtLXJlY2hlY2sgdG8gY29uZmlnLnN0YXR1cyBjYWxsIHRvIHJlZ2VuZXJhdGUgc2VsZi4KICAgICAgLSBDaGFuZ2VkIGVjZS1taWIudHh0IC0+IHVjZC1zbm1wLnR4dCBhbmQgaW5zdGFsbCAoYW5kIGdlbmVyYXRlKSBwcm9wZXJseS4KCndoYXJkYWtlICA3IE9jdCA5NiAxMDoyMzozMgogICAgLSAoZXh0ZW5zaWJsZS5jKTogQ2hvbXAgbmV3bGluZSBvbiB1bmFtZSBvdXRwdXQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjQ6MTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBBZGRlZCAnc3lzY29udGFjdCcgYW5kICdzeXNsb2NhdGlvbicgcGFyc2luZy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMDoxMAogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgIC0gZW1hY3MgbG9jYWwgdmFycy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMToyNQogICAgLSAocmVhZF9jb25maWcuYyk6IFJlbW92ZSBleHRyYSBhcmdzIGZyb20gc3RyY3B5ICh3YXMgc3RybmNweSkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDI6NDYKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTI6MjM6MDUKICAgIC0gKHNubXBkLjEuZGVmKTogQ2hhbmdlZCB0byByZWZsZWN0IFNOTVBMSUIvbWlicy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMjoyMzoyNwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IEFkZGVkIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uLgoKd2hhcmRha2UgIDkgT2N0IDk2IDA4OjA0OjE0CiAgICAtIChwYXJzZS5jKToKICAgICAgLSBQYXJzZSBPQkpFQ1QtSURFTlRZIGFzIE9CSkVDVC1HUk9VUCAoc2F2ZXMgb25seSBkZXNjcmlwdGlvbikuCiAgICAgIC0gQ2hhbmdlIHByaW50X2Vycm9yKCksIHJlYWRfbWliKCkgdG8gcmVmbGVjdCBmaWxlIGFuZCBjb3JyZWN0IGxpbmUgbnVtYmVyLgoKd2hhcmRha2UgIDkgT2N0IDk2IDA4OjMwOjI5CiAgICAtIChwYXJzZS5jKToKICAgICAgLSBwcmludCBhIG5ldyBsaW5lIGluIHByaW50X2Vycm9yKCkgaWYgZGVidWdnaW5nIGlzIHR1cm5lZCBvbi4KICAgICAgLSB0b3NzT2JqZWN0SWRlbnRpZmllcigpOiBjYXRjaCBtdWx0aXBsZSBicmFja2V0IGNsYXVzZXMgKElFIHsgezAgMH0gfSApLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE0OjM2OjAzCiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBzdHJuY21wIC0+IHN0cm5jYXNlY21wLgogICAgICAtIE5VTEwgLT4gMC4KCndoYXJkYWtlICA5IE9jdCA5NiAxNDozODowNQogICAgLSAoZXh0ZW5zaWJsZS5jKToKICAgICAgLSBzb3J0IHBhc3MgdGhydXMgYnkgbWlib2lkIHRvIHByZXZlbnQgcGFzc2luZyBvZmYgdG8gd3Jvbmcgb25lLgogICAgICAtIHR5cG9zOiAgZXhzdGVuIC0+IGV4dGVuLgogICAgICAtIGluaXRfZXh0ZW5zaWJsZSgpIGNhbGxzIHVwZGF0ZV9jb25maWcoKSB0byByZWR1Y2UgZHVwbGljYXRpb25zLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE1OjE4OjQyCiAgICAtIChzbm1wX2FwaS5jKTogRnJvbTogZ2FoQGJlbGxjb3JlLmNvbSAoR2FyeSBBLiBIYXl3YXJkKQogICAgICAtIEZyZWUgcGR1IGNvbW11bml0eSB0byBxdWVsY2ggcHVyaWZ5LgoKd2hhcmRha2UgIDkgT2N0IDk2IDE1OjIyOjIzCiAgICAtIChSRUFETUUpOiBBZGRlZCB0aGFua3MgbmFtZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEgLT4gVjMuMS4wLjEKCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNjowOAogICAgLSAoTkVXUykgVHlwbywgZXh0cmEgcXVvdGF0aW9uIG1hcmsuCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6Mzc6MDUKICAgIC0gKFRPRE8pIEV4dHJhIG1pYiBwYXJzaW5nIGlkZWFzIGFkZGVkLgoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM3OjM2CiAgICAtIChlY2UtbWliLmRlZik6ICBjb21tYXMgb3V0IG9mIHBsYWNlLgoKd2hhcmRha2UgMjYgQXVnIDk2IDE2OjU1OjUxCiAgICAtIChzbm1wX2FwaS5jKTogRml4ZWQgYSBnY2MvRnJlZUJTRCBvcHRpbWl6YXRpb24gYnVnIChzdHVwaWQgY29tcGlsZXIpCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTY6NTg6MDMKICAgIC0gKGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jKTogRnJlZUJTRCBtb2RpZmljYXRpb25zCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDg6NDY6NDMKICAgIC0gKGV4dGVuc2libGUuYyk6ICBGcmVlQlNEIGNoYW5nZXMgYW5kIHVzZSBnZXRsb2FkYXZnIGlmIGF2YWlsYWJsZS4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwODo0Nzo1NwogICAgLSAoc25tcHRyYXBkLmMpOiBGaXggYnl0ZSBvcmRlciBwcm9ibGVtIChjb252ZXJ0IHRvIG5ldHdvcmsgYmVmb3JlIHNlbmRpbmcpLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA5OjAxOjEwCiAgICAtIChzbm1wdHJhcC5jKToKICAgICAgLSBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgICAgIC0gbW9yZSBhdXRvY29uZiBjb21wbGV0ZTogcGF0aHMgdG8gbGlicmFyaWVzIGFuZCBrZXJuZWwgbG9jYXRpb24uCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDk6Mzg6MzMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMTA6MDA6MTUKICAgIC0gKHNubXBfdmFycy5jKTogTW9yZSB3YXJwZWQgRnJlZUJTRCBjaGFuZ2VzCgp3aGFyZGFrZSAyNyBBdWcgOTYgMTA6MDQ6NTYKICAgIC0gKGF1dG9jb25mKik6CiAgICAgIC0gRnJlZUJTRCBhZGRpdGlvbnMuCiAgICAgIC0gTmV3IGtlcm5lbCBsb2NhdGlvbjogIC9rZXJuZWwgKGljaykuCiAgICAgIC0gTG9nIGZpbGUgZGVmYXVsdCBpbnRlbGxpZ2VudGx5IGNoZWNrcyBmb3IgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgogICAgICAtIENoZWNrcyBmb3IgZ2V0bG9hZGF2ZygpLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE0OjQyOjIwCiAgICAtIChleHRlbnNpYmxlLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBjbGVhbmVkIHVwIGdjYyB3YXJuaW5ncy4KICAgICAgLSBmaXhlZCBhIHNwZWxsaW5nIGVycm9yLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE0OjU5OjU1CiAgICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBzZXQgZXhpdCBjb2RlcyBvZiAwIGZvciBhbGwgYXBwcy4KICAgICAgLSBSZW1vdmVkIFNWUjQgI2lmZGVmcy4KICAgICAgLSBHcmVhdGx5IGltcHJvdmVkIHNubXB0cmFwLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjAzOjEyCiAgICAtIChtYW4vc25tcHRyYXAuMSk6ICBhZGRlZCBieSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA2OjIxCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gdWNoYXIocykgY2FuJ3QgYmUgbGVzcyB0aGFuIDAuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDY6NTAKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHByb3RvdHlwZXMgZm9yIGdjYyB3YXJuaW5ncwoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA3OjU2CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3Igc25tcHRyYW5zbGF0ZSBhbmQgb3RoZXIgYXBwcyB0aGF0IG5lZWQgaXQuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDg6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gZ2NjIHdhcm5pbmdzIE5VTEwgLT4gMAoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjU4OjEwCiAgICAtIChzbm1wc3RhdHVzLmMpOiBQYXRjaCBmcm9tIFRyZXZvciBCb3VyZ2V0IDx0Ym91cmdldEBxdWFsY29tbS5jb20+CiAgICAgIC0gbWFsbG9jIHN5c2Rlc2MgaW5zdGVhZCBvZiBhc3N1bWluZyA8IDEyOCBieXRlcy4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjowMzo0NAogICAgLSAoc25tcHdhbGsuYyk6IFJlbW92ZWQgU1ZSNCBpZmRlZnMKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjoyMjoyNQogICAgLSAoYXV0b2NvbmYqLCBzbm1wX3ZhcnMuYyk6IFJlbW92ZWQgc29tZSBzb2xhcmlzIGlmZGVmcy4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjoyOToxMAogICAgLSBDaGFuZ2VkIG15IGVtYWlsIGFkZHJlc3MgdG8gbXkgbmV3IG9uZS4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyMzowNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZWQgLVhzIGZsYWcgZm9yIGdjYyBvbiBzb2xhcmlzLgogICAgICAtIGxvZ2ZpbGUgY2hlY2tzIGZvciBleGlzdGFuY2Ugb2YgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjIzOjQyCiAgICAtIChzbm1wdHJhcC5jKTogcGF0Y2ggc2NyZXdlZCB1cC4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyNDozMQogICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6ICBBZGRlZCBrZXJuZWxfc3Vub3M1Lm8gdG8gc25tcHRyYXAgZm9yIGdldEtzdGF0LgoJCndoYXJkYWtlIDMwIEF1ZyA5NiAwOTozNDowOQogICAgLSAoTkVXUywgQ2hhbmdlTG9nKTogVXBkYXRlZCBmb3IgMy4xLjAuMQoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjM0OjQ4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4wLjEgKQoKd2hhcmRha2UgMzAgQXVnIDk2IDEwOjE1OjE4CiAgICAtIChSRUFETUUpOiBVcGRhdGVkIGZvciAzLjEuMC4xCgp3aGFyZGFrZSAzMCBBdWcgOTYgMTE6NDk6MzgKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtYWxsb2MgcHJvdG90eXBlIGR1ZSB0byBjb25mbGljdGlvbnMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4wLjcuMiAtPiBWMy4xCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6MzQ6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6MzU6MjcKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpCiAgICAgIC0gQ2hhbmdlZCB0aGUgaW50ZXJmYWNlIGNvdW50ZXIgdG8gYSBzaG9ydCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgKGJ1cyBlcnIpCiAgICAgIC0gVW5kZWZlZCBhIGZ1bmN0aW9uIHRoYXQgaXMgbmV2ZXIgdXNlZC4KCmhhcmRha2VyICAzIE1heSA5NiAxNDozNzoxNwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIFNvbGFyaXMgZml4IGZvciBpbnRlcmZhY2VzLgogICAgICAtIEZyb20gRGFuIEEuIERpY2tleSA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KCmhhcmRha2VyICAzIE1heSA5NiAxNDo0MDoxOAogICAgLSAoYXBwcy9zbm1wdHJhcC5jKSBBZGRlZCAjaW5jbHVkZTxzeXMvc29ja2lvLmg+CgpoYXJkYWtlciAgOSBNYXkgOTYgMTM6MjQ6MDAKICAgIC0gKGFwcHMvc25tcHNldC5jKSBBZGRlZCAnLicgYXMgYSBkZWxpbWl0ZXIgZm9yIGRlY2ltYWwgZW5jb2RlZCBzdHJpbmdzLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjI3OjQwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjMzOjEyCiAgICAtIChhY2NvbmZpZy5oLGFnZW50L3tNYWtlZmlsZSxzbm1wX3ZhcnMuY30sYWdlbnQvZXh0ZW5zaWJsZS9tYW55KToKICAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBwYXNzdGhydSBtaWJzLiAgVG90YWwgY29udHJvbCBpcyBoYW5kZWQgdG8gZXhlYydzLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDE2OjE0OjI4CiAgICAtIChjb25maWd1cmUuaW4pOiBTb2xhcmlzIHNwZWNpZmljIGNwcCBmbGFncyBhZGRlZCBmb3IgU1VOc3BybydzIGNwcC4KICAgIC0gKGFnZW50L3tzbm1wX3ZhcnMsc25tcGR9LmMsYWdlbnQvZXh0ZW5zaWJsZS97ZXh0ZW5zaWJsZSxtaXNjLHBhc3N9LmMsCiAgICAgICBzbm1wbGliL3ttaWIsc25tcF9jbGllbnR9LmMpOgogICAgICAtIENsZWFuZWQgdXAgcHJvdG90eXBlcyB0byBtYXRjaCBtb3JlIGNhcmVmdWxseSAod2l0aCBTb2xhcmlzJ3Mgc3BybyBjYykuCgpoYXJkYWtlciAxMCBNYXkgOTYgMTA6Mjc6MTQKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEEgcGF0Y2ggdG8gZml4IGEgdmlydHVhbCBpbnRlcmZhY2UgcHJvYmxlbS4KICAgICAgLSBwYXRjaCBzdXBwbGllZCBieSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CgpoYXJkYWtlciAxMCBNYXkgOTYgMTg6MTY6NTcKICAgIC0gKG1hbnkpOiBNZXJlZ2VkIGJhZ2dlc2VuLTMtMC03LTIgYnJhbmNoIGludG8gbWFpbiB0cnVuay4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1Njo0NQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpOiBleGVjIE5hbWVzIHdlcmUgZ2V0dGluZyBpbmNsdWRlZCBpbiB0aGUgY29tbWFuZC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1Nzo0MwogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSByZS1zdGFydGluZyBhZ2VudC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1ODo0NAogICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgICAtIEJ1ZyBmaXg6IEdMT0JBTFNFQ1VSSVRZIGJ1ZzogIHNhdmUgcmlnaHRtb3N0IHR3byBiaXRzIGluIGFjbC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1OTozMAogICAgLSAoc25tcGxpYi9zbm1wX2ltcGwuaCk6IENoYW5nZSBSV1JJVEUgdG8gaW5jbHVkZSBXcml0ZSBmb3IgVjIgYml0cy4KCmhhcmRha2VyIDE1IE1heSA5NiAwODo1OTo1MQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9wYXNzLmMpIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBJbXBsZW1lbnRlZCBtaXNzaW5nIHBhcnRzIG9mIGludGVyZmFjZSBhZGRyZXNzIGFuZCBuZXR3b3JrIG91dHB1dCAoLWkpCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDI6MjQKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgUGF0Y2ggZnJvbSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgICAgIC0gQmV0dGVyIGNhY2hpbmcgYWxnb3JpdGhtIGZvciBpbXByb3ZlZCBzcGVlZC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTowNTo0OQogICAgLSAoKi8uY3ZzaWdub3JlKSBpZ25vcmUgZmlsZSB1cGRhdGUuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDY6NDkKICAgIC0gKE1ha2VmaWxlLmluLHNlZHNjcmlwdC5pbikgQWRkZWQgUFJFRklYIHRvIHRoZSBzZWRzY3JpcHQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDc6MzUKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnRlZCBwYXNzIHRocnUgbWlicy4KCmhhcmRha2VyIDE1IE1heSA5NiAwOToyOToyMQogICAgLSAoQ09QWUlORywgUkVBRE1FLCBUT0RPKSBSZWxlYXNlIGRvY3MgdXBkYXRlZC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MDoxNQogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBwYXRjaCBtaXN0YWtlLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUxOjEyCiAgICAtIChhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpOiBhbnNpIHNlbWFudGljIGZpeCBmb3IgJzwnLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUxOjM3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS5BMSApCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MDA6NTcKICAgIC0gKElOU1RBTEwpIG1ha2UgaW5zdGFsbCBhcyByb290LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjAzOjU0CiAgICAtIChSRUFETUUpIEFkZGVkIGEgbm90ZSAocG9pbnRlciB0byBkb2NzKSBvbiB0aGUgYWdlbnQncyBleHRlbnNpYmxpdHkuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MjM6NDAKICAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYykgcmVtb3ZlZCAmIGluIGZyb250IG9mIGFycmF5IHBhc3NlZCBhcyBhcmcuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MzU6MTYKICAgIC0gKHNlZHNjcmlwdC5pbikgRml4ZWQgYSBob3JyaWJsZSB0eXBvLiAgUCAtPiBQUkVGSVgKCmhhcmRha2VyIDIyIE1heSA5NiAwODo1MDoyOAogICAgLSAobWFuL01ha2VmaWxlLmluKSBVcGRhdGVkIHRoZSB3YXkgc2Vkc2NyaXB0IGlzIHVzZWQuCgpoYXJkYWtlciAyMiBNYXkgOTYgMDg6NTE6MDEKICAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogQXV0b2NvbmYtMi4xMAoKaGFyZGFrZXIgMjIgTWF5IDk2IDEyOjUwOjI0CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jLAogICAgICAgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMscmVhZGNvbmZpZy5jLHNubXBfdmFycy5jKToKICAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgIC0gZmluYWxseSBuYWlsZWQgdGhhdCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIHRoYXQgZ2F2ZSBwcm9ibGVtcwogICAgICAgICAgd2l0aCB0aGUgQVQgc3VidHJlZQogICAgICAgIC0gSSBhbHNvIGltcGxlbWVudGVkIHRoZSBkaXNrIHBhcnQgb2YgdGhlIGV4dGVuc2liaWxpdHkgaW4gdGhlCiAgICAgICAgICBhdHRhY2hlZCBwYXRjaC4KCmhhcmRha2VyIDIyIE1heSA5NiAxMjo1NTozMwogICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHJld29ya2VkIHRoZSB3YXkgc25tcG5ldHN0YXQgLWkgd29ya3MuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDM6NDkKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9uJ3QgZGVmaW5lIHJhbmRvbSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0NDoxNQogICAgLSAoZXh0ZW5zaWJsZS5jKTogIEFkZGVkIGEgZGlzayB3YXJuaW5nIHRvIHN0ZGVyci4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0NDozOQogICAgLSAoYWNsLmMsIHBhcnR5LmMsIHZpZXcuYyk6IHJlbW92ZWQgTlVMTCBkZWZpbmVzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjU2OjQyCiAgICAtIChpZi5jKTogdHlwZSBjYXN0aW5nIGJ1Z3MuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTY6Mjg6MDgKICAgIC0gKGFjbC5jLCBwYXJ0eS5jKTogaW5jbHVkZSBzdGRpby5oCgpoYXJkYWtlciAyMyBNYXkgOTYgMTc6MDk6MjQKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IGZpeGVkIGRpc2sgY2hlY2tzIG9uIFNvbGFyaXMgYW5kIGFscGhhJ3MKICAgICAgLSB1c2Ugc3RhdHZmcyBvdmVyIGZzdGFiIGlmIGJvdGggcHJlc2VudC4KCmhhcmRha2VyIDIzIE1heSA5NiAxNzo0ODowOQogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBnZXRtbnRlbnQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTI6MjM6NTIKICAgIC0gKHNubXBsaWIvcGFyc2UuYyk6ICBwYXJzaW5nIGZpeGVzIGZyb20gTWlrZSBQZXJpayA8bWlrZXBAY3J0LmNvbT4KCmhhcmRha2VyIDI0IE1heSA5NiAxMjozOTo1MQogICAgLSAoUkVBRE1FKTogQWRkZWQgYSB0aGFua3Mgc2VjdGlvbi4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzowODoyOAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGV4YW1wbGUgZmlsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjA5OjAyCiAgICAtIChjb25maWcqKTogIENoZWNrIGZvciBzeXMvbW50dGFiLmgKCmhhcmRha2VyIDI0IE1heSA5NiAxMzowOTo1MgogICAgLSAocmVhZF9jb25maWcuYyk6IGlmZGVmIGNsZWFudXAKCmhhcmRha2VyIDI0IE1heSA5NiAxMzoxMDozNAogICAgLSAocGFyc2UuYyk6IGRlY2xhcmF0aW9ucyBjbGVhbnVwCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MTM6MjEKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiAgbm90ZSBvbiBjcmVhdGluZyBjb21tZW50cyBhZGRlZC4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzozODo0NgogICAgLSAocmVhZF9jb25maWcuYyk6ICNpZmRlZiB0eXBvCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6NTQ6MjUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogIGRlZmluZSBtZW1tb3ZlIGlmIG5vdCBkZWZpbmVkIGFuZCBtZW1jcHkgaXMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6NTU6MTQKICAgIC0gKGlmLmMsIHJvdXRlLmMpOiBjYXN0IHJldHVybnMgZnJvbSBpbmRleCB0byBjaGFyICouCgpoYXJkYWtlciAyNCBNYXkgOTYgMTQ6MDI6NTMKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgbWVtbW92ZSBiZWZvcmUgeW91IGRlZmluZSBpdC4KCmhhcmRha2VyIDI0IE1heSA5NiAxNDo1MzoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IHByaW50ZiAtPiBET0RFQlVHIGNoZWNrCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjg6NDEKICAgIC0gKGFjY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICNpZmRlZiB0eXBvcwoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI5OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgc29tZSBpZmRlZiByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjk6MjkKICAgIC0gKHNubXBfdmFycy5oKTogcmVvcmdhbml6ZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjcuMSAtPiBWMy4wLjcuMgoKTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4gMSBNYXkgOTYgMTI6Mzc6MzUKICAgIC0gKG1hbnkpIEZpeGVzIGZvciBTb2xhcmlzICgyLjUpIHN1Ym1pdHRlZCBieQogICAgICAgICAgICAgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAgIlNvbWUgYXJlIG15IG93biwgb3RoZXJzIGFyZSBmcm9tIFl1cmkgUmFib3ZlciB3aG8gb3JpZ2luYWxseQogICAgICAgICBjcmVhdGVkIHRoZSBwYXRjaC4gU29tZSBvZiB0aGlzIGlzIHRoZXJlIHRvIGVsaW1pbmF0ZSB0aGUKICAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgdWNibGliIGNvbXBhdGliaWxpdHkgc3R1ZmYsIHNvbWUgaXMgImNvc21ldGljIiwKICAgICAgICAgYnV0IGl0IGFsc28gZml4ZXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhlIGFnZW50LCB3aGVyZSB3YWxraW5nCiAgICAgICAgIHRoZSBtaWIgdHJlZSBjYW4gbG9vcCBlbmRsZXNzbHkgaWYgeW91IGhhdmUgbXVsdGlwbGUgbmV0d29yawogICAgICAgICBpbnRlcmZhY2VzLiIKCmhhcmRha2VyICAxIE1heSA5NiAxMzo1NDoxOAogICAgLSAoY29uZmlndXJlKiwgYWdlbnQvZXh0ZW5zaWJsZS97cmVhZF9jb25maWcsZXh0ZW5pc2JsZX0uYyk6CiAgICAgIC0gY29uZmlndXJpZmllZCAobmV3IHdvcmQpIHNvbWUgb2YgTmllbHMnIGNoYW5nZXMgYW5kIHRoZSBiY29weS9tZW1tb3ZlIHN0dWZmLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDEzOjU1OjE2CiAgICAtIChtYW4vc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZikgLkMgLT4gLkIsIHRvIGluY3JlYXNlIG5yb2ZmIHBvcnRhYmlsaXR5LgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM1OjIzCiAgICAtIChhZ2VudC9yb3V0ZV93cml0ZS5jLGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAgLSBuZXRic2QxLjFCIHNwZWNpZmljIGZpeGVzOiBjbGFzaCB3aXRoIHN5c19lcnJsaXN0IGFuZCBydF9kc3QgZGVmaW5lcy4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNzowOQogICAgLSAobG9jYWwvc25tcGNoZWNrKSBUay1iMTAgZml4ZXMuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6Mzc6MjUKICAgIC0gKHNlZHNjcmlwdC5pbikgZm9yZ290IE5FVEJTRDFJRCBkZWYuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6NTY6MjEKICAgIC0gKGFjY29uZmlnLmgsYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgpOiByZW1vdmVkIGNvbWVudHMvc3BhY2VzIGZyb20gZGVmaW5lcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjcgLT4gVjMuMC43LjEKCmhhcmRha2VyIDI1IEFwciA5NiAxMjoxODo0MwogICAgLSAoQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbikgRGVmaW5lZCBERUJVR1AgaWYgRE9ERUJVRyBpcyBub3QgZGVmaW5lZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjYgLT4gVjMuMC43CgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTE6MzkKICAgIC0gKGxvY2FsL3NubXBjaGVjay5kZWYpIFRrLWI4ID0+IFRrLWIxMCBjaGFuZ2VzCgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTI6MjIKICAgIC0gKGNvbmZpZ3VyZSkgYXV0b2NvbmYtMi43IC0+IGF1dG9jb25mLTIuOQoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjE1OjExCiAgICAtIChzbm1wbGliL2FzbjEuYykgcmVtb3ZlZCBhIHJlcXVpcmVkICd1bml4JyBkZWZpbmUgc3Vycm91bmRpbmcgYSBoZWFkZXIgZmlsZS4KCmhhcmRha2VyICA1IEFwciA5NiAxNjoxOTozNQogICAgLSAobWFuL01ha2VmaWxlLmluKSBBZGRlZCBhICdjbGVhbicgZGVmaW5pdGlvbiB0byB0aGUgTWFrZWZpbGUuCgpoYXJkYWtlciAxMiBBcHIgOTYgMTQ6NTE6MDgKICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTIgQXByIDk2IDE0OjUxOjQyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS5jKQogICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKCmhhcmRha2VyIDEyIEFwciA5NiAxNjo0OToyMwogICAgLSAoc25tcF92YXJfcm91dGUuYykKICAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgICAtIChtYW55KSBBZGRlZCBzdXBwb3J0IGZvciBocHBhMS4xLWhwLWhwdXgxMC4wMQogICAgICAtIHRvdGFsbHkhIHJlZGlkIHRoZSByb3V0aW5nIHRhYmxlcyBmb3IgQlNEIDQuNCBkZXJpdmVkIHN5c3RlbXMKICAgICAgICAoYWxwaGEsIGhwdXgxMC4wMSssIG5ldGJzZCkgc2luY2UgaHB1eDEwIGRvZXNuJ3QgaGF2ZSA0LjMgY29tcGF0IHN0cnVjdHMuCiAgICAtIChlY2UtbWliLmRlZikgQ2FwaXRhbGl6YXRpb24gcHJvYmxlbS4KICAgIC0gKGNvbmZpZ3VyZS5pbikKICAgICAgLSBDbGVhbmVkIHVwIGtlcm5lbCBjaGVja2luZwogICAgICAtIFN0YXJ0ZWQgdXNpbmcgYSBhdXRvY29uZiAyLjggZmVhdHVyZSB0byBjaGVjayBmb3IgY2FjaGUgdmFsdWVzLgoKaGFyZGFrZXIgMTUgQXByIDk2IDEyOjUzOjQwCiAgICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS1lbmFibGUtZGVidWdnaW5nLiAgVHVybnMgb24gZGVidWdnaW5nLgogICAgLSAoY29uZmlndXJlKSBGaXhlcyBmb3IgdHlwZSBjaGVja2luZyBvZiA0LjQgcnRlbnRyeSBzdHJ1Y3R1cmVzIG9uIGFscGhhcy4KCmhhcmRha2VyIDE1IEFwciA5NiAxNDoxMTozOQogICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0td2l0aC1kZWZhdWx0cy4gIERvbid0IHByb21wdCB0aGUgdXNlci4KICAgIC0gKGNvbmZpZ3VyZSkgYnVnIGZpeGVzOiAgd2Fzbid0IHF1b3Rpbmcga2VybmVsIGFuZCBkbWVtIGxvY2F0aW9uLgogICAgLSAoY29uZmlndXJlKSBnY2MgY3BwIHJlcXVpcmVzIC14IGMgdG8gYWNjZXB0IC5pbiBmaWxlIHN1ZmZpeC4KCmhhcmRha2VyIDE1IEFwciA5NiAxNDozNjo0OAogICAgLSAoYWdlbnQvc25tcGQuYykgRml4ZWQgMiBnZXR0aW1lb2ZkYXkgY2FsbHMgLS0gYWRkZWQgYSBOVUxMIHRpbWV6b25lIHB0ci4KCmhhcmRha2VyIDE2IEFwciA5NiAwOTo0NzoxOAogICAgLSAoY29uZmlndXJlKSBJIGZvcmdvdCBETUVNX0xPQyBuZWVkcyB0byBiZSAjdW5kZWYnZWQgaWYgbm90IGZvdW5kCgpoYXJkYWtlciAxNiBBcHIgOTYgMDk6NDg6MDYKICAgIC0gKGFnZW50L3tyb3V0ZV93cml0ZS5jLHNubXBfdmFyX3JvdXRlLmN9KSBPU0YzLjIgc3BlY2lmaWMgY2hhbmdlcy4gIGFyZy4KCmhhcmRha2VyIDE2IEFwciA5NiAxODowODoyOQogICAgLSAoc25tcGQuYykgQWRkZWQgZmZsdXNoIGNhbGxzIGFmdGVyIHByaW50aW5nIHBhY2tldCBkdW1wcwoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM2OjA2CiAgICAtIChjb25maWd1cmUuaW4pIE1vcmUgaGVhZGVyIGZpbGUgY2hlY2tzICh2bS92bS5oICgrIG90aGVycykgYW5kIHVmcy9mZnMvZnMuaCkKCmhhcmRha2VyIDI0IEFwciA5NiAwODozNjo1MAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpIEluY2x1ZGUgdWZzL2Zmcy9mcy5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI0IEFwciA5NiAwODozNzoxMwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pIEZvcmdvdCBhIHF1b3RlLiAgKHdoeSBoYXNuJ3QgdGhpcyBhcHBlYXJlZCBiZWZvcmU/KQoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM4OjE4CiAgICAtIChhZ2VudC9hbGFybS5jKSBGaXhlZCBzb21lIGRlZmluZSBuYW1pbmcgY29uZmxpY3RzIGZvciBOZXRCU0QgKHRpbWVyYWRkKCkpLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjQ0OjQ1CiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKSBtb3JlIGNvbmZpZyBmaWxlcyBmb3IgTmV0QlNELgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIHJlbW92ZWQgYXJwIHRhYmxlcyBmb3IgbmV0YnNkLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjU0OjA3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsIG92LyopIEFkZGVkIE5ldEJTRCB0byBzeXMtT0lEIHJldHVybmVkLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjU0OjM5CiAgICAtIChtYW4vLmN2c2lnbm9yZSkgYWRkZWQgc25tcGQuMQoKaGFyZGFrZXIgMjQgQXByIDk2IDA5OjAwOjIxCiAgICAtIChSRUFETUUpIHVwZGF0ZWQKCmhhcmRha2VyIDI0IEFwciA5NiAwOTowNzo0MAogICAgLSAoSU5TVEFMTCkgdXBkYXRlZAoKaGFyZGFrZXIgMjQgQXByIDk2IDExOjQ2OjUyCiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBDaGVja2VkIGZvciBzeXMvbWJ1ZiBmb3IgZGV0ZXJtaW5pbmcgcnRlbnRyeS5ydF9uZXh0CgpoYXJkYWtlciAyNCBBcHIgOTYgMTE6NTU6MTAKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIEAjJCVpbmcgc29sYXJpcwoKaGFyZGFrZXIgMjQgQXByIDk2IDEzOjI1OjQ4CiAgICAtIChjb25maWcqLGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIGNvbmZpZyBjaGVja2luZyBmb3IgcnRlbnRyeS5ydF9uZXh0CgpoYXJkYWtlciAyNCBBcHIgOTYgMTQ6Mzc6NDcKICAgIC0gKGxvY2FsL3NubXBjaGVjaykgbmV3IHByZWY6ICBkb24ndCBwb3AgZm9yd2FyZCBvbiBuZXcgcHJvYmxlbXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC41IC0+IFYzLjAuNgoKaGFyZGFrZXIgMjQgSmFuIDk2IDE2OjMxOjIwCiAgICAtIFJldHVybmluZyBFWFRFTlNJQkxFRE9UTUlCLkFHRU5USUQgYXMgdGhlIG5ldyBvYmplY3RpZAoKRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4gMjQgSmFuIDk2IDE2OjMzOjA4CiAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4KICAgICAgLSBmaXhlcyAtcCBQT1JUIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIHRoZSByZXF1ZXN0ZWQgcG9ydC4KICAgICAgLSBmaXhlcyB0aGUgLWwgTE9HRklMRSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSBpdC4KCmhhcmRha2VyIDI0IEphbiA5NiAxNjozNjo1MQogICAgLSAoTWFrZWZpbGUsIGNvbmZpZy5oLCBlY2UtbWliLiosIHNlZHNjcmlwdC5pbikKICAgICAgLSBjaGFuZ2VkIHRoZSB3YXkgbWliLnR4dCBpcyBidWlsdAogICAgICAgIC0gc3BsaXQgdGhlIGNvbW1hbmQgaW50byB0d28gcGFydHMgdG8gYnVpbGQgYSBlY2UtbWliLnR4dCBhcyB3ZWxsCiAgICAgIC0gYWRkZWQgYSBuZXcgT2JqZWN0SUQgYWRkaXRpb24gdG8gZWNlLW1pYi50eHQKICAgICAgLSBERUZNQVhMT0FEQVZFIC0+IERSRU1PVkVNRUVGTUFYTE9BREFWRQoKaGFyZGFrZXIgMjYgSmFuIDk2IDA4OjI1OjA4CiAgICAtIFRoZSBTb2xhcmlzIDIuNSBrZXJuZWwgaGFzIG1vdmVkIHRvIC9rZXJuZWwvZ2VudW5peAogICAgICAtIFRoYW5rcyBnb2VzIHRvIHBvbW1pZXJAdm9sbmF5LnN0b3J0ZWsuY29tIChWaW5jZW50IFBvbW1pZXIgKFRvdWxvdXNlKSkKCmhhcmRha2VyICA5IEZlYiA5NiAxNzowNTowMAogICAgLSBCZXR0ZXIgT3BlblZpZXcgc3VwcG9ydAogICAgICAtIFJldHVybnMgZGlmZmVyZW50IHN5c09iamVjdElEJ3MgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlCiAgICAgIC0gQWRkZWQgYSAnb3YnIGRpcmVjdG9yeSBmb3IgT3BlblZpZXcgc3VwcG9ydCBmaWxlcwogICAgICAgIC0gY3VycmVudGx5IGNvbnRhaW5zIG5lY2Vzc2FyeSBmaWxlcyB0byBzdXBwb3J0IGEgVUNEIGJpdG1hcCBmaWxlCiAgICAgICAgICBmb3IgaG9zdHMgdXNpbmcgdGhlIHVjZC1zbm1wIGFnZW50LiAgU2VlIHRoZSBvdi9SRUFETUUgZmlsZSBmb3IgZGV0YWlscy4KCmhhcmRha2VyIDEyIEZlYiA5NiAxNDoyODoyNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmhpbiwgYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpCiAgICAgIC0gVGhlIGFnZW50IG5vdyBzZXRzIGFuIGFsYXJtIHRvIHJlc3RhcnQgcmF0aGVyIHRoYW4gZG9pbmcgYXQgdGhlCiAgICAgICAgc25tcHNldCB0aW1lIHRvIHJldHVybiBhIHZhbHVlIHRvIHRoZSBzbm1wc2V0IHJlcXVlc3QuCgpoYXJkYWtlciAxNiBGZWIgOTYgMTY6MzI6NDEKICAgIC0gKGFjY29uZmlnLmgsY29uZmlnLmguaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKQogICAgICAtIC5jb25mIGZpbGUgYWRkaXRpb246ICAiY29tbXVuaXR5IE4gU1RSSU5HIiB0byBjaGFuZ2UgY29tbXVuaXR5IG5hbWVzCgpoYXJkYWtlciAyMSBGZWIgOTYgMTY6MTI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpCiAgICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSBzbm1wZC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgMjEgRmViIDk2IDE2OjE1OjM2CiAgICAtIChhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmMpCiAgICAgIC0gQWRkZWQgYXBwcy9zbm1wdHJhcAogICAgICAgIC0gY29kZSB0YWtlbiBmcm9tIDIuMC4xIGFuZCBzdWJtaXR0ZWQgdG8gbWUgYnkgZnJhbmN1c0BtZXRzbnkuZGVscGhpLmNvbS4KICAgICAgICAtIEkgaGF2ZSB5ZXQgdG8gdGVzdCBpdC4KCmhhcmRha2VyICA2IE1hciA5NiAwOTowOToxNQogICAgLSAoYWdlbnQvc25tcGQuYykgQWRkZWQgT19UUlVOQyB0byB0aGUgbG9nZmlsZSBvcGVuKCkgY2FsbC4KCmhhcmRha2VyICA2IE1hciA5NiAxMDowNjoyNAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKSBzbWFsbCBidWdzIGZpeGVkCiAgICAgIC0gZGlzayBlbnRyaWVzIHdpdGggbm8gc2l6ZSBzcGVjaWZpZWQgY2F1c2VkIHNlZy1mYXVsdHMuCiAgICAgIC0gYmV0dGVyIHR5cGUgY2hlY2tpbmcgb24gTUlCIGZvciAnZXhlYyBNSUInIGVudHJpZXMuCiAgICAgIC0gbW9yZSBlcnJvciBtZXNzYWdlcyBhZGRlZC4KCmhhcmRha2VyICA2IE1hciA5NiAxNjozODoxNgogICAgLSAoZWNlLW1pYi5kZWYpCiAgICAgIC0gQ2hhbmdlZCBjYXBpdGFsaXphdGlvbiBzY2hlbWVzIHRvIGJlIG1vc3kgY29tcGxpYW50LgogICAgICAtIE1hZGUgdGhlIG1lbW9yeSBtaWIgU1lOVEFYIHBvaW50IHRvIHRoZSBNZW1vcnkgc2VxdWVuY2UgbGlrZSBpdCBzaG91bGQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTY6NTg6MTEKICAgIC0gKHNubXBsaWIvbWliLmMpIHByaW50ZWQgdmFsdWVzIGZvciB0aW1ldGlja3MgYXJlIG5vIGxvbmdlciBuZWdhdGl2ZS4KCmhhcmRha2VyICA4IE1hciA5NiAxMDozMTozNAogICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5jKSBDaGVjayBpZiB2YXJpYWJsZSBjb250ZW50IGlzIE5VTEwgYmVmb3JlIHVzaW5nLgoKaGFyZGFrZXIgIDggTWFyIDk2IDE2OjU2OjA4CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL2V4ZWMuYykKICAgICAgIC0gcmVsb2NhdGFibGUgZXhlYydzIGZhaWxlZCB0byBjbG9zZSB0aGUgY2FjaGUgZmlsZS4KCmhhcmRha2VyIDExIE1hciA5NiAxMzozNzoyNQogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6IGNvbW1lbnRlZCBvdXQgbmxpc3Qgd2FybmluZ3MuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6MTc6MjYKICAgIC0gKG1hbi97TWFrZWZpbGUuaW4sc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZn0sdmVyc2lvbnRhZyxzZWRzY3JpcHQuaW4pOgogICAgICAtIGNsZWFuZWQgdXAgZG9jdW1lbnRhdGlvbiBtb3JlIGFuZCBhZGRlZCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gdGhlIHRyYWlsZXJzLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjE3OjU3CiAgICAtIChSRUFETUUpOiBjbGVhbmVkIHVwLCByZS1hcnJhbmdlZCwgc2hvcnRlbmVkIChzZWN0aW9ucyBtb3ZlZCB0byBtYW4vKiBkb2NzKS4KCmhhcmRha2VyIDExIE1hciA5NiAxNTo0MDoxNwoKICAgIC0gKFJFQURNRSk6IG1vcmUgY2xlYW4gdXAgYW5kIGFkZGVkIHJlZmVyZW5jZSB0byB0aGUgdWNkLXNubXAgbWFpbGluZyBsaXN0LgoKR2lvdmFubmkgUy4gTWFyem90IDxnbWFyem90QGJheW5ldHdvcmtzLmNvbT4gMTEgTWFyIDk2IDE1OjU3OjIwCgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogZml4ZWQgYSB0aW1lb3V0IGJ1ZyBjYXVzZWQgYnkgYXJjaGl0ZWN0dXJlcwogICAgICB3aXRoIGFuIHVuc2lnbmVkIHRpbWV2YWwudHZfc2VjIHZhbHVlLgogICAgICAtIFRoYW5rcyBnb2VzIHRvIEdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IGZvcgoJdGhlIHBhdGNoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjQKCmhhcmRha2VyIDE5IEphbiA5NiAxNzozMToxNgogICAgLSAoY29uZmlndXJlKikKICAgICAgLSB1cGRhdGVkIHRvIGF1dG9jb25mIHYyLjcKICAgICAgLSBIb3BlZnVsbHkgbm93IHVzaW5nIGNvcnJlY3QgJ21ha2UnIGRlZmluaXRpb25zCgpoYXJkYWtlciAxOSBKYW4gOTYgMTc6MzI6NTcKICAgIC0gKGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgICAtIERlY2xhaXJlZCBtb3JlIHN0YXRpYyB2YXJpYWJsZXMgKGxvbmdfcmV0KSB0byBmaXggc3VuNHMgZXhpdCBjb2RlcyAoYWdhaW4pLgoKaGFyZGFrZXIgMjIgSmFuIDk2IDE2OjI3OjMwCiAgICAtIChhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgIC0gQWRkZWQgbmV3IGRlZmluZXMgdG8gdHVybiBvbi9vZmYgc2VjdGlvbnMgb2YgdGhlIGV4dGVuc2libGUgbWliLgogICAgICAtIFRoaXMgYWxzbyBmaXhlcyB0aGUgbWliLnR4dCBmaWxlIGRlZmluaXRpb25zIGlmIHNvbWV0aGluZyBpcyB0dXJuZWQgb2ZmLgogICAgLSAoTWFrZWZpbGUuaW4pIHJlbW92ZWQgJHtzcmNkaXJ9IGZyb20gdGhlIGZyb250IG9mIHN0YW1wLWguaW4KCmhhcmRha2VyIDIyIEphbiA5NiAxNzoxODo1OAogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pIEFkZGVkIGEgY2htb2QgdG8gbWFrZSB0aGUgc25tcGNoZWNrIHNjcmlwdCBleGVjdXRhYmxlCgpoYXJkYWtlciAyMiBKYW4gOTYgMTc6MjM6MTcKICAgIC0gKGxvY2FsL3NubXBjaGVjaykKICAgICAgLSBhZGRlZCBhZ2VudCBjb250cm9sczogIHJlc3RhcnQsIHVwZGF0ZWNvbmZpZywgY2xlYXJjYWNoZS4KICAgICAgLSByZW1vdmVkIGFuIG9sZCBkZWJ1Z2dpbmcgcHJpbnRmLgogICAgICAtIGN0cmwtZiA9PiBmaXhhbGwuCiAgICAgIC0gQWRkZWQga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIHRvIHRoZSBhc3NvY2lhdGVkIG1lbnUgaXRlbXMuCiAgICAgIC0gTWFkZSBoaWdobGlnaHRUaGlja25lc3MgYSBnbG9iYWwgcGFyYW1ldGVyIHZpYSAkd2luZG93LT5vcHRpb24oJ2FkZCcpLgogICAgICAtIEFkZGVkIGEgZW50cnkgYm94IHRvIHRoZSBleGVjdXRhYmxlIGNvbW1hbmRzIHdpdGggdGhlIGNvbW1hbmQgdG8gcnVuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4zCgpoYXJkYWtlciAyMyBPY3QgOTUgMTY6Mzc6NDMKICAgIC0gKGV4dGVuc2libGUuYykgc3RvcHBlZCByZXBvcnRpbmcgYW55dGhpbmcgZm9yIHRoZSBkaXNrIG1pYiBpZiBubwogICAgICBkaXNrcyB3ZXJlIGRlZmluZWQgaW4gdGhlIHNubXBkLmNvbmYgZmlsZS4gIFRoaXMgd2FzIGNhdXNpbmcgYW4KICAgICAgZXJyb3IgaW4gdGhlIGFnZW50J3MgZXJyb3IgbWliIHdoZW4gbm8gZGlza3Mgd2VyZSBkZWZpbmVkIGFuZAogICAgICBzb21lb25lIHdhbGtzIHRoZSBkaXNrIG1pYi4KCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNDo0NwogICAgLSAoUkVBRE1FKSBBZGRlZCBwb2ludGVyIHRvIHRoaXMgZmlsZSB2aWEgZnRwCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDU6MTIKICAgIC0gKFRPRE8pIEZpbmQgYW5kIGZpeCBtZW1vcnkgbGVhayBzb21ldGltZQoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA3OjQ1CiAgICAtIChjb25maWd1cmUuaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBzb2xhcmlzIHNwZWNpZmljczogIC1EU1ZSNAogICAgLSAoY29uZmlndXJlLmluKSBDYWNoZXMgaW5pdGlhbCBwcm9tcHQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc28geW91CiAgICAgIHdvbid0IGJlIGJ1Z2dlZCB0d2ljZSBieSB0aGUgaW5pdGlhbCBxdWVzdGlvbi4KCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowODo0OQogICAgLSAoY29uZmlnLmguaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowOTozNwogICAgLSAoYWxsIGF1dG9jb25mIGJ1aWx0IGZpbGVzKSBVcGRhdGVkIGV2ZXJ5dGhpbmcgdG8gYXV0b2NvbmYgMi41CgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MTA6NDkKICAgIC0gKHRyYXBub3RpZikgTG9ncyBuby1yZXNwb25zZSBlcnJvcnMuCiAgICAtICh0cmFwbm90aWYpIEJldHRlciBzdHJpbmcgY2hlY2tpbmcgKHF1b3RlcyBhbGwgdmFyaWFibGVzIG5vdykKCmhhcmRha2VyICAxIERlYyA5NSAxNjoyMDoxMwogICAgLSBsb2NhbC9zbm1wY2hlY2s6ICAgICAgICpuZXcgZmVhdHVyZXMqCiAgICAgIC0gaGFuZGxlcyBmYWlsZWQgc25tcHdhbGsvZ2V0L3NldHMgbXVjaCBtb3JlIGdyYWNlZnVsbHkgbm93CiAgICAgIC0gbmV3IHByZWZlcmVuY2U6ICBZb3UgY2FuIHBpY2sgd2hhdCB0eXBlcyBvZiBwcm9ibGVtcyB0byBjaGVjayBmb3IKICAgICAgICAtIC1mIG9uIHRoZSBjb21tYW5kIGxpbmUgb25seSBjaGVja3MgZm9yIGZpeGFibGUgcHJvYmxlbXMKICAgICAgLSBubyBsb25nZXIgcGluZzo6ZWNob3MgaG9zdHMgYmVmb3JlIGNoZWNraW5nIHRoZW0KICAgICAgICAtIGluc3RlYWQgcmVsaWVzIG9uICdObyBSZXNwb25zZScgdHlwZSByZXBsaWVzIGZyb20gc25tcHdhbGsvZ2V0IHRvCiAgICAgICAgICBkZXRlcm1pbmUgaWYgYSBob3N0IGlzIHVwLgogICAgICAgIC0gcGluZyB0aGUgaG9zdCBpcyBzdGlsbCBhbiBvcHRpb24gKHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSBhbmQgbWVudXMpCiAgICAgIC0gY29udmVydGVkIGZyb20gVGstYjQgdG8gVGstYjgKICAgICAgLSBBZGRlZCBhIGxvZ2dpbmcgd2luZG93IGZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNraW5nIG9mIGFjdGlvbnMuCiAgICAgICAgLSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAtViBOVU0gIGluaXRpYWwgbG9nIHZlcmJvc2l0eSBsZXZlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUwgICAgICBzaG93IHRoZSBsb2cgd2luZG93IGF0IHN0YXJ0dXAKICAgICAgLSBOb3cgdHJhbnNsYXRlcyBtaWIgbnVtYmVycyBpbnRvIG1vcmUgcmVhc29uYWJsZSBuYW1lcwoKaGFyZGFrZXIgIDUgRGVjIDk1IDE0OjU3OjE0CiAgICAtIChjb25maWd1cmUqKSBhZGRlZCBBQ19UWVBFX1BJRF9UIHRvIHRoZSBjb25maWd1cmUgY2hlY2tzCgpoYXJkYWtlciAgNSBEZWMgOTUgMTU6MDE6MTAKICAgIC0gKHNubXBjaGVjaykKICAgICAgLSBOZXcgZmxhZzogIC1kLCBkb24ndCBzdGFydCBjaGVja2luZyBhbnl0aGluZy4gIEp1c3QgYnJpbmcgdXAgaW50ZXJmYWNlLgogICAgICAtIGNoZWNrIGZvciBibGFuayBvdXRwdXQgb2Ygc25tcGdldCBiZWZvcmUgcGFyc2luZyB3aXRoIHMvLy9nCiAgICAgICAgY29uc3RydWN0cy4KCmhhcmRha2VyICA1IERlYyA5NSAxNTowNToyMAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZSkKICAgICAgLSBCdWcgZml4OiAgYWxwaGFzIGFuZCBzdW5vc2VzIHdlcmUgcmVwb3J0aW5nIGluY29ycmVjdCBleHRlbnNpYmxlCiAgICAgICAgZXhpdCBjb2Rlcy4gICh5ZXQgYW5vdGhlciA2NC8zMiBiaXQgYnVnIGZvdW5kKS4KICAgICAgLSBCdWcgZml4OiBhZ2VudC11cGRhdGUscmVzdGFydCwgYW5kIGNhY2hlIG1pYiBmbHVzaCBlbnRyaWVzIHdlcmUKICAgICAgICByZXR1cm5pbmcgdmFsdWVzIGluc3RlYWQgb2YgcG9pbnRlcnMgdG8gdmFsdWVzLgoKaGFyZGFrZXIgMTMgRGVjIDk1IDE1OjI3OjE5CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL21pc2MuYykgYnVnIGZpeGVzIGZvciBleGVjIGl0ZW1zOgogICAgICAtIGEgc2Vjb25kIHNubXB3YWxrIG9mIHRoZSBleGVjIGl0ZW0gd291bGQgcmV0dXJuIHRoZSBvbGQgY2FjaGUKICAgICAgICBmaWxlLiAgRml4ZWQgYnkgcmVzZXRpbmcgdGhlIGxhc3QgY2FjaGV0aW1lIHRvIDAgdG8gYWx3YXlzIHJlc2NhbgogICAgICAgIGFmdGVyIGZvcmsvcGlwZS9tZW1vcnkvZXRjIGVycm9ycy4KICAgICAgLSBNYWRlIGxhc3RyZXN1bHQgYSBzdGF0aWMgdmFyLiAgV2FzIHJldHVybmluZyB3cm9uZyBleGl0IGNvZGVzCiAgICAgICAgdW5kZXIsIHN0cmFuZ2VseSBlbm91Z2gsIG9ubHkgc3Vub3MtNCBtYWNoaW5lcy4KCmhhcmRha2VyIDIwIERlYyA5NSAwOTo1MzoxMAogICAgLSBzbm1wX29wZW4gY2FsbHMgZ2V0c2VydmJ5bmFtZSBvbmx5IG9uY2Ugbm93LCBhdCB0aGUgcmVxdWVzdCBvZiBHYXJ5CiAgICAgIEhheXdhcmQgPGdhaEBkaXJhYy5iZWxsY29yZS5jb20+LgoKaGFyZGFrZXIgMjAgRGVjIDk1IDE1OjU2OjE2CiAgICAtIEZvdW5kIGFuZCBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSByb3V0aW5nIHRhYmxlIG1pYi4KCmhhcmRha2VyIDI4IERlYyA5NSAxMDowMTozNQogICAgLSBBZGRlZCBzZWRzY3JpcHQgdG8gdGhlIC5jdnNpZ25vcmUgZmlsZS4KCmhhcmRha2VyIDI4IERlYyA5NSAxMDoyNDozNwogICAgLSBBZGRlZCBhIHNlZHNjcmlwdCB3aGljaCBpcyBidWlsdCBmcm9tIGNvbmZpZy5oIGFuZCBhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaAogICAgICAtIHVzZWQgdG8gZHluYW1pY2FsbHkgYnVpbGQgbWliLnR4dCBhbmQgbG9jYWwvc25tcGNoZWNrLgoKaGFyZGFrZXIgMjggRGVjIDk1IDEyOjA2OjQ5CiAgICAtIENyZWF0ZWQgYSBFWEFNUExFLmNvbmYgZmlsZSBmb3IgZXhhbXBsZSB1c2FnZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4yLjEKCmhhcmRha2VyIDI5IFNlcCA5NSAxMzo0Mzo0OQogICAgLSBwb3J0ZWQgdG8gR05VJ3MgYXV0b2NvbmZpZzIuNAogICAgICAtIHRvIGluc3RhbGwsIHlvdSBtdXN0IG5vdyBydW4gLi9jb25maWd1cmUgZmlyc3QgdG8gZ2VuZXJhdGUgdGhlCiAgICAgICAgTWFrZWZpbGVzIGFuZCBjb25maWcuaAogICAgICAtIGFsbW9zdCBhbGwgb2YgdGhlIGNvZGUgaXMgbm93IGR5bmFtaWNhbGx5IGNoZWNrZWQgZm9yIHByb2JsZW1zCiAgICAgICAgcmF0aGVyIHRoYW4gYmVpbmcgZGVwZW5kYW50IG9uIGFyY2hpdGVjdHVyZSBuYW1lcy4KICAgIC0gc3lzdGVtIG5hbWUgbm93IGR5bmFtaWNhbGx5IGRldGVybWluZWQgYXQgcnVuIHRpbWUgKGZyb20gdW5hbWUgLW4pCiAgICAtIGNyZWF0ZWQgYSAnbWFrZSBkZXBlbmQnIGNhbGwgKGZpbmFsbHkpLgogICAgLSAoYWdlbnQvc25tcF92YXJzLmgpIGNoYW5nZWQgU1lTTkFNRSBkZWZpbmUgdG8gU1lTVEVNTkFNRSBkZWZpbmUgdG8KICAgICAgYXZvaWQgYSBjb25mbGljdCB3aXRoIGEgc29sYXJpcyBoZWFkZXIgZmlsZS4KICAgIC0gcHJvdGVjdGluZyBiZXR0ZXIgYWdhaW5zdCBpbmNsdWRlIGhlYWRlciBmaWxlcyB0d2ljZS4KICAgIC0gTW9zdCBvZiBwb3J0IHRvIFNvbGFyaXMgMi40IGZpbmlzaGVkLiAgVGhlIGtlcm5lbCByZWFkcyBzdGlsbCBuZWVkIHdvcmsuCgpoYXJkYWtlciAyOSBTZXAgOTUgMTM6NDY6NDMKICAgIC0gKE5FV1MpIHVwZGF0ZWQgdGhlIG5ld3MgZmlsZS4KCmhhcmRha2VyICAzIE9jdCA5NSAwOToyNDowMAogICAgKGFjY29uZmlnLmgpIE1pbm9yIGJ1ZzogIHJlY3Vyc2l2ZSBjb21tZW50cyBub3QgY29ycmVjdCBmb3IgY29tcGlsZXJzIChBSVgpCgpoYXJkYWtlciAgMyBPY3QgOTUgMDk6NDM6NTQKICAgICh2ZXJzaW9uaW5mby5jKSBBZGRlZCAzLTAtMy1BMSB0YWcKCmhhcmRha2VyICA0IE9jdCA5NSAxNjo1MzozOQogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDUgT2N0IDk1IDE1OjIzOjA1CiAgICAtIE1vcmUgU29sYXJpcyBwb3J0aW5nLgogICAgICAtIE1vc3QgbWliSUkgZW50cmllcyBub3cgd29yay4KICAgICAgICAgLSBIYXZlbid0IGNoZWNrZWQgcmV0dXJuZWQgaW5mb3JtYXRpb24gZm9yIGFjY3VyYWN5CiAgICAgIC0gc3lzVXBUaW1lIHN0aWxsIGZhaWxzLgogICAgICAtIGNjIGFuZCBnY2MgYm90aCBjb21waWxlIGV2ZXJ5dGhpbmcgbm93LgoKaGFyZGFrZXIgIDUgT2N0IDk1IDE1OjQ4OjIzCiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNiBPY3QgOTUgMTE6Mzc6MDAKICAgIC0gKFJFQURNRSkgTW92ZWQgSU5TVEFMTEFUSU9OIGluc3RydWN0aW9ucyB0byBJTlNUQUxMCiAgICAgICAgICAgICAgIENoYW5nZWQgbGlzdGluZyBvZiBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcwogICAgICAgICAgICAgICBVcGRhdGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6Mjg6NDgKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA2IE9jdCA5NSAxNjozMjowNAogICAgLSAoc25tcGQuYykgQWRkZWQgdHdvIG5ldyBmbGFnczoKICAgICAgLWggZm9yIGhlbHAKICAgICAgLXYgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24KCmhhcmRha2VyICA2IE9jdCA5NSAxNjozMjo0MwogICAgLSAocGFyc2UuYywgc25tcC5jKSBhZGRlZCBjb25maWcuaCB0byB0aGUgbGlzdCBvZiBpbmNsdWRlcy4KCmhhcmRha2VyICA2IE9jdCA5NSAxNjo0MDozOAogICAgLSAoc25tcGQuYykgVXNhZ2Ugb2YgLS1oZWxwIGFuZCAtLXZlcnNpb24gc2hvdWxkIHdvcmsgbm93Li4uICBHTlUgc3RhbmRhcmQuCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6NDE6MTgKICAgIC0gKE5FV1MvLVRPRE8pIC1oLy0taGVscCwgLXYvLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb25zCgpoYXJkYWtlciAxMSBPY3QgOTUgMTc6MzM6MjYKICAgIC0gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgbm93IHByb21wdHMgZm9yIGltcG9ydGFudCB2YWx1ZXMgdG8gYmUgcHV0IGluCiAgICAgIGNvbmZpZy5oLiAgU29tZSB0aGluZ3MgbmVlZCB0byB1c2UgJChwcmVmaXgpIGluc3RlYWQgaG93ZXZlci4KICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbikKICAgICAgKyBsaW5raW5nIHRvIC4uL3NubXBsaWIvbGlic25tcC5hIGluc3RlYWQgb2YgLi4vbGliL2xpYnNubXAuYSB0bwogICAgICAgIHJlbW92ZSBpbnN0YWxsIHJlcXVpcmVtZW50LgogICAgICArICBwdXQgLi4vbGliL2xpYnNubXAuYSBpbiBhcHBsaWNhdGlvbgoKaGFyZGFrZXIgMTMgT2N0IDk1IDE1OjQ1OjI4CiAgICAtIChzbm1wZC5jKSBBZGRlZCAtcCBwb3J0IHRvIC0taGVscCBvdXRwdXQKICAgIC0gKGNvbmZpZykgU2V0dXAgdG8gdXNlIC0tcHJlZml4IHRvIGxvb2sgZm9yIGNvbmZpZyBmaWxlcy4KCmhhcmRha2VyIDE2IE9jdCA5NSAxMzowMTozOQogICAgLSAoTWFrZWZpbGVzKSBGYWlybHkgZGVjZW50ICdtYWtlIGluc3RhbGwnIG5vdyBwb3NzaWJsZS4gIEluc3RhbGxzCiAgICAgIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgLS1wcmVmaXggZm9yIHRoZSAuL2NvbmZpZ3VyZSBzY3JpcHQuCiAgICAtIChleHRlbnNpYmxlLmMpIGNvbmZpZyBmaWxlIHJlLWxvY2F0aW9uOiBub3cgdXNlcyB0aGUgU05NUExJQlBBVEgKICAgICAgZGVmaW5lZCBsb29zZWx5IGFzICQocHJlZml4KS9saWIvc25tcC8uCgpoYXJkYWtlciAxNiBPY3QgOTUgMTU6MDI6MDEKICAgIC0gKE1ha2VmaWxlcykgbWFrZSBpbnN0YWxsIGVjaG9zIHdoYXQgaXRzIGRvaW5nIGluIGEgbW9yZSBjbGVhciBmYXNoaW9uCiAgICAtIChJTlNUQUxMKSBhZGRlZCBiZXR0ZXIgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBJTlNUQUxMIGZpbGUuCiAgICAtIChSRUFETUUpIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwoKaGFyZGFrZXIgMTYgT2N0IDk1IDE2OjIxOjQzCiAgICAtIChzbm1wZC5jKSB3YXMgc3RpbGwgbG9va2luZyBpbiAvZXRjIGZvciB0d28gLmNvbmYgZmlsZXMuCgpoYXJkYWtlciAxNiBPY3QgOTUgMTY6NDM6MTIKICAgIC0gKGFwcHMpIGFsbCBhcHBzIHdlcmUgc3RpbGwgbG9va2luZyBpbiAvZXRjLyBmb3IgLmNvbmYgZmlsZXMKCmhhcmRha2VyIDE3IE9jdCA5NSAxNjo1ODozMgogICAgdmVyc2lvbiB0YWcgKCAzLjAuMyApIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyIDE3IE9jdCA5NSAxNzowMDoyMgogICAgLSBDaGFuZ2VMb2cgdXBkYXRlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjIKCmhhcmRha2VyIDIxIFNlcCA5NSAwOToyNzoxOAogICAgKHNubXBsaWIvbWQ1LmMpIEZvcmdvdCB0byBpbmNsdWRlIHN5cy90eXBlcy5oIGZvciB1X2xvbmcgZGVmaW5pdGlvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4xCgpoYXJkYWtlciAyNiBKdWwgOTUgMTY6MzE6NDEKICAgIC0gQWRkZWQgYSBuZXcgI2RlZmluZTogRVhJVF9PTl9CQURfS0xSRUFEIHRvIGNvbmZpZy5oCiAgICAgIElmIGRlZmluZWQsIGFuZCBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUga2VybmVsIGNvbnRlbnRzLAogICAgICB0aGUgYWdlbnQgd2lsbCBleGl0LiAgVGhpcyB3YXMgdGhlIGRlZmF1bHQuICBJIHdhbnRlZCBpdCB0bwogICAgICBjb250aW51ZS4KICAgIAogICAgLSBQb3J0IHRvIGRlYy1hbHBoYS9PU0YgMy4xCiAgICAgIC0gYWxwaGEncyBsb25nIGlzIDggYnl0ZXMsIG5vdCA0LgogICAgICAtIHNob3VsZCBiZSAobW9zdGx5KSA2NCBiaXQgY2xlYW4gbm93LgogICAgICAtIGNsZWFuZWQgdXAgYSBMT1Qgb2YgYnVncyBDTVUgY29kZSBpbiB0aGUgcHJvY2Vzcy4KCmhhcmRha2VyIDI4IEp1bCA5NSAxNDoyMzo0MQogICAgWWV0IG1vcmUgcHJvYmxlbXMgZml4ZWQgaW4gdGhlIGFscGhhIHBvcnQuCiAgICAgIC0tIG1vcmUgaW50IC0+IGxvbmcgY2hlY2tpbmcuCgpoYXJkYWtlciAzMSBKdWwgOTUgMTY6Mjc6NDcKICAgIC0gc25tcGNoZWNrIGNoYW5nZXM6CiAgICAgIC0gdGVybWluYWwgKGFzY2lpKSBiYXNlZCBzdXBwb3J0ZWQgZml4ZWQuCiAgICAgICAgLSBEZXRlY3RzIHByZXNlbmNlIG9mIGEgRElTUExBWSB2YXJpYWJsZS4KICAgICAgICAtIE5vdyByZXF1aXJlcyB0aGUgVGVybTo6UmVhZGtleSBwYWNrYWdlLgogICAgICAgIC0gYXNrcyB1c2VycyB3ZWF0aGVyIHRvIGZpeCBwcm9ibGVtcwogICAgICAtIHJhaXNlcyBhbmQgZGVpY29uaWZpZXMgd2hlbiBuZXcgcHJvYmxlbXMgYXJlIGZvdW5kCiAgICAgIC0gc2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiBuZXcgcHJvYmxlbXMgdG8gcGlua2lzaAogICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgcGluZyBob3N0PwogICAgICAtIGdsb2JhbCBrZXkgYmluZGluZ3M6CiAgICAgICAgICBjdHJsLXEgPSBxdWl0OyBjdHJsLWggPSBoaWRlOyBjdHJsLXMgPSBzZWVuIGFsbAoKaGFyZGFrZXIgIDEgU2VwIDk1IDExOjU3OjUyCiAgICAtIEZpeGVkIGFscGhhJ3Mga2VybmVsIGxvb2t1cHM6CiAgICAgICogQ01VIGNvZGUgd2FzIHBhc3NpbmcgaW50cyBpbnRvIGxzZWVrIChuZWVkcyBsb25nKS4KCmhhcmRha2VyIDE4IFNlcCA5NSAxNjowOToyNQogICAgTWlub3IgbW9kcyB0byBSRUFETUUgZmlsZS4KCmhhcmRha2VyIDE4IFNlcCA5NSAxNjoxMzo0OQogICAgTWlub3IgYnVnOgogICAgICAoc2hfY291bnRfcHJvY3MpIGNoZWNrIGlmIHJldHVybmVkIGZpbGUgZGVzY3JpcHRvciA+IDAgYmVmb3JlIGNvbnRpbnVpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMAoKaGFyZGFrZXIgMTYgSnVuIDk1IDEwOjEzOjUzCiAgICBSZW1vdmVkICdnbWFrZScgLT4gJ21ha2UnIGluIGFnZW50L01ha2VmaWxlCgpoYXJkYWtlciAxNiBKdW4gOTUgMTA6MTU6NDIKICAgIEhvdXNlIGNsZWFuaW5nCiAgICAgIC0gQ29tcGlsZXMgY2xlYW5seSBvbiBocHV4L2djYwogICAgCShleGNlcHQgb25lIGluY2x1ZGUgZmlsZSBlcnJvciBJIGRvbid0IGhhdmUgY29udHJvbCBvdmVyLikKICAgICAgLSBDaGFuZ2UgVkVSU0lPTl9JRCAtPiBWRVJTSU9OSUQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggSFAncyBpbmNsdWRlcy4KCmhhcmRha2VyIDE2IEp1biA5NSAxNDoxMzo1MwogICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgIFRvb2sgb3V0IGdjYy9hbnNpIHJlcXVpcmVtZW50IGZvciB0aGUgYWdlbnQuCiAgICAgIHBlcnJvcigpIGlzIGNhbGxlZCBtb3JlIGZyZXF1ZW50bHkgZm9yIGxvZyBhcmNoaXZhbAogICAgCiAgICBOZXcgQnVnL0hhdmVuJ3Qgc29sdmVkOgogICAgICBIUC1VWDogIGlmIGFnZW50LyouYyBhbmQgYWdlbnQvZXh0ZW5zaWJsZS8qLmMgYXJlIGJ1aWx0IHdpdGggZ2NjLAogICAgCSAgRGlzcGxheVN0cmluZ3MgcmV0dXJuIGdhcmJhZ2UuICBObyBjbHVlIGFzIHRvIHdoeS4KCmhhcmRha2VyIDE2IEp1biA5NSAxNDoyMDo0OAogICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgIE1pc3NlZCBhIFZFUlNJT05fSUQKCmhhcmRha2VyIDIxIEp1biA5NSAwOToxMToyNwogICAgQ2hhbmdlZCBhbm90aGVyICJlbXB0eSIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgQ01VIGNvZGUgdG8gYSByZWFsIHdhcm5pbmcuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTU6MzEKICAgIEJ1ZyBGaXg6CiAgICAgIFN0b3BwZWQgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIG5vbi1zdGF0aWMgY2hhciBhcnJheS4uLiAgKC0+IHN0YXRpYyBjaGFyKQogICAgICBQYXNzaW5nIHdyb25nIHBvaW50ZXIgdG8gc2V0ZXJyb3JzdGF0dXMoKSBpbiBzZXRQZXJyb3JzdGF0dXMoKQogICAgCiAgICBGZWF0dXJlOgogICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxODozNwogICAgZWNlLW1pYi5kZWY6CiAgICBCdWcgRml4OgogICAgICBMb2FkYXZlIG1pYjogIEludGVnZXIgLT4gRGlzcGxheVN0cmluZwogICAgICB2ZXJzaW9uQ2xlYXJDYWNoZTogIC0+IHJlYWQtd3JpdGUgKHdhcyByZWFkLW9ubHkpCiAgICAKICAgIEZlYXR1cmU6CiAgICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE5OjE3CiAgICBDaGFuZ2VkIGRlZmF1bHQgQ0MgdG8gY2MgYWdhaW4uCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MjA6MjMKICAgIHNubXBsaWI6CiAgICAgIEJ1ZyBmaXg6ICBmZHNldCAtPiAoaW50ICopIGZkc2V0IGluIHNlbGVjdCBjYWxsLgoKaGFyZGFrZXIgMTAgSnVsIDk1IDExOjI3OjAwCiAgICBUd28gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOgogICAgICAtbCBMT0dGSUxFICAgICAgIE91dHB1dHMgc3RkZXJyL291dCB0byBMT0dGSUxFIChvdmVycmlkZXMgY29uZmlnLmggZGVmKQogICAgICAtTCAgICAgICAgICAgICAgIERvIE5PVCB3cml0ZSB0byBhIGxvZyBmaWxlIChvdmVycmlkZXMgY29uZmlnLmgpCgpoYXJkYWtlciAxMCBKdWwgOTUgMTI6Mjk6MzIKICAgIC0gTW9yZSBwZXJyb3IoKXMgY29udmVydGVkIHRvIHNldCB0aGUgc25tcCBlcnJvciBzdGF0dXMgZmxhZyBvbiB0aGUgYWdlbnQuCiAgICAtIGVycm9yIHN0YXR1cyBmbGFnIGlzIG5vdyBwcmlvcml0aXplZC4gIHBlcnJvcnMgZ2V0IHRoZSBoaWdoZXN0IHNvCiAgICAgIG90aGVyIGVycm9ycyB3b24ndCBvdmVycmlkZSB0aGVtIGlmIHRoZXkgaGFwcGVuIGF0IGEgbGF0ZXIgdGltZS4KICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSByZXN0YXJ0IG1pYiB0byB0aGUgdmVyc2lvbiBtaWIgb2YgdGhlCiAgICAgIGFnZW50LiAgU2V0dGluZyB0aGlzIHdyaXRhYmxlIG1pYiB0byBvbmUgd2lsbCBjYXVzZSBpdCB0byBleGVjCiAgICAgIGl0c2VsZiBhZ2FpbiAoZm9yIHJlbW90ZSByZXN0YXJ0L3VwZGF0ZXMpLgoKaGFyZGFrZXIgMTAgSnVsIDk1IDEyOjMwOjE5CiAgICBNaW5vciBjb21tZW50IGNoYW5nZSBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTQgSnVsIDk1IDE1OjEyOjQwCiAgICAtIEZpbmlzaGVkIHRoZSByZXN0YXJ0IG1pYi4gIFRoaXMgaXMgYSBzZXRhYmxlIHN1Yi1taWIgb2YgdGhlIHZlcnNpb24KICAgICAgbWliLCBkZWZhdWx0IHRvIFZFUlNJT04uMTIoLjEpLiAgSWYgc25tcC1zZXQgdG8gJzEnLCBpdCB3aWxsIHJlc3RhcnQKICAgICAgdGhlIGFnZW50LgogICAgCiAgICAgICogIEEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGl0IHJlc3RhcnRzIDMgdGltZXMgb3Igc28sIHNpbmNlIGl0CiAgICAgICAgIG5ldmVyIHJldHVybnMgYSByZXNwb25jZSB0byB0aGUgcHJvZ3JhbSBnZW5lcmF0aW5nIHRoZSByZXF1ZXN0LgogICAgICAgICBJZiBzYWlkIHByb2dyYW0gdHJpZXMgdG8gcmVzZW5kIHRoZSByZXF1ZXN0ICh3aGljaCBtb3N0IGRvKSwgaXQKICAgICAgICAgd2lsbCBBR0FJTiByZXN0YXJ0IHRoZSBhZ2VudC4uLiAgb2ggd2VsbC4KCmhhcmRha2VyIDE0IEp1bCA5NSAxNToxNTozMQogICAgLSBzbm1wY2hlY2sgKHRrLXBlcmwtYjQgc2NyaXB0KSBpcyBwcmV0dHkgc3RhYmxlIGF0IHRoaXMgcG9pbnQuICBJCiAgICAgIGxvc3QgY3Vyc2VzIHN1cHBvcnQsIGFuZCBuZWVkIHRvIHJlLWFkZCBpdCBzdGlsbCwgc28gaXQgaXMgc3RpbGwKICAgICAgYmV0YS4gIEl0IGRvZXMgZXhwZWN0IGEgbG9nIGZpbGUgb2YgcHJvYmxlbXMgdG8gZXhpc3QgKHBvaW50IGl0IHRvCiAgICAgIC9kZXYvbnVsbCksIGFuZCBuZWVkcyB0byBrbm93IHRoZSBsb2NhdGlvbnMgb2YgdGhlIG1pYnMgdG8gY2hlY2sKICAgICAgKHdoaWNoIGFyZW4ndCBjb25maWd1cmVkIGJ5ICdtYWtlJyksIHNvIGl0IG5lZWRzIHNvbWUgd29yay4KICAgICAgSG93ZXZlciwgaXQgd2lsbCBxdWVyeSBhbiBhZ2VudCwgY2hlY2sgaXRzIHByb2JsZW1zIGJhc2VkIG9uIHRoZQogICAgICBzdGF0dXMgb2YgdGhlIGVycm9yIGZsYWcgKG9yIHJldHVybiBjb2RlKSBiZWluZyA+MSBhbmQgcmVwb3J0IHRoZW0KICAgICAgd2l0aCBuZWF0IEdVSS1idXR0b25zIGFuZCBzdHVmZiAob2ggd293KS4gIE5vIGRvY3VtZW50YXRpb24gb24gaXQgdGhvdWdoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSAzLTBBMToKCmhhcmRha2VyICAyIEp1biA5NSAxNjoyMzo0NgogICAgLSB2ZXJzaW9uIHVwZGF0ZQoKaGFyZGFrZXIgIDUgSnVuIDk1IDEyOjQ0OjQ2CiAgICAtIGFnZW50L2V4dGVuc2libGUvTWFrZWZpbGU6CiAgICAgICAgLS0gIG5vIGxvbmdlciByZXF1aXJlcyBHTlUgbWFrZQogICAgICAgIC0tICBldGFncyBubyBsb25nZXIgcnVuIGJ5IGRlZmF1bHQKICAgIAogICAgLSBTdW5PUyBhZGRpdGlvbnM6CiAgICAgICAgLS0gbG9hZGF2ZXJhZ2UgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgICAgICAtLSBkaXNrIGNoZWNraW5nIE1JQiBlbmFibGVkCgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjE6MDcKICAgIC0gQWRkZWQgYSBTTk1QQkxPQ0sgb3B0aW9uIHRvIHRoZSBjb25maWcuaCBmaWxlLiAgU3VwcG9zZWRpbHkgc2V0dGluZwogICAgICB0aGlzIHRvIHplcm8gKG5vdyB0aGUgZGVmYXVsdCkgd2lsbCBhbGxvdyBzbm1wIHJlcXVlc3RzIHRvIHRpbWUgb3V0LgogICAgICBIYXZlbid0IHRlc3RlZCBpdCB0aHJvdWdobHkuCiAgICAgICAgLS0gQ29udHJpYnV0ZWQgYnkgU2FuamFpIE5hcmFpbiA8bmFyYWluQHRodW1wZXIuYmVsbGNvcmUuY29tPgoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIxOjUxCiAgICAtIENvcnJlY3RseSBvcmRlcmVkIHRoZSBtaWIgdGFibGUgbGlzdC4KICAgICAgLS0gIE5lZWQgdG8gd3JpdGUgYSBkeW5hbWljIGNoZWNrZXIvcmUtb3JkZXJlci4KCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMzozNQogICAgLSBDb3JyZWN0IHVzYWdlIGZvciBzbm1wd2FsayBpcyBub3cgcG9zc2libGUuICBJRSwgc25tcHdhbGsgdGFyZ2V0CiAgICAgIC4xLjMuNi4xIHdpbGwgbm93IGJyb3dzZSB0aGUgZW50aXJlIHRyZWUuCiAgICAgIC0tIFN0aWxsIGZhaWxzIG9uIHJlbG9jYXRhYmxlIGV4dGVuc2libGUgbWlicyBhbmQgd2lsbCB1bnRpbCBJCiAgICAgICAgIHdyaXRlIGEgZHluYW1pYyB0cmVlIGJ1aWxkZXIuCgpoYXJkYWtlciAgOSBKdW4gOTUgMTQ6MDg6MTUKICAgIC0gQ2hhbmdlZCB0ZXN0IC14IHRvIHRlc3QgLWYgaW4gc25tcGxpYi9NYWtlZmlsZS4gIE5vdCBhbGwgT1NlcwogICAgICAoaWUgdWx0cml4KSBoYW5kbGUgdGhpcy4KCmhhcmRha2VyIDEyIEp1biA5NSAxMDozNTozOAogICAgLSBsb2NhbC90cmFwbm90aWY6CiAgICAgIC0tIHVzZXMgc25tcHYyIG5vdyAoY29ycmVjdGx5KQoKaGFyZGFrZXIgMTIgSnVuIDk1IDEwOjM3OjQ2CiAgICAtIFJlcG9ydHMgYWxsIGVycm9ycyB0aHJvdWdoIHRoZSBlcnJvciBtaWIgbm93IGluc3RlYWQgb2YgdGhyb3VnaCBwZXJyb3IoKS4KICAgIC0gQ2xlYW5lZCB1cCBlcnJvciBoYW5kbGluZy4gIFNob3VsZG4ndCBoYW5kbGUgZXJyb3JzIG5pY2VseSBpZiBzeXN0ZW0KICAgICAgZXJyb3JzIG9jY3VyIHdoZW4gc2Nhbm5pbmcgYW4gZXh0ZW5zaWJsZSBtaWIuCgpoYXJkYWtlciAxNCBKdW4gOTUgMTE6MjQ6MjAKICAgIGFnZW50OgogICAgLSBNaWIgdGFibGUgaXMgbm93IHFzb3J0ZWQgYXQgcnVuIHRpbWUgYW5kIHRoZSBleHRlbnNpYmxlIHZhcmlhYmxlcyBhcmUKICAgICAgc29ydGVkIGluIGF0IHRoaXMgdGltZS4gIFRoaXMgYnJpbmdzIHRoZSBhZ2VudCB1cCB0byBjb3JyZWN0CiAgICAgIFNOTVB3YWxrL2dldG5leHQgcHJvdG9jb2xzLiAgWW91IGNhbiBub3cgd2FsayB0aGUgZW50aXJlIHRyZWUKICAgICAgaW5jbHVkaW5nIHRoZSBleHRlbnNpYmxlIHNlY3Rpb25zIGFuZCBpdCB3b24ndCBzdG9wLgogICAgICAqIFRoaXMgaGFzIGFuIGFkZGVkIGJvbnVzIG9mIGNoZWNraW5nIHRoZSBtaWIgdGFibGUKICAgICAgICAoYWdlbnQvc25tcF92YXJzLmMpIGZvciBjb3JyZWN0IG9yZGVyLiAgSSBoYXZlIGFkZGVkIHRoaW5ncyB0byB0aGUKICAgICAgICB3cm9uZyBsb2NhdGlvbiB0b28gbWFueSB0aW1lcyBhbmQgY2F1c2VkIHRoZSBhZ2VudCB0byBmdW5jdGlvbgogICAgICAgIGluY29ycmVjdGx5LiAgTWFqb3Igd2luLgoKaGFyZGFrZXIgMTQgSnVuIDk1IDEyOjU2OjQ5CiAgICAtIENsZWFuZWQgdXAvQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGNvbmZpZy5oCiAgICAtIEdMT0JBTFNFQ1VSSVRZIG5vdyB1c2VzIHRoZSBsZWZ0IG1vc3QgZm91ciBiaXRzIGluIHRoZSBNSUIgYWNsLgogICAgICBUaGlzIGlzIG1vcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBDTVUgY29kZSB0aGFuIHVzaW5nIHRoZSBsZWZ0IG1vc3QKICAgICAgMiwgd2hpY2ggd2FzIGRvbmUgcHJldmlvdXNseS4KCgpoYXJkYWtlciAxNCBKdW4gOTUgMTM6NDM6MzgKICAgIC0gQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgIC0gQ3JlYXRlZCBhIG1haWxpbmcgbGlzdCB0byBoYW5kbGUgYW5ub3VuY2VtZW50cwogICAgICAodWNkLXNubXAtYW5ub3VuY2VAdWNkLXNubXAudWNkYXZpcy5lZHUpCgoKIyBnZW5lcmF0ZWQgdXNpbmc6CiMgIGN2czJjbCAtYiAtciAtZiBDaGFuZ2VMb2cuYWRkIC1GIFY0LTItcGF0Y2hlcyAtLW5vLXdyYXAgLVMKIyAgcGVybCBkaXN0L2NoYW5nZWxvZ2ZpeCA8IENoYW5nZUxvZy5hZGQgPiBDaGFuZ2VMb2cucmVhbGx5YWRkCg==